nlpcb
rtnl_newlink_to_linux(struct nlmsghdr *hdr, struct nlpcb *nlp,
rtnl_newaddr_to_linux(struct nlmsghdr *hdr, struct nlpcb *nlp,
rtnl_newneigh_to_linux(struct nlmsghdr *hdr, struct nlpcb *nlp,
rtnl_newroute_to_linux(struct nlmsghdr *hdr, struct nlpcb *nlp,
rtnl_to_linux(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_writer *nw)
nlmsg_error_to_linux(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_writer *nw)
nlmsg_to_linux(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_writer *nw)
nlmsgs_to_linux(struct nl_buf *orig, struct nlpcb *nlp, const struct ifnet *ifp)
struct nlpcb *_nl_get_thread_nlp(struct thread *td);
static inline struct nlpcb *
struct nlpcb *nl_get_thread_nlp(struct thread *td);
bool nlp_has_priv(struct nlpcb *nlp, int priv);
struct ucred *nlp_get_cred(struct nlpcb *nlp);
uint32_t nlp_get_pid(const struct nlpcb *nlp);
bool nlp_unconstrained_vnet(const struct nlpcb *nlp);
struct nlpcb *
nl_set_thread_nlp(struct thread *td, struct nlpcb *nlp)
static struct nlpcb *
struct nlpcb *nlp;
nlp_join_group(struct nlpcb *nlp, unsigned int group_id)
nlp_leave_group(struct nlpcb *nlp, unsigned int group_id)
nlp_memberof_group(struct nlpcb *nlp, unsigned int group_id)
nlp_get_groups_compat(struct nlpcb *nlp)
struct nlpcb *nlp_last = NULL;
struct nlpcb *nlp;
struct nlpcb *nlp;
nl_bind_locked(struct nlpcb *nlp, struct sockaddr_nl *snl)
struct nlpcb *nlp;
nlp = malloc(sizeof(struct nlpcb), M_PCB, M_WAITOK | M_ZERO);
struct nlpcb *nlp = sotonlpcb(so);
nl_assign_port(struct nlpcb *nlp, uint32_t port_id)
nl_autobind_port(struct nlpcb *nlp, uint32_t candidate_id)
struct nlpcb *nlp;
struct nlpcb *nlp;
nlp = __containerof(ctx, struct nlpcb, nl_epoch_ctx);
struct nlpcb *nlp;
struct nlpcb *nlp = sotonlpcb(so);
nl_createcontrol(struct nlpcb *nlp)
struct nlpcb *nlp = sotonlpcb(so);
struct nlpcb *nlp = sotonlpcb(so);
struct nlpcb *nlp = npt->nlp;
nlp_unconstrained_vnet(const struct nlpcb *nlp)
nl_writer_unicast_stub(struct nl_writer *nw, size_t size, struct nlpcb *nlp,
static struct nlpcb *
nl_writer_unicast(struct nl_writer *nw, size_t size, struct nlpcb *nlp,
struct nlpcb *
nlp_has_priv(struct nlpcb *nlp, int priv)
nlp_get_cred(struct nlpcb *nlp)
nlp_get_pid(const struct nlpcb *nlp)
nl_process_received(struct nlpcb *nlp)
nl_on_transmit(struct nlpcb *nlp)
struct nlpcb *nlp = (struct nlpcb *)_arg;
nl_send(struct nl_writer *nw, struct nlpcb *nlp)
struct nlpcb *nlp, struct nl_pstate *npt)
nl_process_nbuf(struct nl_buf *nb, struct nlpcb *nlp)
static bool nl_process_nbuf(struct nl_buf *nb, struct nlpcb *nlp);
nl_schedule_taskqueue(struct nlpcb *nlp)
nl_process_received_one(struct nlpcb *nlp)
struct nlpcb;
struct nlpcb *nlp; /* Originator socket */
nlmsg_ack(struct nlpcb *nlp, int error, struct nlmsghdr *hdr,
_nl_writer_unicast(struct nl_writer *nw, size_t size, struct nlpcb *nlp,
bool nl_writer_unicast(struct nl_writer *, size_t, struct nlpcb *, bool waitok);
struct nlpcb *nlp;
bool _nl_writer_unicast(struct nl_writer *, size_t, struct nlpcb *nlp, bool);
nl_writer_unicast(struct nl_writer *nw, size_t size, struct nlpcb *nlp,
struct nlpcb *nlp = npt->nlp;
CK_LIST_HEAD(nlpcb_head, nlpcb) ctl_pcb_head;
void nl_set_thread_nlp(struct thread *td, struct nlpcb *nlp);
bool nl_send(struct nl_writer *, struct nlpcb *);
void nlmsg_ack(struct nlpcb *nlp, int error, struct nlmsghdr *nlmsg,
void nl_on_transmit(struct nlpcb *nlp);
void nl_schedule_taskqueue(struct nlpcb *nlp);
void nl_process_receive_locked(struct nlpcb *nlp);
struct nlpcb *nlp, bool waitok);
struct nlpcb * (*nl_get_thread_nlp)(struct thread *td);
CK_LIST_ENTRY(nlpcb) nl_next;
CK_LIST_ENTRY(nlpcb) nl_port_next;
#define sotonlpcb(so) ((struct nlpcb *)(so)->so_pcb)
CK_LIST_HEAD(nl_pid_head, nlpcb) ctl_port_head;
rtnl_handle_getaddr(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt)
if_t ifp, struct nlpcb *nlp, struct nl_pstate *npt)
if_t ifp, struct nlpcb *nlp, struct nl_pstate *npt)
if_t ifp, struct nlpcb *nlp, struct nl_pstate *npt)
if_t ifp, struct nlpcb *nlp, struct nl_pstate *npt)
rtnl_handle_addr(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt)
rtnl_handle_getlink(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt)
rtnl_handle_dellink(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt)
struct nlattr_bmask *bm, struct nlpcb *nlp, struct nl_pstate *npt)
struct nlattr_bmask *bm, struct nlpcb *nlp, struct nl_pstate *npt)
struct nlpcb *so;
rtnl_handle_newlink(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt)
rtnl_handle_newneigh(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt)
rtnl_handle_delneigh(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt)
rtnl_handle_getneigh(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt)
struct nlpcb *so;
rtnl_handle_getnhop(struct nlmsghdr *hdr, struct nlpcb *nlp,
struct nlpcb *so;
rtnl_handle_newnhop(struct nlmsghdr *hdr, struct nlpcb *nlp,
rtnl_handle_delnhop(struct nlmsghdr *hdr, struct nlpcb *nlp,
const struct nlattr_bmask *bm, struct nlpcb *nlp, struct nl_pstate *npt);
const struct nlattr_bmask *bm, struct nlpcb *nlp, struct nl_pstate *npt);
struct nlpcb;
typedef int rtnl_msg_cb_f(struct nlmsghdr *hdr, struct nlpcb *nlp,
rtnl_handle_delroute(struct nlmsghdr *hdr, struct nlpcb *nlp,
rtnl_handle_getroute(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *npt)
struct nlpcb *nlp, struct nlmsghdr *hdr)
struct nlpcb *nlp;
handle_rtm_getroute(struct nlpcb *nlp, struct nl_parsed_route *attrs,
handle_rtm_dump(struct nlpcb *nlp, uint32_t fibnum, int family,
rtnl_handle_newroute(struct nlmsghdr *hdr, struct nlpcb *nlp,
dump_state(struct nlpcb *nlp, const struct nlmsghdr *hdr, struct pf_kstate *s,
handle_dumpstates(struct nlpcb *nlp, struct nl_parsed_state *attrs,
handle_getstate(struct nlpcb *nlp, struct nl_parsed_state *attrs,
dump_creatorid(struct nlpcb *nlp, const struct nlmsghdr *hdr, uint32_t creator,