aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/buffer.h
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2018-01-03 04:18:48 -0800
committerOle Trøan <otroan@employees.org>2018-01-09 16:38:19 +0000
commitf068c3ed296c49dfbfe17677fc1ad2428fb4e3e4 (patch)
treeeef3c7c502b68ccdff9c5d80d04850465e25ef01 /src/vnet/buffer.h
parent0e8cb6c475b616a3296b08d25bcaa1eed3ab0084 (diff)
DVR: run L3 output features
- rename l2_bridged to is_dvr. Including on the ip.api this was new in the 18.01 release so no compatability issues. - steal the free space in vnet_buffer_opaque_t for use with flags. - run the ipX-output feature arc from the DVR DPO Change-Id: I040e5976d1dbe076fcdda3a40a7804f56337ce3f Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/buffer.h')
-rw-r--r--src/vnet/buffer.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/vnet/buffer.h b/src/vnet/buffer.h
index 8cb55454462..317f8bb8e4a 100644
--- a/src/vnet/buffer.h
+++ b/src/vnet/buffer.h
@@ -42,6 +42,9 @@
#include <vlib/vlib.h>
+/**
+ * Flags that are set in the high order bits of ((vlib_buffer*)b)->flags
+ */
#define foreach_vnet_buffer_field \
_( 1, L4_CHECKSUM_COMPUTED, "l4-cksum-computed") \
_( 2, L4_CHECKSUM_CORRECT, "l4-cksum-correct") \
@@ -77,6 +80,26 @@ enum
#undef _
};
+/**
+ * @brief Flags set in ((vnet_buffer(b)->flags
+ */
+#define foreach_vnet_opaque_flag \
+ _( 1, IS_DVR, "DVR-processed")
+
+enum
+{
+#define _(bit, name, v) VNET_OPAQUE_F_##name = (1 << bit),
+ foreach_vnet_opaque_flag
+#undef _
+};
+
+enum
+{
+#define _(bit, name, v) VNET_OPAQUE_F_LOG2_##name = bit,
+ foreach_vnet_opaque_flag
+#undef _
+};
+
#define foreach_buffer_opaque_union_subtype \
_(ip) \
@@ -111,6 +134,7 @@ typedef struct
i16 l2_hdr_offset;
i16 l3_hdr_offset;
i16 l4_hdr_offset;
+ u16 flags;
union
{