selftests: forwarding: pedit_dsfield: Add pedit munge ip6 dsfield
authorPetr Machata <petrm@mellanox.com>
Wed, 22 Apr 2020 16:48:29 +0000 (19:48 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Apr 2020 02:48:57 +0000 (19:48 -0700)
Extend the pedit_dsfield forwarding selftest with coverage of "pedit ex
munge ip6 dsfield set".

Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/forwarding/pedit_dsfield.sh

index b500818..1181d64 100755 (executable)
 
 ALL_TESTS="
        ping_ipv4
+       ping_ipv6
        test_ip_dsfield
        test_ip_dscp
        test_ip_ecn
        test_ip_dscp_ecn
+       test_ip6_dsfield
+       test_ip6_dscp
+       test_ip6_ecn
 "
 
 NUM_NETIFS=4
@@ -107,6 +111,11 @@ ping_ipv4()
        ping_test $h1 192.0.2.2
 }
 
+ping_ipv6()
+{
+       ping6_test $h1 2001:db8:1::2
+}
+
 do_test_pedit_dsfield_common()
 {
        local pedit_locus=$1; shift
@@ -228,6 +237,63 @@ test_ip_dscp_ecn()
        do_test_ip_dscp_ecn "dev $swp2 egress"
 }
 
+do_test_ip6_dsfield()
+{
+       local locus=$1; shift
+       local dsfield
+
+       for dsfield in 0 1 2 3 128 252 253 254 255; do
+               do_test_pedit_dsfield "$locus"                          \
+                                 "ip6 traffic_class set $dsfield"      \
+                                 ipv6 "ip_tos $dsfield"                \
+                                 "-6 -A 2001:db8:1::1 -B 2001:db8:1::2"
+       done
+}
+
+test_ip6_dsfield()
+{
+       do_test_ip6_dsfield "dev $swp1 ingress"
+       do_test_ip6_dsfield "dev $swp2 egress"
+}
+
+do_test_ip6_dscp()
+{
+       local locus=$1; shift
+       local dscp
+
+       for dscp in 0 1 2 3 32 61 62 63; do
+               do_test_pedit_dsfield "$locus"                                 \
+                           "ip6 traffic_class set $((dscp << 2)) retain 0xfc" \
+                           ipv6 "ip_tos $(((dscp << 2) | 1))"                 \
+                           "-6 -A 2001:db8:1::1 -B 2001:db8:1::2"
+       done
+}
+
+test_ip6_dscp()
+{
+       do_test_ip6_dscp "dev $swp1 ingress"
+       do_test_ip6_dscp "dev $swp2 egress"
+}
+
+do_test_ip6_ecn()
+{
+       local locus=$1; shift
+       local ecn
+
+       for ecn in 0 1 2 3; do
+               do_test_pedit_dsfield "$locus"                          \
+                               "ip6 traffic_class set $ecn retain 0x3" \
+                               ipv6 "ip_tos $((124 | $ecn))"           \
+                               "-6 -A 2001:db8:1::1 -B 2001:db8:1::2"
+       done
+}
+
+test_ip6_ecn()
+{
+       do_test_ip6_ecn "dev $swp1 ingress"
+       do_test_ip6_ecn "dev $swp2 egress"
+}
+
 trap cleanup EXIT
 
 setup_prepare