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

From: Cpp Code
Date: Tue Sep 28 2021 - 15:21:07 EST


On Tue, Sep 28, 2021 at 7:51 AM Nicolas Dichtel
<nicolas.dichtel@xxxxxxxxx> wrote:
>
> 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@xxxxxxxxx> 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@xxxxxxxxx>
> >>> ---
> >>> 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

These 3 commits does not support compatibility for scenarios when only
kernel gets updated. I assume at that point this requirement wasn't
required.

Best,
Tom