]> www.infradead.org Git - users/jedix/linux-maple.git/commit
netlink: allow to listen "all" netns
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Thu, 7 May 2015 09:02:53 +0000 (11:02 +0200)
committerDhaval Giani <dhaval.giani@oracle.com>
Tue, 7 Nov 2017 05:24:15 +0000 (00:24 -0500)
commit937556a6874fd7f49128d441448ee3bd74583cd4
tree3d1523c3232d8a9327ea89d243736551f755e48f
parent9605f36647af9e2b5f9a52fcb55c1d23e755462a
netlink: allow to listen "all" netns

More accurately, listen all netns that have a nsid assigned into the netns
where the netlink socket is opened.
For this purpose, a netlink socket option is added:
NETLINK_LISTEN_ALL_NSID. When this option is set on a netlink socket, this
socket will receive netlink notifications from all netns that have a nsid
assigned into the netns where the socket has been opened. The nsid is sent
to userland via an anscillary data.

With this patch, a daemon needs only one socket to listen many netns. This
is useful when the number of netns is high.

Because 0 is a valid value for a nsid, the field nsid_is_set indicates if
the field nsid is valid or not. skb->cb is initialized to 0 on skb
allocation, thus we are sure that we will never send a nsid 0 by error to
the userland.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Acked-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Orabug: 23634951
(cherry picked from commit 59324cf35aba5336b611074028777838a963d03b)
Signed-off-by: Cathy Zhou <Cathy.Zhou@Oracle.COM>
Reviewed-by: Jack Vogel <jack.vogel@oracle.com>
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
include/linux/netlink.h
include/net/net_namespace.h
include/uapi/linux/netlink.h
net/core/net_namespace.c
net/netlink/af_netlink.c