sctp: identify chunks that need to be fragmented at IP level
authorMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Thu, 8 Sep 2016 09:54:11 +0000 (17:54 +0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 10 Sep 2016 02:18:33 +0000 (19:18 -0700)
commit7303a1475008bee5c3e82a06a282568415690d72
tree658fcd0465f5da42136c51c1a35af3d0bfda3d3d
parent1b672f5fefa80bfcb8d11df1d7ee1cb1bb4f4fb4
sctp: identify chunks that need to be fragmented at IP level

Previously, without GSO, it was easy to identify it: if the chunk didn't
fit and there was no data chunk in the packet yet, we could fragment at
IP level. So if there was an auth chunk and we were bundling a big data
chunk, it would fragment regardless of the size of the auth chunk. This
also works for the context of PMTU reductions.

But with GSO, we cannot distinguish such PMTU events anymore, as the
packet is allowed to exceed PMTU.

So we need another check: to ensure that the chunk that we are adding,
actually fits the current PMTU. If it doesn't, trigger a flush and let
it be fragmented at IP level in the next round.

Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/output.c