Closed hcbwiz closed 9 months ago
Hi, when clearing the checksum offload flags, it should keep VLIB_BUFFER_IS_TRACED for vpp trace plugin:
diff --git a/upf/upf_forward.c b/upf/upf_forward.c index 585c91e..34581a8 100644 --- a/upf/upf_forward.c +++ b/upf/upf_forward.c @@ -218,7 +218,8 @@ upf_forward (vlib_main_t * vm, vlib_node_runtime_t * node, { b->flags &= ~(VNET_BUFFER_OFFLOAD_F_TCP_CKSUM | VNET_BUFFER_OFFLOAD_F_UDP_CKSUM | - VNET_BUFFER_OFFLOAD_F_IP_CKSUM); + VNET_BUFFER_OFFLOAD_F_IP_CKSUM) | + VLIB_BUFFER_IS_TRACED; upf_nwi_if_and_fib_index (gtm, FIB_PROTOCOL_IP4, far->forward.nwi_index, &vnet_buffer (b)->sw_if_index[VLIB_RX], @@ -227,7 +228,8 @@ upf_forward (vlib_main_t * vm, vlib_node_runtime_t * node, else { b->flags &= ~(VNET_BUFFER_OFFLOAD_F_TCP_CKSUM | - VNET_BUFFER_OFFLOAD_F_UDP_CKSUM); + VNET_BUFFER_OFFLOAD_F_UDP_CKSUM) | + VLIB_BUFFER_IS_TRACED; upf_nwi_if_and_fib_index (gtm, FIB_PROTOCOL_IP6, far->forward.nwi_index, &vnet_buffer (b)->sw_if_index[VLIB_RX], diff --git a/upf/upf_gtpu_encap.c b/upf/upf_gtpu_encap.c index 206ff3a..885ff53 100644 --- a/upf/upf_gtpu_encap.c +++ b/upf/upf_gtpu_encap.c @@ -426,7 +426,7 @@ upf_encap_inline (vlib_main_t * vm, u32 const csum_mask = ~(VNET_BUFFER_OFFLOAD_F_TCP_CKSUM | VNET_BUFFER_OFFLOAD_F_UDP_CKSUM | - (is_ip4 ? VNET_BUFFER_OFFLOAD_F_IP_CKSUM : 0)); + (is_ip4 ? VNET_BUFFER_OFFLOAD_F_IP_CKSUM : 0)) | VLIB_BUFFER_IS_TRACED; from = vlib_frame_vector_args (from_frame); n_left_from = from_frame->n_vectors;
See also related https://github.com/travelping/upg-vpp/pull/304
@mitmitmitm Thanks for your patch.
Hi, thank you both. Merged #304 which fixes this issue
Hi, when clearing the checksum offload flags, it should keep VLIB_BUFFER_IS_TRACED for vpp trace plugin: