From c6d8d9c012da1a7566eec2dff70385457f073e64 Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Sun, 24 Mar 2024 21:01:37 +0100 Subject: ospf: T6066: can not define the same network in different areas Users can not (FRR fails) commit the same network belonging to different OSPF areas. Add verify() check to prevent this. --- src/conf_mode/protocols_ospf.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/conf_mode/protocols_ospf.py') 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) -- cgit v1.2.3