Changes in Release 1.7¶
New Functionality¶
Release 1.7.1¶
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)
Platform enhancements:
Juniper vPTX can run as a container with containerlab
Implement unnumbered EBGP on FRR VRFs
Minor improvements:
Add parent interface data to unnumbered interfaces
Make loopback more like a regular interface
Print an error message when the validation test is interrupted
Integration tests:
Release 1.7.1 includes improved initial configuration, VLAN, VXLAN, and VRF integration tests with automated validation.
Release 1.7.0¶
Lab validation tests executed with the netlab validate command.
Add the
--show
option 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
Platform enhancements:
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
Documentation improvements:
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)
Add
_namespace
parameter to user-defined types to pull in parameters from other objects (example: link parameter in VRF)Replace module
extra
attributes with data type validation_requires
functionalityAdd
_required
flag to check mandatory attributesAdd
_subtype
dictionary validation parameter to trigger recursive validation of vrfs and vlans attributesValidate keys in a dictionary with the
_keytype
attributeAdd 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
Breaking changes¶
Release 1.7.0¶
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.
Bug Fixes¶
Bug Fixes in Release 1.7.2-post1¶
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.
Bug Fixes in Release 1.7.2¶
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
Bug Fixes in Release 1.7.1¶
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’
Bug Fixes in Release 1.7.0-post1¶
ArubaCX: fix MTU plus minor stuff (#979)
Dell OS10: MTU fixes (#978)
FRR supports unnumbered interfaces with OSPF and IS-IS
The
fabric.debug
parameter was not a valid topology attribute.Turn VLAN/interface attribute sets into dictionaries
Bug Fixes in Release 1.7.0¶
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_cases
test harness (#936)Reorder steps early in the topology transformation process
Add the
expand_topology
plugin hook to support plugins that modify lab topology.
Documentation Fixes¶
Documentation Fixes in Release 1.7.2¶
RouterOS CHR upload limits and trial license usage
Better description of custom group Ansible variables
Documentation Fixes in Release 1.7.1¶
Polish ‘topology defaults’ documentation, add troubleshooting hints
Documentation Fixes in Release 1.7.0-post1¶
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
Documentation Fixes in Release 1.7.0¶
Describe built-in non-Python data types and remove mentions of ‘attributes specified as lists’ in Lab Topology Attribute Validation