# Changes in Release 1.0.x ## New Devices * [Jeroen van Bemmel](https://github.com/jbemmel) contributed support for Nokia SR Linux and SR OS (including initial device configuration, OSPF, ISIS, BGP, and SR-MPLS). * [Stefano Sasso](https://github.com/ssasso) contributed support for Mikrotik RouterOS and VyOS devices. Both device types support IPv4, IPv6, OSPF and BGP. [More details...](../platforms.md) * [Pete Crocker](https://www.linkedin.com/in/petercrocker/) contributed support for Fortinet devices. You can configure IPv4, IPv6 and OSPF. [More details...](../platforms.md) and [caveats](../caveats.md#fortinet-fortios). * Added Vagrant box names for IOSv, CSR and vSRX on VirtualBox. You still have to build the boxes, but at least you won't have to change the default settings. ## New Functionality in Release 1.0.6 * [Plugin packages](../plugins.md) and module extensions. * [Hierarchical device groups](../groups.md#hierarchical-groups) * Device-specific module attributes ([more details](../dev/module-attributes.md)) * [Custom deployment templates](custom-config) are deployed as part of [initial device configuration](../netlab/initial.md). * **[netlab initial](../netlab/initial.md)** command includes `--fast` option which uses **free** strategy in Ansible playbooks for faster configuration deployment. * Multi-access (LAN) links in *containerlab* ## New Functionality in Release 1.0.5 * Vagrant *libvirt* plugin release 0.7.0 destroys *vagrant-libvirt* virtual network during **vagrant destroy** process. **netlab up** now creates the virtual network if needed (by [Stefano Sasso](https://github.com/ssasso)) * XML definition of *vagrant-libvirt* virtual network has been changed to support up to 20 lab devices (by [Pete Crocker](https://github.com/petercrocker)) * Cumulus VX and generic Linux memory requirements have been increased to 1GB (by [Pete Crocker](https://github.com/petercrocker)) * Pre- and post-start lab hooks (needed to support *vagrant-libvirt* provider) (by [Stefano Sasso](https://github.com/ssasso)) * [Custom configuration deployment templates](custom-config) can be applied to individual nodes * A unified framework for [extending lab topology attributes](../extend-attributes.md) ### New documentation * [Expanded contributor guidelines](../dev/guidelines.md) * Document [lab topology transformation](../dev/transform.md) steps ## New Functionality in Release 1.0.4 * Links without IP addressing ([set **prefix** to *false*](../links.md#link-attributes)) -- contributed by [Stefano Sasso](https://github.com/ssasso) ## New Functionality in Release 1.0.3 * Skip devices that cannot be configured (SR Linux and Fortinet as of release 1.0.3) during **[netlab initial](../netlab/initial.md)** or **[netlab up](../netlab/up.md)** configuration process. * Execute [configuration-specific task list](../dev/devices.md#configuring-the-device) to configure devices that cannot use template-based configuration. ## New Functionality in Release 1.0.2 * You can [set node attributes on all members in a custom group](../groups.md#setting-node-data-in-groups) with the **node_data** group attribute. * [BGP module](../module/bgp.md) creates [custom groups based on node AS numbers](../groups.md#automatic-bgp-groups). * Experimental release of [custom plugins](../plugins.md). I don't expect the plugin structure to change (much), but there is no well-defined API to set data structures in the rest of the *netlab* code (yet). ## New Functionality in Release 1.0.1 * [Custom groups](../groups.md) can be specified in topology file to create custom inventory groups or set inventory group variables. * Custom groups can specify custom configuration templates that are deployed during the **[netlab up](../netlab/up.md)** process. * **quiet** CLI flag sets Ansible STDOUT callback to **dense** to minimize the clutter generated by Ansible playbooks invoked by **netlab initial**, **netlab config** or **netlab up** commands. * **debug** flag of **netlab up** and **netlab down** commands can be used to display commands that would be executed without executing them. ## New Functionality in Release 1.0 * **[netlab up](../netlab/up.md)** enables LLDP passthrough on Linux bridges created with *libvirt* Vagrant plugin. ## Bug Fixes ### Release 1.0.6 * Reorder module list in node data based on module dependencies (#86) * Check module node attributes in group **node_data** dictionary (#76) ### Release 1.0.5 * Topology-level module attributes can be set even when a module is used by a single node. * Use 'netlab up' and 'netlab down' in 'netlab test' command * Fixed Cumulus OSPF and BGP templates (contributed by [Pete Crocker](https://github.com/petercrocker)) * Fixed XML definition for *vagrant-libvirt* (contributed by [Pete Crocker](https://github.com/petercrocker)) * Set node data with '-s' CLI parameter (reported by [Jeroen van Bemmel](https://github.com/jbemmel)) * Improved 'failed to run subprocess' error messages (contributed by [Jeroen van Bemmel](https://github.com/jbemmel)) * Verbosity level (-v flag) is an integer, not a boolean flag. Verbosity level is passed to Ansible playbooks (reported by [Jeroen van Bemmel](https://github.com/jbemmel)) * Don't use Python warnings for error messages ### Release 1.0.4 * Add *no attribute change on route reflection* configuration to Arista EOS BGP template ### Release 1.0.3 * BGP module crashed in a lab with `stub` links * Vagrant 2.2 uses QEMU sessions on Fedora, resulting in inability to create virtual networks. Disable QEMU sessions in libvirt Vagrantfile template. (found by Leo Kirchner) * IOS XE uses **no ip domain lookup** instead of **no ip domain-lookup**. (contributed by [Stefano Sasso](https://github.com/ssasso)) ## Cleanup * Moved platform-specific caveats into a separate document (contributed by [Pete Crocker](https://www.linkedin.com/in/petercrocker/)) * Added tutorial links * Cleaned up lab installation instructions * Remove obsolete CLI commands and related documentation * Remove Ubuntu installation Ansible playbook (replaced by **netlab install**)