diff options
author | Benjamin Thery <benjamin.thery@bull.net> | 2008-05-28 12:51:24 (GMT) |
---|---|---|
committer | YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> | 2008-06-11 17:38:15 (GMT) |
commit | 3de232554a91adc74e80dc15c304be806bd7e1f9 (patch) | |
tree | 625e86cdef1763c886e676132b235b1ba52068b4 /include/net | |
parent | 2b5ead46442d80928cce987ae6acf3fe99968ad8 (diff) | |
download | linux-3de232554a91adc74e80dc15c304be806bd7e1f9.tar.xz |
ipv6 netns: Address labels per namespace
This pacth makes IPv6 address labels per network namespace.
It keeps the global label tables, ip6addrlbl_table, but
adds a 'net' member to each ip6addrlbl_entry.
This new member is taken into account when matching labels.
Changelog
=========
* v1: Initial version
* v2:
* Minize the penalty when network namespaces are not configured:
* the 'net' member is added only if CONFIG_NET_NS is
defined. This saves space when network namespaces are not
configured.
* 'net' value is retrieved with the inlined function
ip6addrlbl_net() that always return &init_net when
CONFIG_NET_NS is not defined.
* 'net' member in ip6addrlbl_entry renamed to the less generic
'lbl_net' name (helps code search).
Signed-off-by: Benjamin Thery <benjamin.thery@bull.net>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/addrconf.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/addrconf.h b/include/net/addrconf.h index bbd3d58..06b2814 100644 --- a/include/net/addrconf.h +++ b/include/net/addrconf.h @@ -121,7 +121,8 @@ static inline int addrconf_finite_timeout(unsigned long timeout) */ extern int ipv6_addr_label_init(void); extern void ipv6_addr_label_rtnl_register(void); -extern u32 ipv6_addr_label(const struct in6_addr *addr, +extern u32 ipv6_addr_label(struct net *net, + const struct in6_addr *addr, int type, int ifindex); /* |