Changes in Release 1.6¶
New Functionality¶
Release 1.6.4¶
Implement simple BGP routing policies in bgp.policy plugin
Implement remove_private_as, passive BGP peers and BFD for BGP neighbors in bgp.session plugin
Selectively apply BGP session attributes to IBGP and EBGP sessions
Enable external tools in user defaults
Default groups allow you to specify user- or project-wide groups in the defaults files.
Version-specific lab topology files allow netlab to select a lab topology that is a best fit to for netlab release you’re running.
netlab show attributes command displays valid lab topology attributes and their expected data types
netlab show defaults command is the easiest way to display user/system defaults
Add configurable IPv6 prefix length to address pools
Rename ebgp.utils plugin to bgp.session
Display relevant ‘use netlab show attributes’ help when failing validation checks
Platform enhancements:
Add BFD for BGP neighbors, remove-private-as option, and passive BGP peers support for Arista EOS, Cisco IOSv, Cisco IOS/XE, Cumulus Linux and FRR
Add bgp.policy support for Arista EOS, Cisco IOSv, Cisco IOS/XE, Cumulus Linux and FRR
Add bgp.session, bgp.policy and ebgp.multihop support for Aruba AOS-CX (contributed by Stefano Sasso)
Add ebgp.multihop support for SR Linux and SR OS (contributed by Jeroem van Bemmel)
Add BFD for OSPFv2, OSPFv3 and BGP on FRR
bgp.session: add BGP timers, BFD, passive BGP peer, and remove-private-as support for Nokia SR Linux (1.6.4-post2)
Add bgp.policy support for Nokia SR Linux (1.6.4-post2)
bgp.session: implement BFD, BGP timers and passive BGP for vMX, vSRX, and vPTX (1.6.4-post3)
MPLS: Add 6PE and BGP-LU for Nokia SR OS (1.6.4-post3)
New plugin functionality:
Add
_requires
metadata to handle mandatory plugin dependenciesUse
_config_name
plugin metadata instead of API callSort loaded plugins based on their dependencies documented in
_execute_after
metadataImplement plugin redirect (used to rename ebgp.utils to bgp.session)
Accept
__init__.py
as a replacement forplugin.py
in directory-based plugins
Documentation improvements:
Release 1.6.3¶
EBGP multihop sessions in the global routing table. Implemented on Arista EOS, Cisco IOSv, Cisco IOS-XE, FRR and Cumulus Linux 4.x.
ebgp.utils plugin supports TCP-AO, configurable BGP timers, and Generic TTL Security Mechanism (TTL session protection)
OSPF reports: areas/routers/interfaces in md/html/text format
Shorter version of BGP neighbor report
Specify minimum netlab version in lab topology
Implement BFD on Cumulus Linux
Implement collect configuration action for FRR
Change default FRR release to 9.0.1
Load plugin defaults together with the plugin module
Device configuration templates could be loaded from system- or user directory.
Documentation improvements
New customizing netlab page with links to a dozen customization mechanisms.
Add “more information” links to the documentation home page
Add links to platform caveats
Restructure containerlab attribute documentation
Update VLAN development documentation
Add containerlab example to provider-specific node attributes documentation
Release 1.6.2¶
Display a subset of available reports in netlab show reports command
Display warnings in reports relying on ipaddr Ansible filter
Add IPv6 prefixes and neighbors to BGP reports
Add IPv6 column to text addressing report
Make some columns optional in BGP reports to reduce the report width
Implement inter-VRF route leaking for Cumulus/FRR
Release 1.6.1¶
netlab report can generate Markdown markup (ideal for augmenting documentation written in Markdown)
BGP AS number and BGP neighbor reports (text, Markdown, HTML)
Internal changes:
netsim no longer uses
netsim.common
module. This change might impact existing plugins.
Release 1.6.0¶
New commands:
netlab report generates built-in or user-defined text- or HTML reports based on transformed lab topology.
netlab graph command generates topology graph descriptions in GraphViz or D2 format
netlab inspect command displays data structures in transformed lab topology
Improved netlab show command displays information as a table, raw text, or YAML
New reports:
The reports you can create with the netlab report command include:
Node, interface and link addressing reports
Lab wiring summary
Device management IP addresses, usernames, and passwords
Explore netlab internals
The netlab show command can display:
Configuration modules and optional features supported by individual modules
Configuration modules and features supported by individual devices
Virtualization providers and their status
Output modules that can be used with the netlab create command
System reports you can use with netlab report command
External connectivity:
Connect containers to outside world through macvlan interfaces (requires containerlab release 0.43.0)
Host-to-VM port forwarding in libvirt environment
Other new features:
Improved FRR VXLAN data plane configuration
OSPF strict BFD support (RFC 9355)
Nokia SR OS OSPF P2MP support
Add mgmt._permanent option to make vagrant-libvirt management network persistent (fixes #855)
Documentation improvements:
Document Linux loopback interface usage
Document assignment of management IP addresses in libvirt and containerlab environments
Rewrite documentation for external provider and multi-provider topologies
Internal changes:
Use device features instead of module supported_on lists to specify modules supported by individual devices
Device settings inheritance should make it easier to add similar devices. It has been implemented for most device types, including a new Junos meta-device (the parent for vSRX, vMX and vPTX devices).
get_from_box
function has been removed
Breaking changes¶
Release 1.6.1¶
netlab code stopped using netsim.common
module. That module should no longer be used, but is still included in the package in case some plugins still use it. We’ll remove the module in 1.7/2.0 release.
Release 1.6.0¶
get_from_box
function has been removed. The function might be used by early plugins which will break when ran with netlab release 1.6.0. Update your plugins to use Box get method which supports hierarchical names since version 7.0 (more details)
Bug Fixes¶
Bug Fixes in release 1.6.4-post3¶
netlab install scripts have to work when started as root user
Nokia SR OS: Fix missing macro parameter ‘name’
Minor tweaks to Nokia SR Linux template
Move Nokia SROS interface naming logic to initial.j2 if_name macro
Nokia SR OS initial configuration: fix quoting of “[null]” value
Enable BFD for Junos devices
Bug Fixes in Release 1.6.4-post2¶
Set BGP address family flags based on interface BGP advertisement status (fixes #929)
Create BGP reports even when a router has no neighbors
Group error messages should be f-strings
vPTX box building script should run make-config.sh as root
Fix a typo breaking Virtualbox FRR support (#920)
Bug Fixes in Release 1.6.4-post1¶
bgp.policy plugin removes bgp.session data from BGP neighbors
Bug Fixes in Release 1.6.4¶
Use management VRF with Arista cEOS
Cosmetic fix: align table header columns in BGP reports
Sort custom configurations to speed up ‘netlab initial’
Add typing tests of ‘extra’ plugins to the CI/CD tests
Rewrite bgp.session plugin to use BGP neighbor generators
Make ‘loading plugins’ error messages easier to understand
Add jQuery to documentation pages
Clear BGP sessions after changing BGP timers in bgp.session plugin
FRR VM crashed when initializing an Ethernet stub network
Stop mypy CI/CD tests on first error
Bug Fixes in Release 1.6.3¶
Add tunnel interface names to Cumulus/FRR settings to support ebgp.multihop
Tweak Cisco IOS NSF timers to speed up initial BGP convergence
Use a hint when reporting ‘missing global AS’ in EVPN module
Throw an error if a group definition is empty (None)
Use relevant link names when transforming link lists from components or BGP multihop sessions
Prettify the ‘cannot load plugin’ error message
Make bgp.no_propagate setting extendable
Consistently use _vlan_mode attribute throughout the VLAN module
A few minor fixes for SR OS MPLS configs
Propagate node VLAN mode into link ‘interfaces’ early enough to matter
ECMP Fixes for 7250 IXR
Allow only ‘route’ value for link/interface-level vlan.mode attribute
Use node-level vlan.mode when copying global VLAN data into node VLAN data
Remove remote neighbor attributes in ebgp.utils
Implement feature checks in ebgp.utils plugin
Rewrite ‘ebgp.utils’ plugin to use the plugin defaults functionality
Implement ‘copy attribute definition’ functionality and use it for plugin defaults
Add linux-modules-extra to ubuntu install script (#873)
Make ‘netlab test’ command more resilient
Workaround: Nokia Ansible collection crashes with Ansible 5.x and later
Copy only mandatory attributes from PHY to VLAN interface
Wiring report fixes
Bug Fixes in Release 1.6.2¶
Fix EVPN VLAN attributes (#865)
Bump clab version to 0.44.3 (#864)
BGP reports should survive topologies with no BGP in them
‘netlab show reports’ skips include files in reports directory
Migrate simple VRF integration tests to the new “links-in-vrfs” format
Bug Fixes in Release 1.6.1¶
Python package manifest (MANIFEST.in) did not include
show-usage.txt
(the help file for netlab show command)Collect Cumulus Linux interface configuration with
ifquery
ifquery
has to be executed as root on Cumulus Linux
Bug Fixes in Release 1.6.0¶
Allow ‘mgmt’ attributes in node data
Change pinned containerlab version to the one supporting macvlan endpoints
Create system-wide virsh networks during ‘netlab up’
Fix a typo in a BGP attribute type
Update SRv6 module to use new dictionary-based attribute definition
Documentation Fixes¶
Documentation Fixes in Release 1.6.4-post3¶
Outdated link in Ubuntu VM installation documentation
Display version-specific topology file used to start a lab
There’s no release 1.5.5
Documentation Fixes in Release 1.6.4-post2¶
Add ‘use /tmp on Ubuntu 22.04’ to box building instructions
Document further problems with vPTX DHCP client
We’re not recommending using pip3 as root (fixes #923)
More HTML anchors for platform support tables
Documentation Fixes in Release 1.6.2¶
Rewrote confusing introduction to BGP configuration module platform feature support
Fix a ‘device image default’ example that contained invalid container name
Documentation Fixes in Release 1.6.1¶
Use consistent anchors in “netlab show” documentation
New Aruba download link