]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-network: add more tests for traffic control
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 5 Feb 2020 10:23:11 +0000 (19:23 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 7 Feb 2020 08:41:43 +0000 (17:41 +0900)
test/test-network/conf/25-qdisc-clsact-root-compat.network [new file with mode: 0644]
test/test-network/conf/25-qdisc-ingress-netem-compat.network [new file with mode: 0644]
test/test-network/conf/25-qdisc-ingress-root.network [new file with mode: 0644]
test/test-network/systemd-networkd-tests.py

diff --git a/test/test-network/conf/25-qdisc-clsact-root-compat.network b/test/test-network/conf/25-qdisc-clsact-root-compat.network
new file mode 100644 (file)
index 0000000..1f0dea4
--- /dev/null
@@ -0,0 +1,12 @@
+[Match]
+Name=dummy98
+
+[Network]
+IPv6AcceptRA=no
+Address=10.1.2.3/16
+
+#[TrafficControlQueueingDiscipline]
+#Parent=root
+
+[TrafficControlQueueingDiscipline]
+Parent=clsact
diff --git a/test/test-network/conf/25-qdisc-ingress-netem-compat.network b/test/test-network/conf/25-qdisc-ingress-netem-compat.network
new file mode 100644 (file)
index 0000000..51dced2
--- /dev/null
@@ -0,0 +1,16 @@
+[Match]
+Name=test1
+
+[Network]
+IPv6AcceptRA=no
+Address=10.1.2.4/16
+
+[TrafficControlQueueingDiscipline]
+Parent=root
+NetworkEmulatorDelaySec=50ms
+NetworkEmulatorDelayJitterSec=10ms
+NetworkEmulatorLossRate=20%
+NetworkEmulatorPacketLimit=100
+
+[TrafficControlQueueingDiscipline]
+Parent=ingress
diff --git a/test/test-network/conf/25-qdisc-ingress-root.network b/test/test-network/conf/25-qdisc-ingress-root.network
new file mode 100644 (file)
index 0000000..f72b701
--- /dev/null
@@ -0,0 +1,12 @@
+[Match]
+Name=test1
+
+[Network]
+IPv6AcceptRA=no
+Address=10.1.2.4/16
+
+#[QDisc]
+#Parent=root
+
+[QDisc]
+Parent=ingress
index 454b00889d864d677753216a869c5f05413a3388..423815c73aaa1f71009e3d6d05595da811dc6e16 100755 (executable)
@@ -1616,7 +1616,10 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
         '25-neighbor-ip-dummy.network',
         '25-neighbor-ip.network',
         '25-nexthop.network',
+        '25-qdisc-clsact-root-compat.network',
         '25-qdisc-fq-codel.network',
+        '25-qdisc-ingress-netem-compat.network',
+        '25-qdisc-ingress-root.network',
         '25-qdisc-netem-and-fqcodel.network',
         '25-qdisc-tbf-and-sfq.network',
         '25-route-ipv6-src.network',
@@ -2248,10 +2251,11 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
         self.assertRegex(output, 'perturb 5sec')
 
     def test_qdisc2(self):
-        copy_unit_to_networkd_unit_path('25-qdisc-fq-codel.network', '12-dummy.netdev')
+        copy_unit_to_networkd_unit_path('25-qdisc-fq-codel.network', '12-dummy.netdev',
+                                        '25-qdisc-ingress-root.network', '11-dummy.netdev')
         start_networkd()
 
-        self.wait_online(['dummy98:routable'])
+        self.wait_online(['dummy98:routable', 'test1:routable'])
 
         output = check_output('tc qdisc show dev dummy98')
         print(output)
@@ -2262,6 +2266,25 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
         self.assertRegex(output, 'maxrate 1Mbit')
         self.assertRegex(output, 'qdisc codel')
         self.assertRegex(output, 'limit 2000p target 10.0ms ce_threshold 100.0ms interval 50.0ms ecn')
+        output = check_output('tc qdisc show dev test1')
+        print(output)
+        self.assertRegex(output, 'qdisc ingress')
+
+    def test_qdisc3(self):
+        copy_unit_to_networkd_unit_path('25-qdisc-clsact-root-compat.network', '12-dummy.netdev',
+                                        '25-qdisc-ingress-netem-compat.network', '11-dummy.netdev')
+        start_networkd()
+
+        self.wait_online(['dummy98:routable', 'test1:routable'])
+
+        output = check_output('tc qdisc show dev dummy98')
+        print(output)
+        self.assertRegex(output, 'qdisc clsact')
+        output = check_output('tc qdisc show dev test1')
+        print(output)
+        self.assertRegex(output, 'qdisc netem')
+        self.assertRegex(output, 'limit 100 delay 50.0ms  10.0ms loss 20%')
+        self.assertRegex(output, 'qdisc ingress')
 
 class NetworkdStateFileTests(unittest.TestCase, Utilities):
     links = [