diff options
author | Neale Ranns <nranns@cisco.com> | 2018-01-03 04:18:48 -0800 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2018-01-09 16:38:19 +0000 |
commit | f068c3ed296c49dfbfe17677fc1ad2428fb4e3e4 (patch) | |
tree | eef3c7c502b68ccdff9c5d80d04850465e25ef01 /src/vnet/buffer.h | |
parent | 0e8cb6c475b616a3296b08d25bcaa1eed3ab0084 (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.h | 24 |
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 { |