diff options
author | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2014-12-07 23:08:07 +0000 |
---|---|---|
committer | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2014-12-07 23:08:07 +0000 |
commit | 0368226e65a704e635c755b540c4fa4d2c474be0 (patch) | |
tree | d91fa03e5e4abc1c0b131ab5f3a5f3dc2f66fa7a /sys/net/if_llatbl.h | |
parent | 721cd2e032474f69f4897a5571a5b1bbd90bc3f5 (diff) | |
download | src-0368226e65a704e635c755b540c4fa4d2c474be0.tar.gz src-0368226e65a704e635c755b540c4fa4d2c474be0.zip |
* Retire abstract llentry_free() in favor of lltable_drop_entry_queue()
and explicit calls to RTENTRY_FREE_LOCKED()
* Use lltable_prefix_free() in arp_ifscrub to be consistent with nd6.
* Rename <lltable_|llt>_delete function to _delete_addr() to note that
this function is used to external callers. Make this function maintain
its own locking.
* Use lookup/unlink/clear call chain from internal callers instead of
delete_addr.
* Fix LLE_DELETED flag handling
Notes
Notes:
svn path=/projects/routing/; revision=275586
Diffstat (limited to 'sys/net/if_llatbl.h')
-rw-r--r-- | sys/net/if_llatbl.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/net/if_llatbl.h b/sys/net/if_llatbl.h index 8f8dc60e1199..bff24977cecd 100644 --- a/sys/net/if_llatbl.h +++ b/sys/net/if_llatbl.h @@ -151,7 +151,7 @@ typedef struct llentry *(llt_lookup_t)(struct lltable *, u_int flags, const struct sockaddr *l3addr); typedef struct llentry *(llt_create_t)(struct lltable *, u_int flags, const struct sockaddr *l3addr); -typedef int (llt_delete_t)(struct lltable *, u_int flags, +typedef int (llt_delete_addr_t)(struct lltable *, u_int flags, const struct sockaddr *l3addr); typedef int (llt_dump_entry_t)(struct lltable *, struct llentry *, struct sysctl_req *); @@ -175,7 +175,7 @@ struct lltable { llt_lookup_t *llt_lookup; llt_create_t *llt_create; - llt_delete_t *llt_delete; + llt_delete_addr_t *llt_delete_addr; llt_dump_entry_t *llt_dump_entry; llt_hash_t *llt_hash; llt_match_prefix_t *llt_match_prefix; @@ -219,10 +219,12 @@ void lltable_drain(int); #endif int lltable_sysctl_dumparp(int, struct sysctl_req *); -size_t llentry_free(struct llentry *); struct llentry *llentry_alloc(struct ifnet *, struct lltable *, struct sockaddr_storage *); +/* helper functions */ +size_t lltable_drop_entry_queue(struct llentry *); + /* * Generic link layer address lookup function. */ @@ -243,11 +245,11 @@ lltable_create_lle(struct lltable *llt, u_int flags, } static __inline int -lltable_delete_lle(struct lltable *llt, u_int flags, +lltable_delete_addr(struct lltable *llt, u_int flags, const struct sockaddr *l3addr) { - return llt->llt_delete(llt, flags, l3addr); + return llt->llt_delete_addr(llt, flags, l3addr); } static __inline void |