Changes in Release 1.7¶
Add ‘wait’ parameter to validation tests
Use colors in netlab up/down/test/validate printouts
Use color-coded error messages
Use the rich Python library to pretty-print tables, JSON, and YAML
Display object descriptions in the ‘netlab show attributes’ printout
Use any loopback interface for VXLAN VTEP (not just the Loopback0)
Juniper vPTX can run as a container with containerlab
Implement unnumbered EBGP on FRR VRFs
Add parent interface data to unnumbered interfaces
Make loopback more like a regular interface
Print an error message when the validation test is interrupted
Release 1.7.1 includes improved initial configuration, VLAN, VXLAN, and VRF integration tests with automated validation.
--showoption to the netlab connect command to have a consistent cross-device way of executing show commands.
New and improved plugins:
The fabric plugin generates a whole leaf-and-spine fabric topology from a few parameters.
The bgp.domain plugin allows you to create topologies with multiple independent devices or sites using the same BGP AS number.
The bgp.policy plugin supports AS-path prepending on Arista EOS, Aruba AOS-CX, Cisco CSR 1000v, Cisco IOSv, Cumulus Linux, FRR
bgp.originate plugin uses loopbacks (instead of static routes to Null device) to originate BGP IPv4 and IPv6 prefixes
vptx device supports the vJunosEvolved release 23.2R1-S1.8 (or later). Older releases no longer work, you’ll have to rebuild your Vagrant boxes.
bgp.session: implement BFD, BGP timers, and passive BGP for Junos devices (vMX, vSRX, vPTX)
bgp.session: implement AS-path manipulation, default route origination, TTL security, passive BGP peers, MD5 passwords, and BGP timers on Cisco NexusOS
MPLS LDP on Nokia SR Linux
AOS-CX: Support for L3VNI and release 10.13
Change the default FRR release to 9.1.0
Update the ‘initial config’ platform support table to list additional loopback capability
Internal data validation changes:
Streamline common data type validation
User-defined data types (example: VLAN definition)
_namespaceparameter to user-defined types to pull in parameters from other objects (example: link parameter in VRF)
extraattributes with data type validation
_requiredflag to check mandatory attributes
_subtypedictionary validation parameter to trigger recursive validation of vrfs and vlans attributes
Validate keys in a dictionary with the
Add include defaults at parent level functionality, use it to define VRF and VLAN data types as global attributes
Cleanup data type validation in VLAN and VRF modules
New built-in data types: prefix_str (IPv4 or IPv6 prefix), node_id (node name), device (device identifier)
For more details, read the Lab Topology Attribute Validation
Old vJunosEvolved (
vptx) releases don’t work with netlab release 1.7.0. In those releases, the vJunos virtual machine needed four additional interfaces for internal PFE and RPIO links. vJunosEvolved release 23.2R1-S1.8 implemented those links with intra-VM links. As there’s no reasonably sane way to support both architectures without confusing everyone, we decided to adopt the new architecture – a decision that breaks old Vagrant boxes.
extra_attributes can no longer be used. This parameter has been deprecated in release 1.5.0 and removed from documentation in release 1.6.4. Supported ways of adding custom attributes are described in Custom Attributes.
netlab config command breaks when used with newer Ansible releases. The modified deployment playbook uses the common deploy custom configuration templates task list used by netlab initial.
Change pinned Vagrant/vagrant-libvirt releases to Vagrant 2.4.0-1 and vagrant-libvirt 0.12.2. Both releases were successfully tested on Ubuntu 20.04 and 22.04
Allow ansible_ or netlab_ variables in node and group data
Hosts need at least one adjacent router with a real IPv4 address
Cumulus Linux 4.x using VLAN-aware bridge does no support routed native VLANs or routed subinterfaces
Pad NX-OS hostname if it’s too short
Make ‘hostvars’ available when evaluating validation templates
Use yet another path to Ansible filters to cope with Ansible release 4.10.0
Accept empty tools definitions could be empty (NoneType) when validating lab topology
Propagate module attribute types (global -> node, link -> intf)
Redistributing leaked VRF routes into OSPF on Arista EOS requires an additional configuration option
STP has to be disabled on VLAN-aware Linux bridges using VXLAN
Failure to execute command is a validation failure
Replace ‘termcolor’ with ‘rich’ markup
Fix DHCP race condition with ‘interfaces’ file mounted into Cumulus containers
loopback0 on Cumulus Linux is named ‘lo’ not ‘lo0’
ArubaCX: fix MTU plus minor stuff (#979)
Dell OS10: MTU fixes (#978)
FRR supports unnumbered interfaces with OSPF and IS-IS
fabric.debugparameter was not a valid topology attribute.
Turn VLAN/interface attribute sets into dictionaries
Configure new BGP community display format on Cisco IOS
Display plugin hook call sequence
Cleanup the generation of module supported_on lists (#933)
Validate error printouts in the
test_error_casestest harness (#936)
Reorder steps early in the topology transformation process
expand_topologyplugin hook to support plugins that modify lab topology.
RouterOS CHR upload limits and trial license usage
Better description of custom group Ansible variables
Polish ‘topology defaults’ documentation, add troubleshooting hints
Remove the FRR version from the platform support tables (fixes #973)
Updated IS-IS and OSPF platform support
Virtualbox should be the environment of last resort
Nested virtualization is not needed for containers
Describe built-in non-Python data types and remove mentions of ‘attributes specified as lists’ in Lab Topology Attribute Validation