On Mon, 3 Aug 2020 17:44:16 -0600
David Ahern <[email protected]> wrote:
> On 8/3/20 2:52 PM, Stefano Brivio wrote:
> > @@ -461,6 +464,91 @@ static inline void iptunnel_xmit_stats(struct
> > net_device *dev, int pkt_len)
> > [...]
> >
> > +static inline int skb_tunnel_check_pmtu(struct sk_buff *skb,
> > + struct dst_entry *encap_dst,
> > + int headroom, bool reply)
>
> Given its size, this is probably better as a function. I believe it can
> go into net/ipv4/ip_tunnel_core.c like you have iptunnel_pmtud_build_icmp.
Right, moved in v2.
> > [...]
> > + if (skb->protocol == htons(ETH_P_IP) && mtu > 576) {
>
> I am surprised the 576 does not have an existing macro.
I guess that comes from how RFC 791 picks this "512 plus something
reasonable" value. I'll think of a name and propose as a later patch,
it's used in a number of places.
> > [...]
> > + return iptunnel_pmtud_build_icmp(skb, mtu);
> > + }
> > +#endif
>
> separate v4 and v6 code into helpers based on skb->protocol; the mtu
> check then becomes part of the version specific helpers.
Done.
> > +EXPORT_SYMBOL(iptunnel_pmtud_build_icmp);
>
> I think separate v4 and v6 versions would be more readable; the
> duplication is mostly skb manipulation.
Yes, way more readable, changed in v2.
--
Stefano