Skip to content

Commit f38428e

Browse files
committed
Fix: cEOS stub interfaces must have P2P OSPF network type
Also: change the device type in vrf-igp transformation test to 'none' to make it aligned with most other transformation tests
1 parent c7b3a9c commit f38428e

File tree

4 files changed

+85
-142
lines changed

4 files changed

+85
-142
lines changed

docs/caveats.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
* Arista EOS does not support routed port-channel interfaces. Port channel interfaces can be used only as VLAN trunks or VLAN access interfaces.
1919
* Anycast gateways and DHCP/DHCPv6 clients do not work on Arista cEOS Ethernet interfaces.
2020
* cEOS MPLS data plane was introduced in release 4.32.1F.
21+
* Arista cEOS disables OSPFv2 on broadcast container stub interfaces (implemented as _dummy_ interfaces). _netlab_ automatically changes the OSPF network type for Arista cEOS dummy interfaces to **point-to-point**.
2122

2223
The default name of the management interface is **Management0** on vEOS and **Management1** on cEOS. If you'd like to change the management interface name on cEOS:
2324

netsim/devices/eos.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
#
44
from box import Box
55

6-
from . import _Quirks
6+
from . import _Quirks,report_quirk
77
from ..utils import log
8+
from ..modules import _routing
89
from .. import data
910
from ..augment import devices
1011

@@ -102,6 +103,23 @@ def configure_ceos_attributes(node: Box, topology: Box) -> None:
102103
data.append_to_list(node.clab,'binds',f'clab_files/{node.name}/ceos-config:{mnt_config}')
103104
data.append_to_list(node.clab,'config_templates',f'ceos-config:{mnt_config}')
104105

106+
def passive_stub_interfaces(node: Box, topology: Box) -> None:
107+
if devices.get_provider(node,topology) != 'clab':
108+
return
109+
110+
for intf in _routing.routing_protocol_interfaces(node,'ospf'):
111+
if intf.type != 'stub' or 'ipv4' not in intf:
112+
continue
113+
114+
report_quirk(
115+
f'Changed OSPF network type on {node.name}/{intf.ifname} to point-to-point',
116+
more_hints = [ f'Arista cEOS does not run OSPFv2 on container stub interfaces configured as broadcast networks' ],
117+
node=node,
118+
category=Warning,
119+
quirk='ospf_stub')
120+
121+
intf.ospf.network_type = 'point-to-point'
122+
105123
class EOS(_Quirks):
106124

107125
@classmethod
@@ -119,5 +137,7 @@ def device_quirks(self, node: Box, topology: Box) -> None:
119137
check_dhcp_clients(node,topology)
120138
if 'lag' in mods:
121139
check_l3_lag(node,topology)
140+
if 'ospf' in mods:
141+
passive_stub_interfaces(node,topology)
122142
if 'eos' in node:
123-
configure_ceos_attributes(node,topology)
143+
configure_ceos_attributes(node,topology)

0 commit comments

Comments
 (0)