Changes in Release 26.03
New Functionality
Cisco IOS XR has received massive new functionality (SR-MPLS, MPLS/VPN, MPLS 6PE, EVPN over MPLS, VRRP, full BGP routing policy support). See New Device Features for details.
Juniper cRPD is now supported as a containerlab node with shell-script-based configuration deployment.
EVPN/VXLAN is now supported on Juniper vPTX and vJunos-router.
SR-MPLS now supports OSPFv2 in addition to IS-IS (implemented on EOS, FRR, Cisco IOS XE, and Cisco IOS XR).
Minor improvements
SR-MPLS can now be selectively enabled for a subset of address families using the sr.af parameter.
New netlab report: IS-IS interfaces, circuit types, and metrics.
netlab can now declare attributes as obsolete, deprecated, or migrated in module/feature definitions, producing automatic warnings and backward-compatible data migration.
JSON output files are now formatted with indentation, making them easier to read with Unix tools like
catandgrep.The node_files directory is cleaned up before generating device configurations, preventing stale configuration files from being deployed.
New Device Features
Arista EOS:
SR-MPLS support for OSPFv2
EVPN support for SR-MPLS transport
Cisco IOS XE:
SR-MPLS support for OSPFv2
EVPN/VXLAN symmetric IRB
EVPN/MPLS using LDP or SR-MPLS
Configurable BGP TCP-AO authentication algorithm
Cisco IOS XR:
MPLS support (LDP, SR-MPLS, MPLS/VPN, 6PE)
EVPN over MPLS
VRRP
EBGP multihop
BGP session security (password, TTL security, TCP-AO)
BGP session parameters (timers, keepalives, AS-path handling)
BGP route aggregation
Complete implementation of routing policies
Prefix sets and prefix matching in routing policies
AS-path sets and corresponding routing policy matches
Complete standard and large BGP community support (including set/append/delete and community lists)
Shell-script configuration deployment for XRd containers (optional, set netlab_config_mode to
sh)Management VRF for all IOS XR-based containers
FRRouting:
SR-MPLS support for OSPFv2
Juniper vPTX:
EVPN/VXLAN
Juniper vJunos-router:
EVPN/VXLAN
Nokia SR Linux:
Bump default container release to 25.10.2
OpenBSD:
BGP support
Fixes in Configuration Templates
Cisco IOS/IOS XE:
Configure BGP RR clients in VPNv4/VPNv6 address families
MPLS/VPN and MPLS 6PE BGP route-reflector fixes
FortiOS:
Disable password policy enforcement
FRRouting:
MPLS/VPN and MPLS 6PE BGP route-reflector fixes
Nokia SR OS:
MPLS 6PE BGP route-reflector fixes
Advertise inactive BGP routes
VyOS:
MPLS/VPN and MPLS 6PE BGP route-reflector fixes
Breaking changes
The SR-MPLS module data model has been refactored. The following global attributes have been renamed or removed:
sr.ipv6_sid_offset→sr.node_sid_offset.ipv6(migrated automatically with a warning)sr.srgb_range_startandsr.srgb_range_sizeare obsolete (the SRGB range is device-specific and must be set as a node or device attribute); using them generates a warning, and the values are ignored.
The following changes were made to node-level attributes:
These attributes have been migrated:
sr.srgb_range_start→sr.srgb.start,sr.srgb_range_size→sr.srgb.sizesr.ipv6_sid_offsetis now obsolete at the node level (set it globally instead).Node SID values that were previously calculated in Jinja2 configuration templates are now stored in
sr.node_sid.ipv4andsr.node_sid.ipv6
Other potentially breaking changes:
The Cisco IOS XRd shell-script configuration deployment mode is now optional (set netlab_config_mode to
shto use it).Routing policy objects are sorted by sequence numbers (documentation claimed that was true, but it was not)
Bug Fixes
Cleanup
/etc/hostsgeneration on Cumulus Linux, FRRouting, and SR Linux (#3187)Unified handling of in-VRF BGP neighbors across all ebgp.multihop configuration templates
Reorder device provisioning template search paths so that user-provided templates take precedence over defaults (#3185)
Do not attempt to apply empty IOS XRd configuration snippets
Symmetric IRB fixes for MPLS and SR-MPLS transport
Create per-AF min/max prefix-length values in prefix lists
SR-MPLS module is now configured after OSPF and IS-IS to ensure correct module ordering
The ‘non-empty list’ constraint is now available for attribute validation: set
empty: falseon a list attribute to reject empty lists.Format JSON inventory output with indentation for better Unix tool compatibility (#3100)
Clean up the node_files directory before generating device configurations (#3108)
Remove artifacts resembling netlab files from the Ansible inventory (#3140)
Adjust validation plugins to enable VRF prefix checks (#3132)
Fix integration tests broken by line-wrap behavior change in python-box 7.3.3 (#3130)
mpls.6pesettings do not need to be explicitly adjusted when not configuredUse a more recent IOS XRd container image (#3102)
OpenBSD needs additional startup time before accepting SSH connections (#3134)
Documentation Fixes
Clarify bgp.originate plugin IPv6 support
stp.priority increments by 4096, not 1024
Ansible
cisco.iosxrcollection compatibility has been fixedMake IOS XR spelling consistent throughout (IOS XR, not IOS/XR)
Clarify delete.community.list attributes in routing policy
Template Developer Documentation
MPLS: LDP, MPLS/VPN, 6PE
Generic routing: routing policies, prefix filters, AS-path filters, BGP community filters, static routes
ebgp.multihop plugin