[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20171215.134518.1604083750390056187.davem@davemloft.net>
Date: Fri, 15 Dec 2017 13:45:18 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: alexey.kodanev@...cle.com
Cc: netdev@...r.kernel.org, steffen.klassert@...unet.com,
pvorel@...e.cz, shannon.nelson@...cle.com
Subject: Re: [PATCH net-next v3] ip6_vti: adjust vti mtu according to mtu
of output device
From: Alexey Kodanev <alexey.kodanev@...cle.com>
Date: Thu, 14 Dec 2017 18:37:50 +0300
Two minor pieces of feedback:
> LTP/udp6_ipsec_vti tests fail when sending large UDP datagrams that
> require fragmentation and the underlying device has MTU <= 1500. This
> happens because ip6_vti sets mtu to ETH_DATA_LEN and not updating it
> depending on a destination address or link parameter.
>
> Further attempts to send UDP packets may succeed because pmtu gets
> updated on ICMPV6_PKT_TOOBIG in vti6_err().
>
> Here is the example when the output device MTU is set to 9000:
You are fixing a problem that occurs when the underlying device has
an MTU smaller than 1500, yet you show an example involving an MTU
of 9000.
Care to adjust that inconsistency or explain why it's legit here?
> + if (p->flags & IP6_TNL_F_CAP_XMIT) {
> + int strict = (ipv6_addr_type(&p->raddr) &
> + (IPV6_ADDR_MULTICAST | IPV6_ADDR_LINKLOCAL));
> +
> + struct rt6_info *rt = rt6_lookup(t->net,
> + &p->raddr, &p->laddr,
> + p->link, strict);
Please do not place empty lines between local variable declarations.
Thank you.
Powered by blists - more mailing lists