Skip to content

Commit 1deb835

Browse files
committed
SR-OS: Adjust system intf IPv6 prefix as a device quirk
1 parent 2196b61 commit 1deb835

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

netsim/ansible/templates/initial/sros.j2

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,16 @@
5252
{% macro ip_addr(v,ip,ifname) %}
5353
{% set _ip = ip|ipaddr('address') %}
5454
{% set _pre = ip|ipaddr('prefix') %}
55-
ipv{{v}}:
5655
{% if v=='4' %}
56+
ipv4:
5757
primary:
5858
address: "{{ _ip }}"
5959
prefix-length: {{ _pre }}
6060
{% else %}
61+
ipv6:
6162
address:
6263
- ipv6-address: "{{ _ip }}"
63-
prefix-length: {{ 128 if ifname=='system' else _pre }}
64+
prefix-length: {{ _pre }}
6465
{% endif %}
6566
{% endmacro %}
6667

netsim/devices/sros.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,26 @@ def set_port_modes(node: Box) -> None:
6262
else:
6363
set_port_mode(t_intf,'access')
6464

65+
def adjust_system_ipv6_prefix(node: Box) -> None:
66+
v6lb = node.get('loopback.ipv6',None)
67+
if not v6lb:
68+
return
69+
70+
(v6ad,v6pf) = v6lb.split('/')
71+
if v6pf != '128':
72+
node.loopback.ipv6 = f'{v6ad}/128'
73+
report_quirk(
74+
text=f'Loopback prefix {v6lb} on node {node.name} was changed to {node.loopback.ipv6}',
75+
more_hints=[ f'The IPv6 prefix configured on SR OS system (loopback) interface must be a /128' ],
76+
quirk='loopback_ipv6',
77+
node=node,
78+
category=Warning)
79+
6580
class SROS(_Quirks):
6681

6782
@classmethod
6883
def device_quirks(self, node: Box, topology: Box) -> None:
84+
adjust_system_ipv6_prefix(node)
6985
set_port_modes(node)
7086
ipv4_unnumbered(node)
7187
vrf_route_leaking(node)

0 commit comments

Comments
 (0)