[NETNS]: Pass fib_rules_ops into default_pref method.
fib_rules_ops contains operations and the list of configured rules. ops will become per/namespace soon, so we need them to be known in the default_pref callback. Acked-by: Benjamin Thery <benjamin.thery@bull.net> Acked-by: Daniel Lezcano <dlezcano@fr.ibm.com> Signed-off-by: Denis V. Lunev <den@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f8c26b8d58
commit
868d13ac81
@@ -56,7 +56,7 @@ struct fib_rules_ops
|
|||||||
int (*fill)(struct fib_rule *, struct sk_buff *,
|
int (*fill)(struct fib_rule *, struct sk_buff *,
|
||||||
struct nlmsghdr *,
|
struct nlmsghdr *,
|
||||||
struct fib_rule_hdr *);
|
struct fib_rule_hdr *);
|
||||||
u32 (*default_pref)(void);
|
u32 (*default_pref)(struct fib_rules_ops *ops);
|
||||||
size_t (*nlmsg_payload)(struct fib_rule *);
|
size_t (*nlmsg_payload)(struct fib_rule *);
|
||||||
|
|
||||||
/* Called after modifications to the rules set, must flush
|
/* Called after modifications to the rules set, must flush
|
||||||
|
@@ -285,7 +285,7 @@ static int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg)
|
|||||||
rule->table = frh_get_table(frh, tb);
|
rule->table = frh_get_table(frh, tb);
|
||||||
|
|
||||||
if (!rule->pref && ops->default_pref)
|
if (!rule->pref && ops->default_pref)
|
||||||
rule->pref = ops->default_pref();
|
rule->pref = ops->default_pref(ops);
|
||||||
|
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
if (tb[FRA_GOTO]) {
|
if (tb[FRA_GOTO]) {
|
||||||
|
@@ -212,7 +212,7 @@ nla_put_failure:
|
|||||||
return -ENOBUFS;
|
return -ENOBUFS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 dn_fib_rule_default_pref(void)
|
static u32 dn_fib_rule_default_pref(struct fib_rules_ops *ops)
|
||||||
{
|
{
|
||||||
struct list_head *pos;
|
struct list_head *pos;
|
||||||
struct fib_rule *rule;
|
struct fib_rule *rule;
|
||||||
|
@@ -245,7 +245,7 @@ nla_put_failure:
|
|||||||
return -ENOBUFS;
|
return -ENOBUFS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 fib4_rule_default_pref(void)
|
static u32 fib4_rule_default_pref(struct fib_rules_ops *ops)
|
||||||
{
|
{
|
||||||
struct list_head *pos;
|
struct list_head *pos;
|
||||||
struct fib_rule *rule;
|
struct fib_rule *rule;
|
||||||
|
@@ -223,7 +223,7 @@ nla_put_failure:
|
|||||||
return -ENOBUFS;
|
return -ENOBUFS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 fib6_rule_default_pref(void)
|
static u32 fib6_rule_default_pref(struct fib_rules_ops *ops)
|
||||||
{
|
{
|
||||||
return 0x3FFF;
|
return 0x3FFF;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user