Changes in Release 25.10

New Functionality

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:

OpenBSD:

  • OSPFv2/v3 support

SR Linux:

  • Change default release to 25.7.2

Junos vPTX:

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