Support for bridge domain free text tag
[vpp.git] / src / vnet / l2 / l2_bd.h
index e502d49..e60f1ab 100644 (file)
@@ -34,7 +34,7 @@ typedef struct
   vnet_main_t *vnet_main;
 } bd_main_t;
 
-bd_main_t bd_main;
+extern bd_main_t bd_main;
 
 /* Bridge domain member  */
 
@@ -49,7 +49,6 @@ typedef struct
   u16 spare;
 } l2_flood_member_t;
 
-
 /* Per-bridge domain configuration */
 
 typedef struct
@@ -89,8 +88,14 @@ typedef struct
   /* sequence number for bridge domain based flush of MACs */
   u8 seq_num;
 
+  /* Bridge domain tag (C string NULL terminated) */
+  u8 *bd_tag;
+
 } l2_bridge_domain_t;
 
+/* Limit Bridge Domain ID to 24 bits to match 24-bit VNI range */
+#define L2_BD_ID_MAX ((1<<24)-1)
+
 typedef struct
 {
   u32 bd_id;
@@ -100,6 +105,7 @@ typedef struct
   u8 learn;
   u8 arp_term;
   u8 mac_age;
+  u8 *bd_tag;
   u8 is_add;
 } l2_bridge_domain_add_del_args_t;
 
@@ -128,6 +134,7 @@ u32 bd_remove_member (l2_bridge_domain_t * bd_config, u32 sw_if_index);
 
 u32 bd_set_flags (vlib_main_t * vm, u32 bd_index, u32 flags, u32 enable);
 void bd_set_mac_age (vlib_main_t * vm, u32 bd_index, u8 age);
+void bd_set_bd_tag (vlib_main_t * vm, u32 bd_index, u8 * bd_tag);
 int bd_add_del (l2_bridge_domain_add_del_args_t * args);
 
 /**