Re: [PATCH] geneve: fix max_mtu setting

From: Jesse Gross
Date: Mon Jun 27 2016 - 12:11:19 EST


On Sun, Jun 26, 2016 at 6:13 PM, äæå <yanhaishuang@xxxxxxxxxxxxxxxxxxxx> wrote:
>
>> On Jun 26, 2016, at 8:35 PM, zhuyj <zyjzyj2000@xxxxxxxxx> 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.