From f068c3ed296c49dfbfe17677fc1ad2428fb4e3e4 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Wed, 3 Jan 2018 04:18:48 -0800 Subject: 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 --- src/vnet/buffer.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/vnet/buffer.h') 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 +/** + * 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 { -- cgit 1.2.3-korg