X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fvxlan%2Fencap.c;h=da890b2d5fb839cc756c313c8744443cac326dc4;hb=2de9c0f92bb486072d8371a24d9b23fd85e1aa80;hp=b797624ae063b2a641153504c199714861c812b7;hpb=4af1a7f938207f713c249270ed98a0c12f72cd3f;p=vpp.git diff --git a/src/vnet/vxlan/encap.c b/src/vnet/vxlan/encap.c index b797624ae06..da890b2d5fb 100644 --- a/src/vnet/vxlan/encap.c +++ b/src/vnet/vxlan/encap.c @@ -93,10 +93,9 @@ vxlan_encap_inline (vlib_main_t * vm, u8 const underlay_hdr_len = is_ip4 ? sizeof(ip4_vxlan_header_t) : sizeof(ip6_vxlan_header_t); u16 const l3_len = is_ip4 ? sizeof(ip4_header_t) : sizeof(ip6_header_t); - u32 const csum_flags = is_ip4 ? - VNET_BUFFER_F_OFFLOAD_IP_CKSUM | VNET_BUFFER_F_IS_IP4 | - VNET_BUFFER_F_OFFLOAD_UDP_CKSUM : - VNET_BUFFER_F_OFFLOAD_UDP_CKSUM; + u32 const csum_flags = is_ip4 ? VNET_BUFFER_F_OFFLOAD_IP_CKSUM | + VNET_BUFFER_F_IS_IP4 | VNET_BUFFER_F_OFFLOAD_UDP_CKSUM : + VNET_BUFFER_F_IS_IP6 | VNET_BUFFER_F_OFFLOAD_UDP_CKSUM; while (n_left_from > 0) { @@ -288,6 +287,10 @@ vxlan_encap_inline (vlib_main_t * vm, udp1->checksum = 0xffff; } + /* save inner packet flow_hash for load-balance node */ + vnet_buffer (b0)->ip.flow_hash = flow_hash0; + vnet_buffer (b1)->ip.flow_hash = flow_hash1; + if (sw_if_index0 == sw_if_index1) { vlib_increment_combined_counter (tx_counter, thread_index, @@ -425,6 +428,9 @@ vxlan_encap_inline (vlib_main_t * vm, udp0->checksum = 0xffff; } + /* reuse inner packet flow_hash for load-balance node */ + vnet_buffer (b0)->ip.flow_hash = flow_hash0; + vlib_increment_combined_counter (tx_counter, thread_index, sw_if_index0, 1, len0); pkts_encapsulated ++;