netlab 1.6.4: Support for Multi-Lab Projects; More BGP Goodies

Features in netlab release 1.6.4 were driven primarily by the needs of my BGP labs project:

Numerous platforms already support the new BGP nerd knobs:

  • Arista EOS, Cisco IOSv, Cisco IOS/XE, Cumulus Linux and FRR support all new BGP session nerd knobs and BGP policy features.
  • Stefano Sasso contributed bgp.sessionbgp.policy and ebgp.multihop support for Aruba AOS-CX
  • Jeroem van Bemmel contributed ebgp.multihop support for SR Linux and SR OS
  • You can use BFD for OSPFv2, OSPFv3 and BGP on FRR

I also made several changes to make plugins easier to use (more about that in a separate blog post):

  • Plugins can use global module variables as metadata to tell netlab what they want/expect/offer.
  • _requires metadata handles mandatory plugin dependencies
  • _config_name plugin metadata can be used instead of an API call to get the name of plugin template directory
  • Plugins are sorted based on their dependencies documented in _execute_after metadata

Finally, a hodgepodge of other features:

  • bgp.session plugin can apply BGP session attributes to IBGP and EBGP sessions.
  • netlab show attributes command displays valid lab topology attributes and their expected data types. Failed validation checks tell you about that command to make your troubleshooting a bit easier.
  • netlab show defaults command displays user/system defaults without starting a lab.
  • For people who don’t believe in prefix consistency we added configurable IPv6 prefix length to address pools


To get more details and learn about additional features included in release 1.6.4, read the release notes. To upgrade, execute pip3 install --upgrade networklab.

New to netlab? Start with the Getting Started document and the installation guide.

Need help? Open a discussion or an issue in netlab GitHub repository. There’s also a netlab channel in networktocode Slack team, but you will get faster response time reporting your challenges in GitHub.

Add comment