hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/tools/testing/selftests/bpf/prog_tests/sk_assign.c
....@@ -29,7 +29,23 @@
2929 static bool
3030 configure_stack(void)
3131 {
32
+ char tc_version[128];
3233 char tc_cmd[BUFSIZ];
34
+ char *prog;
35
+ FILE *tc;
36
+
37
+ /* Check whether tc is built with libbpf. */
38
+ tc = popen("tc -V", "r");
39
+ if (CHECK_FAIL(!tc))
40
+ return false;
41
+ if (CHECK_FAIL(!fgets(tc_version, sizeof(tc_version), tc)))
42
+ return false;
43
+ if (strstr(tc_version, ", libbpf "))
44
+ prog = "test_sk_assign_libbpf.o";
45
+ else
46
+ prog = "test_sk_assign.o";
47
+ if (CHECK_FAIL(pclose(tc)))
48
+ return false;
3349
3450 /* Move to a new networking namespace */
3551 if (CHECK_FAIL(unshare(CLONE_NEWNET)))
....@@ -46,8 +62,8 @@
4662 /* Load qdisc, BPF program */
4763 if (CHECK_FAIL(system("tc qdisc add dev lo clsact")))
4864 return false;
49
- sprintf(tc_cmd, "%s %s %s %s", "tc filter add dev lo ingress bpf",
50
- "direct-action object-file ./test_sk_assign.o",
65
+ sprintf(tc_cmd, "%s %s %s %s %s", "tc filter add dev lo ingress bpf",
66
+ "direct-action object-file", prog,
5167 "section classifier/sk_assign_test",
5268 (env.verbosity < VERBOSE_VERY) ? " 2>/dev/null" : "verbose");
5369 if (CHECK(system(tc_cmd), "BPF load failed;",
....@@ -129,15 +145,12 @@
129145 static ssize_t
130146 rcv_msg(int srv_client, int type)
131147 {
132
- struct sockaddr_storage ss;
133148 char buf[BUFSIZ];
134
- socklen_t slen;
135149
136150 if (type == SOCK_STREAM)
137151 return read(srv_client, &buf, sizeof(buf));
138152 else
139
- return recvfrom(srv_client, &buf, sizeof(buf), 0,
140
- (struct sockaddr *)&ss, &slen);
153
+ return recvfrom(srv_client, &buf, sizeof(buf), 0, NULL, NULL);
141154 }
142155
143156 static int