tc-testing: Add control-plane selftests for sch_mq
authorPeilin Ye <peilin.ye@bytedance.com>
Tue, 3 Aug 2021 22:16:59 +0000 (15:16 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Aug 2021 11:42:27 +0000 (12:42 +0100)
Recently we added multi-queue support to netdevsim in commit d4861fc6be58
("netdevsim: Add multi-queue support"); add a few control-plane selftests
for sch_mq using this new feature.

Use nsPlugin.py to avoid network interface name collisions.

Reviewed-by: Cong Wang <cong.wang@bytedance.com>
Signed-off-by: Peilin Ye <peilin.ye@bytedance.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/tc-testing/tc-tests/qdiscs/mq.json [new file with mode: 0644]
tools/testing/selftests/tc-testing/tdc_config.py

diff --git a/tools/testing/selftests/tc-testing/tc-tests/qdiscs/mq.json b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/mq.json
new file mode 100644 (file)
index 0000000..88a20c7
--- /dev/null
@@ -0,0 +1,137 @@
+[
+       {
+           "id": "ce7d",
+           "name": "Add mq Qdisc to multi-queue device (4 queues)",
+           "category": [
+            "qdisc",
+            "mq"
+           ],
+        "plugins": {
+            "requires": "nsPlugin"
+        },
+           "setup": [
+            "echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
+           ],
+           "cmdUnderTest": "$TC qdisc add dev $ETH root handle 1: mq",
+           "expExitCode": "0",
+           "verifyCmd": "$TC qdisc show dev $ETH",
+           "matchPattern": "qdisc pfifo_fast 0: parent 1:[1-4] bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1",
+           "matchCount": "4",
+           "teardown": [
+                   "echo \"1\" > /sys/bus/netdevsim/del_device"
+           ]
+       },
+       {
+           "id": "2f82",
+           "name": "Add mq Qdisc to multi-queue device (256 queues)",
+           "category": [
+            "qdisc",
+            "mq"
+           ],
+        "plugins": {
+            "requires": "nsPlugin"
+        },
+           "setup": [
+            "echo \"1 1 256\" > /sys/bus/netdevsim/new_device"
+           ],
+           "cmdUnderTest": "$TC qdisc add dev $ETH root handle 1: mq",
+           "expExitCode": "0",
+           "verifyCmd": "$TC qdisc show dev $ETH",
+           "matchPattern": "qdisc pfifo_fast 0: parent 1:[1-9,a-f][0-9,a-f]{0,2} bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1",
+           "matchCount": "256",
+           "teardown": [
+                   "echo \"1\" > /sys/bus/netdevsim/del_device"
+           ]
+       },
+       {
+           "id": "c525",
+           "name": "Add duplicate mq Qdisc",
+           "category": [
+            "qdisc",
+            "mq"
+           ],
+        "plugins": {
+            "requires": "nsPlugin"
+        },
+           "setup": [
+            "echo \"1 1 4\" > /sys/bus/netdevsim/new_device",
+            "$TC qdisc add dev $ETH root handle 1: mq"
+           ],
+           "cmdUnderTest": "$TC qdisc add dev $ETH root handle 1: mq",
+           "expExitCode": "2",
+           "verifyCmd": "$TC qdisc show dev $ETH",
+           "matchPattern": "qdisc pfifo_fast 0: parent 1:[1-4] bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1",
+           "matchCount": "4",
+           "teardown": [
+                   "echo \"1\" > /sys/bus/netdevsim/del_device"
+           ]
+       },
+       {
+           "id": "128a",
+           "name": "Delete nonexistent mq Qdisc",
+           "category": [
+            "qdisc",
+            "mq"
+           ],
+        "plugins": {
+            "requires": "nsPlugin"
+        },
+           "setup": [
+            "echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
+           ],
+           "cmdUnderTest": "$TC qdisc del dev $ETH root handle 1: mq",
+           "expExitCode": "2",
+           "verifyCmd": "$TC qdisc show dev $ETH",
+           "matchPattern": "qdisc pfifo_fast 0: parent 1:[1-4] bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1",
+           "matchCount": "0",
+           "teardown": [
+                   "echo \"1\" > /sys/bus/netdevsim/del_device"
+           ]
+       },
+       {
+           "id": "03a9",
+           "name": "Delete mq Qdisc twice",
+           "category": [
+            "qdisc",
+            "mq"
+           ],
+        "plugins": {
+            "requires": "nsPlugin"
+        },
+           "setup": [
+            "echo \"1 1 4\" > /sys/bus/netdevsim/new_device",
+            "$TC qdisc add dev $ETH root handle 1: mq",
+            "$TC qdisc del dev $ETH root handle 1: mq"
+           ],
+           "cmdUnderTest": "$TC qdisc del dev $ETH root handle 1: mq",
+           "expExitCode": "2",
+           "verifyCmd": "$TC qdisc show dev $ETH",
+           "matchPattern": "qdisc pfifo_fast 0: parent 1:[1-4] bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1",
+           "matchCount": "0",
+           "teardown": [
+                   "echo \"1\" > /sys/bus/netdevsim/del_device"
+           ]
+       },
+    {
+           "id": "be0f",
+           "name": "Add mq Qdisc to single-queue device",
+           "category": [
+            "qdisc",
+            "mq"
+           ],
+        "plugins": {
+            "requires": "nsPlugin"
+        },
+           "setup": [
+            "echo \"1 1\" > /sys/bus/netdevsim/new_device"
+           ],
+           "cmdUnderTest": "$TC qdisc add dev $ETH root handle 1: mq",
+           "expExitCode": "2",
+           "verifyCmd": "$TC qdisc show dev $ETH",
+           "matchPattern": "qdisc pfifo_fast 0: parent 1:[1-4] bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1",
+           "matchCount": "0",
+           "teardown": [
+                   "echo \"1\" > /sys/bus/netdevsim/del_device"
+           ]
+       }
+]
index cd4a27e..ea04f04 100644 (file)
@@ -17,6 +17,7 @@ NAMES = {
           'DEV1': 'v0p1',
           'DEV2': '',
           'DUMMY': 'dummy1',
+         'ETH': 'eth0',
           'BATCH_FILE': './batch.txt',
           'BATCH_DIR': 'tmp',
           # Length of time in seconds to wait before terminating a command