[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170125.131717.489451306351372553.davem@davemloft.net>
Date: Wed, 25 Jan 2017 13:17:17 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: eric.dumazet@...il.com
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH net-next] tcp: reduce skb overhead in selected places
From: Eric Dumazet <eric.dumazet@...il.com>
Date: Tue, 24 Jan 2017 14:57:36 -0800
> From: Eric Dumazet <edumazet@...gle.com>
>
> tcp_add_backlog() can use skb_condense() helper to get better
> gains and less SKB_TRUESIZE() magic. This only happens when socket
> backlog has to be used.
>
> Some attacks involve specially crafted out of order tiny TCP packets,
> clogging the ofo queue of (many) sockets.
> Then later, expensive collapse happens, trying to copy all these skbs
> into single ones.
> This unfortunately does not work if each skb has no neighbor in TCP
> sequence order.
>
> By using skb_condense() if the skb could not be coalesced to a prior
> one, we defeat these kind of threats, potentially saving 4K per skb
> (or more, since this is one page fragment).
>
> A typical NAPI driver allocates gro packets with GRO_MAX_HEAD bytes
> in skb->head, meaning the copy done by skb_condense() is limited to
> about 200 bytes.
>
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
Applied, thanks Eric.
Powered by blists - more mailing lists