summaryrefslogtreecommitdiff
path: root/net/llc
diff options
context:
space:
mode:
authorPeter Oskolkov <posk@google.com>2018-08-11 20:27:24 +0000
committerDavid S. Miller <davem@davemloft.net>2018-08-11 17:54:18 -0700
commit353c9cb360874e737fb000545f783df756c06f9a (patch)
treef6bdbc98f3b90fa9b548586d4c67a2d5b4637d74 /net/llc
parent6a92ef08a1351e4977d6acde2196fa94e9c3a660 (diff)
ip: add helpers to process in-order fragments faster.
This patch introduces several helper functions/macros that will be used in the follow-up patch. No runtime changes yet. The new logic (fully implemented in the second patch) is as follows: * Nodes in the rb-tree will now contain not single fragments, but lists of consecutive fragments ("runs"). * At each point in time, the current "active" run at the tail is maintained/tracked. Fragments that arrive in-order, adjacent to the previous tail fragment, are added to this tail run without triggering the re-balancing of the rb-tree. * If a fragment arrives out of order with the offset _before_ the tail run, it is inserted into the rb-tree as a single fragment. * If a fragment arrives after the current tail fragment (with a gap), it starts a new "tail" run, as is inserted into the rb-tree at the end as the head of the new run. skb->cb is used to store additional information needed here (suggested by Eric Dumazet). Reported-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Peter Oskolkov <posk@google.com> Cc: Eric Dumazet <edumazet@google.com> Cc: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/llc')
0 files changed, 0 insertions, 0 deletions