Lines Matching full:target
111 static void test_tc_opts_before_target(int target) in test_tc_opts_before_target() argument
139 assert_mprog_count(target, 0); in test_tc_opts_before_target()
141 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_before_target()
145 assert_mprog_count(target, 1); in test_tc_opts_before_target()
147 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_before_target()
151 assert_mprog_count(target, 2); in test_tc_opts_before_target()
158 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_before_target()
181 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_before_target()
188 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_before_target()
204 err = bpf_prog_attach_opts(fd4, loopback, target, &opta); in test_tc_opts_before_target()
208 assert_mprog_count(target, 4); in test_tc_opts_before_target()
213 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_before_target()
234 err = bpf_prog_detach_opts(fd4, loopback, target, &optd); in test_tc_opts_before_target()
236 assert_mprog_count(target, 3); in test_tc_opts_before_target()
239 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_before_target()
241 assert_mprog_count(target, 2); in test_tc_opts_before_target()
244 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_before_target()
246 assert_mprog_count(target, 1); in test_tc_opts_before_target()
249 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_before_target()
251 assert_mprog_count(target, 0); in test_tc_opts_before_target()
263 static void test_tc_opts_after_target(int target) in test_tc_opts_after_target() argument
291 assert_mprog_count(target, 0); in test_tc_opts_after_target()
293 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_after_target()
297 assert_mprog_count(target, 1); in test_tc_opts_after_target()
299 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_after_target()
303 assert_mprog_count(target, 2); in test_tc_opts_after_target()
310 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_after_target()
333 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_after_target()
340 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_after_target()
356 err = bpf_prog_attach_opts(fd4, loopback, target, &opta); in test_tc_opts_after_target()
360 assert_mprog_count(target, 4); in test_tc_opts_after_target()
365 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_after_target()
386 err = bpf_prog_detach_opts(fd4, loopback, target, &optd); in test_tc_opts_after_target()
388 assert_mprog_count(target, 3); in test_tc_opts_after_target()
393 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_after_target()
405 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_after_target()
407 assert_mprog_count(target, 2); in test_tc_opts_after_target()
412 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_after_target()
423 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_after_target()
425 assert_mprog_count(target, 1); in test_tc_opts_after_target()
430 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_after_target()
440 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_after_target()
442 assert_mprog_count(target, 0); in test_tc_opts_after_target()
454 static void test_tc_opts_revision_target(int target) in test_tc_opts_revision_target() argument
476 assert_mprog_count(target, 0); in test_tc_opts_revision_target()
482 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_revision_target()
486 assert_mprog_count(target, 1); in test_tc_opts_revision_target()
492 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_revision_target()
496 assert_mprog_count(target, 1); in test_tc_opts_revision_target()
502 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_revision_target()
506 assert_mprog_count(target, 2); in test_tc_opts_revision_target()
513 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_revision_target()
533 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_revision_target()
535 assert_mprog_count(target, 2); in test_tc_opts_revision_target()
542 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_revision_target()
544 assert_mprog_count(target, 1); in test_tc_opts_revision_target()
549 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_revision_target()
551 assert_mprog_count(target, 0); in test_tc_opts_revision_target()
563 static void test_tc_chain_classic(int target, bool chain_tc_old) in test_tc_chain_classic() argument
589 assert_mprog_count(target, 0); in test_tc_chain_classic()
592 tc_hook.attach_point = target == BPF_TCX_INGRESS ? in test_tc_chain_classic()
608 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_chain_classic()
612 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_chain_classic()
616 assert_mprog_count(target, 2); in test_tc_chain_classic()
625 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_chain_classic()
629 assert_mprog_count(target, 1); in test_tc_chain_classic()
639 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_chain_classic()
643 assert_mprog_count(target, 0); in test_tc_chain_classic()
655 assert_mprog_count(target, 0); in test_tc_chain_classic()
666 static void test_tc_opts_replace_target(int target) in test_tc_opts_replace_target() argument
691 assert_mprog_count(target, 0); in test_tc_opts_replace_target()
697 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_replace_target()
701 assert_mprog_count(target, 1); in test_tc_opts_replace_target()
709 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_replace_target()
715 assert_mprog_count(target, 2); in test_tc_opts_replace_target()
724 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_replace_target()
751 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_replace_target()
757 assert_mprog_count(target, 2); in test_tc_opts_replace_target()
762 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_replace_target()
786 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_replace_target()
792 assert_mprog_count(target, 2); in test_tc_opts_replace_target()
797 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_replace_target()
819 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_replace_target()
821 assert_mprog_count(target, 2); in test_tc_opts_replace_target()
830 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_replace_target()
832 assert_mprog_count(target, 2); in test_tc_opts_replace_target()
841 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_replace_target()
843 assert_mprog_count(target, 2); in test_tc_opts_replace_target()
852 err = bpf_prog_detach_opts(detach_fd, loopback, target, &optd); in test_tc_opts_replace_target()
854 assert_mprog_count(target, 1); in test_tc_opts_replace_target()
859 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_replace_target()
861 assert_mprog_count(target, 0); in test_tc_opts_replace_target()
873 static void test_tc_opts_invalid_target(int target) in test_tc_opts_invalid_target() argument
893 assert_mprog_count(target, 0); in test_tc_opts_invalid_target()
899 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
901 assert_mprog_count(target, 0); in test_tc_opts_invalid_target()
907 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
909 assert_mprog_count(target, 0); in test_tc_opts_invalid_target()
915 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
917 assert_mprog_count(target, 0); in test_tc_opts_invalid_target()
923 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
925 assert_mprog_count(target, 0); in test_tc_opts_invalid_target()
932 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
934 assert_mprog_count(target, 0); in test_tc_opts_invalid_target()
941 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
943 assert_mprog_count(target, 0); in test_tc_opts_invalid_target()
950 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
952 assert_mprog_count(target, 0); in test_tc_opts_invalid_target()
959 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
961 assert_mprog_count(target, 0); in test_tc_opts_invalid_target()
965 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
969 assert_mprog_count(target, 1); in test_tc_opts_invalid_target()
973 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
975 assert_mprog_count(target, 1); in test_tc_opts_invalid_target()
982 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
984 assert_mprog_count(target, 1); in test_tc_opts_invalid_target()
991 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
993 assert_mprog_count(target, 1); in test_tc_opts_invalid_target()
1000 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
1002 assert_mprog_count(target, 1); in test_tc_opts_invalid_target()
1009 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_invalid_target()
1011 assert_mprog_count(target, 1); in test_tc_opts_invalid_target()
1013 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_invalid_target()
1015 assert_mprog_count(target, 0); in test_tc_opts_invalid_target()
1026 static void test_tc_opts_prepend_target(int target) in test_tc_opts_prepend_target() argument
1054 assert_mprog_count(target, 0); in test_tc_opts_prepend_target()
1056 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_prepend_target()
1060 assert_mprog_count(target, 1); in test_tc_opts_prepend_target()
1066 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_prepend_target()
1070 assert_mprog_count(target, 2); in test_tc_opts_prepend_target()
1077 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_prepend_target()
1099 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_prepend_target()
1107 err = bpf_prog_attach_opts(fd4, loopback, target, &opta); in test_tc_opts_prepend_target()
1111 assert_mprog_count(target, 4); in test_tc_opts_prepend_target()
1116 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_prepend_target()
1137 err = bpf_prog_detach_opts(fd4, loopback, target, &optd); in test_tc_opts_prepend_target()
1139 assert_mprog_count(target, 3); in test_tc_opts_prepend_target()
1142 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_prepend_target()
1144 assert_mprog_count(target, 2); in test_tc_opts_prepend_target()
1147 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_prepend_target()
1149 assert_mprog_count(target, 1); in test_tc_opts_prepend_target()
1152 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_prepend_target()
1154 assert_mprog_count(target, 0); in test_tc_opts_prepend_target()
1166 static void test_tc_opts_append_target(int target) in test_tc_opts_append_target() argument
1194 assert_mprog_count(target, 0); in test_tc_opts_append_target()
1196 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_append_target()
1200 assert_mprog_count(target, 1); in test_tc_opts_append_target()
1206 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_append_target()
1210 assert_mprog_count(target, 2); in test_tc_opts_append_target()
1217 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_append_target()
1239 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_append_target()
1247 err = bpf_prog_attach_opts(fd4, loopback, target, &opta); in test_tc_opts_append_target()
1251 assert_mprog_count(target, 4); in test_tc_opts_append_target()
1256 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_append_target()
1277 err = bpf_prog_detach_opts(fd4, loopback, target, &optd); in test_tc_opts_append_target()
1279 assert_mprog_count(target, 3); in test_tc_opts_append_target()
1282 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_append_target()
1284 assert_mprog_count(target, 2); in test_tc_opts_append_target()
1287 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_append_target()
1289 assert_mprog_count(target, 1); in test_tc_opts_append_target()
1292 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_append_target()
1294 assert_mprog_count(target, 0); in test_tc_opts_append_target()
1306 static void test_tc_opts_dev_cleanup_target(int target) in test_tc_opts_dev_cleanup_target() argument
1337 assert_mprog_count_ifindex(ifindex, target, 0); in test_tc_opts_dev_cleanup_target()
1339 err = bpf_prog_attach_opts(fd1, ifindex, target, &opta); in test_tc_opts_dev_cleanup_target()
1343 assert_mprog_count_ifindex(ifindex, target, 1); in test_tc_opts_dev_cleanup_target()
1345 err = bpf_prog_attach_opts(fd2, ifindex, target, &opta); in test_tc_opts_dev_cleanup_target()
1349 assert_mprog_count_ifindex(ifindex, target, 2); in test_tc_opts_dev_cleanup_target()
1351 err = bpf_prog_attach_opts(fd3, ifindex, target, &opta); in test_tc_opts_dev_cleanup_target()
1355 assert_mprog_count_ifindex(ifindex, target, 3); in test_tc_opts_dev_cleanup_target()
1357 err = bpf_prog_attach_opts(fd4, ifindex, target, &opta); in test_tc_opts_dev_cleanup_target()
1361 assert_mprog_count_ifindex(ifindex, target, 4); in test_tc_opts_dev_cleanup_target()
1368 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_dev_cleanup_target()
1371 assert_mprog_count_ifindex(ifindex, target, 2); in test_tc_opts_dev_cleanup_target()
1373 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_dev_cleanup_target()
1376 assert_mprog_count_ifindex(ifindex, target, 1); in test_tc_opts_dev_cleanup_target()
1378 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_dev_cleanup_target()
1381 assert_mprog_count_ifindex(ifindex, target, 0); in test_tc_opts_dev_cleanup_target()
1396 static void test_tc_opts_mixed_target(int target) in test_tc_opts_mixed_target() argument
1413 ASSERT_EQ(bpf_program__set_expected_attach_type(skel->progs.tc1, target), in test_tc_opts_mixed_target()
1415 ASSERT_EQ(bpf_program__set_expected_attach_type(skel->progs.tc2, target), in test_tc_opts_mixed_target()
1417 ASSERT_EQ(bpf_program__set_expected_attach_type(skel->progs.tc3, target), in test_tc_opts_mixed_target()
1419 ASSERT_EQ(bpf_program__set_expected_attach_type(skel->progs.tc4, target), in test_tc_opts_mixed_target()
1435 assert_mprog_count(target, 0); in test_tc_opts_mixed_target()
1438 loopback, target, &opta); in test_tc_opts_mixed_target()
1444 assert_mprog_count(target, 1); in test_tc_opts_mixed_target()
1453 assert_mprog_count(target, 2); in test_tc_opts_mixed_target()
1461 loopback, target, &opta); in test_tc_opts_mixed_target()
1464 assert_mprog_count(target, 2); in test_tc_opts_mixed_target()
1472 loopback, target, &opta); in test_tc_opts_mixed_target()
1475 assert_mprog_count(target, 2); in test_tc_opts_mixed_target()
1483 loopback, target, &opta); in test_tc_opts_mixed_target()
1486 assert_mprog_count(target, 2); in test_tc_opts_mixed_target()
1494 loopback, target, &opta); in test_tc_opts_mixed_target()
1500 assert_mprog_count(target, 2); in test_tc_opts_mixed_target()
1509 assert_mprog_count(target, 3); in test_tc_opts_mixed_target()
1517 loopback, target, &opta); in test_tc_opts_mixed_target()
1531 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_mixed_target()
1557 err = bpf_prog_detach_opts(detach_fd, loopback, target, &optd); in test_tc_opts_mixed_target()
1559 assert_mprog_count(target, 2); in test_tc_opts_mixed_target()
1563 assert_mprog_count(target, 0); in test_tc_opts_mixed_target()
1572 static void test_tc_opts_demixed_target(int target) in test_tc_opts_demixed_target() argument
1586 ASSERT_EQ(bpf_program__set_expected_attach_type(skel->progs.tc1, target), in test_tc_opts_demixed_target()
1588 ASSERT_EQ(bpf_program__set_expected_attach_type(skel->progs.tc2, target), in test_tc_opts_demixed_target()
1599 assert_mprog_count(target, 0); in test_tc_opts_demixed_target()
1602 loopback, target, &opta); in test_tc_opts_demixed_target()
1606 assert_mprog_count(target, 1); in test_tc_opts_demixed_target()
1613 assert_mprog_count(target, 2); in test_tc_opts_demixed_target()
1619 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_demixed_target()
1622 assert_mprog_count(target, 2); in test_tc_opts_demixed_target()
1628 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_demixed_target()
1631 assert_mprog_count(target, 1); in test_tc_opts_demixed_target()
1636 loopback, target, &optd); in test_tc_opts_demixed_target()
1638 assert_mprog_count(target, 2); in test_tc_opts_demixed_target()
1642 assert_mprog_count(target, 0); in test_tc_opts_demixed_target()
1651 static void test_tc_opts_detach_target(int target) in test_tc_opts_detach_target() argument
1679 assert_mprog_count(target, 0); in test_tc_opts_detach_target()
1681 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_detach_target()
1685 assert_mprog_count(target, 1); in test_tc_opts_detach_target()
1687 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_detach_target()
1691 assert_mprog_count(target, 2); in test_tc_opts_detach_target()
1693 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_detach_target()
1697 assert_mprog_count(target, 3); in test_tc_opts_detach_target()
1699 err = bpf_prog_attach_opts(fd4, loopback, target, &opta); in test_tc_opts_detach_target()
1703 assert_mprog_count(target, 4); in test_tc_opts_detach_target()
1710 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_target()
1726 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_detach_target()
1729 assert_mprog_count(target, 3); in test_tc_opts_detach_target()
1734 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_target()
1749 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_detach_target()
1752 assert_mprog_count(target, 2); in test_tc_opts_detach_target()
1757 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_target()
1769 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_detach_target()
1771 assert_mprog_count(target, 1); in test_tc_opts_detach_target()
1773 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_detach_target()
1775 assert_mprog_count(target, 0); in test_tc_opts_detach_target()
1781 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_detach_target()
1788 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_detach_target()
1793 err = bpf_prog_detach_opts(fd4, loopback, target, &optd); in test_tc_opts_detach_target()
1795 assert_mprog_count(target, 3); in test_tc_opts_detach_target()
1798 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_detach_target()
1800 assert_mprog_count(target, 2); in test_tc_opts_detach_target()
1803 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_detach_target()
1805 assert_mprog_count(target, 1); in test_tc_opts_detach_target()
1808 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_detach_target()
1810 assert_mprog_count(target, 0); in test_tc_opts_detach_target()
1822 static void test_tc_opts_detach_before_target(int target) in test_tc_opts_detach_before_target() argument
1850 assert_mprog_count(target, 0); in test_tc_opts_detach_before_target()
1852 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_detach_before_target()
1856 assert_mprog_count(target, 1); in test_tc_opts_detach_before_target()
1858 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_detach_before_target()
1862 assert_mprog_count(target, 2); in test_tc_opts_detach_before_target()
1864 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_detach_before_target()
1868 assert_mprog_count(target, 3); in test_tc_opts_detach_before_target()
1870 err = bpf_prog_attach_opts(fd4, loopback, target, &opta); in test_tc_opts_detach_before_target()
1874 assert_mprog_count(target, 4); in test_tc_opts_detach_before_target()
1881 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_before_target()
1898 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_detach_before_target()
1901 assert_mprog_count(target, 3); in test_tc_opts_detach_before_target()
1906 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_before_target()
1922 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_detach_before_target()
1924 assert_mprog_count(target, 3); in test_tc_opts_detach_before_target()
1931 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_detach_before_target()
1933 assert_mprog_count(target, 3); in test_tc_opts_detach_before_target()
1940 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_detach_before_target()
1942 assert_mprog_count(target, 3); in test_tc_opts_detach_before_target()
1949 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_detach_before_target()
1952 assert_mprog_count(target, 2); in test_tc_opts_detach_before_target()
1957 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_before_target()
1972 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_detach_before_target()
1975 assert_mprog_count(target, 1); in test_tc_opts_detach_before_target()
1980 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_before_target()
1993 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_detach_before_target()
1996 assert_mprog_count(target, 0); in test_tc_opts_detach_before_target()
2000 err = bpf_prog_detach_opts(fd4, loopback, target, &optd); in test_tc_opts_detach_before_target()
2002 assert_mprog_count(target, 3); in test_tc_opts_detach_before_target()
2005 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_detach_before_target()
2007 assert_mprog_count(target, 2); in test_tc_opts_detach_before_target()
2010 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_detach_before_target()
2012 assert_mprog_count(target, 1); in test_tc_opts_detach_before_target()
2015 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_detach_before_target()
2017 assert_mprog_count(target, 0); in test_tc_opts_detach_before_target()
2029 static void test_tc_opts_detach_after_target(int target) in test_tc_opts_detach_after_target() argument
2057 assert_mprog_count(target, 0); in test_tc_opts_detach_after_target()
2059 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_detach_after_target()
2063 assert_mprog_count(target, 1); in test_tc_opts_detach_after_target()
2065 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_detach_after_target()
2069 assert_mprog_count(target, 2); in test_tc_opts_detach_after_target()
2071 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_detach_after_target()
2075 assert_mprog_count(target, 3); in test_tc_opts_detach_after_target()
2077 err = bpf_prog_attach_opts(fd4, loopback, target, &opta); in test_tc_opts_detach_after_target()
2081 assert_mprog_count(target, 4); in test_tc_opts_detach_after_target()
2088 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_after_target()
2105 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_detach_after_target()
2108 assert_mprog_count(target, 3); in test_tc_opts_detach_after_target()
2113 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_after_target()
2129 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_detach_after_target()
2131 assert_mprog_count(target, 3); in test_tc_opts_detach_after_target()
2138 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_detach_after_target()
2140 assert_mprog_count(target, 3); in test_tc_opts_detach_after_target()
2147 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_detach_after_target()
2149 assert_mprog_count(target, 3); in test_tc_opts_detach_after_target()
2156 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_detach_after_target()
2158 assert_mprog_count(target, 3); in test_tc_opts_detach_after_target()
2165 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_detach_after_target()
2168 assert_mprog_count(target, 2); in test_tc_opts_detach_after_target()
2173 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_after_target()
2188 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_detach_after_target()
2191 assert_mprog_count(target, 1); in test_tc_opts_detach_after_target()
2196 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_detach_after_target()
2209 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_detach_after_target()
2212 assert_mprog_count(target, 0); in test_tc_opts_detach_after_target()
2216 err = bpf_prog_detach_opts(fd4, loopback, target, &optd); in test_tc_opts_detach_after_target()
2218 assert_mprog_count(target, 3); in test_tc_opts_detach_after_target()
2221 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_detach_after_target()
2223 assert_mprog_count(target, 2); in test_tc_opts_detach_after_target()
2226 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_detach_after_target()
2228 assert_mprog_count(target, 1); in test_tc_opts_detach_after_target()
2231 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_detach_after_target()
2233 assert_mprog_count(target, 0); in test_tc_opts_detach_after_target()
2245 static void test_tc_opts_delete_empty(int target, bool chain_tc_old) in test_tc_opts_delete_empty() argument
2251 assert_mprog_count(target, 0); in test_tc_opts_delete_empty()
2253 tc_hook.attach_point = target == BPF_TCX_INGRESS ? in test_tc_opts_delete_empty()
2257 assert_mprog_count(target, 0); in test_tc_opts_delete_empty()
2259 err = bpf_prog_detach_opts(0, loopback, target, &optd); in test_tc_opts_delete_empty()
2265 assert_mprog_count(target, 0); in test_tc_opts_delete_empty()
2276 static void test_tc_chain_mixed(int target) in test_tc_chain_mixed() argument
2301 assert_mprog_count(target, 0); in test_tc_chain_mixed()
2303 tc_hook.attach_point = target == BPF_TCX_INGRESS ? in test_tc_chain_mixed()
2315 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_chain_mixed()
2321 assert_mprog_count(target, 1); in test_tc_chain_mixed()
2335 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_chain_mixed()
2341 assert_mprog_count(target, 1); in test_tc_chain_mixed()
2351 err = bpf_prog_detach_opts(detach_fd, loopback, target, &optd); in test_tc_chain_mixed()
2353 assert_mprog_count(target, 0); in test_tc_chain_mixed()
2405 static void test_tc_opts_max_target(int target, int flags, bool relative) in test_tc_opts_max_target() argument
2415 assert_mprog_count_ifindex(ifindex, target, 0); in test_tc_opts_max_target()
2421 err = bpf_prog_attach_opts(prog_fd, ifindex, target, &opta); in test_tc_opts_max_target()
2424 assert_mprog_count_ifindex(ifindex, target, i + 1); in test_tc_opts_max_target()
2437 err = bpf_prog_attach_opts(prog_fd, ifindex, target, &opta); in test_tc_opts_max_target()
2439 assert_mprog_count_ifindex(ifindex, target, max_progs); in test_tc_opts_max_target()
2461 static void test_tc_opts_query_target(int target) in test_tc_opts_query_target() argument
2487 assert_mprog_count(target, 0); in test_tc_opts_query_target()
2493 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_query_target()
2497 assert_mprog_count(target, 1); in test_tc_opts_query_target()
2503 err = bpf_prog_attach_opts(fd2, loopback, target, &opta); in test_tc_opts_query_target()
2507 assert_mprog_count(target, 2); in test_tc_opts_query_target()
2513 err = bpf_prog_attach_opts(fd3, loopback, target, &opta); in test_tc_opts_query_target()
2517 assert_mprog_count(target, 3); in test_tc_opts_query_target()
2523 err = bpf_prog_attach_opts(fd4, loopback, target, &opta); in test_tc_opts_query_target()
2527 assert_mprog_count(target, 4); in test_tc_opts_query_target()
2530 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_query_target()
2542 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_query_target()
2558 attr.query.attach_type = target; in test_tc_opts_query_target()
2569 ASSERT_EQ(attr.query.attach_type, target, "attach_type"); in test_tc_opts_query_target()
2587 ASSERT_EQ(attr.query.attach_type, target, "attach_type"); in test_tc_opts_query_target()
2599 err = bpf_prog_detach_opts(fd4, loopback, target, &optd); in test_tc_opts_query_target()
2601 assert_mprog_count(target, 3); in test_tc_opts_query_target()
2604 err = bpf_prog_detach_opts(fd3, loopback, target, &optd); in test_tc_opts_query_target()
2606 assert_mprog_count(target, 2); in test_tc_opts_query_target()
2609 err = bpf_prog_detach_opts(fd2, loopback, target, &optd); in test_tc_opts_query_target()
2611 assert_mprog_count(target, 1); in test_tc_opts_query_target()
2614 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_query_target()
2616 assert_mprog_count(target, 0); in test_tc_opts_query_target()
2628 static void test_tc_opts_query_attach_target(int target) in test_tc_opts_query_attach_target() argument
2645 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_query_attach_target()
2656 err = bpf_prog_attach_opts(fd1, loopback, target, &opta); in test_tc_opts_query_attach_target()
2664 err = bpf_prog_query_opts(loopback, target, &optq); in test_tc_opts_query_attach_target()
2674 err = bpf_prog_detach_opts(fd1, loopback, target, &optd); in test_tc_opts_query_attach_target()
2676 assert_mprog_count(target, 0); in test_tc_opts_query_attach_target()