Re: [PATCH] udp: avoid ufo handling on IP payload compression packets
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2017-03-07 07:28:54
On Mon, Mar 06, 2017 at 07:16:57AM +0100, Steffen Klassert wrote:
quoted
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index b67719f..18383ef 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c@@ -960,7 +960,10 @@ static int __ip_append_data(struct sock *sk, cork->length += length; if ((((length + fragheaderlen) > mtu) || (skb && skb_is_gso(skb))) && (sk->sk_protocol == IPPROTO_UDP) && - (rt->dst.dev->features & NETIF_F_UFO) && !rt->dst.header_len && + (rt->dst.dev->features & NETIF_F_UFO) && +#ifdef CONFIG_XFRM + !rt->dst.xfrm && +#endifPlease fix IPcomp to use rt->dst.header_len instead off adding this ifdef to the generic networking code.
It's not that simple though. IPComp's header_len is set to zero because we opportunistically drop the IPComp header when the total compressed length exceeds the original packet length. That is, we only ever do IPComp when it does not cause the packet to expand. So it seems that we need another way of indicating the presence of XFRM. Cheers, -- Email: Herbert Xu [off-list ref] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt