Lines Matching defs:lle

2011  * Do actual deallocation of @lle.
2016 in_lltable_destroy_lle(struct llentry *lle)
2019 KASSERTMSG(lle->la_numheld == 0, "la_numheld=%d", lle->la_numheld);
2021 LLE_WUNLOCK(lle);
2022 LLE_LOCK_DESTROY(lle);
2023 llentry_pool_put(lle);
2029 struct llentry *lle;
2031 lle = llentry_pool_get(PR_NOWAIT);
2032 if (lle == NULL) /* NB: caller generates msg */
2035 lle->r_l3addr.addr4 = addr4;
2036 lle->lle_refcnt = 1;
2037 lle->lle_free = in_lltable_destroy_lle;
2038 LLE_LOCK_INIT(lle);
2039 callout_init(&lle->la_timer, CALLOUT_MPSAFE);
2041 return lle;
2049 const struct sockaddr *mask, u_int flags, struct llentry *lle)
2055 lle_addr.s_addr = ntohl(lle->r_l3addr.addr4.s_addr);
2062 ((flags & LLE_STATIC) || !(lle->la_flags & LLE_STATIC)))
2069 in_lltable_free_entry(struct lltable *llt, struct llentry *lle)
2073 LLE_WLOCK_ASSERT(lle);
2076 pkts_dropped = llentry_free(lle);
2153 in_lltable_hash(const struct llentry *lle, uint32_t hsize)
2156 return (in_lltable_hash_dst(lle->r_l3addr.addr4, hsize));
2160 in_lltable_fill_sa_entry(const struct llentry *lle, struct sockaddr *sa)
2168 sin->sin_addr = lle->r_l3addr.addr4;
2174 struct llentry *lle;
2180 LIST_FOREACH(lle, lleh, lle_next) {
2181 if (lle->la_flags & LLE_DELETED)
2183 if (lle->r_l3addr.addr4.s_addr == dst.s_addr)
2187 return (lle);
2196 struct llentry *lle;
2202 lle = in_lltable_find_dst(llt, sin->sin_addr);
2203 if (lle == NULL) {
2213 LLE_WLOCK(lle);
2219 __func__, buf, lle);
2222 llentry_free(lle);
2233 struct llentry *lle;
2239 lle = in_lltable_find_dst(llt, sin->sin_addr);
2241 if (lle != NULL) {
2242 LLE_WLOCK(lle);
2243 return (lle);
2257 lle = in_lltable_new(sin->sin_addr, flags);
2258 if (lle == NULL) {
2259 log(LOG_INFO, "lla_lookup: new lle malloc failed\n");
2262 lle->la_flags = flags;
2264 memcpy(&lle->ll_addr, CLLADDR(ifp->if_sadl), ifp->if_addrlen);
2265 lle->la_flags |= (LLE_VALID | LLE_STATIC);
2268 lltable_link_entry(llt, lle);
2269 LLE_WLOCK(lle);
2271 return (lle);
2276 * If found return lle read locked.
2282 struct llentry *lle;
2288 lle = in_lltable_find_dst(llt, sin->sin_addr);
2290 if (lle == NULL)
2294 LLE_WLOCK(lle);
2296 LLE_RLOCK(lle);
2298 return lle;
2302 in_lltable_dump_entry(struct lltable *llt, struct llentry *lle,
2310 if (lle->la_flags & LLE_DELETED)
2313 sockaddr_in_init(&sin, &lle->r_l3addr.addr4, 0);
2315 return lltable_dump_entry(llt, lle, w, sintosa(&sin));