diff options
author | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2015-01-03 19:09:06 +0000 |
---|---|---|
committer | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2015-01-03 19:09:06 +0000 |
commit | b44a7d5d874985eee33e82ef72f511c7ab2bd71d (patch) | |
tree | 2c9268edf1c174521f366e035f97d74b52555cab /sys/netinet6 | |
parent | 20dd899505f9dead9d234724941e33048c19e4aa (diff) | |
download | src-b44a7d5d874985eee33e82ef72f511c7ab2bd71d.tar.gz src-b44a7d5d874985eee33e82ef72f511c7ab2bd71d.zip |
* Use unified code for deleting entry by sockaddr instead of per-af one.
* Remove now unused llt_delete_addr callback.
Notes
Notes:
svn path=/projects/routing/; revision=276631
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/in6.c | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 11f6a94cd308..5e81ce8c3094 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -2185,49 +2185,6 @@ in6_lltable_find_dst(struct lltable *llt, const struct in6_addr *dst) return (lle); } -static int -in6_lltable_delete(struct lltable *llt, u_int flags, - const struct sockaddr *l3addr) -{ - const struct sockaddr_in6 *sin6 = (const struct sockaddr_in6 *)l3addr; - struct ifnet *ifp; - struct llentry *lle; - - ifp = llt->llt_ifp; - - IF_AFDATA_CFG_UNLOCK_ASSERT(ifp); - KASSERT(l3addr->sa_family == AF_INET6, - ("sin_family %d", l3addr->sa_family)); - - IF_AFDATA_CFG_WLOCK(ifp); - lle = in6_lltable_find_dst(llt, &sin6->sin6_addr); - - if (lle == NULL) { - IF_AFDATA_CFG_WUNLOCK(ifp); - return (ENOENT); - } - - /* Skipping LLE_IFADDR record */ - if ((lle->la_flags & LLE_IFADDR) != 0 && (flags & LLE_IFADDR) == 0) { - IF_AFDATA_CFG_WUNLOCK(ifp); - return (0); - } - - LLE_WLOCK(lle); - IF_AFDATA_RUN_WLOCK(ifp); - lltable_unlink_entry(llt, lle); - IF_AFDATA_RUN_WUNLOCK(ifp); - IF_AFDATA_CFG_WUNLOCK(ifp); - -#ifdef DIAGNOSTIC - log(LOG_INFO, "ifaddr cache = %p is deleted\n", lle); -#endif - EVENTHANDLER_INVOKE(lle_event, lle, LLENTRY_DELETED); - llt->llt_clear_entry(llt, lle); - - return (0); -} - static struct llentry * in6_lltable_create(struct lltable *llt, u_int flags, const void *paddr) @@ -2389,7 +2346,6 @@ in6_domifattach(struct ifnet *ifp) llt->llt_lookup = in6_lltable_lookup; llt->llt_create = in6_lltable_create; - llt->llt_delete_addr = in6_lltable_delete; llt->llt_dump_entry = in6_lltable_dump_entry; llt->llt_hash = in6_lltable_hash; llt->llt_get_sa_addr = in6_lltable_get_sa_addr; |