diff options
-rw-r--r-- | vnet/vnet/ethernet/arp.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/vnet/vnet/ethernet/arp.c b/vnet/vnet/ethernet/arp.c index d08764a329f..541355f9f89 100644 --- a/vnet/vnet/ethernet/arp.c +++ b/vnet/vnet/ethernet/arp.c @@ -1088,12 +1088,13 @@ arp_input (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) /* * Rewind buffer, direct code above not to * think too hard about it. - * $$$ is the answer ever anything other than - * vlib_buffer_reset(..)? */ if_addr0 = &proxy_src; is_unnum0 = 0; - vlib_buffer_reset (p0); + i32 ethernet_start = + vnet_buffer (p0)->ethernet.start_of_ethernet_header; + i32 rewind = p0->current_data - ethernet_start; + vlib_buffer_advance (p0, -rewind); n_proxy_arp_replies_sent++; goto send_reply; } |