selftests: forwarding: fix pedit tests failure with br_netfilter enabled
authorAleksei Oladko <aleksey.oladko@virtuozzo.com>
Fri, 13 Feb 2026 13:19:07 +0000 (13:19 +0000)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 17 Feb 2026 12:34:18 +0000 (13:34 +0100)
The tests use the tc pedit action to modify the IPv4 source address
("pedit ex munge ip src set"), but the IP header checksum is not
recalculated after the modification. As a result, the modified packet
fails sanity checks in br_netfilter after bridging and is dropped,
which causes the test to fail.

Fix this by ensuring net.bridge.bridge-nf-call-iptables is set to 0
during the test execution. This prevents the bridge from passing
L2 traffic to netfilter, bypassing the checksum validation that
causes the test failure.

Fixes: 92ad3828944e ("selftests: forwarding: Add a test for pedit munge SIP and DIP")
Fixes: 226657ba2389 ("selftests: forwarding: Add a forwarding test for pedit munge dsfield")
Signed-off-by: Aleksei Oladko <aleksey.oladko@virtuozzo.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260213131907.43351-4-aleksey.oladko@virtuozzo.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/selftests/net/forwarding/pedit_dsfield.sh
tools/testing/selftests/net/forwarding/pedit_ip.sh

index af008fb..eb2d803 100755 (executable)
@@ -98,12 +98,20 @@ setup_prepare()
        h1_create
        h2_create
        switch_create
+
+       if [ -f /proc/sys/net/bridge/bridge-nf-call-iptables ]; then
+               sysctl_set net.bridge.bridge-nf-call-iptables 0
+       fi
 }
 
 cleanup()
 {
        pre_cleanup
 
+       if [ -f /proc/sys/net/bridge/bridge-nf-call-iptables ]; then
+               sysctl_restore net.bridge.bridge-nf-call-iptables
+       fi
+
        switch_destroy
        h2_destroy
        h1_destroy
index d14efb2..9235674 100755 (executable)
@@ -91,12 +91,20 @@ setup_prepare()
        h1_create
        h2_create
        switch_create
+
+       if [ -f /proc/sys/net/bridge/bridge-nf-call-iptables ]; then
+               sysctl_set net.bridge.bridge-nf-call-iptables 0
+       fi
 }
 
 cleanup()
 {
        pre_cleanup
 
+       if [ -f /proc/sys/net/bridge/bridge-nf-call-iptables ]; then
+               sysctl_restore net.bridge.bridge-nf-call-iptables
+       fi
+
        switch_destroy
        h2_destroy
        h1_destroy