Changes in Release 1.9

New Functionality

Release 1.9.0-post1

  • Add a failure barrier to validation tests. This feature allows you to stop the validation process if at least one of the prior tests has failed.

New device features:

  • JSON-RPC (implemented in nokia.srlinux Ansible collection) is used to configure SR Linux nodes. The netlab up process checks for the presence of nokia.srlinux collection and refuses to start the lab if the collection is not installed.

  • Check SR Linux Ansible collection (and its version) during the lab startup process

Minor fixes in device configuration templates:

SR Linux:

  • BGP configuration template survives L2-only VRFs

  • OSPF routes and connected subnets are redistributed into VRF BGP

  • BGP-EVPN routes are redistributed into VRF BGP to be propagated to VRF BGP neighbors

  • Configure EVPN BGP parameters based on neighbor data, not on evpn.session variable (which does not include bgp.multihop neighbors)

  • Configure inter-as-vpn in EVPN AF if a device has at least one EVPN EBGP neighbor

  • Redistribute connected, BGP, and BGP-EVPN routes into the VRF OSPF process

  • Remove the ancient ‘stubs are loopbacks’ hack from the OSPF template

  • Reject lab topologies with interface EBGP neighbors using EVPN address family

  • Fix the ‘interface EBGP neighbor’ check in the bgp.policy configuration template

  • Use key index 1 (not zero) in BGP MD5 keychain

  • Shut down BGP neighbors before applying bgp.session changes and reenable them after the configuration is complete

  • Fix the bgp.multihop template (previous template was effectively a no-op)

Release 1.9.0

Generic Routing Configuration Module supporting:

  • Routing policies (route maps), including match and set commands

  • Prefix filters (prefix lists)

  • AS-path filters

  • BGP community filters

These features are implemented on Arista EOS, ArubaCX, Cisco IOS/IOS-XE, Cumulus Linux, SR Linux, and Vyos.

Other new features:

Minor improvements:

  • Support for containerlab node parameter startup-delay

  • Display markdown reports as ASCII text rendered with rich.markdown

  • Add linux-headers-generic to devcontainer to allow VyOS to run in GitHub Codespaces

New device features:

  • Support for vJunos-switch running in a vrnetlab container

  • Arista cEOS 4.32.1F has a working MPLS data plane

  • SR/MPLS on FRR

  • Routing policies, prefix lists, and community lists on Arista EOS, Aruba CX, Cisco IOS/XE, Cumulus Linux, FRRouting, and Vyos

  • VRF-aware OSPFv3 on ArubaCX and VyOS

  • OSPF default route origination on Arista EOS, Aruba CX, Cisco IOS/XE, Cumulus Linux, FRRouting, and Vyos

  • OSPF and BGP route import on Arista EOS, Aruba CX, Cisco IOS/XE, Cumulus Linux, FRRouting, and Vyos

  • VRF multihop EBGP sessions on Arista EOS, Aruba CX, Cisco IOS/XE, Cumulus Linux, and FRRouting.

Minor fixes in device configuration templates:

ArubaCX:

  • Fix BGP next-hop processing on EBGP EVPN AF

  • MPLS data plane works only on physical devices

Arista EOS:

  • Activate EVPN AF on unnumbered EBGP sessions

  • Configure IS-IS IPv4 router-ID in IPv6-only networks

  • Change default Arista cEOS release to 4.32.1F

  • Arista EOS expects a single EVPN import/export RT per line

Cat8000v:

  • Cat8000v does not support SR-MPLS

  • Cat8000v is a layer-3 switch

CSR 1000v:

  • Cisco CSR 1000v rejects a VNI lower than 4096

Cumulus Linux:

  • Missing newline in Cumulus EVPN FRR config

  • Explicit configuration of IPv6 LLA on VM interfaces

  • RIPv2/ng has to be configured several times to make it work :(

  • Add local device name with ‘-’ (instead of ‘_’) to /etc/hosts

  • Bump Cumulus Vagrant box release to the latest 4.4 release

FRR:

  • Change FRR release to 10.0.1

  • FRR supports EVPN Asymmetric IRB

  • MPLS VPNv6 does not work

Nexus OS:

  • Additional tweaks to make EVPN work over EBGP with NXOS

  • Redistribute internal BGP routes to OSPF in EVPN VRFs

  • Apply ‘allowas-in’ to EVPN address family

  • EVPN L3VNI needs ‘interface-vlan’ feature to work

Junos:

  • vPTX EVPN implementation is broken; turning it off

  • Remove MTU change from Junos SR configuration template

Sonic:

  • Remove redundant ‘do write’ from Sonic BGP configuration template

SR Linux:

  • Only certain models of SR Linux support SR-MPLS

VyOS:

  • VyOS: enable SSH service when running in containerlab

  • MPLS VPNv6 does not work on VyOS (because FRR)

  • allowas-in has to be configured on EVPN AF

  • Do not set next-hop to self on EBGP EVPN sessions

New development tools:

  • Implement ‘valid_with’ data type validation to limit the attributes that can be used together in a data object

  • Implement copy/merge between all attribute namespaces to give modules functionality similar to plugins

New integration tests:

  • EVPN integration tests, including IRB modes, EBGP unnumbered, IBGP-over-EBGP, EBGP-over-EBGP, L3-only EVPN, and L3VPN with PE-CE routing

  • SR-MPLS IPv4 and IPv6 integration tests

  • EIGRP integration tests

  • EBGP multihop integration tests

  • Integration tests for ‘routing’ module and new OSPF functionality

Breaking changes

Release 1.9.0

  • The Graphite configuration file format has changed to adapt to the changes made to the netreplica/graphite tool. If your browser fails to display the lab topology, reload the page or clear the browser cache.

  • OSPF is no longer disabled in VRFs using EVPN symmetric IRB. That might break existing lab topologies using OSPF routers connected to EVPN-backed VLANs configured in IRB mode. If needed, disable OSPF in a VRF with ospf: False.

  • The link transformation module sets the link role to stub on all non-VLAN/non-loopback links with no preset role and a single router to make the behavior in multi-provider topologies identical to the behavior in single-provider topologies. This might impact topologies that define the stub addressing pool, as these links will now get their IP prefixes from the stub pool.

  • Cumulus Linux containers are deprecated. While they will continue to work, we won’t do any integration tests on them. Use FRRouting containers.

  • We will probably change the Cumulus Linux VM version to 5.9 in the future, assuming we can still use direct ifupdown and FRR configuration.

Bug Fixes

Bug Fixes in Release 1.9.0-post1

  • Enhance diagnostics of L3VPN EVPN integration tests and add a failure barrier

  • Add checks for connected subnet redistribution to complex VRF integration tests

  • Display IPv4 unnumbered and IPv6 LLA in addressing reports instead of ‘True’

  • Change integration test color-coding for “not supported” error

  • Make named prefixes available as part of the ‘all’ group

  • Add ‘–all’ option to ‘netlab inspect’ to add global Ansible vars to node data

Bug Fixes in Release 1.9.0

  • Set source interface name (_source_ifname) on IBGP neighbors to simplify BGP configuration templates

  • Refactor common IGP post-transform processing

  • Use search paths when validating config name in ‘netlab config’

  • The ebgp.multihop plugin should use a dummy ifname for the pseudo-tunnel between EBGP endpoints

  • Make OSPF-over-VXLAN test more complex to require OSPF to work

  • Add Sphinx Dark Mode to dev requirements

  • Allow ‘netlab connect’ to pass a command to a tool

  • Improve the validation of ‘validate’ data structures, add hints and tests

  • Add ‘links-as-a-dictionary’ data structure

  • Make ‘prefix_str’ validator accept named prefixes

  • IS-IS needs IPv4 router-id for SR-MPLS to work

  • Do not use hostnames in Suzieq inventory (SuzieQ cannot use the host /etc/hosts file)

  • Use the routing.policy.set device features to set BGP features in bgp.policy plugin

  • Need to wait a bit longer for OSPF convergence in the VRF Lite integration test

  • Increase EBGP session setup wait timer in the bgp.policy integration tests and numerous other timing tweaks (some devices are ridiculously slow)

  • Static VLAN VNI was rejected when a VLAN was used in a group

  • Use netlab_show_config Ansible variable to control the display of device configs during netlab initial process

  • Color-code and timestamp integration test summary printouts

  • Bug fix: use Linux containers (not VMs) in VXLAN integration tests

  • Survive edge cases (hosts without loopbacks, interfaces without names or descriptions) in addressing and wiring reports

  • Include reports in the Python package

Documentation Fixes

Documentation Fixes in Release 1.9.0-post1

  • Tutorial: add Linux hosts and custom software to a netlab topology

  • Add a more explicit description of how Vagrant treats box names

Documentation Fixes in Release 1.9.0

  • Update EVPN documentation based on the integration test results

  • Rewrite the introduction to the EVPN configuration module

  • Add links to the addressing example documenting the ‘allocation’ attribute

  • Developers should install additional Python modules to run CI/CD tests

  • Reorganize tutorials, add Selecting a Software Release tutorial

  • Minor fixes to SR-MPLS documentation

  • Change the example link used to illustrate the bgp.activate parameter

  • Explain how you can disable IBGP sessions with the bgp.session parameter

  • Remove extra CSS styling that appeared in the final documentation

  • Document FRRouting/VyOS limitations in GitHub Codespaces