MT#55283 unify skb_pull to transport

Use the existing offsets to network/transport header to determine how
much needs to be pulled back. Then we can combine these code snippets
into one.

No functional change.

Change-Id: I34eeb707da9baad0891d2fbb2d8d9fc95e027204
pull/2147/head
Richard Fuchs 3 weeks ago
parent 712373dd84
commit f86faf6ba8

@ -7301,12 +7301,14 @@ static int rtpengine4(struct sk_buff *oskb, struct net *net, struct rtpengine_ta
return NFT_CONTINUE;
skb_gso_reset(skb);
skb_reset_network_header(skb);
ih = ip_hdr(skb);
skb_pull(skb, (ih->ihl << 2));
if (ih->protocol != IPPROTO_UDP)
goto out;
// pull to transport (UDP) header
skb_pull(skb, skb->transport_header - skb->network_header);
memset(&src, 0, sizeof(src));
memset(&dst, 0, sizeof(dst));
src.family = AF_INET;
@ -7348,13 +7350,14 @@ static int rtpengine6(struct sk_buff *oskb, struct net *net, struct rtpengine_ta
return NFT_CONTINUE;
skb_gso_reset(skb);
skb_reset_network_header(skb);
ih = ipv6_hdr(skb);
skb_pull(skb, sizeof(*ih));
if (ih->nexthdr != IPPROTO_UDP)
goto out;
// pull to transport (UDP) header
skb_pull(skb, skb->transport_header - skb->network_header);
memset(&src, 0, sizeof(src));
memset(&dst, 0, sizeof(dst));
src.family = AF_INET6;

Loading…
Cancel
Save