ipv4: Handle ipv6 gateway in fib_detect_death
Update fib_detect_death to handle an ipv6 gateway. Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
6de9c0557e
commit
619d182626
@@ -457,10 +457,18 @@ static int fib_detect_death(struct fib_info *fi, int order,
|
|||||||
struct fib_info **last_resort, int *last_idx,
|
struct fib_info **last_resort, int *last_idx,
|
||||||
int dflt)
|
int dflt)
|
||||||
{
|
{
|
||||||
|
const struct fib_nh_common *nhc = fib_info_nhc(fi, 0);
|
||||||
struct neighbour *n;
|
struct neighbour *n;
|
||||||
int state = NUD_NONE;
|
int state = NUD_NONE;
|
||||||
|
|
||||||
n = neigh_lookup(&arp_tbl, &fi->fib_nh[0].fib_nh_gw4, fi->fib_dev);
|
if (likely(nhc->nhc_gw_family == AF_INET))
|
||||||
|
n = neigh_lookup(&arp_tbl, &nhc->nhc_gw.ipv4, nhc->nhc_dev);
|
||||||
|
else if (nhc->nhc_gw_family == AF_INET6)
|
||||||
|
n = neigh_lookup(ipv6_stub->nd_tbl, &nhc->nhc_gw.ipv6,
|
||||||
|
nhc->nhc_dev);
|
||||||
|
else
|
||||||
|
n = NULL;
|
||||||
|
|
||||||
if (n) {
|
if (n) {
|
||||||
state = n->nud_state;
|
state = n->nud_state;
|
||||||
neigh_release(n);
|
neigh_release(n);
|
||||||
|
|||||||
Reference in New Issue
Block a user