summaryrefslogtreecommitdiff
path: root/src/conf_mode/protocols_ospf.py
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2024-03-24 21:06:11 +0100
committerGitHub <noreply@github.com>2024-03-24 21:06:11 +0100
commit7c0be25eea90cf9324e421b6c2dfda9bda2ecb7e (patch)
tree3dcca848fda230bb9f636858fa66b11949d125ab /src/conf_mode/protocols_ospf.py
parentd379dab2b9ae9490b45a2d42b319871258392385 (diff)
parentc6d8d9c012da1a7566eec2dff70385457f073e64 (diff)
downloadvyos-1x-7c0be25eea90cf9324e421b6c2dfda9bda2ecb7e.tar.gz
vyos-1x-7c0be25eea90cf9324e421b6c2dfda9bda2ecb7e.zip
Merge pull request #3185 from c-po/ospf-T6066
ospf: T6066: can not define the same network in different areas
Diffstat (limited to 'src/conf_mode/protocols_ospf.py')
-rwxr-xr-xsrc/conf_mode/protocols_ospf.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/conf_mode/protocols_ospf.py b/src/conf_mode/protocols_ospf.py
index 695842795..6fffe7e0d 100755
--- a/src/conf_mode/protocols_ospf.py
+++ b/src/conf_mode/protocols_ospf.py
@@ -127,6 +127,7 @@ def verify(ospf):
# Validate if configured Access-list exists
if 'area' in ospf:
+ networks = []
for area, area_config in ospf['area'].items():
if 'import_list' in area_config:
acl_import = area_config['import_list']
@@ -135,6 +136,12 @@ def verify(ospf):
acl_export = area_config['export_list']
if acl_export: verify_access_list(acl_export, ospf)
+ if 'network' in area_config:
+ for network in area_config['network']:
+ if network in networks:
+ raise ConfigError(f'Network "{network}" already defined in different area!')
+ networks.append(network)
+
if 'interface' in ospf:
for interface, interface_config in ospf['interface'].items():
verify_interface_exists(interface)