Lines Matching full:nh

143 	struct nlmsghdr *nh;  in libbpf_netlink_recv()  local
174 for (nh = (struct nlmsghdr *)iov.iov_base; NLMSG_OK(nh, len); in libbpf_netlink_recv()
175 nh = NLMSG_NEXT(nh, len)) { in libbpf_netlink_recv()
176 if (nh->nlmsg_pid != nl_pid) { in libbpf_netlink_recv()
180 if (nh->nlmsg_seq != seq) { in libbpf_netlink_recv()
184 if (nh->nlmsg_flags & NLM_F_MULTI) in libbpf_netlink_recv()
186 switch (nh->nlmsg_type) { in libbpf_netlink_recv()
188 err = (struct nlmsgerr *)NLMSG_DATA(nh); in libbpf_netlink_recv()
192 libbpf_nla_dump_errormsg(nh); in libbpf_netlink_recv()
201 ret = _fn(nh, fn, cookie); in libbpf_netlink_recv()
234 req->nh.nlmsg_pid = 0; in libbpf_netlink_send_recv()
235 req->nh.nlmsg_seq = time(NULL); in libbpf_netlink_send_recv()
237 if (send(sock, req, req->nh.nlmsg_len, 0) < 0) { in libbpf_netlink_send_recv()
242 ret = libbpf_netlink_recv(sock, nl_pid, req->nh.nlmsg_seq, in libbpf_netlink_send_recv()
249 static int parse_genl_family_id(struct nlmsghdr *nh, libbpf_dump_nlmsg_t fn, in parse_genl_family_id() argument
252 struct genlmsghdr *gnl = NLMSG_DATA(nh); in parse_genl_family_id()
258 NLMSG_PAYLOAD(nh, sizeof(*gnl)), NULL); in parse_genl_family_id()
270 .nh.nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN), in libbpf_netlink_resolve_genl_family_id()
271 .nh.nlmsg_type = GENL_ID_CTRL, in libbpf_netlink_resolve_genl_family_id()
272 .nh.nlmsg_flags = NLM_F_REQUEST, in libbpf_netlink_resolve_genl_family_id()
294 req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg)); in __bpf_set_link_xdp_fd_replace()
295 req.nh.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK; in __bpf_set_link_xdp_fd_replace()
296 req.nh.nlmsg_type = RTM_SETLINK; in __bpf_set_link_xdp_fd_replace()
405 static int parse_xdp_features(struct nlmsghdr *nh, libbpf_dump_nlmsg_t fn, in parse_xdp_features() argument
408 struct genlmsghdr *gnl = NLMSG_DATA(nh); in parse_xdp_features()
415 NLMSG_PAYLOAD(nh, sizeof(*gnl)), NULL); in parse_xdp_features()
434 .nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg)), in bpf_xdp_query()
435 .nh.nlmsg_type = RTM_GETLINK, in bpf_xdp_query()
436 .nh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST, in bpf_xdp_query()
484 req.nh.nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN); in bpf_xdp_query()
485 req.nh.nlmsg_flags = NLM_F_REQUEST; in bpf_xdp_query()
486 req.nh.nlmsg_type = id; in bpf_xdp_query()
593 req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcmsg)); in tc_qdisc_modify()
594 req.nh.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | flags; in tc_qdisc_modify()
595 req.nh.nlmsg_type = cmd; in tc_qdisc_modify()
681 static int get_tc_info(struct nlmsghdr *nh, libbpf_dump_nlmsg_t fn, in get_tc_info() argument
684 struct tcmsg *tc = NLMSG_DATA(nh); in get_tc_info()
689 NLMSG_PAYLOAD(nh, sizeof(*tc)), NULL); in get_tc_info()
692 return __get_tc_info(cookie, tc, tb, nh->nlmsg_flags & NLM_F_ECHO); in get_tc_info()
752 req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcmsg)); in bpf_tc_attach()
753 req.nh.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | NLM_F_CREATE | in bpf_tc_attach()
755 req.nh.nlmsg_type = RTM_NEWTFILTER; in bpf_tc_attach()
829 req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcmsg)); in __bpf_tc_detach()
830 req.nh.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK; in __bpf_tc_detach()
831 req.nh.nlmsg_type = RTM_DELTFILTER; in __bpf_tc_detach()
896 req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcmsg)); in bpf_tc_query()
897 req.nh.nlmsg_flags = NLM_F_REQUEST; in bpf_tc_query()
898 req.nh.nlmsg_type = RTM_GETTFILTER; in bpf_tc_query()