L2 network namespace (v3)
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest12 patches 11 repliesIn review
Changes from the cover letter
- updated to 2.6.20-rc4-mm1-lxc2
- current network context is per-CPU now
- fixed compilation without CONFIG_NET_NS
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/12 | L2 network namespace (v3): current network namespace operationsinclude/ kernel/ kernel/ +1 more | +56 | 4 replies | |
| 2/12 | L2 network namespace (v3): network devices virtualizationinclude/ include/ net/ +2 more | +114 | 0 replies | |
| 3/12 | L2 network namespace (v3): loopback device virtualizationdrivers/ include/ include/ +5 more | +108 | 0 replies | |
| 4/12 | L2 network namespace (v3): devinet sysctl's checksnet/ | +16 | 0 replies | |
| 5/12 | L2 network namespace (v3): IPv4 routinginclude/ include/ include/ +8 more | +396 | 0 replies | |
| 6/12 | L2 network namespace (v3): socket hashesinclude/ include/ include/ +16 more | +172 | 0 replies | |
| 7/12 | allow proc_dir_entries to have destructorfs/ fs/ include/ | +13 | 0 replies | |
| 8/12 | net_device seq_fileinclude/ net/ | +103 | 2 replies | |
| 9/12 | L2 network namespace (v3): device to pass packets between namespacesdrivers/ drivers/ net/ | +325 | 0 replies | |
| 10/12 | L2 network namespace (v3): playing with pass-through devicedrivers/ fs/ kernel/ +2 more | +134 | 0 replies | |
| 11/12 | L2 network namespace (v3): sockets proc view virtualizationinclude/ net/ net/ | +37 | 0 replies | |
| 12/12 | L2 network namespace (v3): L3 network namespace introinclude/ net/ | +31 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/12] L2 network namespace (v3)
This is an update of L2 network namespaces patches. They are applicable to Cedric's 2.6.20-rc4-mm1-lxc2 tree.
Changes:
- updated to 2.6.20-rc4-mm1-lxc2
- current network context is per-CPU now
- fixed compilation without CONFIG_NET_NS
Changed current context definition should fix all mentioned by Cedric issues:
- the nsproxy backpointer is unnecessary now - thus removed;
- the push_net_ns() and pop_net_ns() use per-CPU variable now;
- there is no race on ->nsproxy between push_net_ns() and exit_task_namespaces() because they deals with differrent pointers.
===================================
L2 network namespaces
The most straightforward concept of network virtualization is complete separation of namespaces, covering device list, routing tables, netfilter tables, socket hashes, and everything else.
On input path, each packet is tagged with namespace right from the place where it appears from a device, and is processed by each layer in the context of this namespace.
Non-root namespaces communicate with the outside world in two ways: by owning hardware devices, or receiving packets forwarded them by their parent namespace via pass-through device.
This complete separation of namespaces is very useful for at least two purposes:
- allowing users to create and manage by their own various tunnels and VPNs, and
- enabling easier and more straightforward live migration of groups of processes with their environment.
Signature · 2 lines
Thanks, Dmitry.