mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
udp: Set length in UDP header to 0 for big GSO packets
skb->len may be bigger than 65535 in UDP-based tunnels that have BIG TCP enabled. If GSO aggregates packets that large, set the length in the UDP header to 0, so that tcpdump can print such packets properly (treating them as RFC 2675 jumbograms). Later in the pipeline, __udp_gso_segment will set uh->len to the size of individual packets. Signed-off-by: Alice Mikityanska <alice@isovalent.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Link: https://patch.msgid.link/20260710134242.216538-7-alice.kernel@fastmail.im Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
8475a3efe6
commit
99ad245162
@@ -178,7 +178,7 @@ void udp_tunnel_xmit_skb(struct rtable *rt, struct sock *sk, struct sk_buff *skb
|
||||
|
||||
uh->dest = dst_port;
|
||||
uh->source = src_port;
|
||||
udp_set_len_short(uh, skb->len);
|
||||
udp_set_len(uh, skb->len);
|
||||
|
||||
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ void udp_tunnel6_xmit_skb(struct dst_entry *dst, struct sock *sk,
|
||||
uh->dest = dst_port;
|
||||
uh->source = src_port;
|
||||
|
||||
udp_set_len_short(uh, skb->len);
|
||||
udp_set_len(uh, skb->len);
|
||||
|
||||
skb_dst_set(skb, dst);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user