selftests: forwarding: add tests for TC chains creation adn destruction
authorJiri Pirko <jiri@mellanox.com>
Mon, 23 Jul 2018 07:24:06 +0000 (09:24 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Jul 2018 03:44:13 +0000 (20:44 -0700)
Add basic sanity tests for TC chains.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/forwarding/lib.sh
tools/testing/selftests/net/forwarding/tc_chains.sh

index ec94395a54a7d92d359695dc2e67c55b0d45a8c5..158d59ffee4062f5f45b3819359225ebbd17a740 100644 (file)
@@ -44,6 +44,15 @@ check_tc_shblock_support()
        fi
 }
 
+check_tc_chain_support()
+{
+       tc help 2>&1|grep chain &> /dev/null
+       if [[ $? -ne 0 ]]; then
+               echo "SKIP: iproute2 too old; tc is missing chain support"
+               exit 1
+       fi
+}
+
 if [[ "$(id -u)" -ne 0 ]]; then
        echo "SKIP: need root privileges"
        exit 0
index d2c783e94df3d6a5f160215fc11777b6b22b283e..2730887a3b3af9c099287708dad5213549c62141 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash
 # SPDX-License-Identifier: GPL-2.0
 
-ALL_TESTS="unreachable_chain_test gact_goto_chain_test"
+ALL_TESTS="unreachable_chain_test gact_goto_chain_test create_destroy_chain"
 NUM_NETIFS=2
 source tc_common.sh
 source lib.sh
@@ -80,6 +80,25 @@ gact_goto_chain_test()
        log_test "gact goto chain ($tcflags)"
 }
 
+create_destroy_chain()
+{
+       RET=0
+
+       tc chain add dev $h2 ingress
+       check_err $? "Failed to create default chain"
+
+       tc chain add dev $h2 ingress chain 1
+       check_err $? "Failed to create chain 1"
+
+       tc chain del dev $h2 ingress
+       check_err $? "Failed to destroy default chain"
+
+       tc chain del dev $h2 ingress chain 1
+       check_err $? "Failed to destroy chain 1"
+
+       log_test "create destroy chain"
+}
+
 setup_prepare()
 {
        h1=${NETIFS[p1]}
@@ -103,6 +122,8 @@ cleanup()
        vrf_cleanup
 }
 
+check_tc_chain_support
+
 trap cleanup EXIT
 
 setup_prepare