Lines Matching refs:lle
72 lle_state_to_nl_state(int family, struct llentry *lle) in lle_state_to_nl_state() argument
74 int state = lle->ln_state; in lle_state_to_nl_state()
78 if (lle->la_flags & (LLE_STATIC | LLE_IFADDR)) in lle_state_to_nl_state()
109 lle_flags_to_nl_flags(const struct llentry *lle) in lle_flags_to_nl_flags() argument
113 if (lle->la_flags & LLE_IFADDR) in lle_flags_to_nl_flags()
115 if (lle->la_flags & LLE_PUB) in lle_flags_to_nl_flags()
117 if (lle->la_flags & LLE_STATIC) in lle_flags_to_nl_flags()
119 if (lle->ln_router != 0) in lle_flags_to_nl_flags()
126 get_lle_next_ts(const struct llentry *lle) in get_lle_next_ts() argument
128 if (lle->la_expire == 0) in get_lle_next_ts()
130 return (lle->la_expire + lle->lle_remtime / hz + time_second - time_uptime); in get_lle_next_ts()
134 dump_lle_locked(struct llentry *lle, void *arg) in dump_lle_locked() argument
149 llentry_print_buf_lltable(lle, llebuf, sizeof(llebuf)); in dump_lle_locked()
159 ndm->ndm_state = lle_state_to_nl_state(wa->family, lle); in dump_lle_locked()
160 ndm->ndm_flags = lle_flags_to_nl_flags(lle); in dump_lle_locked()
165 addr.in = lle->r_l3addr.addr4; in dump_lle_locked()
171 addr.in6 = lle->r_l3addr.addr6; in dump_lle_locked()
178 if (lle->r_flags & RLLE_VALID) { in dump_lle_locked()
181 nlattr_add(nw, NDA_LLADDR, addrlen, lle->ll_addr); in dump_lle_locked()
184 nlattr_add_u32(nw, NDA_PROBES, lle->la_asked); in dump_lle_locked()
191 cache->ndm_refcnt = lle->lle_refcnt; in dump_lle_locked()
195 nlattr_add_u32(nw, NDAF_NEXT_STATE_TS, get_lle_next_ts(lle)); in dump_lle_locked()
209 dump_lle(struct lltable *llt, struct llentry *lle, void *arg) in dump_lle() argument
213 LLE_RLOCK(lle); in dump_lle()
214 error = dump_lle_locked(lle, arg); in dump_lle()
215 LLE_RUNLOCK(lle); in dump_lle()
284 struct llentry *lle = lla_lookup(llt, LLE_UNLOCKED, dst); in get_lle() local
285 if (lle == NULL) in get_lle()
291 return (dump_lle(llt, lle, wa)); in get_lle()
423 struct llentry *lle = lltable_alloc_entry(llt, lle_flags, attrs.nda_dst); in rtnl_handle_newneigh() local
424 if (lle == NULL) in rtnl_handle_newneigh()
426 lltable_set_entry_addr(attrs.nda_ifp, lle, linkhdr, linkhdrsize, lladdr_off); in rtnl_handle_newneigh()
429 lle->la_expire = 0; in rtnl_handle_newneigh()
431 lle->la_expire = attrs.ndaf_next_ts - time_second + time_uptime; in rtnl_handle_newneigh()
435 LLE_WLOCK(lle); in rtnl_handle_newneigh()
446 lltable_link_entry(llt, lle); in rtnl_handle_newneigh()
453 lltable_link_entry(llt, lle); in rtnl_handle_newneigh()
461 llentry_free(lle); in rtnl_handle_newneigh()
466 EVENTHANDLER_INVOKE(lle_event, lle, LLENTRY_RESOLVED); in rtnl_handle_newneigh()
467 LLE_WUNLOCK(lle); in rtnl_handle_newneigh()
468 llt->llt_post_resolved(llt, lle); in rtnl_handle_newneigh()
553 rtnl_lle_event(void *arg __unused, struct llentry *lle, int evt) in rtnl_lle_event() argument
559 LLE_WLOCK_ASSERT(lle); in rtnl_lle_event()
561 ifp = lltable_get_ifp(lle->lle_tbl); in rtnl_lle_event()
562 family = lltable_get_af(lle->lle_tbl); in rtnl_lle_event()
582 dump_lle_locked(lle, &wa); in rtnl_lle_event()