Lines Matching refs:env

26 static struct env {
38 } env;
47 if (level == LIBBPF_DEBUG && !env.verbosity)
90 env.feature.action = XDP_PASS;
91 env.feature.drv_feature = NETDEV_XDP_ACT_BASIC;
93 env.feature.drv_feature = NETDEV_XDP_ACT_BASIC;
94 env.feature.action = XDP_DROP;
96 env.feature.drv_feature = NETDEV_XDP_ACT_BASIC;
97 env.feature.action = XDP_ABORTED;
99 env.feature.drv_feature = NETDEV_XDP_ACT_BASIC;
100 env.feature.action = XDP_TX;
102 env.feature.drv_feature = NETDEV_XDP_ACT_REDIRECT;
103 env.feature.action = XDP_REDIRECT;
105 env.feature.drv_feature = NETDEV_XDP_ACT_NDO_XMIT;
115 switch (env.feature.action) {
130 if (env.feature.drv_feature == NETDEV_XDP_ACT_NDO_XMIT)
140 env.verbosity = true;
143 env.is_tester = true;
154 &env.dut_addr, NULL)) {
163 &env.dut_ctrl_addr, NULL)) {
171 if (make_sockaddr(AF_INET6, arg, 0, &env.tester_addr, NULL)) {
186 env.ifindex = if_nametoindex(arg);
187 if (!env.ifindex)
188 env.ifindex = strtoul(arg, NULL, 0);
189 if (!env.ifindex || !if_indextoname(env.ifindex, env.ifname)) {
212 env.feature.drv_feature = NETDEV_XDP_ACT_NDO_XMIT;
213 env.feature.action = -EINVAL;
214 env.ifindex = -ENODEV;
215 strcpy(env.ifname, "unknown");
217 &env.dut_ctrl_addr, NULL);
219 &env.dut_addr, NULL);
220 make_sockaddr(AF_INET6, "::ffff:127.0.0.1", 0, &env.tester_addr, NULL);
261 env.ifname);
270 env.ifname, strerror(-err));
280 enum xdp_action action = env.feature.action;
285 if (env.feature.drv_feature == NETDEV_XDP_ACT_NDO_XMIT) {
287 .ifindex = env.ifindex,
332 err = bpf_xdp_attach(env.ifindex, bpf_program__fd(prog), flags, NULL);
335 env.ifname);
372 "Failed creating control socket on device %s\n", env.ifname);
380 env.ifname);
423 bpf_xdp_detach(env.ifindex, flags, NULL);
434 err = bpf_xdp_query(env.ifindex, XDP_FLAGS_DRV_MODE,
439 env.ifname);
488 bpf_xdp_detach(env.ifindex, flags, NULL);
510 switch (env.feature.action) {
522 if (env.feature.drv_feature == NETDEV_XDP_ACT_NDO_XMIT)
559 env.ifname);
567 (struct sockaddr *)&env.dut_addr, sizeof(env.dut_addr));
592 err = connect(sockfd, (struct sockaddr *)&env.dut_ctrl_addr,
593 sizeof(env.dut_ctrl_addr));
609 if (env.feature.drv_feature == NETDEV_XDP_ACT_NDO_XMIT ||
610 env.feature.action == XDP_TX)
615 err = bpf_xdp_attach(env.ifindex, bpf_program__fd(prog), flags, NULL);
618 env.ifname);
647 env.feature.drv_feature & advertised_feature ? GREEN("ADVERTISED")
650 bpf_xdp_detach(env.ifindex, flags, NULL);
673 if (env.ifindex < 0) {
674 fprintf(stderr, "Invalid device name %s\n", env.ifname);
686 ((struct sockaddr_in6 *)&env.tester_addr)->sin6_addr;
688 ((struct sockaddr_in6 *)&env.dut_addr)->sin6_addr;
703 if (env.is_tester) {
706 env.ifname);
710 fprintf(stdout, "Starting test on device %s\n", env.ifname);