diff options
| -rw-r--r-- | data/templates/frr/bgpd.frr.j2 | 2 | ||||
| -rw-r--r-- | interface-definitions/include/bgp/neighbor-path-attribute.xml.i | 1 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_protocols_bgp.py | 13 | 
3 files changed, 10 insertions, 6 deletions
| diff --git a/data/templates/frr/bgpd.frr.j2 b/data/templates/frr/bgpd.frr.j2 index 23f81348b..ed55db3f2 100644 --- a/data/templates/frr/bgpd.frr.j2 +++ b/data/templates/frr/bgpd.frr.j2 @@ -76,7 +76,7 @@   neighbor {{ neighbor }} password {{ config.password }}  {% endif %}  {% if config.path_attribute.discard is vyos_defined %} - neighbor {{ neighbor }} path-attribute discard {{ config.path_attribute.discard }} + neighbor {{ neighbor }} path-attribute discard {{ config.path_attribute.discard | join(' ') }}  {% endif %}  {% if config.path_attribute.treat_as_withdraw is vyos_defined %}   neighbor {{ neighbor }} path-attribute treat-as-withdraw {{ config.path_attribute.treat_as_withdraw }} diff --git a/interface-definitions/include/bgp/neighbor-path-attribute.xml.i b/interface-definitions/include/bgp/neighbor-path-attribute.xml.i index 30568d8c6..399a6bcdd 100644 --- a/interface-definitions/include/bgp/neighbor-path-attribute.xml.i +++ b/interface-definitions/include/bgp/neighbor-path-attribute.xml.i @@ -14,6 +14,7 @@          <constraint>            <validator name="numeric" argument="--range 1-255"/>          </constraint> +        <multi/>        </properties>      </leafNode>      <leafNode name="treat-as-withdraw"> diff --git a/smoketest/scripts/cli/test_protocols_bgp.py b/smoketest/scripts/cli/test_protocols_bgp.py index 08a6e1696..eadd8a004 100755 --- a/smoketest/scripts/cli/test_protocols_bgp.py +++ b/smoketest/scripts/cli/test_protocols_bgp.py @@ -60,7 +60,7 @@ neighbor_config = {          'route_map_out'    : route_map_out,          'no_send_comm_ext' : '',          'addpath_all'      : '', -        'p_attr_discard'   : '123', +        'p_attr_discard'   : ['10', '20', '30', '40', '50'],          },      '192.0.2.2' : {          'bfd_profile'      : bfd_profile, @@ -137,7 +137,7 @@ peer_group_config = {          'cap_over'         : '',          'ttl_security'     : '5',          'disable_conn_chk' : '', -        'p_attr_discard'   : '250', +        'p_attr_discard'   : ['100', '150', '200'],          },      'bar' : {          'remote_as'        : '111', @@ -284,7 +284,8 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):          if 'addpath_all' in peer_config:              self.assertIn(f' neighbor {peer} addpath-tx-all-paths', frrconfig)          if 'p_attr_discard' in peer_config: -            self.assertIn(f' neighbor {peer} path-attribute discard {peer_config["p_attr_discard"]}', frrconfig) +            tmp = ' '.join(peer_config["p_attr_discard"]) +            self.assertIn(f' neighbor {peer} path-attribute discard {tmp}', frrconfig)          if 'p_attr_taw' in peer_config:              self.assertIn(f' neighbor {peer} path-attribute treat-as-withdraw {peer_config["p_attr_taw"]}', frrconfig)          if 'addpath_per_as' in peer_config: @@ -460,7 +461,8 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):              if 'update_src' in peer_config:                  self.cli_set(base_path + ['neighbor', peer, 'update-source', peer_config["update_src"]])              if 'p_attr_discard' in peer_config: -                self.cli_set(base_path + ['neighbor', peer, 'path-attribute', 'discard', peer_config["p_attr_discard"]]) +                for attribute in peer_config['p_attr_discard']: +                    self.cli_set(base_path + ['neighbor', peer, 'path-attribute', 'discard', attribute])              if 'p_attr_taw' in peer_config:                  self.cli_set(base_path + ['neighbor', peer, 'path-attribute', 'treat-as-withdraw', peer_config["p_attr_taw"]])              if 'route_map_in' in peer_config: @@ -584,7 +586,8 @@ class TestProtocolsBGP(VyOSUnitTestSHIM.TestCase):              if 'disable_conn_chk' in config:                  self.cli_set(base_path + ['peer-group', peer_group, 'disable-connected-check'])              if 'p_attr_discard' in config: -                self.cli_set(base_path + ['peer-group', peer_group, 'path-attribute', 'discard', config["p_attr_discard"]]) +                for attribute in config['p_attr_discard']: +                    self.cli_set(base_path + ['peer-group', peer_group, 'path-attribute', 'discard', attribute])              if 'p_attr_taw' in config:                  self.cli_set(base_path + ['peer-group', peer_group, 'path-attribute', 'treat-as-withdraw', config["p_attr_taw"]]) | 
