diff options
| author | Christian Poessinger <christian@poessinger.com> | 2022-09-18 21:35:42 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-18 21:35:42 +0200 | 
| commit | 877047b9d36f9a2ef029cc6f05c1467d1a0d6e3f (patch) | |
| tree | 31ee3c43176cdbe9cf6557833618f5c2749f272b /src | |
| parent | dcf755594d3ce63239af407f71ceae295a12ed75 (diff) | |
| parent | 6ce3b50be62a0e8a676419fc94bc49d7ecdbb2fa (diff) | |
| download | vyos-1x-877047b9d36f9a2ef029cc6f05c1467d1a0d6e3f.tar.gz vyos-1x-877047b9d36f9a2ef029cc6f05c1467d1a0d6e3f.zip | |
Merge pull request #1543 from Cheeze-It/current
isis: T4693: Fix ISIS segment routing configurations, part deux
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/protocols_isis.py | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/src/conf_mode/protocols_isis.py b/src/conf_mode/protocols_isis.py index 5dafd26d0..cb8ea3be4 100755 --- a/src/conf_mode/protocols_isis.py +++ b/src/conf_mode/protocols_isis.py @@ -203,6 +203,28 @@ def verify(isis):          if list(set(global_range) & set(local_range)):              raise ConfigError(f'Segment-Routing Global Block ({g_low_label_value}/{g_high_label_value}) '\                                f'conflicts with Local Block ({l_low_label_value}/{l_high_label_value})!') +         +    # Check for a blank or invalid value per prefix +    if dict_search('segment_routing.prefix', isis): +        for prefix, prefix_config in isis['segment_routing']['prefix'].items(): +            if 'absolute' in prefix_config: +                if prefix_config['absolute'].get('value') is None: +                    raise ConfigError(f'Segment routing prefix {prefix} absolute value cannot be blank.') +            elif 'index' in prefix_config: +                if prefix_config['index'].get('value') is None: +                    raise ConfigError(f'Segment routing prefix {prefix} index value cannot be blank.') + +    # Check for explicit-null and no-php-flag configured at the same time per prefix +    if dict_search('segment_routing.prefix', isis): +        for prefix, prefix_config in isis['segment_routing']['prefix'].items(): +            if 'absolute' in prefix_config: +                if ("explicit_null" in prefix_config['absolute']) and ("no_php_flag" in prefix_config['absolute']):  +                    raise ConfigError(f'Segment routing prefix {prefix} cannot have both explicit-null '\ +                                      f'and no-php-flag configured at the same time.') +            elif 'index' in prefix_config: +                if ("explicit_null" in prefix_config['index']) and ("no_php_flag" in prefix_config['index']): +                    raise ConfigError(f'Segment routing prefix {prefix} cannot have both explicit-null '\ +                                      f'and no-php-flag configured at the same time.')      return None | 
