]> git.baikalelectronics.ru Git - kernel.git/commit
rtnetlink: use netnsid to query interface
authorJiri Benc <jbenc@redhat.com>
Thu, 2 Nov 2017 19:04:38 +0000 (17:04 -0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 5 Nov 2017 12:49:17 +0000 (21:49 +0900)
commita3c5d4199d4eaaf138e845e2fd1c5838e3707dd4
tree5f627e30c0f3972db04c2e012474dc5486d8955b
parenta5c7f30f0a86de70bf07d8967bf8e7719f73e81d
rtnetlink: use netnsid to query interface

Currently, when an application gets netnsid from the kernel (for example as
the result of RTM_GETLINK call on one end of the veth pair), it's not much
useful. There's no reliable way to get to the netns fd from the netnsid, nor
does any kernel API accept netnsid.

Extend the RTM_GETLINK call to also accept netnsid. It will operate on the
netns with the given netnsid in such case. Of course, the calling process
needs to have enough capabilities in the target name space; for now, require
CAP_NET_ADMIN. This can be relaxed in the future.

To signal to the calling process that the kernel understood the new
IFLA_IF_NETNSID attribute in the query, it will include it in the response.
This is needed to detect older kernels, as they will just ignore
IFLA_IF_NETNSID and query in the current name space.

This patch implemetns IFLA_IF_NETNSID only for get and dump. For set
operations, this can be extended later.

Signed-off-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/if_link.h
net/core/rtnetlink.c