Re: [PATCH net-next v5] net: openvswitch: IPv6: Add IPv6 extension header support

Nicolas Dichtel
2021-09-28T14:51:56Z

Le 27/09/2021 à 21:12, Cpp Code a écrit :
> To use this code there is a part of code in the userspace. We want to
> keep compatibility when we only update userspace part code or only
> kernel part code. This means we should have same values for constants
> and we can only add new ones at the end of list.
All attributes after OVS_KEY_ATTR_CT_STATE (ie 7 attributes) were added before
OVS_KEY_ATTR_TUNNEL_INFO.
Why is it not possible anymore?

Regards,
Nicolas

>
> Best,
> Tom
>
> On Wed, Sep 22, 2021 at 11:02 PM Nicolas Dichtel
> <nicolas.dichtel@6wind.com> wrote:
>>
>> Le 20/09/2021 à 20:20, Toms Atteka a écrit :
>>> This change adds a new OpenFlow field OFPXMT_OFB_IPV6_EXTHDR and
>>> packets can be filtered using ipv6_ext flag.
>>>
>>> Signed-off-by: Toms Atteka <cpp.code.lv@gmail.com>
>>> ---
>>> include/uapi/linux/openvswitch.h | 12 +++
>>> net/openvswitch/flow.c | 140 +++++++++++++++++++++++++++++++
>>> net/openvswitch/flow.h | 14 ++++
>>> net/openvswitch/flow_netlink.c | 24 +++++-
>>> 4 files changed, 189 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
>>> index a87b44cd5590..dc6eb5f6399f 100644
>>> --- a/include/uapi/linux/openvswitch.h
>>> +++ b/include/uapi/linux/openvswitch.h
>>> @@ -346,6 +346,13 @@ enum ovs_key_attr {
>>> #ifdef __KERNEL__
>>> OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */
>>> #endif
>>> +
>>> +#ifndef __KERNEL__
>>> + PADDING, /* Padding so kernel and non kernel field count would match */
>>> +#endif
>>> +
>>> + OVS_KEY_ATTR_IPV6_EXTHDRS, /* struct ovs_key_ipv6_exthdr */
>> Naive question, why not moving OVS_KEY_ATTR_IPV6_EXTHDRS above
>> OVS_KEY_ATTR_TUNNEL_INFO?
>>
>>
>>
>> Regards,
>> Nicolas