selftests: forwarding: router: Add test case for destination IP link-local
authorAmit Cohen <amitc@mellanox.com>
Sun, 5 Jan 2020 16:20:57 +0000 (18:20 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Jan 2020 21:38:37 +0000 (13:38 -0800)
Add test case to check that packets are not dropped when they need to be
routed and their destination is link-local, i.e., 169.254.0.0/16.

Signed-off-by: Amit Cohen <amitc@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/forwarding/router.sh

index c894f72..057f91b 100755 (executable)
@@ -8,6 +8,7 @@ ALL_TESTS="
        mc_mac_mismatch
        ipv4_sip_equal_dip
        ipv6_sip_equal_dip
+       ipv4_dip_link_local
 "
 
 NUM_NETIFS=4
@@ -287,6 +288,30 @@ ipv6_sip_equal_dip()
        tc filter del dev $rp2 egress protocol ipv6 pref 1 handle 101 flower
 }
 
+ipv4_dip_link_local()
+{
+       local dip=169.254.1.1
+
+       RET=0
+
+       tc filter add dev $rp2 egress protocol ip pref 1 handle 101 \
+               flower dst_ip $dip action pass
+
+       ip neigh add 169.254.1.1 lladdr 00:11:22:33:44:55 dev $rp2
+       ip route add 169.254.1.0/24 dev $rp2
+
+       $MZ $h1 -t udp "sp=54321,dp=12345" -c 5 -d 1msec -b $rp1mac -B $dip -q
+
+       tc_check_packets "dev $rp2 egress" 101 5
+       check_err $? "Packets were dropped"
+
+       log_test "IPv4 destination IP is link-local"
+
+       ip route del 169.254.1.0/24 dev $rp2
+       ip neigh del 169.254.1.1 lladdr 00:11:22:33:44:55 dev $rp2
+       tc filter del dev $rp2 egress protocol ip pref 1 handle 101 flower
+}
+
 trap cleanup EXIT
 
 setup_prepare