mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
net: ipv6: use common fib_default_rule_pref
This switches IPv6 policy routing to use the shared fib_default_rule_pref() function of IPv4 and DECnet. It is also used in multicast routing for IPv4 as well as IPv6. The motivation for this patch is a complaint about iproute2 behaving inconsistent between IPv4 and IPv6 when adding policy rules: Formerly, IPv6 rules were assigned a fixed priority of 0x3FFF whereas for IPv4 the assigned priority value was decreased with each rule added. Since then all users of the default_pref field have been converted to assign the generic function fib_default_rule_pref(), fib_nl_newrule() may just use it directly instead. Therefore get rid of the function pointer altogether and make fib_default_rule_pref() static, as it's not used outside fib_rules.c anymore. Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
444c5f92ed
commit
f53de1e9a4
7 changed files with 3 additions and 19 deletions
|
@ -44,7 +44,7 @@ int fib_default_rule_add(struct fib_rules_ops *ops,
|
|||
}
|
||||
EXPORT_SYMBOL(fib_default_rule_add);
|
||||
|
||||
u32 fib_default_rule_pref(struct fib_rules_ops *ops)
|
||||
static u32 fib_default_rule_pref(struct fib_rules_ops *ops)
|
||||
{
|
||||
struct list_head *pos;
|
||||
struct fib_rule *rule;
|
||||
|
@ -60,7 +60,6 @@ u32 fib_default_rule_pref(struct fib_rules_ops *ops)
|
|||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(fib_default_rule_pref);
|
||||
|
||||
static void notify_rule_change(int event, struct fib_rule *rule,
|
||||
struct fib_rules_ops *ops, struct nlmsghdr *nlh,
|
||||
|
@ -299,8 +298,8 @@ static int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr* nlh)
|
|||
}
|
||||
rule->fr_net = net;
|
||||
|
||||
if (tb[FRA_PRIORITY])
|
||||
rule->pref = nla_get_u32(tb[FRA_PRIORITY]);
|
||||
rule->pref = tb[FRA_PRIORITY] ? nla_get_u32(tb[FRA_PRIORITY])
|
||||
: fib_default_rule_pref(ops);
|
||||
|
||||
if (tb[FRA_IIFNAME]) {
|
||||
struct net_device *dev;
|
||||
|
@ -350,9 +349,6 @@ static int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr* nlh)
|
|||
else
|
||||
rule->suppress_ifgroup = -1;
|
||||
|
||||
if (!tb[FRA_PRIORITY] && ops->default_pref)
|
||||
rule->pref = ops->default_pref(ops);
|
||||
|
||||
err = -EINVAL;
|
||||
if (tb[FRA_GOTO]) {
|
||||
if (rule->action != FR_ACT_GOTO)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue