mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
net: ipv6: Do not consider link state for nexthop validation
Similar to IPv4, do not consider link state when validating next hops.
Currently, if the link is down default routes can fail to insert:
$ ip -6 ro add vrf blue default via 2100:2::64 dev eth2
RTNETLINK answers: No route to host
With this patch the command succeeds.
Fixes: 8c14586fc3
("net: ipv6: Use passed in table for nexthop lookups")
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
830218c1ad
commit
d5d32e4b76
2 changed files with 5 additions and 2 deletions
|
@ -658,7 +658,8 @@ static struct rt6_info *find_match(struct rt6_info *rt, int oif, int strict,
|
|||
struct net_device *dev = rt->dst.dev;
|
||||
|
||||
if (dev && !netif_carrier_ok(dev) &&
|
||||
idev->cnf.ignore_routes_with_linkdown)
|
||||
idev->cnf.ignore_routes_with_linkdown &&
|
||||
!(strict & RT6_LOOKUP_F_IGNORE_LINKSTATE))
|
||||
goto out;
|
||||
|
||||
if (rt6_check_expired(rt))
|
||||
|
@ -1052,6 +1053,7 @@ struct rt6_info *ip6_pol_route(struct net *net, struct fib6_table *table,
|
|||
int strict = 0;
|
||||
|
||||
strict |= flags & RT6_LOOKUP_F_IFACE;
|
||||
strict |= flags & RT6_LOOKUP_F_IGNORE_LINKSTATE;
|
||||
if (net->ipv6.devconf_all->forwarding == 0)
|
||||
strict |= RT6_LOOKUP_F_REACHABLE;
|
||||
|
||||
|
@ -1791,7 +1793,7 @@ static struct rt6_info *ip6_nh_lookup_table(struct net *net,
|
|||
};
|
||||
struct fib6_table *table;
|
||||
struct rt6_info *rt;
|
||||
int flags = RT6_LOOKUP_F_IFACE;
|
||||
int flags = RT6_LOOKUP_F_IFACE | RT6_LOOKUP_F_IGNORE_LINKSTATE;
|
||||
|
||||
table = fib6_get_table(net, cfg->fc_table);
|
||||
if (!table)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue