diff options
author | Christian Poessinger <christian@poessinger.com> | 2021-12-26 10:13:36 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2021-12-26 10:13:36 +0100 |
commit | 604949b97cfff0fc91580d195739648f9bc12e50 (patch) | |
tree | fd0ed2d0611c70a8df3d904a1532696aae137a55 | |
parent | de28cb2036af6e7786ff54f1732d3a33439442e8 (diff) | |
download | vyos-1x-604949b97cfff0fc91580d195739648f9bc12e50.tar.gz vyos-1x-604949b97cfff0fc91580d195739648f9bc12e50.zip |
ospfv3: T4102: nssa area support both no-summary and default-originate
-rw-r--r-- | data/templates/frr/ospf6d.frr.tmpl | 2 | ||||
-rwxr-xr-x | smoketest/scripts/cli/test_protocols_ospfv3.py | 14 | ||||
-rwxr-xr-x | src/conf_mode/protocols_ospfv3.py | 4 |
3 files changed, 4 insertions, 16 deletions
diff --git a/data/templates/frr/ospf6d.frr.tmpl b/data/templates/frr/ospf6d.frr.tmpl index 3576c4b22..2e8f3da92 100644 --- a/data/templates/frr/ospf6d.frr.tmpl +++ b/data/templates/frr/ospf6d.frr.tmpl @@ -54,7 +54,7 @@ router ospf6 {{ 'vrf ' + vrf if vrf is defined and vrf is not none }} {% for area_id, area_config in area.items() %} {% if area_config.area_type is defined and area_config.area_type is not none %} {% for type, type_config in area_config.area_type.items() %} - area {{ area_id }} {{ type }} {{ 'no-summary' if type_config.no_summary is defined }} {{ 'default-information-originate' if type_config.default_information_originate is defined }} + area {{ area_id }} {{ type }} {{ 'default-information-originate' if type_config.default_information_originate is defined }} {{ 'no-summary' if type_config.no_summary is defined }} {% endfor %} {% endif %} {% if area_config.range is defined and area_config.range is not none %} diff --git a/smoketest/scripts/cli/test_protocols_ospfv3.py b/smoketest/scripts/cli/test_protocols_ospfv3.py index 1cc3a8aa4..fa9d49b4b 100755 --- a/smoketest/scripts/cli/test_protocols_ospfv3.py +++ b/smoketest/scripts/cli/test_protocols_ospfv3.py @@ -29,9 +29,6 @@ router_id = '192.0.2.1' default_area = '0' class TestProtocolsOSPFv3(VyOSUnitTestSHIM.TestCase): - def setUp(self): - self.debug = True - def tearDown(self): # Check for running process self.assertTrue(process_named_running(PROCESS_NAME)) @@ -175,7 +172,7 @@ class TestProtocolsOSPFv3(VyOSUnitTestSHIM.TestCase): self.assertIn(f' area {area_stub_nosum} stub no-summary', frrconfig) - def test_ospfv3_05_area_nssa(self): + def test_ospfv3_06_area_nssa(self): area_nssa = '1.1.1.1' area_nssa_nosum = '2.2.2.2' area_nssa_default = '3.3.3.3' @@ -189,12 +186,6 @@ class TestProtocolsOSPFv3(VyOSUnitTestSHIM.TestCase): self.cli_set(base_path + ['area', area_nssa_nosum, 'area-type', 'nssa', 'no-summary']) self.cli_set(base_path + ['area', area_nssa_nosum, 'area-type', 'nssa', 'default-information-originate']) - - # can not set both no-summary and default-information-originate at the same time - with self.assertRaises(ConfigSessionError): - self.cli_commit() - self.cli_delete(base_path + ['area', area_nssa_nosum, 'area-type', 'nssa', 'default-information-originate']) - self.cli_set(base_path + ['area', area_nssa_default, 'area-type', 'nssa', 'default-information-originate']) # commit changes @@ -204,9 +195,10 @@ class TestProtocolsOSPFv3(VyOSUnitTestSHIM.TestCase): frrconfig = self.getFRRconfig('router ospf6') self.assertIn(f'router ospf6', frrconfig) self.assertIn(f' area {area_nssa} nssa', frrconfig) - self.assertIn(f' area {area_nssa_nosum} nssa no-summary', frrconfig) + self.assertIn(f' area {area_nssa_nosum} nssa default-information-originate no-summary', frrconfig) self.assertIn(f' area {area_nssa_default} nssa default-information-originate', frrconfig) + def test_ospfv3_07_vrfs(self): # It is safe to assume that when the basic VRF test works, all # other OSPF related features work, as we entirely inherit the CLI diff --git a/src/conf_mode/protocols_ospfv3.py b/src/conf_mode/protocols_ospfv3.py index c338c98b3..94455a458 100755 --- a/src/conf_mode/protocols_ospfv3.py +++ b/src/conf_mode/protocols_ospfv3.py @@ -88,10 +88,6 @@ def verify(ospfv3): if 'area_type' in area_config: if len(area_config['area_type']) > 1: raise ConfigError(f'Can only configure one area-type for OSPFv3 area "{area}"!') - for area_type, area_type_config in area_config['area_type'].items(): - if {'default_information_originate', 'no_summary'} <= set(area_type_config): - raise ConfigError(f'Can either set "default-information-originate" '\ - f'or "no-summary", but not both!') if 'interface' in ospfv3: for interface, interface_config in ospfv3['interface'].items(): |