X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fethernet%2Fnode.c;h=7cf78c6543511e6f9c241fecda8a9a15e840bebe;hb=ddf6e08d2e3fc1614430e26dea632fbc79df2906;hp=c39c6d7e0c71baf1fb49e90e949d1cd36b4aa0c8;hpb=650223c0ae8fe781aea5f26c92a6cf9bc2ca59e5;p=vpp.git diff --git a/src/vnet/ethernet/node.c b/src/vnet/ethernet/node.c index c39c6d7e0c7..7cf78c65435 100755 --- a/src/vnet/ethernet/node.c +++ b/src/vnet/ethernet/node.c @@ -208,9 +208,8 @@ identify_subint (vnet_hw_interface_t * hi, { u32 matched; - matched = eth_identify_subint (hi, b0, match_flags, - main_intf, vlan_intf, qinq_intf, - new_sw_if_index, error0, is_l2); + matched = eth_identify_subint (hi, match_flags, main_intf, vlan_intf, + qinq_intf, new_sw_if_index, error0, is_l2); if (matched) { @@ -405,15 +404,30 @@ eth_input_adv_and_flags_x4 (vlib_buffer_t ** b, i16 adv, u32 flags, int is_l3) u32x8_scatter_one ((u32x8) r, 4, &vnet_buffer (b[2])->l2_hdr_offset); u32x8_scatter_one ((u32x8) r, 6, &vnet_buffer (b[3])->l2_hdr_offset); - ASSERT (b[0]->current_data == vnet_buffer (b[0])->l3_hdr_offset); - ASSERT (b[1]->current_data == vnet_buffer (b[1])->l3_hdr_offset); - ASSERT (b[2]->current_data == vnet_buffer (b[2])->l3_hdr_offset); - ASSERT (b[3]->current_data == vnet_buffer (b[3])->l3_hdr_offset); - - ASSERT (b[0]->current_data - vnet_buffer (b[0])->l2_hdr_offset == adv); - ASSERT (b[1]->current_data - vnet_buffer (b[1])->l2_hdr_offset == adv); - ASSERT (b[2]->current_data - vnet_buffer (b[2])->l2_hdr_offset == adv); - ASSERT (b[3]->current_data - vnet_buffer (b[3])->l2_hdr_offset == adv); + if (is_l3) + { + ASSERT (b[0]->current_data == vnet_buffer (b[0])->l3_hdr_offset); + ASSERT (b[1]->current_data == vnet_buffer (b[1])->l3_hdr_offset); + ASSERT (b[2]->current_data == vnet_buffer (b[2])->l3_hdr_offset); + ASSERT (b[3]->current_data == vnet_buffer (b[3])->l3_hdr_offset); + + ASSERT (b[0]->current_data - vnet_buffer (b[0])->l2_hdr_offset == adv); + ASSERT (b[1]->current_data - vnet_buffer (b[1])->l2_hdr_offset == adv); + ASSERT (b[2]->current_data - vnet_buffer (b[2])->l2_hdr_offset == adv); + ASSERT (b[3]->current_data - vnet_buffer (b[3])->l2_hdr_offset == adv); + } + else + { + ASSERT (b[0]->current_data == vnet_buffer (b[0])->l2_hdr_offset); + ASSERT (b[1]->current_data == vnet_buffer (b[1])->l2_hdr_offset); + ASSERT (b[2]->current_data == vnet_buffer (b[2])->l2_hdr_offset); + ASSERT (b[3]->current_data == vnet_buffer (b[3])->l2_hdr_offset); + + ASSERT (b[0]->current_data - vnet_buffer (b[0])->l3_hdr_offset == -adv); + ASSERT (b[1]->current_data - vnet_buffer (b[1])->l3_hdr_offset == -adv); + ASSERT (b[2]->current_data - vnet_buffer (b[2])->l3_hdr_offset == -adv); + ASSERT (b[3]->current_data - vnet_buffer (b[3])->l3_hdr_offset == -adv); + } #else vnet_buffer (b[0])->l2_hdr_offset = b[0]->current_data;