diff options
author | Steven Luong <sluong@cisco.com> | 2019-08-01 19:04:40 -0700 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2019-08-02 13:40:11 +0000 |
commit | 678d64d0b28f9ea1728ff35ae162c8f22d1cb8a9 (patch) | |
tree | d8f0d37187661da564ac7b6ac6b34add4b866bc8 /src/plugins/vmxnet3 | |
parent | 23b26e71e79ed4f232ac972948a8a91b554ba5f4 (diff) |
vmxnet3: don't bypass ethernet_input
Queue everything to ethernet_input to not break pcap rx trace.
Fix a minor typo in vmxnet3_api.c
Type: fix
Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I7df7b3e20b525e3d6f7421c8e213b6541cdd15b6
Diffstat (limited to 'src/plugins/vmxnet3')
-rw-r--r-- | src/plugins/vmxnet3/input.c | 19 | ||||
-rw-r--r-- | src/plugins/vmxnet3/vmxnet3_api.c | 2 |
2 files changed, 6 insertions, 15 deletions
diff --git a/src/plugins/vmxnet3/input.c b/src/plugins/vmxnet3/input.c index 7928bc35fd9..6d30f19116a 100644 --- a/src/plugins/vmxnet3/input.c +++ b/src/plugins/vmxnet3/input.c @@ -76,7 +76,7 @@ vmxnet3_rx_comp_ring_advance_next (vmxnet3_rxq_t * rxq) static_always_inline void vmxnet3_handle_offload (vmxnet3_rx_comp * rx_comp, vlib_buffer_t * hb, - u16 * next, u16 gso_size) + u16 gso_size) { u8 l4_hdr_sz = 0; @@ -92,7 +92,6 @@ vmxnet3_handle_offload (vmxnet3_rx_comp * rx_comp, vlib_buffer_t * hb, hb->flags |= VNET_BUFFER_F_L2_HDR_OFFSET_VALID | VNET_BUFFER_F_L3_HDR_OFFSET_VALID | VNET_BUFFER_F_L4_HDR_OFFSET_VALID | VNET_BUFFER_F_IS_IP4; - next[0] = VNET_DEVICE_INPUT_NEXT_IP4_NCS_INPUT; /* checksum offload */ if (!(rx_comp->index & VMXNET3_RXCI_CNC)) @@ -141,7 +140,6 @@ vmxnet3_handle_offload (vmxnet3_rx_comp * rx_comp, vlib_buffer_t * hb, vnet_buffer2 (hb)->gso_l4_hdr_sz = l4_hdr_sz; hb->flags |= VNET_BUFFER_F_GSO; } - vlib_buffer_advance (hb, device_input_next_node_advance[next[0]]); } else if (rx_comp->flags & VMXNET3_RXCF_IP6) { @@ -152,7 +150,6 @@ vmxnet3_handle_offload (vmxnet3_rx_comp * rx_comp, vlib_buffer_t * hb, hb->flags |= VNET_BUFFER_F_L2_HDR_OFFSET_VALID | VNET_BUFFER_F_L3_HDR_OFFSET_VALID | VNET_BUFFER_F_L4_HDR_OFFSET_VALID | VNET_BUFFER_F_IS_IP6; - next[0] = VNET_DEVICE_INPUT_NEXT_IP6_INPUT; /* checksum offload */ if (!(rx_comp->index & VMXNET3_RXCI_CNC)) @@ -196,10 +193,7 @@ vmxnet3_handle_offload (vmxnet3_rx_comp * rx_comp, vlib_buffer_t * hb, vnet_buffer2 (hb)->gso_l4_hdr_sz = l4_hdr_sz; hb->flags |= VNET_BUFFER_F_GSO; } - vlib_buffer_advance (hb, device_input_next_node_advance[next[0]]); } - else - next[0] = VNET_DEVICE_INPUT_NEXT_ETHERNET_INPUT; } static_always_inline uword @@ -387,17 +381,14 @@ vmxnet3_device_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node, } if (PREDICT_FALSE (known_next)) - { - next[0] = next_index; - } + next[0] = next_index; else { ethernet_header_t *e = (ethernet_header_t *) hb->data; - if (ethernet_frame_is_tagged (e->type)) - next[0] = VNET_DEVICE_INPUT_NEXT_ETHERNET_INPUT; - else - vmxnet3_handle_offload (rx_comp, hb, next, gso_size); + next[0] = VNET_DEVICE_INPUT_NEXT_ETHERNET_INPUT; + if (!ethernet_frame_is_tagged (e->type)) + vmxnet3_handle_offload (rx_comp, hb, gso_size); } n_rx_packets++; diff --git a/src/plugins/vmxnet3/vmxnet3_api.c b/src/plugins/vmxnet3/vmxnet3_api.c index 8afc40e3280..731a5d0b25f 100644 --- a/src/plugins/vmxnet3/vmxnet3_api.c +++ b/src/plugins/vmxnet3/vmxnet3_api.c @@ -251,7 +251,7 @@ vl_api_vmxnet3_dump_t_handler (vl_api_vmxnet3_dump_t * mp) } static void * -vl_api_vmxnet3_dump_t_print (vl_api_vmxnet3_create_t * mp, void *handle) +vl_api_vmxnet3_dump_t_print (vl_api_vmxnet3_dump_t * mp, void *handle) { u8 *s; |