gbp: VRF scoped contracts
[vpp.git] / src / plugins / gbp / gbp_bridge_domain.h
index dd2798f..5bfa099 100644 (file)
@@ -45,6 +45,12 @@ typedef struct gbp_bridge_domain_t_
   u32 gb_bd_id;
   u32 gb_bd_index;
 
+  /**
+   * Index of the Route-domain this BD is associated with. This is used as the
+   * 'scope' of the packets for contract matching.
+   */
+  u32 gb_rdi;
+
   /**
    * Flags conttrolling behaviour
    */
@@ -79,6 +85,7 @@ typedef struct gbp_bridge_domain_t_
 } gbp_bridge_domain_t;
 
 extern int gbp_bridge_domain_add_and_lock (u32 bd_id,
+                                          u32 rd_id,
                                           gbp_bridge_domain_flags_t flags,
                                           u32 bvi_sw_if_index,
                                           u32 uu_fwd_sw_if_index,
@@ -121,6 +128,14 @@ gbp_bridge_domain_get_by_bd_index (u32 bd_index)
          (gbp_bridge_domain_db.gbd_by_bd_index[bd_index]));
 }
 
+extern gbp_scope_t *gbp_scope_by_bd_index;
+
+always_inline gbp_scope_t
+gbp_bridge_domain_get_scope (u32 bd_index)
+{
+  return (gbp_scope_by_bd_index[bd_index]);
+}
+
 #endif
 
 /*