[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160826111933.GA20096@gondor.apana.org.au>
Date: Fri, 26 Aug 2016 19:19:33 +0800
From: Herbert Xu <herbert@...dor.apana.org.au>
To: Shmulik Ladkani <shmulik.ladkani@...il.com>
Cc: Florian Westphal <fw@...len.de>,
"David S. Miller" <davem@...emloft.net>,
Hannes Frederic Sowa <hannes@...essinduktion.org>,
Eric Dumazet <edumazet@...gle.com>, netdev@...r.kernel.org
Subject: Re: [RFC PATCH] net: ip_finish_output_gso: Attempt gso_size clamping
if segments exceed mtu
On Thu, Aug 25, 2016 at 12:05:33PM +0300, Shmulik Ladkani wrote:
>
> We have few alternatives for gso_size clamping:
>
> 1 Fix 'skb_segment' arithmentics to support inputs that do not match
> the "frag_list members terminate on exact MSS" assumption.
>
> 2 Perform gso_size clamping in 'ip_finish_output_gso' for non-GROed skbs.
> Other usecases will still benefit: (a) packets arriving from
> virtualized interfaces, e.g. tap and friends; (b) packets arriving from
> veth of other namespaces (packets are locally generated by TCP stack
> on a different netns).
>
> 3 Ditch the idea, again ;)
>
> We can persue (1), especially if there are other benefits doing so.
> OTOH due to the current complexity of 'skb_segment' this is bit risky.
>
> Going with (2) could be reasonable too, as it brings value for
> the virtualized environmnets that need gso_size clamping, while
> presenting minimal risk.
Please remember the overarching rule for GRO and that is it must
be completely transparent, i.e., the output must be as if it didn't
exist.
So if this is a DF packet and then we must generate ICMP packets
rather than downsizing the packets. If it's not DF then we must
fragment only within each frag_list skb.
Cheers,
--
Email: Herbert Xu <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Powered by blists - more mailing lists