diff options
-rw-r--r-- | src/vlib/buffer.h | 1 | ||||
-rw-r--r-- | src/vnet/buffer.h | 26 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/vlib/buffer.h b/src/vlib/buffer.h index 02b170907ba..ceab94f25fd 100644 --- a/src/vlib/buffer.h +++ b/src/vlib/buffer.h @@ -98,6 +98,7 @@ enum /* User defined buffer flags. */ #define LOG2_VLIB_BUFFER_FLAG_USER(n) (32 - (n)) #define VLIB_BUFFER_FLAG_USER(n) (1 << LOG2_VLIB_BUFFER_FLAG_USER(n)) +#define VLIB_BUFFER_FLAGS_ALL (0x1f) /* VLIB buffer representation. */ typedef struct diff --git a/src/vnet/buffer.h b/src/vnet/buffer.h index d701e21141d..89dd84567bc 100644 --- a/src/vnet/buffer.h +++ b/src/vnet/buffer.h @@ -44,6 +44,7 @@ /** * Flags that are set in the high order bits of ((vlib_buffer*)b)->flags + * */ #define foreach_vnet_buffer_flag \ _( 1, L4_CHECKSUM_COMPUTED, "l4-cksum-computed", 1) \ @@ -64,7 +65,26 @@ _(16, L4_HDR_OFFSET_VALID, "l4_hdr_offset_valid", 0) \ _(17, FLOW_REPORT, "flow-report", 1) \ _(18, IS_DVR, "dvr", 1) \ - _(19, QOS_DATA_VALID, "qos-data-valid", 0) + _(19, QOS_DATA_VALID, "qos-data-valid", 0) \ + _(20, AVAIL1, "avail1", 1) \ + _(21, AVAIL2, "avail2", 1) \ + _(22, AVAIL3, "avail3", 1) \ + _(23, AVAIL4, "avail4", 1) \ + _(24, AVAIL5, "avail5", 1) \ + _(25, AVAIL6, "avail6", 1) \ + _(26, AVAIL7, "avail7", 1) \ + _(27, AVAIL8, "avail8", 1) + +/* + * Please allocate the FIRST available bit, redefine + * AVAIL 1 ... AVAILn-1, and remove AVAILn. Please maintain the + * VNET_BUFFER_FLAGS_ALL_AVAIL definition. + */ + +#define VNET_BUFFER_FLAGS_ALL_AVAIL \ + (VNET_BUFFER_F_AVAIL1 | VNET_BUFFER_F_AVAIL2 | VNET_BUFFER_F_AVAIL3 | \ + VNET_BUFFER_F_AVAIL4 | VNET_BUFFER_F_AVAIL5 | VNET_BUFFER_F_AVAIL6 | \ + VNET_BUFFER_F_AVAIL7) #define VNET_BUFFER_FLAGS_VLAN_BITS \ (VNET_BUFFER_F_VLAN_1_DEEP | VNET_BUFFER_F_VLAN_2_DEEP) @@ -83,6 +103,10 @@ enum #undef _ }; +/* Make sure that the vnet and vlib bits are disjoint */ +STATIC_ASSERT (((VNET_BUFFER_FLAGS_ALL_AVAIL & VLIB_BUFFER_FLAGS_ALL) == 0), + "VLIB / VNET buffer flags overlap"); + #define foreach_buffer_opaque_union_subtype \ _(ip) \ _(l2) \ |