Lines Matching refs:lle

2506 in6_lltable_free(struct lltable *llt, struct llentry *lle)
2508 LLE_WUNLOCK(lle);
2509 LLE_LOCK_DESTROY(lle);
2510 free(lle, M_LLTABLE);
2516 struct in6_llentry *lle;
2518 lle = malloc(sizeof(struct in6_llentry), M_LLTABLE, M_NOWAIT | M_ZERO);
2519 if (lle == NULL) /* NB: caller generates msg */
2522 lle->l3_addr6 = *(const struct sockaddr_in6 *)l3addr;
2523 lle->base.lle_refcnt = 1;
2524 lle->base.lle_free = in6_lltable_free;
2525 LLE_LOCK_INIT(&lle->base);
2526 callout_init_rw(&lle->base.ln_timer_ch, &lle->base.lle_lock,
2529 return (&lle->base);
2538 struct llentry *lle, *next;
2547 LIST_FOREACH_SAFE(lle, &llt->lle_head[i], lle_next, next) {
2549 &satosin6(L3_ADDR(lle))->sin6_addr,
2552 !(lle->la_flags & LLE_STATIC))) {
2553 LLE_WLOCK(lle);
2554 if (callout_stop(&lle->la_timer))
2555 LLE_REMREF(lle);
2556 llentry_free(lle);
2608 struct llentry *lle;
2618 LIST_FOREACH(lle, lleh, lle_next) {
2619 struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *)L3_ADDR(lle);
2620 if (lle->la_flags & LLE_DELETED)
2627 if (lle == NULL) {
2639 lle = in6_lltable_new(l3addr, flags);
2640 if (lle == NULL) {
2641 log(LOG_INFO, "lla_lookup: new lle malloc failed\n");
2644 lle->la_flags = flags & ~LLE_CREATE;
2646 bcopy(IF_LLADDR(ifp), &lle->ll_addr, ifp->if_addrlen);
2647 lle->la_flags |= (LLE_VALID | LLE_STATIC);
2650 lle->lle_tbl = llt;
2651 lle->lle_head = lleh;
2652 lle->la_flags |= LLE_LINKED;
2653 LIST_INSERT_HEAD(lleh, lle, lle_next);
2655 if (!(lle->la_flags & LLE_IFADDR) || (flags & LLE_IFADDR)) {
2656 LLE_WLOCK(lle);
2657 lle->la_flags |= LLE_DELETED;
2659 log(LOG_INFO, "ifaddr cache = %p is deleted\n", lle);
2661 if ((lle->la_flags &
2663 llentry_free(lle);
2665 LLE_WUNLOCK(lle);
2667 lle = (void *)-1;
2669 if (LLE_IS_VALID(lle)) {
2671 LLE_WLOCK(lle);
2673 LLE_RLOCK(lle);
2675 return (lle);
2682 struct llentry *lle;
2704 LIST_FOREACH(lle, &llt->lle_head[i], lle_next) {
2708 if ((lle->la_flags & (LLE_DELETED|LLE_VALID)) != LLE_VALID)
2711 if (prison_if(wr->td->td_ucred, L3_ADDR(lle)) != 0)
2727 bcopy(L3_ADDR(lle), &ndpc.sin6, L3_ADDR_LEN(lle));
2732 if (lle->la_flags & LLE_PUB)
2741 bcopy(&lle->ll_addr, LLADDR(sdl), ifp->if_addrlen);
2743 lle->la_flags & LLE_STATIC ? 0 : lle->la_expire;
2745 if (lle->la_flags & LLE_STATIC)