/* L2 classify */
struct
{
- struct opaque_l2 pad;
+ u32 pad[4]; /* do not overlay w/ ip.fib_index nor l2 */
union
{
u32 table_index;
u32 opaque_index;
};
- u64 hash;
+ u32 hash;
} l2_classify;
/* vnet policer */
} qos;
u8 loop_counter;
- u8 __unused[5];
+ u8 pad[5]; /* unused */
/**
* The L4 payload size set on input on GSO enabled interfaces
};
} nat;
- union
- {
- struct
- {
- u64 pad[1];
- u64 pg_replay_timestamp;
- };
- u32 unused[8];
- };
+ u32 unused[8];
} vnet_buffer_opaque2_t;
#define vnet_buffer2(b) ((vnet_buffer_opaque2_t *) (b)->opaque2)
* The opaque2 field of the vlib_buffer_t is interpreted as a
* vnet_buffer_opaque2_t. Hence it should be big enough to accommodate one.
*/
-STATIC_ASSERT (sizeof (vnet_buffer_opaque2_t) <=
- STRUCT_SIZE_OF (vlib_buffer_t, opaque2),
+STATIC_ASSERT (sizeof (vnet_buffer_opaque2_t) ==
+ STRUCT_SIZE_OF (vlib_buffer_t, opaque2),
"VNET buffer opaque2 meta-data too large for vlib_buffer");
#define gso_mtu_sz(b) (vnet_buffer2(b)->gso_size + \