diff mbox series

[ovs-dev,v2,07/11] dp-packet-gso: Request UDP checksum when needed.

Message ID 20251112170420.3155127-8-david.marchand@redhat.com
State Changes Requested
Headers show
Series Outer UDP checksum optimisations. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed

Commit Message

David Marchand Nov. 12, 2025, 5:04 p.m. UTC
Don't request outer UDP checksum on a new segment, if none was needed.
Instead, rely on offloads set by the tunnel encapsulation code and
inherited from the TSO packet.

Fixes: 2956a612651e ("dp-packet: Rework L4 checksum offloads.")
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
Changes since v1:
- dropped the assert in the helper: a packet encapsulated in a UDP tunnel
  with csum disabled may still end up with a L4 partial status if any
  payload is updated,

---
 lib/dp-packet-gso.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Kevin Traynor Dec. 5, 2025, 4:41 p.m. UTC | #1
On 12/11/2025 17:04, David Marchand via dev wrote:
> Don't request outer UDP checksum on a new segment, if none was needed.
> Instead, rely on offloads set by the tunnel encapsulation code and
> inherited from the TSO packet.
> 
> Fixes: 2956a612651e ("dp-packet: Rework L4 checksum offloads.")
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> Changes since v1:
> - dropped the assert in the helper: a packet encapsulated in a UDP tunnel
>   with csum disabled may still end up with a L4 partial status if any
>   payload is updated,
> 
> ---
>  lib/dp-packet-gso.c | 1 -
>  1 file changed, 1 deletion(-)

LGTM
Acked-by: Kevin Traynor <ktraynor@redhat.com>
diff mbox series

Patch

diff --git a/lib/dp-packet-gso.c b/lib/dp-packet-gso.c
index 58b4401f60..362bc8f66d 100644
--- a/lib/dp-packet-gso.c
+++ b/lib/dp-packet-gso.c
@@ -153,7 +153,6 @@  dp_packet_gso(struct dp_packet *p, struct dp_packet_batch **batches)
 
             tnl_hdr = dp_packet_l4(seg);
             tnl_hdr->udp_len = htons(dp_packet_l4_size(seg));
-            dp_packet_l4_checksum_set_partial(seg);
         }
 
         if (udp_tnl || gre_tnl) {