Changes in Release 25.10
New Functionality
You can use wildcards or regular expressions to specify group- or as_list ASN/RR members.
New device: container version of Cisco 8000v emulator (running IOS XR)
Graph Improvements
Apply different styling to VLAN access/trunk links in topology graphs
Change the D2 node/edge styles to match Graphviz colors
Enable custom node/link formatting with graph.format and d2.format node/link attributes
Implement node rank in Graphviz graph definition files
Other Minor Improvements
Implement select IGP parameters on loopback interfaces
Remove EBGP sessions with other PE-devices on EVPN-controlled VLANs
Change management MAC address pool and netlab-generated device MAC addresses to locally-administered addresses
Add ‘–debug: paths’ option to help troubleshoot custom templates
New Device Features
Arista EOS:
Change default cEOS release to 4.34.2F
Cisco IOS:
Change image names for Cisco IOSv L2 and Catalyst 8000v vrnetlab containers
Cisco IOS XR:
Implement OSPFv2/v3 timers, passwords, and router priority
FortiOS:
Use CD-ROM configuration to build FortiOS Vagrant box
OpenBSD:
OSPFv2/v3 support
SR Linux:
Change default release to 25.7.2
Junos vPTX:
Support for vJunosEVO release 24/25
Fixes in Configuration Templates
Cisco IOS XR:
Fix OSPFv2/v3 templates
SR Linux:
Use Linux-style /etc/hosts files (#2677)
Breaking changes
Junos vPTX (vJunosEVO) needs a UEFI BIOS starting with release 24. Unfortunately, that BIOS does not work with release 23. netlab uses UEFI BIOS to start vptx virtual machines; build a vrnetlab container if you’d like to run vPTX Junos release 23 or earlier.
D2 graphs use the same colors as Graphviz graphs, making them a bit different from what they were before.
The netlab-generated management MAC addresses were squatting on Cisco OUI. We changed the management MAC address pool to use locally-administered addresses with the CA:FE:00 OUI.
netlab removes EBGP sessions between EVPN PE-devices on EVPN-enabled VLANs. In most cases, that’s the desired behavior. Use evpn.domain node parameter if this change impacts your design.
The BGP graphs list nodes in peer-to-peer BGP sessions in the order specified in the nodes dictionary. This might change how Graphviz/D2 generates BGP graphs.
Bug Fixes
Implement per-VRF control of IGP address families (#2679)
Compute VRRP MAC/LLA addresses in gateway module (#2691)
Cleanup clab group_vars for IOS-like devices (#2689)
Add missing ‘bgp.as_list.name’ attribute we lost in the mists of time (#2680)
Make ‘routing/01-locpref’ integration test VRF-aware (#2702)
Use wait time constants in BGP session integration tests (#2700)
Use shared select_output_file in output modules (#2687)
Use ‘bgp_community_type’ subtype in bgp.community values validation (#2706)
netlab inspect: disable markup when printing table-formatted YAML data (#2705)
Remove BGP policy tests that duplicate routing functionality
Add module data to VLAN neighbors (#2696)
Fix: Turn warning into an error when warning flag is set to ‘error’
Tweak transformation tests to remove all warnings (#2708)
Remove _meta_device flag when inheriting from parent device
Split ‘routing’ module into object-specific submodules (#2715)
Warn about L3 attributes used on VLAN trunks (#2709)
Use $SUDO when installing extra Ubuntu packages (#2721)
Use per-device validation wait times in BGP integration tests (#2720)
Add per-device validation wait time constants (#2719)
Build a list of parent device(s) in devices.x._parents (#2718)
Generate MAC addresses for Ethernet/SVI interfaces during data transformation
Documentation Fixes
Topology-level modules are not inherited by host nodes
Fix the title of ‘netlab graph’ documentation
Add Python virtual environment installation instructions and a few installation caveats