X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fudp%2Fudp.h;h=91d063a2f0c753f881a96f1b457c32275cc3d67e;hb=61b94c6bc417dbcb11323962b40493e6f7ec2f7e;hp=0382bc20d6435195ade05d7cd856a0fdb3e44b17;hpb=4b089f27b3eda69be2fc8a9ef9f74d39cd00fc7f;p=vpp.git diff --git a/src/vnet/udp/udp.h b/src/vnet/udp/udp.h index 0382bc20d64..91d063a2f0c 100644 --- a/src/vnet/udp/udp.h +++ b/src/vnet/udp/udp.h @@ -57,6 +57,7 @@ _ (4500, ipsec) \ _ (4739, ipfix) \ _ (4789, vxlan) \ _ (4789, vxlan6) \ +_ (48879, vxlan_gbp) \ _ (4790, VXLAN_GPE) \ _ (6633, vpath_3) \ _ (6081, geneve) \ @@ -72,6 +73,7 @@ _ (3784, bfd6) \ _ (3785, bfd_echo6) \ _ (4341, lisp_gpe6) \ _ (4342, lisp_cp6) \ +_ (48879, vxlan6_gbp) \ _ (4790, VXLAN6_GPE) \ _ (6633, vpath6_3) \ _ (6081, geneve6) \ @@ -254,12 +256,15 @@ always_inline void * vlib_buffer_push_udp (vlib_buffer_t * b, u16 sp, u16 dp, u8 offload_csum) { udp_header_t *uh; + u16 udp_len = sizeof (udp_header_t) + b->current_length; + if (PREDICT_FALSE (b->flags & VLIB_BUFFER_TOTAL_LENGTH_VALID)) + udp_len += b->total_length_not_including_first_buffer; uh = vlib_buffer_push_uninit (b, sizeof (udp_header_t)); uh->src_port = sp; uh->dst_port = dp; uh->checksum = 0; - uh->length = clib_host_to_net_u16 (b->current_length); + uh->length = clib_host_to_net_u16 (udp_len); if (offload_csum) { b->flags |= VNET_BUFFER_F_OFFLOAD_UDP_CKSUM;