Skip to content

Make fragments live in net namespaces

Pavel Emelyanov netdev 1 version Applied

Status from this message: Applied.

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest10 patches 10 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/10: Move ctl tables around.include/net/ip.h include/net/ipv6.h include/net/netfilter/ipv6/nf_conntrack_ipv6.h +7 more+169 -1281 reply
2/10: Make the inet_frag_queue lookup work in namespaces.include/net/inet_frag.h include/net/netns/ipv4.h include/net/netns/ipv6.h +4 more+38 -211 reply
3/10: Make the nqueues counter per-namespace.include/net/inet_frag.h include/net/ip.h include/net/ipv6.h +6 more+24 -121 reply
4/10: Make the mem counter per-namespace.include/net/inet_frag.h include/net/ip.h include/net/ipv6.h +6 more+54 -501 reply
5/10: Duplicate sysctl tables for new namespaces.include/net/netns/ipv4.h include/net/netns/ipv6.h net/ipv4/ip_fragment.c +1 more+79 -61 reply
6/10: Make the net.ipv4.ipfrag_timeout work in namespaces.include/net/inet_frag.h net/ipv4/inet_fragment.c net/ipv4/ip_fragment.c +2 more+19 -171 reply
7/10: Make thresholds work in namespaces.include/net/inet_frag.h net/ipv4/inet_fragment.c net/ipv4/ip_fragment.c +2 more+29 -301 reply
8/10: Isolate the secret interval from namespaces.include/net/inet_frag.h include/net/netns/ipv6.h net/ipv4/inet_fragment.c +3 more+8 -231 reply
9/10: Make the LRU list per namespace.include/net/inet_frag.h net/ipv4/inet_fragment.c net/ipv4/ip_fragment.c +2 more+8 -81 reply
10/10: Make the pernet subsystem for fragments.include/net/inet_frag.h net/ipv4/inet_fragment.c net/ipv4/ip_fragment.c +1 more+33 -21 reply

Reviews trailers per patch

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

Read the v1 thread

Cover letter [PATCH net-2.6.25 0/10] Make fragments live in net namespaces

The overall design I propose is to keep the hash table global and tag inet_frag_queue with the net. Since the fragments hash is going to be re-sizable, this is OK to keep fragments from different namespace in one hash.

To speedup the evicting process LRU list is made per namespace.

As far as the CTL-tuned variables are concerned, the timeout and thresholds are made per namespace, since they have the per namespace sense, but the secret rebuild interval is read-only in sub-namespaces.

Since fragment management code is consolidated for ipv4 and ipv6 I make them all in one go. The conntrack_reasm netns-ization is not done - we have to make at least the core netfilter per namespace first, but this reasm code is patched to keep working in the initial namespace.