Adding Support For EVPN in BGP Module (#55503)

* Adding Support For EVPN in BGP Module

Signed-off-by: Anas Badaha <anasb@mellanox.com>

* Fix Pep8 Failures in onyx_bgp.py

Signed-off-by: Anas Badaha <anasb@mellanox.com>

* Fix Pep8 Failures in onyx_bgp.py Phase 2

Signed-off-by: Anas Badaha <anasb@mellanox.com>

* Fix Samer's Comments

Signed-off-by: Anas Badaha <anasb@mellanox.com>

* Remove file Variable

Signed-off-by: Anas Badaha <anasb@mellanox.com>
This commit is contained in:
anasbadaha
2019-05-11 15:21:10 +03:00
committed by ansibot
parent 0cb0fa918f
commit 0f852f01c0
3 changed files with 292 additions and 64 deletions

View File

@@ -1,7 +1,7 @@
##
## Running database "initial"
## Generated at 2018/01/10 23:13:17 +0000
## Hostname: r-neo-sw12
## Generated at 2009/01/14 12:53:06 +0000
## Hostname: r-ufm-sw102
##
##
@@ -15,8 +15,19 @@ no cli default prefix-modes enable
protocol bgp
router bgp 172 vrf default
router bgp 172 vrf default router-id 1.2.3.4 force
router bgp 172 vrf default bgp fast-external-fallover
router bgp 172 vrf default maximum-paths 31
router bgp 172 vrf default bestpath as-path multipath-relax force
router bgp 172 vrf default neighbor evpn peer-group
router bgp 172 vrf default neighbor evpn send-community extended
router bgp 172 vrf default neighbor 10.2.3.4 remote-as 173
router bgp 172 vrf default neighbor 10.2.3.5 remote-as 322
router bgp 172 vrf default neighbor 10.2.3.5 peer-group evpn
router bgp 172 vrf default neighbor 10.2.3.5 ebgp-multihop 255
router bgp 172 vrf default address-family l2vpn-evpn neighbor evpn next-hop-unchanged
router bgp 172 vrf default address-family l2vpn-evpn neighbor evpn activate
router bgp 172 vrf default network 172.16.1.0 /24
router bgp 172 vrf default address-family l2vpn-evpn auto-create
##
## Persistent prefix mode setting
##

View File

@@ -37,10 +37,13 @@ class TestOnyxBgpModule(TestOnyxModule):
self.load_config.return_value = None
def test_bgp_no_change(self):
neighbor = dict(remote_as=173, neighbor='10.2.3.4')
neighbor = dict(remote_as=322, neighbor='10.2.3.5', multihop=255)
set_module_args(dict(as_number=172, router_id='1.2.3.4',
neighbors=[neighbor],
networks=['172.16.1.0/24']))
networks=['172.16.1.0/24'],
evpn=True, fast_external_fallover=True,
max_paths=31, ecmp_bestpath=True,
))
self.execute_module(changed=False)
def test_bgp_remove(self):
@@ -48,29 +51,49 @@ class TestOnyxBgpModule(TestOnyxModule):
commands = ['no router bgp 172']
self.execute_module(changed=True, commands=commands)
def test_bgp_with_vrf_changed(self):
set_module_args(dict(as_number=173, vrf='new_vrf'))
commands = ['no router bgp 172 vrf default', 'router bgp 173 vrf new_vrf', 'exit']
self.execute_module(changed=True, commands=commands)
def test_bgp_change(self):
neighbor = dict(remote_as=173, neighbor='10.2.3.4')
set_module_args(dict(as_number=174, router_id='1.2.3.4',
neighbors=[neighbor]))
commands = ['no router bgp 172', 'router bgp 174', 'exit',
'router bgp 174 router-id 1.2.3.4 force',
'router bgp 174 neighbor 10.2.3.4 remote-as 173']
neighbors=[neighbor],
evpn=False, fast_external_fallover=False,
max_paths=32, ecmp_bestpath=False,
))
commands = ['no router bgp 172 vrf default', 'router bgp 174 vrf default', 'exit',
'router bgp 174 vrf default router-id 1.2.3.4 force',
'router bgp 174 vrf default neighbor 10.2.3.4 remote-as 173',
'no router bgp 174 vrf default neighbor evpn peer-group',
'no router bgp 174 vrf default address-family l2vpn-evpn auto-create',
'router bgp 174 vrf default no bgp fast-external-fallover',
'router bgp 174 vrf default maximum-paths 32',
'router bgp 174 vrf default no bestpath as-path multipath-relax force']
self.execute_module(changed=True, commands=commands)
def test_bgp_add_neighbor(self):
neighbors = [dict(remote_as=173, neighbor='10.2.3.4'),
dict(remote_as=175, neighbor='10.2.3.5')]
dict(remote_as=175, neighbor='10.2.3.5'),
dict(remote_as=175, neighbor='10.2.3.6', multihop=250)]
set_module_args(dict(as_number=172, router_id='1.2.3.4',
neighbors=neighbors,
networks=['172.16.1.0/24']))
commands = ['router bgp 172 neighbor 10.2.3.5 remote-as 175']
networks=['172.16.1.0/24'],
evpn=True))
commands = ['router bgp 172 vrf default neighbor 10.2.3.5 remote-as 175',
'router bgp 172 vrf default neighbor 10.2.3.6 remote-as 175',
'router bgp 172 vrf default neighbor 10.2.3.6 ebgp-multihop 250',
'router bgp 172 vrf default neighbor 10.2.3.6 peer-group evpn',
'router bgp 172 vrf default neighbor 10.2.3.4 peer-group evpn']
self.execute_module(changed=True, commands=commands)
def test_bgp_del_neighbor(self):
set_module_args(dict(as_number=172,
networks=['172.16.1.0/24'],
purge=True))
commands = ['router bgp 172 no neighbor 10.2.3.4 remote-as 173']
commands = ['router bgp 172 vrf default no neighbor 10.2.3.4 remote-as 173',
'router bgp 172 vrf default no neighbor 10.2.3.5 remote-as 322']
self.execute_module(changed=True, commands=commands)
def test_bgp_add_network(self):
@@ -78,7 +101,7 @@ class TestOnyxBgpModule(TestOnyxModule):
set_module_args(dict(as_number=172, router_id='1.2.3.4',
neighbors=neighbors,
networks=['172.16.1.0/24', '172.16.2.0/24']))
commands = ['router bgp 172 network 172.16.2.0 /24']
commands = ['router bgp 172 vrf default network 172.16.2.0 /24']
self.execute_module(changed=True, commands=commands)
def test_bgp_del_network(self):