From 87adeabfb7edd0c2c626a135bcffbc02229d8425 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 9 Sep 2020 05:09:58 +0900 Subject: [PATCH] test-network: update tests for issue #16784 --- .../routing-policy-rule-reconfigure.network | 33 ++++++++++ test/test-network/systemd-networkd-tests.py | 65 +++++++++++-------- 2 files changed, 70 insertions(+), 28 deletions(-) create mode 100644 test/test-network/conf/routing-policy-rule-reconfigure.network diff --git a/test/test-network/conf/routing-policy-rule-reconfigure.network b/test/test-network/conf/routing-policy-rule-reconfigure.network new file mode 100644 index 00000000000..ca38b78f130 --- /dev/null +++ b/test/test-network/conf/routing-policy-rule-reconfigure.network @@ -0,0 +1,33 @@ +[Match] +Name=test1 + +[Network] +IPv6AcceptRA=no + +# fwmark +[RoutingPolicyRule] +Table=1011 +Family=ipv4 +Priority=10111 +FirewallMark=1011 + +# oif +[RoutingPolicyRule] +Table=1011 +Family=ipv4 +Priority=10112 +OutgoingInterface=test1 + +# iif +[RoutingPolicyRule] +Table=1011 +Family=ipv4 +Priority=10113 +IncomingInterface=test1 + +# source +[RoutingPolicyRule] +Table=1011 +Family=ipv4 +Priority=10114 +From=192.168.8.254 diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 951b2d1edb4..838850178e8 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -1735,9 +1735,11 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): '25-vrf.network', '26-link-local-addressing-ipv6.network', 'routing-policy-rule-dummy98.network', - 'routing-policy-rule-test1.network'] + 'routing-policy-rule-test1.network', + 'routing-policy-rule-reconfigure.network', + ] - routing_policy_rule_tables = ['7', '8', '9'] + routing_policy_rule_tables = ['7', '8', '9', '1011'] routes = [['blackhole', '202.54.1.2'], ['unreachable', '202.54.1.3'], ['prohibit', '202.54.1.4']] def setUp(self): @@ -1970,32 +1972,6 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.assertRegex(output, 'iif test1') self.assertRegex(output, 'lookup 8') - output = check_output('ip -6 rule list iif test1 priority 101') - print(output) - self.assertRegex(output, '101:') - self.assertRegex(output, 'from all') - self.assertRegex(output, 'iif test1') - self.assertRegex(output, 'lookup 9') - - run('ip rule delete iif test1 priority 111') - - output = check_output('ip rule list iif test1 priority 111') - print(output) - self.assertEqual(output, '') - - run(*networkctl_cmd, 'reconfigure', 'test1', env=env) - - self.wait_online(['test1:degraded']) - - output = check_output('ip rule list iif test1 priority 111') - print(output) - self.assertRegex(output, '111:') - self.assertRegex(output, 'from 192.168.100.18') - self.assertRegex(output, r'tos (0x08|throughput)\s') - self.assertRegex(output, 'iif test1') - self.assertRegex(output, 'oif test1') - self.assertRegex(output, 'lookup 7') - def test_routing_policy_rule_issue_11280(self): copy_unit_to_networkd_unit_path('routing-policy-rule-test1.network', '11-dummy.netdev', 'routing-policy-rule-dummy98.network', '12-dummy.netdev') @@ -2016,6 +1992,39 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): stop_networkd(remove_state_files=False) + def test_routing_policy_rule_reconfigure(self): + copy_unit_to_networkd_unit_path('routing-policy-rule-reconfigure.network', '11-dummy.netdev') + start_networkd() + self.wait_online(['test1:degraded']) + + output = check_output('ip rule list table 1011') + print(output) + self.assertRegex(output, '10111: from all fwmark 0x3f3 lookup 1011') + self.assertRegex(output, '10112: from all oif test1 lookup 1011') + self.assertRegex(output, '10113: from all iif test1 lookup 1011') + self.assertRegex(output, '10114: from 192.168.8.254 lookup 1011') + + run('ip rule delete priority 10111') + run('ip rule delete priority 10112') + run('ip rule delete priority 10113') + run('ip rule delete priority 10114') + run('ip rule delete priority 10115') + + output = check_output('ip rule list table 1011') + print(output) + self.assertEqual(output, '') + + run(*networkctl_cmd, 'reconfigure', 'test1', env=env) + + self.wait_online(['test1:degraded']) + + output = check_output('ip rule list table 1011') + print(output) + self.assertRegex(output, '10111: from all fwmark 0x3f3 lookup 1011') + self.assertRegex(output, '10112: from all oif test1 lookup 1011') + self.assertRegex(output, '10113: from all iif test1 lookup 1011') + self.assertRegex(output, '10114: from 192.168.8.254 lookup 1011') + @expectedFailureIfRoutingPolicyPortRangeIsNotAvailable() def test_routing_policy_rule_port_range(self): copy_unit_to_networkd_unit_path('25-fibrule-port-range.network', '11-dummy.netdev') -- 2.39.2