DRAFT ip4/6_frag to support DPO Style based Next Node
Change-Id: I1df3d23c1c5668b83d52b41f51c0e3f24183af9e Signed-off-by: Vijayabhaskar Katamreddy <vkatamre@cisco.com>
This commit is contained in:
Vijayabhaskar Katamreddy
committed by
Florin Coras
parent
30349b075c
commit
c592ca527a
@ -289,6 +289,7 @@ typedef struct
|
||||
/* IP Fragmentation */
|
||||
struct
|
||||
{
|
||||
u32 pad[2]; /* do not overlay w/ ip.adj_index[0,1] */
|
||||
u16 header_offset;
|
||||
u16 mtu;
|
||||
u8 next_index;
|
||||
|
@ -131,6 +131,12 @@ ip4_frag_do_fragment (vlib_main_t * vm, u32 pi, u32 ** buffer,
|
||||
vnet_buffer (p)->sw_if_index[VLIB_RX];
|
||||
vnet_buffer (b)->sw_if_index[VLIB_TX] =
|
||||
vnet_buffer (p)->sw_if_index[VLIB_TX];
|
||||
/* Copy Adj_index in case DPO based node is sending for the fragmentation,
|
||||
the packet would be sent back to the proper DPO next node and Index */
|
||||
vnet_buffer (b)->ip.adj_index[VLIB_RX] =
|
||||
vnet_buffer (p)->ip.adj_index[VLIB_RX];
|
||||
vnet_buffer (b)->ip.adj_index[VLIB_TX] =
|
||||
vnet_buffer (p)->ip.adj_index[VLIB_TX];
|
||||
fip4 = (ip4_header_t *) (vlib_buffer_get_current (b) + offset);
|
||||
|
||||
//Copy offset and ip4 header
|
||||
@ -393,6 +399,14 @@ ip6_frag_do_fragment (vlib_main_t * vm, u32 pi, u32 ** buffer,
|
||||
vnet_buffer (p)->sw_if_index[VLIB_RX];
|
||||
vnet_buffer (b)->sw_if_index[VLIB_TX] =
|
||||
vnet_buffer (p)->sw_if_index[VLIB_TX];
|
||||
|
||||
/* Copy Adj_index in case DPO based node is sending for the fragmentation,
|
||||
the packet would be sent back to the proper DPO next node and Index */
|
||||
vnet_buffer (b)->ip.adj_index[VLIB_RX] =
|
||||
vnet_buffer (p)->ip.adj_index[VLIB_RX];
|
||||
vnet_buffer (b)->ip.adj_index[VLIB_TX] =
|
||||
vnet_buffer (p)->ip.adj_index[VLIB_TX];
|
||||
|
||||
clib_memcpy (vlib_buffer_get_current (b),
|
||||
vlib_buffer_get_current (p), headers_len);
|
||||
clib_memcpy (vlib_buffer_get_current (b) + headers_len,
|
||||
|
Reference in New Issue
Block a user