Thread (1 message) 1 message, 1 author, 2016-06-28

Re: [PATCH] geneve: fix max_mtu setting

From: Jesse Gross <jesse@kernel.org>
Date: 2016-06-28 02:54:11
Also in: lkml

On Mon, Jun 27, 2016 at 6:27 PM, 严海双 [off-list ref] wrote:
On Jun 28, 2016, at 12:10 AM, Jesse Gross [off-list ref] wrote:

On Sun, Jun 26, 2016 at 6:13 PM, Haishuang Yan
[off-list ref] wrote:


On Jun 26, 2016, at 8:35 PM, zhuyj [off-list ref] wrote:

+       if (geneve->remote.sa.sa_family == AF_INET)
+               max_mtu -= sizeof(struct iphdr);
+       else
+               max_mtu -= sizeof(struct ipv6hdr);

Sorry, if sa_family is not AF_NET, it is AF_INET6?

There is a lot of macros in include/linux/socket.h.

Zhu Yanjun


There are only two enumerations AF_INET and AF_INET6 have been assigned in
geneve_newlink:


There's actually a third possibility: AF_UNSPEC, which is the default
if neither remote type is specified. This is used by lightweight
tunnels and should be able to work with either IPv4/v6. For the
purposes of the MTU calculation this means that the IPv4 header size
should be used to avoid disallowing potentially valid configurations.


Yes, you’re right. Thanks for you advise. I will send a v2 commit like this:

       if (geneve->remote.sa.sa_family == AF_INET6)
              max_mtu -= sizeof(struct ipv6hdr);
       else
              max_mtu -= sizeof(struct iphdr);

Is this ok?
Yes, that looks fine to me.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help