mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-31 16:57:10 +00:00
Delete the nd6 entries associated with an off-link prefix
if the same prefix cannot be found on an alternative interface. Reviewed by: hrs MFC after: 1 week
This commit is contained in:
parent
d51dbb7a98
commit
378aa8d85e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=252141
@ -1720,6 +1720,7 @@ nd6_prefix_offlink(struct nd_prefix *pr)
|
||||
}
|
||||
}
|
||||
error = a_failure;
|
||||
a_failure = 1;
|
||||
if (error == 0) {
|
||||
pr->ndpr_stateflags &= ~NDPRF_ONLINK;
|
||||
|
||||
@ -1758,7 +1759,8 @@ nd6_prefix_offlink(struct nd_prefix *pr)
|
||||
&opr->ndpr_prefix.sin6_addr),
|
||||
opr->ndpr_plen, if_name(ifp),
|
||||
if_name(opr->ndpr_ifp), e));
|
||||
}
|
||||
} else
|
||||
a_failure = 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -1770,6 +1772,10 @@ nd6_prefix_offlink(struct nd_prefix *pr)
|
||||
if_name(ifp), error));
|
||||
}
|
||||
|
||||
if (a_failure)
|
||||
lltable_prefix_free(AF_INET6, (struct sockaddr *)&sa6,
|
||||
(struct sockaddr *)&mask6, LLE_STATIC);
|
||||
|
||||
return (error);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user