diff options
Diffstat (limited to 'vnet/vnet/ethernet/node.c')
-rw-r--r-- | vnet/vnet/ethernet/node.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/vnet/vnet/ethernet/node.c b/vnet/vnet/ethernet/node.c index 74d4f476d7a..a8a4fcd074d 100644 --- a/vnet/vnet/ethernet/node.c +++ b/vnet/vnet/ethernet/node.c @@ -238,7 +238,8 @@ determine_next_node (ethernet_main_t * em, { *next0 = em->l2_next; // record the L2 len and reset the buffer so the L2 header is preserved - vnet_buffer (b0)->l2.l2_len = b0->current_data; + u32 eth_start = vnet_buffer (b0)->ethernet.start_of_ethernet_header; + vnet_buffer (b0)->l2.l2_len = b0->current_data - eth_start; vlib_buffer_advance (b0, -ethernet_buffer_header_size (b0)); // check for common IP/MPLS ethertypes |