| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/09/02 19:36 | flow | patch-triage |
0mArgs:null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"KMSANReasoning": "",
"NeedsKMSAN": false,
"Reasoning": "The patch only modifies user-space selftest scripts and test configurations in tools/testing/selftests/net/mptcp/ (migrating iptables rules to nftables), with no functional modifications to the Linux kernel itself.",
"WorthFuzzing": false
} |
| 1/1 | 2026/09/02 19:36 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit 1ed4caca809c83854165473dba3bd296ec38c25e\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Wed Sep 2 19:36:37 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/tools/testing/selftests/net/mptcp/config b/tools/testing/selftests/net/mptcp/config\nindex 59051ee2a9860..0d0a744c4ca89 100644\n--- a/tools/testing/selftests/net/mptcp/config\n+++ b/tools/testing/selftests/net/mptcp/config\n@@ -30,6 +30,9 @@ CONFIG_NET_SCH_NETEM=m\n CONFIG_NF_TABLES=m\n CONFIG_NF_TABLES_INET=y\n CONFIG_NFT_COMPAT=m\n+CONFIG_NFT_NUMGEN=y\n+CONFIG_NFT_REJECT=m\n+CONFIG_NFT_REJECT_IPV4=m\n CONFIG_NFT_SOCKET=m\n CONFIG_NFT_TPROXY=m\n CONFIG_SYN_COOKIES=y\ndiff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh\nindex 18ce7136a2b0e..05cbaddb82616 100755\n--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh\n+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh\n@@ -26,8 +26,6 @@ capout=\"\"\n cappid=\"\"\n ns1=\"\"\n ns2=\"\"\n-iptables=\"iptables\"\n-ip6tables=\"ip6tables\"\n timeout_poll=30\n timeout_test=$((timeout_poll * 2 + 1))\n capture=false\n@@ -50,6 +48,7 @@ declare -A failed_tests\n MPTCP_LIB_TEST_FORMAT=\"%03u %s\\n\"\n TEST_NAME=\"\"\n nr_blank=6\n+nft_handle=\"\"\n \n # These var are used only in some tests, make sure they are not already set\n unset FAILING_LINKS\n@@ -99,42 +98,6 @@ unset add_addr_tx_nr\n unset add_addr_echo_tx_nr\n unset add_addr_drop_tx_nr\n \n-# generated using \"nfbpf_compile '(ip \u0026\u0026 (ip[54] \u0026 0xf0) == 0x30) ||\n-#\t\t\t\t (ip6 \u0026\u0026 (ip6[74] \u0026 0xf0) == 0x30)'\"\n-CBPF_MPTCP_SUBOPTION_ADD_ADDR=\"14,\n-\t\t\t 48 0 0 0,\n-\t\t\t 84 0 0 240,\n-\t\t\t 21 0 3 64,\n-\t\t\t 48 0 0 54,\n-\t\t\t 84 0 0 240,\n-\t\t\t 21 6 7 48,\n-\t\t\t 48 0 0 0,\n-\t\t\t 84 0 0 240,\n-\t\t\t 21 0 4 96,\n-\t\t\t 48 0 0 74,\n-\t\t\t 84 0 0 240,\n-\t\t\t 21 0 1 48,\n-\t\t\t 6 0 0 65535,\n-\t\t\t 6 0 0 0\"\n-\n-# IPv4: TCP hdr of 48B, a first suboption of 12B (DACK8), the RM_ADDR suboption\n-# generated using \"nfbpf_compile '(ip[32] \u0026 0xf0) == 0xc0 \u0026\u0026 ip[53] == 0x0c \u0026\u0026\n-#\t\t\t\t (ip[66] \u0026 0xf0) == 0x40'\"\n-CBPF_MPTCP_SUBOPTION_RM_ADDR=\"13,\n-\t\t\t 48 0 0 0,\n-\t\t\t 84 0 0 240,\n-\t\t\t 21 0 9 64,\n-\t\t\t 48 0 0 32,\n-\t\t\t 84 0 0 240,\n-\t\t\t 21 0 6 192,\n-\t\t\t 48 0 0 53,\n-\t\t\t 21 0 4 12,\n-\t\t\t 48 0 0 66,\n-\t\t\t 84 0 0 240,\n-\t\t\t 21 0 1 64,\n-\t\t\t 6 0 0 65535,\n-\t\t\t 6 0 0 0\"\n-\n init_partial()\n {\n \tcapout=$(mktemp)\n@@ -147,6 +110,14 @@ init_partial()\n \t\tif $checksum; then\n \t\t\tip netns exec $netns sysctl -q net.mptcp.checksum_enabled=1\n \t\tfi\n+\n+\t\tip netns exec \"$netns\" nft add table inet mjoin_table\n+\t\tip netns exec \"$netns\" nft add chain inet mjoin_table input \\\n+\t\t\t'{ type filter hook input priority filter; policy accept; }'\n+\t\tip netns exec \"$netns\" nft add chain inet mjoin_table output \\\n+\t\t\t'{ type filter hook output priority filter; policy accept; }'\n+\t\tip netns exec \"$netns\" nft add chain inet mjoin_table mangle \\\n+\t\t\t'{ type filter hook output priority mangle; policy accept; }'\n \tdone\n \n \tcheck_invert=0\n@@ -196,7 +167,7 @@ init() {\n \n \tmptcp_lib_check_mptcp\n \tmptcp_lib_check_kallsyms\n-\tmptcp_lib_check_tools ip tc ss \"${iptables}\" \"${ip6tables}\"\n+\tmptcp_lib_check_tools ip tc ss nft\n \n \tsin=$(mktemp)\n \tsout=$(mktemp)\n@@ -381,23 +352,18 @@ reset_with_cookies()\n reset_with_add_addr_timeout()\n {\n \tlocal ip=\"${2:-4}\"\n-\tlocal tables\n \n \treset \"${1}\" || return 1\n \n-\ttables=\"${iptables}\"\n-\tif [ $ip -eq 6 ]; then\n-\t\ttables=\"${ip6tables}\"\n-\tfi\n-\n \t# set a maximum, to avoid too long timeout with exponential backoff\n \tip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1\n \n-\tif ! ip netns exec $ns2 $tables -A OUTPUT -p tcp \\\n-\t\t\t-m tcp --tcp-option 30 \\\n-\t\t\t-m bpf --bytecode \\\n-\t\t\t\"$CBPF_MPTCP_SUBOPTION_ADD_ADDR\" \\\n-\t\t\t-j DROP; then\n+\n+\tnft_handle=$(ip netns exec \"$ns2\" nft -e --handle add rule \\\n+\t\tinet mjoin_table output meta nfproto ipv${ip} \\\n+\t\ttcp option mptcp subtype add-addr \\\n+\t\tdrop | head -n1 | awk '{print $NF}')\n+\tif [ -z \"$nft_handle\" ]; then\n \t\tmark_as_skipped \"unable to set the 'add addr' rule\"\n \t\treturn 1\n \tfi\n@@ -450,22 +416,16 @@ setup_fail_rules()\n \tvalidate_checksum=true\n \tlocal i=\"$1\"\n \tlocal ip=\"${2:-4}\"\n-\tlocal tables\n \n-\ttables=\"${iptables}\"\n-\tif [ $ip -eq 6 ]; then\n-\t\ttables=\"${ip6tables}\"\n+\tnft_handle=$(ip netns exec \"$ns2\" nft -e --handle add rule \\\n+\t\tinet mjoin_table mangle oifname ns2eth$i \\\n+\t\tmeta nfproto ipv${ip} meta l4proto tcp \\\n+\t\tmeta length 150-9999 numgen inc mod 99999 == 1 \\\n+\t\tmeta mark set 42 | head -n1 | awk '{print $NF}')\n+\tif [ -z \"$nft_handle\" ]; then\n+\t\treturn ${KSFT_SKIP}\n \tfi\n \n-\tip netns exec $ns2 $tables \\\n-\t\t-t mangle \\\n-\t\t-A OUTPUT \\\n-\t\t-o ns2eth$i \\\n-\t\t-p tcp \\\n-\t\t-m length --length 150:9999 \\\n-\t\t-m statistic --mode nth --packet 1 --every 99999 \\\n-\t\t-j MARK --set-mark 42 || return ${KSFT_SKIP}\n-\n \ttc -n $ns2 qdisc add dev ns2eth$i clsact || return ${KSFT_SKIP}\n \ttc -n $ns2 filter add dev ns2eth$i egress \\\n \t\tprotocol ip prio 1000 \\\n@@ -515,11 +475,11 @@ reset_with_tcp_filter()\n \tlocal target=\"${3}\"\n \tlocal chain=\"${4:-INPUT}\"\n \n-\tif ! ip netns exec \"${ns}\" ${iptables} \\\n-\t\t\t-A \"${chain}\" \\\n-\t\t\t-s \"${src}\" \\\n-\t\t\t-p tcp \\\n-\t\t\t-j \"${target}\"; then\n+\tnft_handle=$(ip netns exec \"$ns\" nft -e --handle add rule \\\n+\t\tinet mjoin_table \"${chain,,}\" \\\n+\t\tip saddr \"{ ${src} }\" meta l4proto tcp \"${target,,}\" | \\\n+\t\thead -n1 | awk '{print $NF}')\n+\tif [ -z \"$nft_handle\" ]; then\n \t\tmark_as_skipped \"unable to set the filter rules\"\n \t\treturn 1\n \tfi\n@@ -4315,10 +4275,12 @@ userspace_tests()\n \n \t\t# force quick loss\n \t\tip netns exec $ns2 sysctl -q net.ipv4.tcp_syn_retries=1\n-\t\tif ip netns exec \"${ns1}\" ${iptables} -A INPUT -s \"10.0.1.2\" \\\n-\t\t -p tcp --tcp-option 30 -j REJECT --reject-with tcp-reset \u0026\u0026\n-\t\t ip netns exec \"${ns2}\" ${iptables} -A INPUT -d \"10.0.1.2\" \\\n-\t\t -p tcp --tcp-option 30 -j REJECT --reject-with tcp-reset; then\n+\t\tif ip netns exec \"${ns1}\" nft add rule inet mjoin_table \\\n+\t\t\tinput ip saddr \"10.0.1.2\" meta l4proto tcp \\\n+\t\t\ttcp option mptcp exists reject with tcp reset \u0026\u0026\n+\t\t ip netns exec \"${ns2}\" nft add rule inet mjoin_table \\\n+\t\t\tinput ip daddr \"10.0.1.2\" meta l4proto tcp \\\n+\t\t\ttcp option mptcp exists reject with tcp reset; then\n \t\t\twait_event ns2 MPTCP_LIB_EVENT_SUB_CLOSED 1\n \t\t\twait_event ns1 MPTCP_LIB_EVENT_SUB_CLOSED 1\n \t\t\tchk_subflows_total 1 1\n@@ -4393,7 +4355,7 @@ endpoint_tests()\n \t\tchk_subflow_nr \"after new reject\" 2\n \t\tchk_mptcp_info subflows 1 subflows 1\n \n-\t\tip netns exec \"${ns2}\" ${iptables} -D OUTPUT -s \"10.0.3.2\" -p tcp -j REJECT\n+\t\tip netns exec \"${ns2}\" nft delete rule inet mjoin_table output handle \"$nft_handle\"\n \t\tpm_nl_del_endpoint $ns2 3 10.0.3.2\n \t\tpm_nl_add_endpoint $ns2 10.0.3.2 id 3 flags subflow\n \t\twait_mpj 3\n@@ -4402,12 +4364,10 @@ endpoint_tests()\n \n \t\t# To make sure RM_ADDR are sent over a different subflow, but\n \t\t# allow the rest to quickly and cleanly close the subflow\n-\t\tlocal ipt=1\n-\t\tip netns exec \"${ns2}\" ${iptables} -I OUTPUT -s \"10.0.1.2\" \\\n-\t\t\t-p tcp -m tcp --tcp-option 30 \\\n-\t\t\t-m bpf --bytecode \\\n-\t\t\t\"$CBPF_MPTCP_SUBOPTION_RM_ADDR\" \\\n-\t\t\t-j DROP || ipt=0\n+\t\tnft_handle=$(ip netns exec \"${ns2}\" nft -e --handle insert rule \\\n+\t\t\tinet mjoin_table output ip saddr 10.0.1.2 meta l4proto tcp \\\n+\t\t\ttcp option mptcp subtype remove-addr \\\n+\t\t\tdrop | head -n1 | awk '{print $NF}')\n \t\tlocal i\n \t\tfor i in $(seq 3); do\n \t\t\tpm_nl_del_endpoint $ns2 1 10.0.1.2\n@@ -4420,7 +4380,8 @@ endpoint_tests()\n \t\t\tchk_subflow_nr \"after re-add id 0 ($i)\" 3\n \t\t\tchk_mptcp_info subflows 3 subflows 3\n \t\tdone\n-\t\t[ ${ipt} = 1 ] \u0026\u0026 ip netns exec \"${ns2}\" ${iptables} -D OUTPUT 1\n+\t\t[ -n \"${nft_handle}\" ] \u0026\u0026 ip netns exec \"${ns2}\" nft delete rule \\\n+\t\t\tinet mjoin_table output handle \"${nft_handle}\"\n \n \t\tmptcp_lib_kill_group_wait $tests_pid\n \n@@ -4482,18 +4443,17 @@ endpoint_tests()\n \n \t\t# To make sure RM_ADDR are sent over a different subflow, but\n \t\t# allow the rest to quickly and cleanly close the subflow\n-\t\tlocal ipt=1\n-\t\tip netns exec \"${ns1}\" ${iptables} -I OUTPUT -s \"10.0.1.1\" \\\n-\t\t\t-p tcp -m tcp --tcp-option 30 \\\n-\t\t\t-m bpf --bytecode \\\n-\t\t\t\"$CBPF_MPTCP_SUBOPTION_RM_ADDR\" \\\n-\t\t\t-j DROP || ipt=0\n+\t\tnft_handle=$(ip netns exec \"${ns1}\" nft -e --handle insert rule \\\n+\t\t\tinet mjoin_table output ip saddr 10.0.1.1 meta l4proto tcp \\\n+\t\t\ttcp option mptcp subtype remove-addr \\\n+\t\t\tdrop | head -n1 | awk '{print $NF}')\n \t\tpm_nl_del_endpoint $ns1 42 10.0.1.1\n \t\tsleep 0.5\n \t\tchk_subflow_nr \"after delete ID 0\" 2\n \t\tchk_mptcp_info subflows 2 subflows 2\n \t\tchk_mptcp_info add_addr_signal 2 add_addr_accepted 2\n-\t\t[ ${ipt} = 1 ] \u0026\u0026 ip netns exec \"${ns1}\" ${iptables} -D OUTPUT 1\n+\t\t[ -n \"${nft_handle}\" ] \u0026\u0026 ip netns exec \"${ns1}\" nft delete rule \\\n+\t\t\tinet mjoin_table output handle \"${nft_handle}\"\n \n \t\tpm_nl_add_endpoint $ns1 10.0.1.1 id 42 flags signal\n \t\twait_mpj 4\n@@ -4555,7 +4515,7 @@ endpoint_tests()\n \t\tpm_nl_flush_endpoint $ns2\n \t\tpm_nl_flush_endpoint $ns1\n \t\twait_rm_addr $ns2 0\n-\t\tip netns exec \"${ns2}\" ${iptables} -D OUTPUT -s \"10.0.3.2\" -p tcp -j REJECT\n+\t\tip netns exec \"${ns2}\" nft delete rule inet mjoin_table output handle \"$nft_handle\"\n \t\tpm_nl_add_endpoint $ns2 10.0.3.2 id 3 flags subflow\n \t\twait_mpj 1\n \t\tpm_nl_add_endpoint $ns1 10.0.3.1 id 2 flags signal\ndiff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh\nindex 5ef6033775c86..eba6903233ccf 100644\n--- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh\n+++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh\n@@ -524,7 +524,7 @@ mptcp_lib_check_tools() {\n \t\t\t\texit ${KSFT_SKIP}\n \t\t\tfi\n \t\t\t;;\n-\t\t\"iptables\"* | \"ip6tables\"*)\n+\t\t\"iptables\"* | \"ip6tables\"* | \"nft\"*)\n \t\t\tif ! \"${tool}\" -V \u0026\u003e /dev/null; then\n \t\t\t\tmptcp_lib_pr_skip \"Could not run all tests without ${tool}\"\n \t\t\t\texit ${KSFT_SKIP}\ndiff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh\nindex e850a87429b61..4d0af2bf94840 100755\n--- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh\n+++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh\n@@ -15,8 +15,6 @@ cin=\"\"\n cout=\"\"\n timeout_poll=30\n timeout_test=$((timeout_poll * 2 + 1))\n-iptables=\"iptables\"\n-ip6tables=\"ip6tables\"\n \n ns1=\"\"\n ns2=\"\"\n@@ -49,17 +47,23 @@ add_mark_rules()\n \tlocal ns=$1\n \tlocal m=$2\n \n-\tlocal t\n-\tfor t in ${iptables} ${ip6tables}; do\n-\t\t# just to debug: check we have multiple subflows connection requests\n-\t\tip netns exec $ns $t -A OUTPUT -p tcp --syn -m mark --mark $m -j ACCEPT\n-\n-\t\t# RST packets might be handled by a internal dummy socket\n-\t\tip netns exec $ns $t -A OUTPUT -p tcp --tcp-flags RST RST -m mark --mark 0 -j ACCEPT\n-\n-\t\tip netns exec $ns $t -A OUTPUT -p tcp -m mark --mark $m -j ACCEPT\n-\t\tip netns exec $ns $t -A OUTPUT -p tcp -m mark --mark 0 -j DROP\n-\tdone\n+\tip netns exec \"$ns\" nft add table inet msock_table\n+\tip netns exec \"$ns\" nft add chain inet msock_table output \\\n+\t\t'{ type filter hook output priority 0; policy accept; }'\n+\n+\t# just to debug: check we have multiple subflows connection requests\n+\tip netns exec \"$ns\" nft add rule inet msock_table output \\\n+\t\t meta mark \"$m\" tcp flags syn accept\n+\t# RST packets might be handled by a internal dummy socket\n+\tip netns exec \"$ns\" nft add rule inet msock_table output \\\n+\t\tmeta mark 0 tcp flags rst accept\n+\tip netns exec \"$ns\" nft add rule inet msock_table output \\\n+\t\tmeta mark \"$m\" meta l4proto tcp accept\n+\n+\tip netns exec \"$ns\" nft add rule inet msock_table output \\\n+\t\tmeta nfproto ipv4 meta mark 0 meta l4proto tcp counter drop\n+\tip netns exec \"$ns\" nft add rule inet msock_table output \\\n+\t\tmeta nfproto ipv6 meta mark 0 meta l4proto tcp counter drop\n }\n \n init()\n@@ -105,33 +109,23 @@ cleanup()\n \n mptcp_lib_check_mptcp\n mptcp_lib_check_kallsyms\n-mptcp_lib_check_tools ip \"${iptables}\" \"${ip6tables}\"\n+mptcp_lib_check_tools ip nft\n \n check_mark()\n {\n \tlocal ns=$1\n \tlocal af=$2\n \n-\tlocal tables=${iptables}\n+\tdrop=$(ip netns exec \"$ns\" nft list table inet msock_table | \\\n+\t\tgrep \"ipv$af.*packets.*drop\" | awk '{print $(NF-3)}')\n \n-\tif [ $af -eq 6 ];then\n-\t\ttables=${ip6tables}\n+\tif [ \"$drop\" -ne 0 ]; then\n+\t\tmptcp_lib_pr_fail \"got $drop pkt drops in ns $ns IPv{$af} tables,\" \\\n+\t\t\t\t \"not 0 - not all expected packets marked\"\n+\t\tret=${KSFT_FAIL}\n+\t\treturn 1\n \tfi\n \n-\tlocal counters values\n-\tcounters=$(ip netns exec $ns $tables -v -L OUTPUT | grep DROP)\n-\tvalues=${counters%DROP*}\n-\n-\tlocal v\n-\tfor v in $values; do\n-\t\tif [ $v -ne 0 ]; then\n-\t\t\tmptcp_lib_pr_fail \"got $tables $values in ns $ns,\" \\\n-\t\t\t\t\t \"not 0 - not all expected packets marked\"\n-\t\t\tret=${KSFT_FAIL}\n-\t\t\treturn 1\n-\t\tfi\n-\tdone\n-\n \treturn 0\n }\n \n"
} |
| 2/1 | 2026/09/02 19:36 | agent | patch-evaluator |
0mModel:core Args: null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch only modifies user-space selftest scripts and test configurations in tools/testing/selftests/net/mptcp/ (migrating iptables rules to nftables), with no functional modifications to the Linux kernel itself.",
"WorthFuzzing": false
}Instruction: You are an expert Linux kernel maintainer. Your job is to review a provided patch series and determine if it makes functional changes to the kernel that should be fuzzed. IMPORTANT: The changes have ALREADY been applied and committed as the HEAD commit in your workspace. Do NOT rely on your internal knowledge of the kernel. You must actively use your code access tools to examine the actual source code and confirm any assumptions. Return WorthFuzzing=false if the patch only contains: - Modifications to Documentation/, Kconfig files, or code comments. - Purely decorative changes, such as logging (e.g., pr_err, printk) or tracepoints. - Changes to numeric constants or macros that do not functionally alter execution flow. - Code paths that are impossible to reach in virtualized environments like GCE or QEMU, even when utilizing software-emulated hardware (e.g., usb gadget, mac80211_hwsim). - Code in vendor-specific PCIe switch, SmartNIC, or GPU drivers (e.g., mlxsw, pds_core, qed, ionic, amdgpu) that require physical PCIe hardware cards not emulated in standard QEMU. - Driver .remove, .shutdown, or pci_unregister_driver teardown callbacks (e.g., igb_remove) that are executed only during PCI hot-unplug or sysfs driver unbind operations. If it modifies reachable core kernel logic, drivers, or architectures, use your code search tools to verify the code can be executed, then return WorthFuzzing=true. When returning WorthFuzzing=true, you MUST ALSO: 1. Extract any specific kernel functions that should be heavily fuzzed into FocusSymbols. Avoid listing generic hot-path functions to prevent skewed test distributions. Prefer non-static, non-inlined API entrypoint functions over internal static helper functions (which are inlined by the compiler and do not have distinct symbol addresses). 2. Identify any specific CONFIG_ options required to properly test this new/modified feature. Go and look into the Kconfig files and check for ifdefs around the code, do not make assumptions. Also check "depends on" lines in Kconfig to include any non-standard parent subsystem configs needed for Kbuild to compile the code statically into vmlinux. List them in the EnableConfigs output array, and DO NOT add a 'CONFIG_' prefix (e.g., return "NET_IPV4" instead of "CONFIG_NET_IPV4"). Prefer calling several tools at the same time to save round-trips. Use set-results tool to provide results of the analysis. It must be called exactly once before the final reply. Ignore results of this tool. Prompt: For your convenience, here is the diff of the changes:
commit 1ed4caca809c83854165473dba3bd296ec38c25e
Author: syz-cluster <triage@syzkaller.com>
Date: Wed Sep 2 19:36:37 2026 +0000
syz-cluster: applied patch under review
diff --git a/tools/testing/selftests/net/mptcp/config b/tools/testing/selftests/net/mptcp/config
index 59051ee2a9860..0d0a744c4ca89 100644
--- a/tools/testing/selftests/net/mptcp/config
+++ b/tools/testing/selftests/net/mptcp/config
@@ -30,6 +30,9 @@ CONFIG_NET_SCH_NETEM=m
CONFIG_NF_TABLES=m
CONFIG_NF_TABLES_INET=y
CONFIG_NFT_COMPAT=m
+CONFIG_NFT_NUMGEN=y
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_TPROXY=m
CONFIG_SYN_COOKIES=y
diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index 18ce7136a2b0e..05cbaddb82616 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -26,8 +26,6 @@ capout=""
cappid=""
ns1=""
ns2=""
-iptables="iptables"
-ip6tables="ip6tables"
timeout_poll=30
timeout_test=$((timeout_poll * 2 + 1))
capture=false
@@ -50,6 +48,7 @@ declare -A failed_tests
MPTCP_LIB_TEST_FORMAT="%03u %s\n"
TEST_NAME=""
nr_blank=6
+nft_handle=""
# These var are used only in some tests, make sure they are not already set
unset FAILING_LINKS
@@ -99,42 +98,6 @@ unset add_addr_tx_nr
unset add_addr_echo_tx_nr
unset add_addr_drop_tx_nr
-# generated using "nfbpf_compile '(ip && (ip[54] & 0xf0) == 0x30) ||
-# (ip6 && (ip6[74] & 0xf0) == 0x30)'"
-CBPF_MPTCP_SUBOPTION_ADD_ADDR="14,
- 48 0 0 0,
- 84 0 0 240,
- 21 0 3 64,
- 48 0 0 54,
- 84 0 0 240,
- 21 6 7 48,
- 48 0 0 0,
- 84 0 0 240,
- 21 0 4 96,
- 48 0 0 74,
- 84 0 0 240,
- 21 0 1 48,
- 6 0 0 65535,
- 6 0 0 0"
-
-# IPv4: TCP hdr of 48B, a first suboption of 12B (DACK8), the RM_ADDR suboption
-# generated using "nfbpf_compile '(ip[32] & 0xf0) == 0xc0 && ip[53] == 0x0c &&
-# (ip[66] & 0xf0) == 0x40'"
-CBPF_MPTCP_SUBOPTION_RM_ADDR="13,
- 48 0 0 0,
- 84 0 0 240,
- 21 0 9 64,
- 48 0 0 32,
- 84 0 0 240,
- 21 0 6 192,
- 48 0 0 53,
- 21 0 4 12,
- 48 0 0 66,
- 84 0 0 240,
- 21 0 1 64,
- 6 0 0 65535,
- 6 0 0 0"
-
init_partial()
{
capout=$(mktemp)
@@ -147,6 +110,14 @@ init_partial()
if $checksum; then
ip netns exec $netns sysctl -q net.mptcp.checksum_enabled=1
fi
+
+ ip netns exec "$netns" nft add table inet mjoin_table
+ ip netns exec "$netns" nft add chain inet mjoin_table input \
+ '{ type filter hook input priority filter; policy accept; }'
+ ip netns exec "$netns" nft add chain inet mjoin_table output \
+ '{ type filter hook output priority filter; policy accept; }'
+ ip netns exec "$netns" nft add chain inet mjoin_table mangle \
+ '{ type filter hook output priority mangle; policy accept; }'
done
check_invert=0
@@ -196,7 +167,7 @@ init() {
mptcp_lib_check_mptcp
mptcp_lib_check_kallsyms
- mptcp_lib_check_tools ip tc ss "${iptables}" "${ip6tables}"
+ mptcp_lib_check_tools ip tc ss nft
sin=$(mktemp)
sout=$(mktemp)
@@ -381,23 +352,18 @@ reset_with_cookies()
reset_with_add_addr_timeout()
{
local ip="${2:-4}"
- local tables
reset "${1}" || return 1
- tables="${iptables}"
- if [ $ip -eq 6 ]; then
- tables="${ip6tables}"
- fi
-
# set a maximum, to avoid too long timeout with exponential backoff
ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=1
- if ! ip netns exec $ns2 $tables -A OUTPUT -p tcp \
- -m tcp --tcp-option 30 \
- -m bpf --bytecode \
- "$CBPF_MPTCP_SUBOPTION_ADD_ADDR" \
- -j DROP; then
+
+ nft_handle=$(ip netns exec "$ns2" nft -e --handle add rule \
+ inet mjoin_table output meta nfproto ipv${ip} \
+ tcp option mptcp subtype add-addr \
+ drop | head -n1 | awk '{print $NF}')
+ if [ -z "$nft_handle" ]; then
mark_as_skipped "unable to set the 'add addr' rule"
return 1
fi
@@ -450,22 +416,16 @@ setup_fail_rules()
validate_checksum=true
local i="$1"
local ip="${2:-4}"
- local tables
- tables="${iptables}"
- if [ $ip -eq 6 ]; then
- tables="${ip6tables}"
+ nft_handle=$(ip netns exec "$ns2" nft -e --handle add rule \
+ inet mjoin_table mangle oifname ns2eth$i \
+ meta nfproto ipv${ip} meta l4proto tcp \
+ meta length 150-9999 numgen inc mod 99999 == 1 \
+ meta mark set 42 | head -n1 | awk '{print $NF}')
+ if [ -z "$nft_handle" ]; then
+ return ${KSFT_SKIP}
fi
- ip netns exec $ns2 $tables \
- -t mangle \
- -A OUTPUT \
- -o ns2eth$i \
- -p tcp \
- -m length --length 150:9999 \
- -m statistic --mode nth --packet 1 --every 99999 \
- -j MARK --set-mark 42 || return ${KSFT_SKIP}
-
tc -n $ns2 qdisc add dev ns2eth$i clsact || return ${KSFT_SKIP}
tc -n $ns2 filter add dev ns2eth$i egress \
protocol ip prio 1000 \
@@ -515,11 +475,11 @@ reset_with_tcp_filter()
local target="${3}"
local chain="${4:-INPUT}"
- if ! ip netns exec "${ns}" ${iptables} \
- -A "${chain}" \
- -s "${src}" \
- -p tcp \
- -j "${target}"; then
+ nft_handle=$(ip netns exec "$ns" nft -e --handle add rule \
+ inet mjoin_table "${chain,,}" \
+ ip saddr "{ ${src} }" meta l4proto tcp "${target,,}" | \
+ head -n1 | awk '{print $NF}')
+ if [ -z "$nft_handle" ]; then
mark_as_skipped "unable to set the filter rules"
return 1
fi
@@ -4315,10 +4275,12 @@ userspace_tests()
# force quick loss
ip netns exec $ns2 sysctl -q net.ipv4.tcp_syn_retries=1
- if ip netns exec "${ns1}" ${iptables} -A INPUT -s "10.0.1.2" \
- -p tcp --tcp-option 30 -j REJECT --reject-with tcp-reset &&
- ip netns exec "${ns2}" ${iptables} -A INPUT -d "10.0.1.2" \
- -p tcp --tcp-option 30 -j REJECT --reject-with tcp-reset; then
+ if ip netns exec "${ns1}" nft add rule inet mjoin_table \
+ input ip saddr "10.0.1.2" meta l4proto tcp \
+ tcp option mptcp exists reject with tcp reset &&
+ ip netns exec "${ns2}" nft add rule inet mjoin_table \
+ input ip daddr "10.0.1.2" meta l4proto tcp \
+ tcp option mptcp exists reject with tcp reset; then
wait_event ns2 MPTCP_LIB_EVENT_SUB_CLOSED 1
wait_event ns1 MPTCP_LIB_EVENT_SUB_CLOSED 1
chk_subflows_total 1 1
@@ -4393,7 +4355,7 @@ endpoint_tests()
chk_subflow_nr "after new reject" 2
chk_mptcp_info subflows 1 subflows 1
- ip netns exec "${ns2}" ${iptables} -D OUTPUT -s "10.0.3.2" -p tcp -j REJECT
+ ip netns exec "${ns2}" nft delete rule inet mjoin_table output handle "$nft_handle"
pm_nl_del_endpoint $ns2 3 10.0.3.2
pm_nl_add_endpoint $ns2 10.0.3.2 id 3 flags subflow
wait_mpj 3
@@ -4402,12 +4364,10 @@ endpoint_tests()
# To make sure RM_ADDR are sent over a different subflow, but
# allow the rest to quickly and cleanly close the subflow
- local ipt=1
- ip netns exec "${ns2}" ${iptables} -I OUTPUT -s "10.0.1.2" \
- -p tcp -m tcp --tcp-option 30 \
- -m bpf --bytecode \
- "$CBPF_MPTCP_SUBOPTION_RM_ADDR" \
- -j DROP || ipt=0
+ nft_handle=$(ip netns exec "${ns2}" nft -e --handle insert rule \
+ inet mjoin_table output ip saddr 10.0.1.2 meta l4proto tcp \
+ tcp option mptcp subtype remove-addr \
+ drop | head -n1 | awk '{print $NF}')
local i
for i in $(seq 3); do
pm_nl_del_endpoint $ns2 1 10.0.1.2
@@ -4420,7 +4380,8 @@ endpoint_tests()
chk_subflow_nr "after re-add id 0 ($i)" 3
chk_mptcp_info subflows 3 subflows 3
done
- [ ${ipt} = 1 ] && ip netns exec "${ns2}" ${iptables} -D OUTPUT 1
+ [ -n "${nft_handle}" ] && ip netns exec "${ns2}" nft delete rule \
+ inet mjoin_table output handle "${nft_handle}"
mptcp_lib_kill_group_wait $tests_pid
@@ -4482,18 +4443,17 @@ endpoint_tests()
# To make sure RM_ADDR are sent over a different subflow, but
# allow the rest to quickly and cleanly close the subflow
- local ipt=1
- ip netns exec "${ns1}" ${iptables} -I OUTPUT -s "10.0.1.1" \
- -p tcp -m tcp --tcp-option 30 \
- -m bpf --bytecode \
- "$CBPF_MPTCP_SUBOPTION_RM_ADDR" \
- -j DROP || ipt=0
+ nft_handle=$(ip netns exec "${ns1}" nft -e --handle insert rule \
+ inet mjoin_table output ip saddr 10.0.1.1 meta l4proto tcp \
+ tcp option mptcp subtype remove-addr \
+ drop | head -n1 | awk '{print $NF}')
pm_nl_del_endpoint $ns1 42 10.0.1.1
sleep 0.5
chk_subflow_nr "after delete ID 0" 2
chk_mptcp_info subflows 2 subflows 2
chk_mptcp_info add_addr_signal 2 add_addr_accepted 2
- [ ${ipt} = 1 ] && ip netns exec "${ns1}" ${iptables} -D OUTPUT 1
+ [ -n "${nft_handle}" ] && ip netns exec "${ns1}" nft delete rule \
+ inet mjoin_table output handle "${nft_handle}"
pm_nl_add_endpoint $ns1 10.0.1.1 id 42 flags signal
wait_mpj 4
@@ -4555,7 +4515,7 @@ endpoint_tests()
pm_nl_flush_endpoint $ns2
pm_nl_flush_endpoint $ns1
wait_rm_addr $ns2 0
- ip netns exec "${ns2}" ${iptables} -D OUTPUT -s "10.0.3.2" -p tcp -j REJECT
+ ip netns exec "${ns2}" nft delete rule inet mjoin_table output handle "$nft_handle"
pm_nl_add_endpoint $ns2 10.0.3.2 id 3 flags subflow
wait_mpj 1
pm_nl_add_endpoint $ns1 10.0.3.1 id 2 flags signal
diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
index 5ef6033775c86..eba6903233ccf 100644
--- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh
@@ -524,7 +524,7 @@ mptcp_lib_check_tools() {
exit ${KSFT_SKIP}
fi
;;
- "iptables"* | "ip6tables"*)
+ "iptables"* | "ip6tables"* | "nft"*)
if ! "${tool}" -V &> /dev/null; then
mptcp_lib_pr_skip "Could not run all tests without ${tool}"
exit ${KSFT_SKIP}
diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
index e850a87429b61..4d0af2bf94840 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
@@ -15,8 +15,6 @@ cin=""
cout=""
timeout_poll=30
timeout_test=$((timeout_poll * 2 + 1))
-iptables="iptables"
-ip6tables="ip6tables"
ns1=""
ns2=""
@@ -49,17 +47,23 @@ add_mark_rules()
local ns=$1
local m=$2
- local t
- for t in ${iptables} ${ip6tables}; do
- # just to debug: check we have multiple subflows connection requests
- ip netns exec $ns $t -A OUTPUT -p tcp --syn -m mark --mark $m -j ACCEPT
-
- # RST packets might be handled by a internal dummy socket
- ip netns exec $ns $t -A OUTPUT -p tcp --tcp-flags RST RST -m mark --mark 0 -j ACCEPT
-
- ip netns exec $ns $t -A OUTPUT -p tcp -m mark --mark $m -j ACCEPT
- ip netns exec $ns $t -A OUTPUT -p tcp -m mark --mark 0 -j DROP
- done
+ ip netns exec "$ns" nft add table inet msock_table
+ ip netns exec "$ns" nft add chain inet msock_table output \
+ '{ type filter hook output priority 0; policy accept; }'
+
+ # just to debug: check we have multiple subflows connection requests
+ ip netns exec "$ns" nft add rule inet msock_table output \
+ meta mark "$m" tcp flags syn accept
+ # RST packets might be handled by a internal dummy socket
+ ip netns exec "$ns" nft add rule inet msock_table output \
+ meta mark 0 tcp flags rst accept
+ ip netns exec "$ns" nft add rule inet msock_table output \
+ meta mark "$m" meta l4proto tcp accept
+
+ ip netns exec "$ns" nft add rule inet msock_table output \
+ meta nfproto ipv4 meta mark 0 meta l4proto tcp counter drop
+ ip netns exec "$ns" nft add rule inet msock_table output \
+ meta nfproto ipv6 meta mark 0 meta l4proto tcp counter drop
}
init()
@@ -105,33 +109,23 @@ cleanup()
mptcp_lib_check_mptcp
mptcp_lib_check_kallsyms
-mptcp_lib_check_tools ip "${iptables}" "${ip6tables}"
+mptcp_lib_check_tools ip nft
check_mark()
{
local ns=$1
local af=$2
- local tables=${iptables}
+ drop=$(ip netns exec "$ns" nft list table inet msock_table | \
+ grep "ipv$af.*packets.*drop" | awk '{print $(NF-3)}')
- if [ $af -eq 6 ];then
- tables=${ip6tables}
+ if [ "$drop" -ne 0 ]; then
+ mptcp_lib_pr_fail "got $drop pkt drops in ns $ns IPv{$af} tables," \
+ "not 0 - not all expected packets marked"
+ ret=${KSFT_FAIL}
+ return 1
fi
- local counters values
- counters=$(ip netns exec $ns $tables -v -L OUTPUT | grep DROP)
- values=${counters%DROP*}
-
- local v
- for v in $values; do
- if [ $v -ne 0 ]; then
- mptcp_lib_pr_fail "got $tables $values in ns $ns," \
- "not 0 - not all expected packets marked"
- ret=${KSFT_FAIL}
- return 1
- fi
- done
-
return 0
}
|
| 3/2 | 2026/09/02 19:36 | llm | patch-evaluator |
0mModel:gemini-3.7-flash Args: null Results: null Tokens: input: 7199 output: 36 thoughts: 211 Thoughts: **Analyzing This Patch Series** Okay, let's dive into this. My initial impression is that this patch series is focused on the multi-path TCP (MPTCP) self-tests. The diff mentions modifications to a number of files within the `tools/testing/selftests/net/mptcp/` directory. Based on the file paths listed, this immediately suggests to me that we're dealing with enhancements or fixes to the existing MPTCP testing infrastructure, rather than core kernel changes. I need to confirm there's nothing outside the `tools/testing/selftests/net/mptcp/` directory, which would involve actual kernel code. As an expert, that is the most important check. It would be a huge concern to skip that. So, I need to verify that this commit is *exclusively* touching test scripts, configurations, and related testing components, but nothing to do with `net/`, `drivers/`, `fs/`, `kernel/`, or `include/`. I'll be looking carefully at the commit content for anything that may contradict that. I'll need a full picture to understand exactly what is being tested and improved. |
| 4/2 | 2026/09/02 19:36 | tool | grepper |
0mArgs:{
"Expression": "nft_handle",
"PathPrefix": "tools/testing/selftests/net/mptcp"
}Results: {
"Output": "tools/testing/selftests/net/mptcp/mptcp_join.sh=50=nr_blank=6\ntools/testing/selftests/net/mptcp/mptcp_join.sh:51:nft_handle=\"\"\ntools/testing/selftests/net/mptcp/mptcp_join.sh-52-\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh=352=reset_with_add_addr_timeout()\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-361-\ntools/testing/selftests/net/mptcp/mptcp_join.sh:362:\tnft_handle=$(ip netns exec \"$ns2\" nft -e --handle add rule \\\ntools/testing/selftests/net/mptcp/mptcp_join.sh-363-\t\tinet mjoin_table output meta nfproto ipv${ip} \\\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-365-\t\tdrop | head -n1 | awk '{print $NF}')\ntools/testing/selftests/net/mptcp/mptcp_join.sh:366:\tif [ -z \"$nft_handle\" ]; then\ntools/testing/selftests/net/mptcp/mptcp_join.sh-367-\t\tmark_as_skipped \"unable to set the 'add addr' rule\"\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh=413=setup_fail_rules()\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-419-\ntools/testing/selftests/net/mptcp/mptcp_join.sh:420:\tnft_handle=$(ip netns exec \"$ns2\" nft -e --handle add rule \\\ntools/testing/selftests/net/mptcp/mptcp_join.sh-421-\t\tinet mjoin_table mangle oifname ns2eth$i \\\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-424-\t\tmeta mark set 42 | head -n1 | awk '{print $NF}')\ntools/testing/selftests/net/mptcp/mptcp_join.sh:425:\tif [ -z \"$nft_handle\" ]; then\ntools/testing/selftests/net/mptcp/mptcp_join.sh-426-\t\treturn ${KSFT_SKIP}\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh=468=reset_with_tcp_filter()\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-477-\ntools/testing/selftests/net/mptcp/mptcp_join.sh:478:\tnft_handle=$(ip netns exec \"$ns\" nft -e --handle add rule \\\ntools/testing/selftests/net/mptcp/mptcp_join.sh-479-\t\tinet mjoin_table \"${chain,,}\" \\\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-481-\t\thead -n1 | awk '{print $NF}')\ntools/testing/selftests/net/mptcp/mptcp_join.sh:482:\tif [ -z \"$nft_handle\" ]; then\ntools/testing/selftests/net/mptcp/mptcp_join.sh-483-\t\tmark_as_skipped \"unable to set the filter rules\"\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh=4296=endpoint_tests()\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4357-\ntools/testing/selftests/net/mptcp/mptcp_join.sh:4358:\t\tip netns exec \"${ns2}\" nft delete rule inet mjoin_table output handle \"$nft_handle\"\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4359-\t\tpm_nl_del_endpoint $ns2 3 10.0.3.2\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4366-\t\t# allow the rest to quickly and cleanly close the subflow\ntools/testing/selftests/net/mptcp/mptcp_join.sh:4367:\t\tnft_handle=$(ip netns exec \"${ns2}\" nft -e --handle insert rule \\\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4368-\t\t\tinet mjoin_table output ip saddr 10.0.1.2 meta l4proto tcp \\\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4382-\t\tdone\ntools/testing/selftests/net/mptcp/mptcp_join.sh:4383:\t\t[ -n \"${nft_handle}\" ] \u0026\u0026 ip netns exec \"${ns2}\" nft delete rule \\\ntools/testing/selftests/net/mptcp/mptcp_join.sh:4384:\t\t\tinet mjoin_table output handle \"${nft_handle}\"\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4385-\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4445-\t\t# allow the rest to quickly and cleanly close the subflow\ntools/testing/selftests/net/mptcp/mptcp_join.sh:4446:\t\tnft_handle=$(ip netns exec \"${ns1}\" nft -e --handle insert rule \\\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4447-\t\t\tinet mjoin_table output ip saddr 10.0.1.1 meta l4proto tcp \\\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4454-\t\tchk_mptcp_info add_addr_signal 2 add_addr_accepted 2\ntools/testing/selftests/net/mptcp/mptcp_join.sh:4455:\t\t[ -n \"${nft_handle}\" ] \u0026\u0026 ip netns exec \"${ns1}\" nft delete rule \\\ntools/testing/selftests/net/mptcp/mptcp_join.sh:4456:\t\t\tinet mjoin_table output handle \"${nft_handle}\"\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4457-\n--\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4517-\t\twait_rm_addr $ns2 0\ntools/testing/selftests/net/mptcp/mptcp_join.sh:4518:\t\tip netns exec \"${ns2}\" nft delete rule inet mjoin_table output handle \"$nft_handle\"\ntools/testing/selftests/net/mptcp/mptcp_join.sh-4519-\t\tpm_nl_add_endpoint $ns2 10.0.3.2 id 3 flags subflow\n"
} |
| 5/2 | 2026/09/02 19:36 | llm | patch-evaluator |
0mModel:gemini-3.7-flash Args: null Results: null Tokens: input: 9552 output: 79 thoughts: 242 Thoughts: **My Assessment: This Patch is Not Worth Fuzzing** Okay, so this patch is clearly focused on updating the self-tests for MPTCP within `tools/testing/selftests/net/mptcp/`. It's all about migrating those old iptables rules to nftables and tweaking the selftest configurations. The critical thing here is that *nothing* in the Linux kernel itself is being touched. No core logic, no drivers, no architecture-specific stuff – nothing that would introduce new attack surfaces at the kernel level. Therefore, my initial instinct is that this patch isn't something we need to prioritize for fuzzing. Let's quickly run through the established guidelines to be absolutely sure. The documentation states that we should set `WorthFuzzing` to `false` if the patch involves only: documentation updates, Kconfig modifications, code comments, purely decorative changes like logging, changes to numerical constants/macros that don’t functionally change execution, unreachable code in virtualized environments, or userland tooling/selftest modifications *without* corresponding kernel changes. Bingo! This clearly falls under the last criterion. Alright, so the verdict is clear: `WorthFuzzing` is `false`. That means the `FocusSymbols` array is empty, and there are no specific `EnableConfigs` required. The reasoning is straightforward: this is a user-space selftest update, devoid of direct impact on kernel execution. Let's go ahead and record these results with `set-results`. |
| 6/2 | 2026/09/02 19:36 | tool | set-results |
0mArgs:{
"EnableConfigs": [],
"FocusSymbols": [],
"Reasoning": "The patch only modifies user-space selftest scripts and test configurations in tools/testing/selftests/net/mptcp/ (migrating iptables rules to nftables), with no functional modifications to the Linux kernel itself.",
"WorthFuzzing": false
}Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch only modifies user-space selftest scripts and test configurations in tools/testing/selftests/net/mptcp/ (migrating iptables rules to nftables), with no functional modifications to the Linux kernel itself.",
"WorthFuzzing": false
} |
| 7/1 | 2026/09/02 19:36 | action | If |
0mArgs:{
"WorthFuzzing": false
}Results: null |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|