Skip to content

Commit 7165195

Browse files
committed
SR-OS: Inter-VRF route leaking does not work
Implemented a 'vdata._leaked_routes' flag in the VRF module to avoid duplicate work and used it for an SR-OS device quirk
1 parent e517461 commit 7165195

4 files changed

Lines changed: 13 additions & 0 deletions

File tree

netsim/devices/sros.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,20 @@ def ipv4_unnumbered(node: Box) -> None:
1717
node=node,
1818
category=log.IncorrectValue)
1919

20+
def vrf_route_leaking(node: Box) -> None:
21+
for vname,vdata in node.get('vrfs',{}).items():
22+
if '_leaked_routes' in vdata:
23+
report_quirk(
24+
text=f'We did not implement inter-VRF route leaking on SR/OS (node {node.name} vrf {vname})',
25+
node=node,
26+
category=log.IncorrectValue)
27+
2028
class SROS(_Quirks):
2129

2230
@classmethod
2331
def device_quirks(self, node: Box, topology: Box) -> None:
2432
ipv4_unnumbered(node)
33+
vrf_route_leaking(node)
2534

2635
def check_config_sw(self, node: Box, topology: Box) -> None:
2736
need_ansible_collection(node,'nokia.grpc',version='1.0.2')

netsim/modules/vrf.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ def validate_vrf_route_leaking(node : Box) -> None:
290290
leaked_routes = vdata['import'] and vdata['import'] != simple_rt
291291
leaked_routes = leaked_routes or (vdata['export'] and vdata['export'] != simple_rt)
292292
if leaked_routes:
293+
vdata._leaked_routes = True
293294
if not node.get('bgp.as',None):
294295
if node.get('vrf.as',None):
295296
node.bgp['as'] = node.vrf['as']

tests/topology/expected/evpn-hub-spoke.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ nodes:
122122
as: 65000
123123
vrfs:
124124
hub:
125+
_leaked_routes: true
125126
af:
126127
ipv4: true
127128
bgp:
@@ -215,6 +216,7 @@ nodes:
215216
as: 65000
216217
vrfs:
217218
spoke:
219+
_leaked_routes: true
218220
af:
219221
ipv4: true
220222
bgp:

tests/topology/expected/vrf.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ nodes:
366366
as: 65000
367367
vrfs:
368368
black:
369+
_leaked_routes: true
369370
af:
370371
ipv4: true
371372
bgp:

0 commit comments

Comments
 (0)