Skip to content

Consolidate IP fragment management

Pavel Emelyanov netdev 1 version Applied

Status from this message: Applied.

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest9 patches 10 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/9Move common fields from frag_queues in one placeinclude/net/inet_frag.h net/ipv4/ip_fragment.c net/ipv6/netfilter/nf_conntrack_reasm.c +1 more+232 -2441 reply
2/9Collect frag queues management objects togetherinclude/net/inet_frag.h include/net/ip.h include/net/ipv6.h +7 more+224 -1791 reply
3/9Collect common sysctl variables togetherinclude/net/inet_frag.h include/net/ip.h include/net/ipv6.h +7 more+82 -691 reply
4/9Consolidate the xxx_frag_killinclude/net/inet_frag.h net/ipv4/inet_fragment.c net/ipv4/ip_fragment.c +2 more+28 -661 reply
5/9Consolidate xxx_the secret_rebuildinclude/net/inet_frag.h net/ipv4/inet_fragment.c net/ipv4/ip_fragment.c +2 more+52 -901 reply
6/9Consolidate the xxx_frag_destroyinclude/net/inet_frag.h net/ipv4/inet_fragment.c net/ipv4/ip_fragment.c +2 more+74 -861 reply
7/9Consolidate the xxx_evictorinclude/net/inet_frag.h include/net/ip.h include/net/ipv6.h +4 more+52 -801 reply
8/9Small cleanup for xxx_put after evictor consolidationnet/ipv4/ip_fragment.c net/ipv6/netfilter/nf_conntrack_reasm.c net/ipv6/reassembly.c+16 -161 reply
9/9Consolidate the xxx_putinclude/net/inet_frag.h net/ipv4/ip_fragment.c net/ipv6/netfilter/nf_conntrack_reasm.c +1 more+9 -61 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/9] Consolidate IP fragment management

Patrick recently pointed out, that there are three places that perform IP fragments management. In ipv4, ipv6 and in ip6 conntracks. Looks like these places can be a bit consolidated.

The proposal is to create a common structure inet_frag_queue to put common fields like list heads, refcounts etc in, and include it into the specific fragment queues. Then such objects like hash tables, lists, locks etc are moved to common place (struct inet_frags). At the end common code is moved to the net/ipv4/inet_fragment.c.

The inet_ prefix in file names, data structures and functions, and the code place (net/ipv4) was proposed by Alexey, but the exact names were selectd by me, so maybe there can be a better ones.