llentry
struct llentry;
_handle_arp_update_event(void *arg, struct llentry *lle, int evt __unused)
struct llentry *lle;
uint32_t *pflags, struct llentry **plle)
struct llentry *lle = NULL;
uint32_t *pflags, struct llentry **plle)
struct llentry *lle = NULL;
llatbl_lle_show(struct llentry *lle)
DB_SHOW_COMMAND(llentry, db_show_llentry)
llatbl_lle_show((struct llentry *)addr);
struct llentry *lle;
lltable_append_entry_queue(struct llentry *lle, struct mbuf *m,
struct llentry *lle, *next;
htable_link_entry(struct lltable *llt, struct llentry *lle)
htable_unlink_entry(struct llentry *lle)
htable_prefix_free_cb(struct lltable *llt, struct llentry *lle, void *farg)
struct llentry *lle, *next;
struct llentry *lle, *next;
lltable_drop_entry_queue(struct llentry *lle)
lltable_set_entry_addr(struct ifnet *ifp, struct llentry *lle,
lltable_trylock(struct llentry *lle)
lltable_try_set_entry_addr(struct ifnet *ifp, struct llentry *lle,
struct llentry *
llentry_lookup_family(struct llentry *lle, int family)
struct llentry *child_lle;
llentry_get_upper_family(const struct llentry *lle, int default_family)
llentry_print_buf(const struct llentry *lle, struct ifnet *ifp, int family,
llentry_print_buf_lltable(const struct llentry *lle, char *buf, size_t bufsize)
llentry_request_feedback(struct llentry *lle)
struct llentry *child_lle;
llentry_mark_used(struct llentry *lle)
llentry_get_hittime_raw(struct llentry *lle)
llentry_get_hittime(struct llentry *lle)
struct llentry *child_lle;
llentry_update_ifaddr(struct lltable *llt, struct llentry *lle, void *farg)
llentry_free(struct llentry *lle)
lltable_free_cb(struct lltable *llt, struct llentry *lle, void *farg)
struct llentry *lle, *next;
struct llentry *lle;
lltable_delete_conditional_cb(struct lltable *llt, struct llentry *lle,
struct llentry *lle, *next;
struct llentry *
lltable_free_entry(struct lltable *llt, struct llentry *lle)
lltable_link_entry(struct lltable *llt, struct llentry *lle)
lltable_link_child_entry(struct llentry *lle, struct llentry *child_lle)
lltable_unlink_child_entry(struct llentry *child_lle)
struct llentry *lle = child_lle->lle_parent;
CK_SLIST_REMOVE(&lle->lle_children, child_lle, llentry, lle_child_next);
lltable_unlink_entry(struct lltable *llt, struct llentry *lle)
lltable_fill_sa_entry(const struct llentry *lle, struct sockaddr *sa)
struct llentry *lle, *lle_tmp;
typedef struct llentry *(llt_lookup_t)(struct lltable *, u_int flags,
typedef struct llentry *(llt_alloc_t)(struct lltable *, u_int flags,
typedef void (llt_delete_t)(struct lltable *, struct llentry *);
typedef int (llt_dump_entry_t)(struct lltable *, struct llentry *,
typedef uint32_t (llt_hash_t)(const struct llentry *, uint32_t);
const struct sockaddr *, u_int, struct llentry *);
typedef void (llt_free_entry_t)(struct lltable *, struct llentry *);
typedef void (llt_fill_sa_entry_t)(const struct llentry *, struct sockaddr *);
typedef int (llt_link_entry_t)(struct lltable *, struct llentry *);
typedef int (llt_unlink_entry_t)(struct llentry *);
typedef void (llt_mark_used_t)(struct llentry *);
typedef void (llt_post_resolved_t)(struct lltable *, struct llentry *);
typedef int (llt_foreach_cb_t)(struct lltable *, struct llentry *, void *);
typedef bool (llt_match_cb_t)(struct lltable *, struct llentry *, void *);
size_t lltable_append_entry_queue(struct llentry *,
size_t llentry_free(struct llentry *);
size_t lltable_drop_entry_queue(struct llentry *);
void lltable_set_entry_addr(struct ifnet *ifp, struct llentry *lle,
int lltable_try_set_entry_addr(struct ifnet *ifp, struct llentry *lle,
struct llentry *lltable_alloc_entry(struct lltable *llt, u_int flags,
void lltable_free_entry(struct lltable *llt, struct llentry *lle);
int lltable_link_entry(struct lltable *llt, struct llentry *lle);
int lltable_unlink_entry(struct lltable *llt, struct llentry *lle);
void lltable_link_child_entry(struct llentry *parent_lle, struct llentry *child_lle);
void lltable_unlink_child_entry(struct llentry *child_lle);
void lltable_fill_sa_entry(const struct llentry *lle, struct sockaddr *sa);
bool lltable_trylock(struct llentry *lle);
static __inline struct llentry *
void llentry_request_feedback(struct llentry *lle);
void llentry_mark_used(struct llentry *lle);
time_t llentry_get_hittime(struct llentry *lle);
int llentry_get_upper_family(const struct llentry *lle, int default_family);
llentry_provide_feedback(struct llentry *lle)
struct llentry *llentry_lookup_family(struct llentry *lle, int family);
typedef void (*lle_event_fn)(void *, struct llentry *, int);
struct llentry;
CK_LIST_HEAD(llentries, llentry);
CK_LIST_ENTRY(llentry) lle_next;
void (*lle_free)(struct llentry *);
CK_SLIST_HEAD(llentry_children_head,llentry) lle_children; /* child encaps */
CK_SLIST_ENTRY(llentry) lle_child_next; /* child encaps */
struct llentry *lle_parent; /* parent for a child */
CK_LIST_ENTRY(llentry) lle_chain; /* chain of deleted items */
struct llentry *ro_lle;
struct llentry;
char *llentry_print_buf(const struct llentry *lle, struct ifnet *ifp, int family, char *buf,
char *llentry_print_buf_lltable(const struct llentry *lle, char *buf, size_t bufsize);
struct llentry *lle;
arp_grab_holdchain(struct llentry *la)
arp_flush_holdchain(struct ifnet *ifp, struct llentry *la, struct mbuf *chain)
int bridged, struct llentry *la)
arp_mark_lle_reachable(struct llentry *la, struct ifnet *ifp)
struct llentry *lle, *lle_tmp;
struct ifnet *ifp, int bridged, struct llentry *la);
static void arp_mark_lle_reachable(struct llentry *la, struct ifnet *ifp);
struct llentry *lle = (struct llentry *)arg;
struct llentry **plle)
struct llentry *la = NULL, *la_tmp;
struct llentry **plle)
struct llentry *la = NULL;
struct llentry *la = NULL, *la_tmp;
struct llentry;
struct llentry **plle);
struct llentry base;
struct llentry *lle;
lle = __containerof(ctx, struct llentry, lle_epoch_ctx);
in_lltable_destroy_lle(struct llentry *lle)
static struct llentry *
const struct sockaddr *smask, u_int flags, struct llentry *lle)
in_lltable_free_entry(struct lltable *llt, struct llentry *lle)
in_lltable_hash(const struct llentry *lle, uint32_t hsize)
in_lltable_fill_sa_entry(const struct llentry *lle, struct sockaddr *sa)
static inline struct llentry *
struct llentry *lle;
in_lltable_delete_entry(struct lltable *llt, struct llentry *lle)
static struct llentry *
struct llentry *lle;
static struct llentry *
struct llentry *lle;
in_lltable_dump_entry(struct lltable *llt, struct llentry *lle,
in_lltable_post_resolved(struct lltable *llt, struct llentry *lle)
struct llentry *ro_lle;
struct llentry *ro_lle;
toe_lle_event(void *arg __unused, struct llentry *lle, int evt)
struct llentry *ln = NULL;
struct llentry base;
struct llentry *lle;
lle = __containerof(ctx, struct llentry, lle_epoch_ctx);
in6_lltable_destroy_lle(struct llentry *lle)
static struct llentry *
const struct sockaddr *smask, u_int flags, struct llentry *lle)
in6_lltable_free_entry(struct lltable *llt, struct llentry *lle)
in6_lltable_hash(const struct llentry *lle, uint32_t hsize)
in6_lltable_fill_sa_entry(const struct llentry *lle, struct sockaddr *sa)
static inline struct llentry *
struct llentry *lle;
in6_lltable_delete_entry(struct lltable *llt, struct llentry *lle)
static struct llentry *
struct llentry *lle;
static struct llentry *
struct llentry *lle;
in6_lltable_dump_entry(struct lltable *llt, struct llentry *lle,
in6_lltable_post_resolved(struct lltable *llt, struct llentry *lle)
in6_lle_match_pub(struct lltable *llt, struct llentry *lle, void *farg)
struct llentry *ro_lle;
struct llentry *
struct llentry *ln;
static struct llentry *
struct llentry *ln;
struct llentry *lle;
nd6_free_children(struct llentry *lle)
struct llentry *child_lle;
nd6_try_set_entry_addr_locked(struct ifnet *ifp, struct llentry *lle, char *lladdr)
struct llentry *child_lle;
nd6_try_set_entry_addr(struct ifnet *ifp, struct llentry *lle, char *lladdr)
nd6_free(struct llentry **lnp, int gc)
struct llentry *ln;
static void nd6_free(struct llentry **, int);
static void nd6_free_redirect(const struct llentry *);
static void nd6_llinfo_settimer_locked(struct llentry *, long);
const struct sockaddr_in6 *, u_char *, uint32_t *, struct llentry **);
nd6_free_redirect(const struct llentry *ln)
nd6_lle_event(void *arg __unused, struct llentry *lle, int evt)
struct llentry *ln;
struct llentry *ln = NULL, *ln_tmp;
nd6_grab_holdchain(struct llentry *ln)
struct llentry **plle)
struct llentry *ln = NULL;
static __noinline struct llentry *
struct llentry *child_lle = NULL;
struct llentry *lle, *lle_tmp;
struct llentry **plle)
struct llentry *lle = NULL;
struct llentry *lle_parent = lle->lle_parent;
nd6_flush_holdchain(struct ifnet *ifp, struct llentry *lle, struct mbuf *chain)
nd6_flush_children_holdchain(struct ifnet *ifp, struct llentry *lle)
struct llentry *child_lle;
struct llentry *ln, *ln_tmp;
nd6_llinfo_settimer_locked(struct llentry *ln, long tick)
nd6_llinfo_get_holdsrc(struct llentry *ln, struct in6_addr *src)
nd6_is_stale(struct llentry *lle, long *pdelay, int *do_switch)
nd6_llinfo_setstate(struct llentry *lle, int newstate)
struct llentry *ln;
ln = (struct llentry *)arg;
struct llentry *nd6_lookup(const struct in6_addr *, int, struct ifnet *);
void nd6_llinfo_setstate(struct llentry *lle, int newstate);
const struct sockaddr *, u_char *, uint32_t *, struct llentry **);
bool nd6_try_set_entry_addr(struct ifnet *ifp, struct llentry *lle, char *lladdr);
struct mbuf *nd6_grab_holdchain(struct llentry *);
int nd6_flush_holdchain(struct ifnet *, struct llentry *, struct mbuf *);
void nd6_flush_children_holdchain(struct ifnet *, struct llentry *);
struct llentry;
struct llentry *ln;
struct llentry *ln;
struct llentry *ln = NULL;
lle_flags_to_nl_flags(const struct llentry *lle)
get_lle_next_ts(const struct llentry *lle)
dump_lle_locked(struct llentry *lle, void *arg)
dump_lle(struct lltable *llt, struct llentry *lle, void *arg)
struct llentry *lle = lla_lookup(llt, LLE_UNLOCKED, dst);
struct llentry *lle = lltable_alloc_entry(llt, lle_flags, attrs.nda_dst);
struct llentry *lle_tmp = lla_lookup(llt, LLE_EXCLUSIVE, attrs.nda_dst);
rtnl_lle_event(void *arg __unused, struct llentry *lle, int evt)
lle_state_to_nl_state(int family, struct llentry *lle)