Changes in Release 26.06

New Functionality

Minor changes and improvements

  • The libvirt installation script installs Vagrant release 2.4.9.

  • The netlab defaults command can display selected defaults as YAML or exported shell environment variables.

  • Plugins can define CLI hooks executed before or after netlab up and netlab down command steps.

  • The libvirt.machine_type node attribute gives you more control over VM machine type selection.

  • Search-path handling for provider and custom templates is now configurable.

  • The validation code supports the _value_to_dict attribute and user-defined data types, making flexible attribute definitions easier to implement.

  • Python package (networklab) is defined in pyproject.toml

New Device Features

FortiOS:

  • OSPFv3 (IPv6 OSPF)

Nokia SR Linux:

  • SR-MPLS over IPv6

  • MPLS/VPN support

Fixes in Configuration Templates

Arista EOS:

  • Do not configure OSPF interface parameters like timers and router priority on loopbacks

Nokia SR Linux:

  • Fixed the LDP configuration template

  • Null update/delete values generated by templates no longer break configuration deployment

  • Use the new containerlab node types consistently

Breaking changes

  • SR Linux clab.type values are now validated against documented hardware variants, and netlab expects the hyphenated type names used in the documentation. Existing lab topologies that use legacy aliases or unsupported values might need updates.

Bug Fixes

  • Set high MTU only on libvirt private networks to avoid recent libvirt failures on public/direct links (#3404)

  • Compare topology download target names correctly when loading a lab topology from a URL

  • netlab test runs probes only for providers being tested (#3437)

  • Integration tests can complete custom validation scenarios even when up or initial steps are skipped

  • Improve error reporting for provider configuration templates

  • Validation code now creates Box objects with get_box, handles user-defined _alt_types, checks _required on empty dictionaries, and extracts type-validation attributes consistently (#3438, #3439, #3444, #3447)

  • FRR BGP prefix validation queries VRF BGP tables (#3446, #3454)

  • Validate routing.prefix min/max values against prefix length and address-family limits (#3455)

  • CI and integration tests generate shorter diffs and clearer startup messages

Documentation Fixes

  • Document custom Linux/libvirt packaging workflows, including Ubuntu 26.04 caveats and full box names