From ab9dc1db477e4810c7da4548604b6a6b72388342 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 5 Feb 2020 19:23:11 +0900 Subject: [PATCH] test-network: add more tests for traffic control --- .../conf/25-qdisc-clsact-root-compat.network | 12 +++++++++ .../25-qdisc-ingress-netem-compat.network | 16 +++++++++++ .../conf/25-qdisc-ingress-root.network | 12 +++++++++ test/test-network/systemd-networkd-tests.py | 27 +++++++++++++++++-- 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 test/test-network/conf/25-qdisc-clsact-root-compat.network create mode 100644 test/test-network/conf/25-qdisc-ingress-netem-compat.network create mode 100644 test/test-network/conf/25-qdisc-ingress-root.network 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 index 0000000000..1f0dea46fb --- /dev/null +++ b/test/test-network/conf/25-qdisc-clsact-root-compat.network @@ -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 index 0000000000..51dced2329 --- /dev/null +++ b/test/test-network/conf/25-qdisc-ingress-netem-compat.network @@ -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 index 0000000000..f72b70114b --- /dev/null +++ b/test/test-network/conf/25-qdisc-ingress-root.network @@ -0,0 +1,12 @@ +[Match] +Name=test1 + +[Network] +IPv6AcceptRA=no +Address=10.1.2.4/16 + +#[QDisc] +#Parent=root + +[QDisc] +Parent=ingress diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 454b00889d..423815c73a 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -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 = [