Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
DVR: Control the reinject as L2 or L3 based on the output interface type
[vpp.git]
/
src
/
vnet
/
dpo
/
dvr_dpo.h
diff --git
a/src/vnet/dpo/dvr_dpo.h
b/src/vnet/dpo/dvr_dpo.h
index
669c492
..
4fef281
100644
(file)
--- a/
src/vnet/dpo/dvr_dpo.h
+++ b/
src/vnet/dpo/dvr_dpo.h
@@
-18,6
+18,15
@@
#include <vnet/dpo/dpo.h>
#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.
/**
* @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;
*/
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;
/**
* 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);
extern void dvr_dpo_add_or_lock (u32 sw_if_index,
dpo_proto_t dproto,
dpo_id_t *dpo);