From 1a278c1143b8d7a9fe43a6bc098d12ca5db19a32 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sun, 9 May 2021 10:03:51 +0200 Subject: bgp: T3530: add hyphen support for peer-group names --- data/templates/frr/bgpd.frr.tmpl | 1 + src/conf_mode/protocols_bgp.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/data/templates/frr/bgpd.frr.tmpl b/data/templates/frr/bgpd.frr.tmpl index 57b9ba8d6..5edd3f97d 100644 --- a/data/templates/frr/bgpd.frr.tmpl +++ b/data/templates/frr/bgpd.frr.tmpl @@ -404,6 +404,7 @@ router bgp {{ local_as }} {{ 'vrf ' ~ vrf if vrf is defined and vrf is not none {% endif %} {% if parameters.bestpath.as_path is defined and parameters.bestpath.as_path is not none %} {% for option in parameters.bestpath.as_path %} +{# replace is required for multipath-relax option #} bgp bestpath as-path {{ option|replace('_', '-') }} {% endfor %} {% endif %} diff --git a/src/conf_mode/protocols_bgp.py b/src/conf_mode/protocols_bgp.py index a51fe6d72..74253c2d7 100755 --- a/src/conf_mode/protocols_bgp.py +++ b/src/conf_mode/protocols_bgp.py @@ -47,7 +47,8 @@ def get_config(config=None): # eqivalent of the C foo ? 'a' : 'b' statement base = vrf and ['vrf', 'name', vrf, 'protocols', 'bgp'] or base_path - bgp = conf.get_config_dict(base, key_mangling=('-', '_'), get_first_key=True) + bgp = conf.get_config_dict(base, key_mangling=('-', '_'), + get_first_key=True, no_tag_node_value_mangle=True) # Assign the name of our VRF context. This MUST be done before the return # statement below, else on deletion we will delete the default instance @@ -225,7 +226,6 @@ def verify(bgp): else: for key in ['external', 'internal', 'local']: if dict_search(f'address_family.{address_family_name}.distance.{key}', bgp) == None: - address_family_name = address_family_name.replace('_', '-') raise ConfigError('Missing mandatory configuration option for '\ f'{address_family_name} administrative distance {key}!') -- cgit v1.2.3