tls: fix bulk bio read/write
[vpp.git] / src / vnet / dpo / dvr_dpo.h
index 15fe113..4fef281 100644 (file)
 
 #include <vnet/dpo/dpo.h>
 
+/**
+ * Control how the reinject is performed
+ */
+typedef enum dvr_dpo_reinject_t_
+{
+    DVR_REINJECT_L2,
+    DVR_REINJECT_L3,
+} __clib_packed dvr_dpo_reinject_t;
+
 /**
  * @brief
  * The DVR DPO. Used as the resolving object for a DVR route.
@@ -39,12 +48,20 @@ typedef struct dvr_dpo_t_
      */
     dpo_proto_t dd_proto;
 
+    /**
+     * Control for how the re-inject is performed
+     */
+    dvr_dpo_reinject_t dd_reinject;
+
     /**
      * number of locks.
      */
     u16 dd_locks;
 } dvr_dpo_t;
 
+/* 8 bytes is a factor of cache line size so this struct will never span */
+STATIC_ASSERT_SIZEOF(dvr_dpo_t, 8);
+
 extern void dvr_dpo_add_or_lock (u32 sw_if_index,
                                  dpo_proto_t dproto,
                                  dpo_id_t *dpo);
@@ -54,7 +71,7 @@ extern void dvr_dpo_module_init(void);
 /**
  * @brief pool of all interface DPOs
  */
-dvr_dpo_t *dvr_dpo_pool;
+extern dvr_dpo_t *dvr_dpo_pool;
 
 static inline dvr_dpo_t *
 dvr_dpo_get (index_t index)