tests: tag the tests that do not work with multi-worker configuration
[vpp.git] / src / plugins / gbp / gbp_vxlan.h
index 908abc2..706fe2a 100644 (file)
 #define __GBP_VXLAN_H__
 
 #include <vnet/fib/fib_types.h>
+#include <plugins/gbp/gbp_itf.h>
 
-#define forecah_gbp_vxlan_tunnel_layer          \
-  _(L2, "l2")                                   \
-  _(L3, "l3")
+#define foreach_gbp_vxlan_tunnel_layer                                        \
+  _ (L2, "l2")                                                                \
+  _ (L3, "l3")
 
 typedef enum gbp_vxlan_tunnel_layer_t_
 {
 #define _(s,n) GBP_VXLAN_TUN_##s,
-  forecah_gbp_vxlan_tunnel_layer
+  foreach_gbp_vxlan_tunnel_layer
 #undef _
 } gbp_vxlan_tunnel_layer_t;
 
@@ -51,10 +52,6 @@ typedef struct gbp_vxlan_tunnel_t_
   {
     struct
     {
-      /**
-       * BD index (if L2)
-       */
-      u32 gt_bd_index;
       /**
        * Reference to the GPB-BD
        */
@@ -62,10 +59,6 @@ typedef struct gbp_vxlan_tunnel_t_
     };
     struct
     {
-      /**
-       * FIB inidices (if L3)
-       */
-      u32 gt_fib_index[FIB_PROTOCOL_IP_MAX];
       /**
        * References to the GBP-RD
        */
@@ -76,7 +69,7 @@ typedef struct gbp_vxlan_tunnel_t_
   /**
    * gbp-itf config for this interface
    */
-  index_t gt_itf;
+  gbp_itf_hdl_t gt_itf;
 
   /**
    * list of child vxlan-gbp tunnels built from this template
@@ -95,7 +88,7 @@ typedef struct gbp_vxlan_tunnel_t_
 typedef enum gbp_vxlan_tunnel_type_t_
 {
   /**
-   * This is the object type deifend above.
+   * This is the object type defined above.
    *  A template representation of a vxlan-gbp tunnel. from this tunnel
    *  type, real vxlan-gbp tunnels are created (by cloning the VNI)
    */
@@ -115,13 +108,14 @@ extern int gbp_vxlan_tunnel_del (u32 vni);
 
 extern gbp_vxlan_tunnel_type_t gbp_vxlan_tunnel_get_type (u32 sw_if_index);
 
-extern u32 gbp_vxlan_tunnel_clone_and_lock (u32 parent_tunnel,
-                                           const ip46_address_t * src,
-                                           const ip46_address_t * dst);
+extern gbp_itf_hdl_t gbp_vxlan_tunnel_clone_and_lock (u32 parent_tunnel,
+                                                     const ip46_address_t *
+                                                     src,
+                                                     const ip46_address_t *
+                                                     dst);
 
-extern void vxlan_gbp_tunnel_lock (u32 sw_if_index);
-extern void vxlan_gbp_tunnel_unlock (u32 sw_if_index);
 extern u32 vxlan_gbp_tunnel_get_parent (u32 sw_if_index);
+extern gbp_itf_hdl_t vxlan_gbp_tunnel_lock_itf (u32 sw_if_index);
 
 typedef walk_rc_t (*gbp_vxlan_cb_t) (gbp_vxlan_tunnel_t * gt, void *ctx);
 extern void gbp_vxlan_walk (gbp_vxlan_cb_t cb, void *ctx);