rxrpc: Support network namespacing
authorDavid Howells <dhowells@redhat.com>
Wed, 24 May 2017 16:02:32 +0000 (17:02 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 25 May 2017 17:15:11 +0000 (13:15 -0400)
commit2baec2c3f854d1f79c7bb28386484e144e864a14
tree4b416db84d3579fe825458d021951955d120ed69
parent878cd3ba37f77ded9c85e9857e3182a7fe8f5dc3
rxrpc: Support network namespacing

Support network namespacing in AF_RXRPC with the following changes:

 (1) All the local endpoint, peer and call lists, locks, counters, etc. are
     moved into the per-namespace record.

 (2) All the connection tracking is moved into the per-namespace record
     with the exception of the client connection ID tree, which is kept
     global so that connection IDs are kept unique per-machine.

 (3) Each namespace gets its own epoch.  This allows each network namespace
     to pretend to be a separate client machine.

 (4) The /proc/net/rxrpc_xxx files are now called /proc/net/rxrpc/xxx and
     the contents reflect the namespace.

fs/afs/ should be okay with this patch as it explicitly requires the current
net namespace to be init_net to permit a mount to proceed at the moment.  It
will, however, need updating so that cells, IP addresses and DNS records are
per-namespace also.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
12 files changed:
net/rxrpc/Makefile
net/rxrpc/af_rxrpc.c
net/rxrpc/ar-internal.h
net/rxrpc/call_accept.c
net/rxrpc/call_object.c
net/rxrpc/conn_client.c
net/rxrpc/conn_object.c
net/rxrpc/conn_service.c
net/rxrpc/local_object.c
net/rxrpc/net_ns.c [new file with mode: 0644]
net/rxrpc/peer_object.c
net/rxrpc/proc.c