mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-29 01:51:39 +00:00
[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>
This commit is contained in:
parent
e0b85590bc
commit
58f09b78b7
5 changed files with 119 additions and 86 deletions
|
@ -31,8 +31,8 @@ struct fib6_rule
|
|||
|
||||
static struct fib_rules_ops fib6_rules_ops;
|
||||
|
||||
struct dst_entry *fib6_rule_lookup(struct flowi *fl, int flags,
|
||||
pol_lookup_t lookup)
|
||||
struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi *fl,
|
||||
int flags, pol_lookup_t lookup)
|
||||
{
|
||||
struct fib_lookup_arg arg = {
|
||||
.lookup_ptr = lookup,
|
||||
|
@ -71,7 +71,7 @@ static int fib6_rule_action(struct fib_rule *rule, struct flowi *flp,
|
|||
goto discard_pkt;
|
||||
}
|
||||
|
||||
table = fib6_get_table(rule->table);
|
||||
table = fib6_get_table(&init_net, rule->table);
|
||||
if (table)
|
||||
rt = lookup(table, flp, flags);
|
||||
|
||||
|
@ -151,7 +151,7 @@ static int fib6_rule_configure(struct fib_rule *rule, struct sk_buff *skb,
|
|||
if (rule->table == RT6_TABLE_UNSPEC)
|
||||
goto errout;
|
||||
|
||||
if (fib6_new_table(rule->table) == NULL) {
|
||||
if (fib6_new_table(&init_net, rule->table) == NULL) {
|
||||
err = -ENOBUFS;
|
||||
goto errout;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue