summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-12-26 10:13:36 +0100
committerChristian Poessinger <christian@poessinger.com>2021-12-26 10:13:36 +0100
commit604949b97cfff0fc91580d195739648f9bc12e50 (patch)
treefd0ed2d0611c70a8df3d904a1532696aae137a55
parentde28cb2036af6e7786ff54f1732d3a33439442e8 (diff)
downloadvyos-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.tmpl2
-rwxr-xr-xsmoketest/scripts/cli/test_protocols_ospfv3.py14
-rwxr-xr-xsrc/conf_mode/protocols_ospfv3.py4
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():