X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fudp%2Fudp_pg.c;h=a81a9d2ed40e5dc6edaaf150a27534a6e82c418e;hb=fc3b8b8ad08d2d4cc375149ecdc10c37d4a80940;hp=c9d8d38ca4a397f5a4b107afeb32ea161de996ba;hpb=0a554c773bc287721d1100db4725c373b7640c67;p=vpp.git diff --git a/src/vnet/udp/udp_pg.c b/src/vnet/udp/udp_pg.c index c9d8d38ca4a..a81a9d2ed40 100644 --- a/src/vnet/udp/udp_pg.c +++ b/src/vnet/udp/udp_pg.c @@ -68,12 +68,12 @@ udp_pg_edit_function_inline (pg_main_t * pg, ip0 = (void *) (p0->data + ip_offset); udp0 = (void *) (p0->data + udp_offset); - udp_len0 = clib_net_to_host_u16 (ip0->length) - sizeof (ip0[0]); + udp_len0 = vlib_buffer_length_in_chain (vm, p0) - udp_offset; if (flags & UDP_PG_EDIT_LENGTH) - udp0->length = - clib_net_to_host_u16 (vlib_buffer_length_in_chain (vm, p0) - - ip_offset); + udp0->length = clib_host_to_net_u16 (udp_len0); + else + udp_len0 = clib_host_to_net_u16 (udp0->length); /* Initialize checksum with header. */ if (flags & UDP_PG_EDIT_CHECKSUM)