fib: allow vnet rewrite max size to be smaller the pre_data
There is no reason to enforce vnet rewrite size to be equal to pre_data.
Moreover, since vnet rewrite size is now saved as u8, this limits
pre_data to 192 bytes.
Type: fix
Fixes: 7dbf9a1a4f
Change-Id: I3f848aa905ea4a794f3b4aa62c929a481261a3f1
Signed-off-by: Benoît Ganne <bganne@cisco.com>
This commit is contained in:

committed by
Damjan Marion

parent
78b4f4e19b
commit
6ea5c4744a
@@ -136,7 +136,7 @@ always_inline void
|
||||
vnet_rewrite_clear_data_internal (vnet_rewrite_header_t * rw, int max_size)
|
||||
{
|
||||
/* Sanity check values carefully for this clib_memset operation */
|
||||
ASSERT ((max_size > 0) && (max_size < VLIB_BUFFER_PRE_DATA_SIZE));
|
||||
ASSERT ((max_size > 0) && (max_size < VNET_REWRITE_TOTAL_BYTES));
|
||||
|
||||
rw->data_bytes = 0;
|
||||
clib_memset (rw->data, 0xfe, max_size);
|
||||
@@ -147,7 +147,7 @@ vnet_rewrite_set_data_internal (vnet_rewrite_header_t * rw,
|
||||
int max_size, void *data, int data_bytes)
|
||||
{
|
||||
/* Sanity check values carefully for this clib_memset operation */
|
||||
ASSERT ((max_size > 0) && (max_size < VLIB_BUFFER_PRE_DATA_SIZE));
|
||||
ASSERT ((max_size > 0) && (max_size < VNET_REWRITE_TOTAL_BYTES));
|
||||
ASSERT ((data_bytes >= 0) && (data_bytes < max_size));
|
||||
|
||||
rw->data_bytes = data_bytes;
|
||||
|
@@ -417,7 +417,9 @@ typedef struct
|
||||
};
|
||||
} vnet_buffer_opaque_t;
|
||||
|
||||
#define VNET_REWRITE_TOTAL_BYTES (VLIB_BUFFER_PRE_DATA_SIZE)
|
||||
#define VNET_REWRITE_TOTAL_BYTES 128
|
||||
STATIC_ASSERT (VNET_REWRITE_TOTAL_BYTES <= VLIB_BUFFER_PRE_DATA_SIZE,
|
||||
"VNET_REWRITE_TOTAL_BYTES too big");
|
||||
|
||||
STATIC_ASSERT (STRUCT_SIZE_OF (vnet_buffer_opaque_t, ip.save_rewrite_length)
|
||||
== STRUCT_SIZE_OF (vnet_buffer_opaque_t,
|
||||
|
Reference in New Issue
Block a user