Lines Matching refs:req
222 static int libbpf_netlink_send_recv(struct libbpf_nla_req *req,
234 req->nh.nlmsg_pid = 0;
235 req->nh.nlmsg_seq = time(NULL);
237 if (send(sock, req, req->nh.nlmsg_len, 0) < 0) {
242 ret = libbpf_netlink_recv(sock, nl_pid, req->nh.nlmsg_seq,
269 struct libbpf_nla_req req = {
278 err = nlattr_add(&req, CTRL_ATTR_FAMILY_NAME, name, len);
282 return libbpf_netlink_send_recv(&req, NETLINK_GENERIC,
291 struct libbpf_nla_req req;
293 memset(&req, 0, sizeof(req));
294 req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg));
295 req.nh.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK;
296 req.nh.nlmsg_type = RTM_SETLINK;
297 req.ifinfo.ifi_family = AF_UNSPEC;
298 req.ifinfo.ifi_index = ifindex;
300 nla = nlattr_begin_nested(&req, IFLA_XDP);
303 ret = nlattr_add(&req, IFLA_XDP_FD, &fd, sizeof(fd));
307 ret = nlattr_add(&req, IFLA_XDP_FLAGS, &flags, sizeof(flags));
312 ret = nlattr_add(&req, IFLA_XDP_EXPECTED_FD, &old_fd,
317 nlattr_end_nested(&req, nla);
319 return libbpf_netlink_send_recv(&req, NETLINK_ROUTE, NULL, NULL, NULL);
433 struct libbpf_nla_req req = {
460 err = libbpf_netlink_send_recv(&req, NETLINK_ROUTE, __dump_link_nlmsg,
483 memset(&req, 0, sizeof(req));
484 req.nh.nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN);
485 req.nh.nlmsg_flags = NLM_F_REQUEST;
486 req.nh.nlmsg_type = id;
487 req.gnl.cmd = NETDEV_CMD_DEV_GET;
488 req.gnl.version = 2;
490 err = nlattr_add(&req, NETDEV_A_DEV_IFINDEX, &ifindex, sizeof(ifindex));
494 err = libbpf_netlink_send_recv(&req, NETLINK_GENERIC,
532 typedef int (*qdisc_config_t)(struct libbpf_nla_req *req);
534 static int clsact_config(struct libbpf_nla_req *req)
536 req->tc.tcm_parent = TC_H_CLSACT;
537 req->tc.tcm_handle = TC_H_MAKE(TC_H_CLSACT, 0);
539 return nlattr_add(req, TCA_KIND, "clsact", sizeof("clsact"));
586 struct libbpf_nla_req req;
592 memset(&req, 0, sizeof(req));
593 req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcmsg));
594 req.nh.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | flags;
595 req.nh.nlmsg_type = cmd;
596 req.tc.tcm_family = AF_UNSPEC;
597 req.tc.tcm_ifindex = OPTS_GET(hook, ifindex, 0);
599 ret = config(&req);
603 return libbpf_netlink_send_recv(&req, NETLINK_ROUTE, NULL, NULL, NULL);
695 static int tc_add_fd_and_name(struct libbpf_nla_req *req, int fd)
707 ret = nlattr_add(req, TCA_BPF_FD, &fd, sizeof(fd));
715 return nlattr_add(req, TCA_BPF_NAME, name, len + 1);
723 struct libbpf_nla_req req;
751 memset(&req, 0, sizeof(req));
752 req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcmsg));
753 req.nh.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | NLM_F_CREATE |
755 req.nh.nlmsg_type = RTM_NEWTFILTER;
756 req.tc.tcm_family = AF_UNSPEC;
757 req.tc.tcm_ifindex = ifindex;
758 req.tc.tcm_handle = handle;
759 req.tc.tcm_info = TC_H_MAKE(priority << 16, htons(protocol));
764 req.tc.tcm_parent = parent;
766 ret = nlattr_add(&req, TCA_KIND, "bpf", sizeof("bpf"));
769 nla = nlattr_begin_nested(&req, TCA_OPTIONS);
772 ret = tc_add_fd_and_name(&req, prog_fd);
776 ret = nlattr_add(&req, TCA_BPF_FLAGS, &bpf_flags, sizeof(bpf_flags));
779 nlattr_end_nested(&req, nla);
783 ret = libbpf_netlink_send_recv(&req, NETLINK_ROUTE, get_tc_info, NULL,
798 struct libbpf_nla_req req;
828 memset(&req, 0, sizeof(req));
829 req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcmsg));
830 req.nh.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK;
831 req.nh.nlmsg_type = RTM_DELTFILTER;
832 req.tc.tcm_family = AF_UNSPEC;
833 req.tc.tcm_ifindex = ifindex;
835 req.tc.tcm_handle = handle;
836 req.tc.tcm_info = TC_H_MAKE(priority << 16, htons(protocol));
842 req.tc.tcm_parent = parent;
845 ret = nlattr_add(&req, TCA_KIND, "bpf", sizeof("bpf"));
850 return libbpf_netlink_send_recv(&req, NETLINK_ROUTE, NULL, NULL, NULL);
870 struct libbpf_nla_req req;
895 memset(&req, 0, sizeof(req));
896 req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcmsg));
897 req.nh.nlmsg_flags = NLM_F_REQUEST;
898 req.nh.nlmsg_type = RTM_GETTFILTER;
899 req.tc.tcm_family = AF_UNSPEC;
900 req.tc.tcm_ifindex = ifindex;
901 req.tc.tcm_handle = handle;
902 req.tc.tcm_info = TC_H_MAKE(priority << 16, htons(protocol));
907 req.tc.tcm_parent = parent;
909 ret = nlattr_add(&req, TCA_KIND, "bpf", sizeof("bpf"));
915 ret = libbpf_netlink_send_recv(&req, NETLINK_ROUTE, get_tc_info, NULL,