From d3f79422514d65d19dc2b1085f0e19c51f831be7 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Thu, 5 Mar 2020 20:25:20 +0100 Subject: vrf: T31: routing table IDs must be unique --- src/conf_mode/vrf.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/conf_mode/vrf.py b/src/conf_mode/vrf.py index 116d87455..bdd57177c 100755 --- a/src/conf_mode/vrf.py +++ b/src/conf_mode/vrf.py @@ -148,16 +148,20 @@ def verify(vrf_config): if len(vrf['members']) > 0: raise ConfigError('VRF "{}" can not be deleted as it has active members'.format(vrf['name'])) + table_ids = [] for vrf in vrf_config['vrf_add']: # table id is mandatory if not vrf['table']: - raise ConfigError('VRF "{}": table id is mandatory'.format(vrf['name'])) + raise ConfigError('VRF "{}" table id is mandatory'.format(vrf['name'])) # routing table id can't be changed - OS restriction if vrf['table_mod']: - raise ConfigError('VRF "{}": modification of table id is not possible'.format(vrf['name'])) + raise ConfigError('VRF "{}" modification of table id is not possible'.format(vrf['name'])) - # add test to see if routing table already exists or not? + # VRf routing table ID must be unique on the system + if vrf['table'] in table_ids: + raise ConfigError('VRF "{}" routing table id "{}" not unique'.format(vrf['name'], vrf['table'])) + table_ids.append(vrf['table']) return None -- cgit v1.2.3