diff options
| author | David S. Miller <davem@davemloft.net> | 2018-08-11 17:54:18 -0700 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2018-08-11 17:54:18 -0700 |
| commit | 78cbac647e61fb20ad615075949ea77cedf74e0c (patch) | |
| tree | d75f09d0acf9a10a81723bd1a2028f555e9dc54c /include | |
| parent | 6a92ef08a1351e4977d6acde2196fa94e9c3a660 (diff) | |
| parent | a4fd284a1f8fd4b6c59aa59db2185b1e17c5c11c (diff) | |
Merge branch 'ip-faster-in-order-IP-fragments'
Peter Oskolkov says:
====================
ip: faster in-order IP fragments
Added "Signed-off-by" in v2.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
| -rw-r--r-- | include/net/inet_frag.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h index b86d14528188..1662cbc0b46b 100644 --- a/include/net/inet_frag.h +++ b/include/net/inet_frag.h @@ -57,7 +57,9 @@ struct frag_v6_compare_key { * @lock: spinlock protecting this frag * @refcnt: reference count of the queue * @fragments: received fragments head + * @rb_fragments: received fragments rb-tree root * @fragments_tail: received fragments tail + * @last_run_head: the head of the last "run". see ip_fragment.c * @stamp: timestamp of the last received fragment * @len: total length of the original datagram * @meat: length of received fragments so far @@ -78,6 +80,7 @@ struct inet_frag_queue { struct sk_buff *fragments; /* Used in IPv6. */ struct rb_root rb_fragments; /* Used in IPv4. */ struct sk_buff *fragments_tail; + struct sk_buff *last_run_head; ktime_t stamp; int len; int meat; @@ -113,6 +116,9 @@ void inet_frag_kill(struct inet_frag_queue *q); void inet_frag_destroy(struct inet_frag_queue *q); struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, void *key); +/* Free all skbs in the queue; return the sum of their truesizes. */ +unsigned int inet_frag_rbtree_purge(struct rb_root *root); + static inline void inet_frag_put(struct inet_frag_queue *q) { if (refcount_dec_and_test(&q->refcnt)) |
