Message ID | 20220220140405.1646839-7-roopa@nvidia.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | vxlan metadata device vnifiltering support | expand |
On 2/20/22 6:03 AM, Roopa Prabhu wrote: > This patch adds new rtm tunnel msg and api for tunnel id > filtering in dst_metadata devices. First dst_metadata > device to use the api is vxlan driver with AF_BRIDGE > family. > > This and later changes add ability in vxlan driver to do > tunnel id filtering (or vni filtering) on dst_metadata > devices. This is similar to vlan api in the vlan filtering bridge. > > Signed-off-by: Roopa Prabhu <roopa@nvidia.com> > --- > include/uapi/linux/if_link.h | 26 ++++++++++++++++++++++++++ > include/uapi/linux/rtnetlink.h | 9 +++++++++ > 2 files changed, 35 insertions(+) > > diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h > index 6218f93f5c1a..eb046a82188d 100644 > --- a/include/uapi/linux/if_link.h > +++ b/include/uapi/linux/if_link.h > @@ -712,6 +712,31 @@ enum ipvlan_mode { > #define IPVLAN_F_PRIVATE 0x01 > #define IPVLAN_F_VEPA 0x02 > > +/* Tunnel RTM header */ > +struct tunnel_msg { > + __u8 family; > + __u8 reserved1; > + __u16 reserved2; > + __u32 ifindex; > +}; > + > +enum { > + VXLAN_VNIFILTER_ENTRY_UNSPEC, > + VXLAN_VNIFILTER_ENTRY_START, > + VXLAN_VNIFILTER_ENTRY_END, > + VXLAN_VNIFILTER_ENTRY_GROUP, > + VXLAN_VNIFILTER_ENTRY_GROUP6, > + __VXLAN_VNIFILTER_ENTRY_MAX > +}; > +#define VXLAN_VNIFILTER_ENTRY_MAX (__VXLAN_VNIFILTER_ENTRY_MAX - 1) > + > +enum { > + VXLAN_VNIFILTER_UNSPEC, > + VXLAN_VNIFILTER_ENTRY, > + __VXLAN_VNIFILTER_MAX > +}; > +#define VXLAN_VNIFILTER_MAX (__VXLAN_VNIFILTER_MAX - 1) > + > /* VXLAN section */ just noticed, this comment should move up. will include in v2
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index 6218f93f5c1a..eb046a82188d 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h @@ -712,6 +712,31 @@ enum ipvlan_mode { #define IPVLAN_F_PRIVATE 0x01 #define IPVLAN_F_VEPA 0x02 +/* Tunnel RTM header */ +struct tunnel_msg { + __u8 family; + __u8 reserved1; + __u16 reserved2; + __u32 ifindex; +}; + +enum { + VXLAN_VNIFILTER_ENTRY_UNSPEC, + VXLAN_VNIFILTER_ENTRY_START, + VXLAN_VNIFILTER_ENTRY_END, + VXLAN_VNIFILTER_ENTRY_GROUP, + VXLAN_VNIFILTER_ENTRY_GROUP6, + __VXLAN_VNIFILTER_ENTRY_MAX +}; +#define VXLAN_VNIFILTER_ENTRY_MAX (__VXLAN_VNIFILTER_ENTRY_MAX - 1) + +enum { + VXLAN_VNIFILTER_UNSPEC, + VXLAN_VNIFILTER_ENTRY, + __VXLAN_VNIFILTER_MAX +}; +#define VXLAN_VNIFILTER_MAX (__VXLAN_VNIFILTER_MAX - 1) + /* VXLAN section */ enum { IFLA_VXLAN_UNSPEC, @@ -744,6 +769,7 @@ enum { IFLA_VXLAN_GPE, IFLA_VXLAN_TTL_INHERIT, IFLA_VXLAN_DF, + IFLA_VXLAN_VNIFILTER, /* only applicable with COLLECT_METADATA mode */ __IFLA_VXLAN_MAX }; #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h index 93d934cc4613..0970cb4b1b88 100644 --- a/include/uapi/linux/rtnetlink.h +++ b/include/uapi/linux/rtnetlink.h @@ -185,6 +185,13 @@ enum { RTM_GETNEXTHOPBUCKET, #define RTM_GETNEXTHOPBUCKET RTM_GETNEXTHOPBUCKET + RTM_NEWTUNNEL = 120, +#define RTM_NEWTUNNEL RTM_NEWTUNNEL + RTM_DELTUNNEL, +#define RTM_DELTUNNEL RTM_DELTUNNEL + RTM_GETTUNNEL, +#define RTM_GETTUNNEL RTM_GETTUNNEL + __RTM_MAX, #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) }; @@ -756,6 +763,8 @@ enum rtnetlink_groups { #define RTNLGRP_BRVLAN RTNLGRP_BRVLAN RTNLGRP_MCTP_IFADDR, #define RTNLGRP_MCTP_IFADDR RTNLGRP_MCTP_IFADDR + RTNLGRP_TUNNEL, +#define RTNLGRP_TUNNEL RTNLGRP_TUNNEL __RTNLGRP_MAX }; #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
This patch adds new rtm tunnel msg and api for tunnel id filtering in dst_metadata devices. First dst_metadata device to use the api is vxlan driver with AF_BRIDGE family. This and later changes add ability in vxlan driver to do tunnel id filtering (or vni filtering) on dst_metadata devices. This is similar to vlan api in the vlan filtering bridge. Signed-off-by: Roopa Prabhu <roopa@nvidia.com> --- include/uapi/linux/if_link.h | 26 ++++++++++++++++++++++++++ include/uapi/linux/rtnetlink.h | 9 +++++++++ 2 files changed, 35 insertions(+)