From: Roopa Prabhu <ro...@cumulusnetworks.com>

New netlink api to associate tunnel info per vlan.
This is used by bridge driver to send tunnel metadata to
bridge ports in LWT tunnel dst metadata mode.

One example use for this is a vxlan bridging gateway or vtep
which maps vlans to vn-segments (or vnis). User can configure
per-vlan tunnel information which the bridge driver can use
to bridge vlan into the corresponding vn-segment.

This patch also introduces a bridge port flag IFLA_BRPORT_LWT_VLAN
to enable this feature on a tunnel bridge port. It is off by default.

Signed-off-by: Roopa Prabhu <ro...@cumulusnetworks.com>
---
 include/uapi/linux/if_bridge.h |   11 +++++++++++
 include/uapi/linux/if_link.h   |    1 +
 2 files changed, 12 insertions(+)

diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h
index ab92bca..a9e6244 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -118,6 +118,7 @@ enum {
        IFLA_BRIDGE_FLAGS,
        IFLA_BRIDGE_MODE,
        IFLA_BRIDGE_VLAN_INFO,
+       IFLA_BRIDGE_VLAN_TUNNEL_INFO,
        __IFLA_BRIDGE_MAX,
 };
 #define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1)
@@ -134,6 +135,16 @@ struct bridge_vlan_info {
        __u16 vid;
 };
 
+enum {
+       IFLA_BRIDGE_VLAN_TUNNEL_UNSPEC,
+       IFLA_BRIDGE_VLAN_TUNNEL_ID,
+       IFLA_BRIDGE_VLAN_TUNNEL_VID,
+       IFLA_BRIDGE_VLAN_TUNNEL_FLAGS,
+       __IFLA_BRIDGE_VLAN_TUNNEL_MAX,
+};
+
+#define IFLA_BRIDGE_VLAN_TUNNEL_MAX (__IFLA_BRIDGE_VLAN_TUNNEL_MAX - 1)
+
 struct bridge_vlan_xstats {
        __u64 rx_bytes;
        __u64 rx_packets;
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 184b16e..f0356b9 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -321,6 +321,7 @@ enum {
        IFLA_BRPORT_MULTICAST_ROUTER,
        IFLA_BRPORT_PAD,
        IFLA_BRPORT_MCAST_FLOOD,
+       IFLA_BRPORT_LWT_VLAN,
        __IFLA_BRPORT_MAX
 };
 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
-- 
1.7.10.4

Reply via email to