<_PROGS=nft_flowtable.sh TEST_GEN_PROGS="" run_tests make: Entering directory '/srv/vmksft/testing/wt-16/tools/testing/selftests' make[1]: Entering directory '/srv/vmksft/testing/wt-16/tools/testing/selftests/net/netfilter' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/srv/vmksft/testing/wt-16/tools/testing/selftests/net/netfilter' make[1]: Entering directory '/srv/vmksft/testing/wt-16/tools/testing/selftests/net/netfilter' # overriding timeout to 3600 # selftests: net/netfilter: nft_flowtable.sh # PASS: flow offloaded for ns1/ns2 # PASS: IPv6 flow offloaded for ns1/ns2 # PASS: dscp_none: dscp packet counters match # PASS: dscp_ingress: dscp packet counters match # PASS: dscp_egress: dscp packet counters match # PASS: dscp_fwd: dscp packet counters match # PASS: flow offload for ns1/ns2 with masquerade (pmtu disabled) # PASS: flow offload for ns1/ns2 with dnat (pmtu disabled) # PASS: dscp_ingress: dscp packet counters match # PASS: dscp_egress: dscp packet counters match # PASS: dscp_fwd: dscp packet counters match # PASS: flow offload for ns1/ns2 with masquerade # PASS: flow offload for ns1/ns2 with dnat # PASS: flow offload for ns1/ns2 with masquerade IPIP tunnel # PASS: flow offload for ns1/ns2 with dnat IPIP tunnel # PASS: flow offload for ns1/ns2 IP6IP6 tunnel # PASS: flow offload for ns1/ns2 with masquerade IPIP tunnel over vlan # PASS: flow offload for ns1/ns2 with dnat IPIP tunnel over vlan # PASS: flow offload for ns1/ns2 IP6IP6 tunnel over vlan # PASS: flow offload for ns1/ns2 with masquerade on bridge # PASS: flow offload for ns1/ns2 with dnat on bridge # PASS: bridge + IPIP tunnel # PASS: bridge + IP6IP6 tunnel # PASS: flow offload for ns1/ns2 with masquerade bridge and VLAN # PASS: flow offload for ns1/ns2 with dnat bridge and VLAN # PASS: ipsec tunnel mode for ns1/ns2 # PASS: IPv6 ipsec tunnel mode for ns1/ns2 # re-run with random mtus and file size: -o 19584 -l 1319 -r 9447 -s 15154425 # PASS: flow offloaded for ns1/ns2 # PASS: IPv6 flow offloaded for ns1/ns2 # PASS: dscp_none: dscp packet counters match # PASS: dscp_ingress: dscp packet counters match # PASS: dscp_egress: dscp packet counters match # PASS: dscp_fwd: dscp packet counters match # PASS: flow offload for ns1/ns2 with masquerade (pmtu disabled) # PASS: flow offload for ns1/ns2 with dnat (pmtu disabled) # PASS: dscp_ingress: dscp packet counters match # PASS: dscp_egress: dscp packet counters match # PASS: dscp_fwd: dscp packet counters match # PASS: flow offload for ns1/ns2 with masquerade # PASS: flow offload for ns1/ns2 with dnat # PASS: flow offload for ns1/ns2 with masquerade IPIP tunnel # PASS: flow offload for ns1/ns2 with dnat IPIP tunnel # 2026/10/08 20:17:44 socat[19196] W exiting on signal 15 # 2026/10/08 20:17:44 socat[19206] W exiting on signal 15 # FAIL: file mismatch for ns1 -> ns2 # -rw------- 1 root root 15154425 Oct 8 20:16 /tmp/tmp.rO9sx2N56N # -rw------- 1 root root 0 Oct 8 20:16 /tmp/tmp.KT31XVOTDD # FAIL: file mismatch for ns1 <- ns2 # -rw------- 1 root root 15154425 Oct 8 20:16 /tmp/tmp.rO9sx2N56N # -rw------- 1 root root 0 Oct 8 20:16 /tmp/tmp.G7CeUVVyJY # FAIL: flow offload for ns1/ns2 with IP6IP6 tunnel # table inet filter { # counter routed_orig { # packets 0 bytes 0 # } # # counter routed_repl { # packets 3 bytes 256 # } # # flowtable f1 { # hook ingress priority filter # devices = { "veth0", "veth1" } # } # # chain forward { # type filter hook forward priority filter; policy drop; # oif "veth0" tcp sport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_repl" accept # oif "tun6" accept # oif "tun6" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "tun0" accept # oif "tun0" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # ip dscp set cs3 # ip dscp set cs3 # oif "veth1" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # ct mark 0x00000001 counter name ct direction map { original : "routed_orig", reply : "routed_repl" } accept # ct state established,related accept # meta l4proto icmp accept # meta l4proto ipv6-icmp accept # } # } # table ip nat { # chain prerouting { # type nat hook prerouting priority filter; policy accept; # iif "veth0" ip daddr 10.6.6.6 tcp dport 1666 counter packets 3 bytes 180 dnat to 10.0.2.99:12345 # } # # chain postrouting { # type nat hook postrouting priority filter; policy accept; # oifname "veth1" counter packets 11 bytes 680 masquerade # } # } # PASS: flow offload for ns1/ns2 with masquerade IPIP tunnel over vlan # PASS: flow offload for ns1/ns2 with dnat IPIP tunnel over vlan # 2026/10/08 20:18:47 socat[19299] W exiting on signal 15 # 2026/10/08 20:18:47 socat[19309] W exiting on signal 15 # FAIL: file mismatch for ns1 -> ns2 # -rw------- 1 root root 15154425 Oct 8 20:16 /tmp/tmp.rO9sx2N56N # -rw------- 1 root root 0 Oct 8 20:17 /tmp/tmp.KT31XVOTDD # FAIL: file mismatch for ns1 <- ns2 # -rw------- 1 root root 15154425 Oct 8 20:16 /tmp/tmp.rO9sx2N56N # -rw------- 1 root root 0 Oct 8 20:17 /tmp/tmp.G7CeUVVyJY # FAIL: flow offload for ns1/ns2 with IP6IP6 tunnel over vlan # table inet filter { # counter routed_orig { # packets 0 bytes 0 # } # # counter routed_repl { # packets 2 bytes 1096 # } # # flowtable f1 { # hook ingress priority filter # devices = { "veth0", "veth1" } # } # # chain forward { # type filter hook forward priority filter; policy drop; # oif "tun6.10" accept # oif "tun6.10" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "tun0.10" accept # oif "tun0.10" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "veth1.10" accept # oif "veth1.10" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "veth0" tcp sport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_repl" accept # oif "tun6" accept # oif "tun6" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "tun0" accept # oif "tun0" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # ip dscp set cs3 # ip dscp set cs3 # oif "veth1" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # ct mark 0x00000001 counter name ct direction map { original : "routed_orig", reply : "routed_repl" } accept # ct state established,related accept # meta l4proto icmp accept # meta l4proto ipv6-icmp accept # } # } # table ip nat { # chain prerouting { # type nat hook prerouting priority filter; policy accept; # iif "veth0" ip daddr 10.6.6.6 tcp dport 1666 counter packets 4 bytes 240 dnat to 10.0.2.99:12345 # } # # chain postrouting { # type nat hook postrouting priority filter; policy accept; # oifname "veth1" counter packets 11 bytes 680 masquerade # } # } # PASS: flow offload for ns1/ns2 with masquerade on bridge # PASS: flow offload for ns1/ns2 with dnat on bridge # PASS: bridge + IPIP tunnel # 2026/10/08 20:19:51 socat[19420] W exiting on signal 15 # 2026/10/08 20:19:51 socat[19429] W exiting on signal 15 # FAIL: file mismatch for ns1 -> ns2 # -rw------- 1 root root 15154425 Oct 8 20:16 /tmp/tmp.rO9sx2N56N # -rw------- 1 root root 0 Oct 8 20:18 /tmp/tmp.KT31XVOTDD # FAIL: file mismatch for ns1 <- ns2 # -rw------- 1 root root 15154425 Oct 8 20:16 /tmp/tmp.rO9sx2N56N # -rw------- 1 root root 0 Oct 8 20:18 /tmp/tmp.G7CeUVVyJY # FAIL: flow offload for ns1/ns2 with bridge + IP6IP6 tunnel # table inet filter { # counter routed_orig { # packets 0 bytes 0 # } # # counter routed_repl { # packets 2 bytes 164 # } # # flowtable f1 { # hook ingress priority filter # devices = { "veth0", "veth1" } # } # # chain forward { # type filter hook forward priority filter; policy drop; # oif "tun6" accept # oif "tun0" accept # oif "br0" tcp sport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_repl" accept # oif "veth0" tcp sport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_repl" accept # oif "tun6" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "tun0" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "tun6.10" accept # oif "tun6.10" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "tun0.10" accept # oif "tun0.10" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "veth1.10" accept # oif "veth1.10" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "veth0" tcp sport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_repl" accept # oif "tun6" accept # oif "tun6" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # oif "tun0" accept # oif "tun0" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # ip dscp set cs3 # ip dscp set cs3 # oif "veth1" tcp dport 12345 ct mark set 0x00000001 flow add @f1 counter name "routed_orig" accept # ct mark 0x00000001 counter name ct direction map { original : "routed_orig", reply : "routed_repl" } accept # ct state established,related accept # meta l4proto icmp accept # meta l4proto ipv6-icmp accept # } # } # table ip nat { # chain prerouting { # type nat hook prerouting priority filter; policy accept; # iif "br0" ip daddr 10.6.6.6 tcp dport 1666 counter packets 1 bytes 60 dnat to 10.0.2.99:12345 # } # # chain postrouting { # type nat hook postrouting priority filter; policy accept; # oifname "veth1" counter packets 2 bytes 120 masquerade # } # } # PASS: flow offload for ns1/ns2 with masquerade bridge and VLAN # PASS: flow offload for ns1/ns2 with dnat bridge and VLAN # PASS: ipsec tunnel mode for ns1/ns2 # PASS: IPv6 ipsec tunnel mode for ns1/ns2 not ok 1 selftests: net/netfilter: nft_flowtable.sh # exit=1 make[1]: Leaving directory '/srv/vmksft/testing/wt-16/tools/testing/selftests/net/netfilter' make: Leaving directory '/srv/vmksft/testing/wt-16/tools/testing/selftests' xx__-> echo $? 0 xx__-> echo scan > /sys/kernel/debug/kmemleak xx__->