# Changes in Release 1.7 ```eval_rst .. contents:: Table of Contents :depth: 2 :local: ``` ## New Functionality (release-1.7.1)= ### Release 1.7.1 * [Automatically create nodes from group members](groups-auto-create) * [Add 'wait' parameter](validate-wait) 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)= ### Release 1.7.0 * [Lab validation tests](../topology/validate.md) executed with the **[netlab validate](../netlab/validate.md)** command. * Add the `--show` option to the **[netlab connect](../netlab/connect.md)** command to have a consistent cross-device way of executing show commands. **New and improved plugins:** * The [**fabric** plugin](../plugins/fabric.md) generates a whole leaf-and-spine fabric topology from a few parameters. * The [**bgp.domain** plugin](../plugins/bgp.domain.md) allows you to create topologies with multiple independent devices or sites using the same BGP AS number. * The [**bgp.policy** plugin](../plugins/bgp.policy.md) supports AS-path prepending on Arista EOS, Aruba AOS-CX, Cisco CSR 1000v, Cisco IOSv, Cumulus Linux, FRR * [**bgp.originate** plugin](../plugins/bgp.originate.md) 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](release-1.7.0-breaking), 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:** * [Plugin development documentation](../dev/plugins.md) * [Document debugging options](dev-transform-debugging) * Update the 'initial config' platform support table to list [additional loopback capability](platform-initial-interfaces) **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` functionality * Add `_required` flag to check mandatory attributes * Add `_subtype` dictionary validation parameter to trigger recursive validation of **vrfs** and **vlans** attributes * Validate keys in a dictionary with the `_keytype` attribute * 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 [](../dev/validation.md) ## Breaking changes (release-1.7.0-breaking)= ### 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 [](../extend-attributes.md). ## Bug Fixes (bug-fixes-1.7.2)= ### 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](../dev/tests.md) 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 (doc-fixes-1.7.2)= ### 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](defaults-debug) ### 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 [](../dev/validation.md)