aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDaniel Lezcano <dlezcano@fr.ibm.com>2008-03-04 02:25:27 -0500
committerDavid S. Miller <davem@davemloft.net>2008-03-04 02:25:27 -0500
commit58f09b78b730cf0d936597272bf35b3d615e967c (patch)
tree6c7fb907dd7da48384087944c81368c216b841f1 /include
parente0b85590bc1b50c9bbef4dd4738d9995fb1d1f64 (diff)
[NETNS][IPV6] ip6_fib - make it per network namespace
The fib table for ipv6 are moved to the network namespace structure. All references to them are made relatively to the network namespace. All external calls to the ip6_fib functions taking the network namespace parameter are made using the init_net variable, so the ip6_fib engine is ready for the namespaces but the callers not yet. Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com> Signed-off-by: Benjamin Thery <benjamin.thery@bull.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/net/ip6_fib.h9
-rw-r--r--include/net/netns/ipv6.h5
2 files changed, 10 insertions, 4 deletions
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
index 953d6040ff50..4d4c8aca8fb9 100644
--- a/include/net/ip6_fib.h
+++ b/include/net/ip6_fib.h
@@ -181,10 +181,11 @@ typedef struct rt6_info *(*pol_lookup_t)(struct fib6_table *,
181 * exported functions 181 * exported functions
182 */ 182 */
183 183
184extern struct fib6_table * fib6_get_table(u32 id); 184extern struct fib6_table *fib6_get_table(struct net *net, u32 id);
185extern struct fib6_table * fib6_new_table(u32 id); 185extern struct fib6_table *fib6_new_table(struct net *net, u32 id);
186extern struct dst_entry * fib6_rule_lookup(struct flowi *fl, int flags, 186extern struct dst_entry *fib6_rule_lookup(struct net *net,
187 pol_lookup_t lookup); 187 struct flowi *fl, int flags,
188 pol_lookup_t lookup);
188 189
189extern struct fib6_node *fib6_lookup(struct fib6_node *root, 190extern struct fib6_node *fib6_lookup(struct fib6_node *root,
190 struct in6_addr *daddr, 191 struct in6_addr *daddr,
diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
index 82623d3a8e35..b0653261c5a3 100644
--- a/include/net/netns/ipv6.h
+++ b/include/net/netns/ipv6.h
@@ -36,6 +36,11 @@ struct netns_ipv6 {
36 struct xt_table *ip6table_mangle; 36 struct xt_table *ip6table_mangle;
37 struct xt_table *ip6table_raw; 37 struct xt_table *ip6table_raw;
38#endif 38#endif
39 struct hlist_head *fib_table_hash;
40 struct fib6_table *fib6_main_tbl;
41#ifdef CONFIG_IPV6_MULTIPLE_TABLES
42 struct fib6_table *fib6_local_tbl;
43#endif
39 struct sock **icmp_sk; 44 struct sock **icmp_sk;
40}; 45};
41#endif 46#endif