1
0
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:
Qing Li 2013-06-24 05:01:13 +00:00
parent d51dbb7a98
commit 378aa8d85e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=252141

View File

@ -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);
}