selftests: set sysctl bc_forwarding properly in router_broadcast.sh
authorXin Long <lucien.xin@gmail.com>
Sun, 2 Jun 2019 11:09:55 +0000 (19:09 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 3 Jun 2019 22:15:01 +0000 (15:15 -0700)
sysctl setting bc_forwarding for $rp2 is needed when ping_test_from h2,
otherwise the bc packets from $rp2 won't be forwarded. This patch is to
add this setting for $rp2.

Also, as ping_test_from does grep "$from" only, which could match some
unexpected output, some test case doesn't really work, like:

  # ping_test_from $h2 198.51.200.255 198.51.200.2
    PING 198.51.200.255 from 198.51.100.2 veth3: 56(84) bytes of data.
    64 bytes from 198.51.100.1: icmp_seq=1 ttl=64 time=0.336 ms

When doing grep $form (198.51.200.2), the output could still match.
So change to grep "bytes from $from" instead.

Fixes: 40f98b9af943 ("selftests: add a selftest for directed broadcast forwarding")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/forwarding/router_broadcast.sh

index 9a678ece32b4db41f00a8445544bdbf98a00ffd5..4eac0a06f451c48c150415d90a3f7432d038a9fc 100755 (executable)
@@ -145,16 +145,19 @@ bc_forwarding_disable()
 {
        sysctl_set net.ipv4.conf.all.bc_forwarding 0
        sysctl_set net.ipv4.conf.$rp1.bc_forwarding 0
+       sysctl_set net.ipv4.conf.$rp2.bc_forwarding 0
 }
 
 bc_forwarding_enable()
 {
        sysctl_set net.ipv4.conf.all.bc_forwarding 1
        sysctl_set net.ipv4.conf.$rp1.bc_forwarding 1
+       sysctl_set net.ipv4.conf.$rp2.bc_forwarding 1
 }
 
 bc_forwarding_restore()
 {
+       sysctl_restore net.ipv4.conf.$rp2.bc_forwarding
        sysctl_restore net.ipv4.conf.$rp1.bc_forwarding
        sysctl_restore net.ipv4.conf.all.bc_forwarding
 }
@@ -171,7 +174,7 @@ ping_test_from()
        log_info "ping $dip, expected reply from $from"
        ip vrf exec $(master_name_get $oif) \
                $PING -I $oif $dip -c 10 -i 0.1 -w $PING_TIMEOUT -b 2>&1 \
-               | grep $from &> /dev/null
+               | grep "bytes from $from" > /dev/null
        check_err_fail $fail $?
 }