# Changes in Release 25.12 ```eval_rst .. contents:: Table of Contents :depth: 2 :local: ``` (release-25.12)= ## New Functionality * Common framework for [standard/large/extended BGP community lists](generic-routing-community) (extended BGP community lists are coming in the next release) * Large BGP community lists, implemented on Arista EOS, FRR, and Junos. You can use standard- or large community lists in [routing policies](generic-routing-policies) * Support Cisco ASAv in *vrnetlab* containers * [Reread validation tests](netlab-validate-dev) from the lab topology file (if it was modified since the lab was started) every time you run the **[netlab validate](netlab-validate)** command * The **netlab validate** command can also read validation tests from a separate file. * The **shutdown** [link/interface attribute](link-attributes) can be used to start labs with interfaces turned off * The **bgp.rr_mesh** parameter [controls IBGP sessions between BGP route reflectors](bgp-ibgp-sessions) **Minor improvements** * Add `--title` parameter to the [**netlab graph**](netlab-graph) command * Add [**clab.exec** parameter](clab-other-parameters) to execute commands when starting containers * Replace routing policy **set.community.delete** attribute with **delete.community** attribute. _netlab_ automatically translates old attributes into new ones. * Bump minimum containerlab release to 0.72.0 (needed to support Cisco ASAv and the new Cisco IOSv **kind**) * Use daemon configuration files to create container-side bash scripts that are executed during the container startup process * The [**netlab initial**](netlab-initial) command creates daemon configuration files in Python code, not in an Ansible playbook * You can use the `-m`, `-i` and `-c` parameters with the **netlab initial --output** command to control the configuration files created in the output directory (release-25.12-device-features)= ## New Device Features Arista EOS: * VXLAN over IPv6 * Large BGP community lists Bird: * A completely Ansible-free configuration process relying on Bird daemon configuration files and container-side Bash scripts Cisco 8000v (IOS/XR): * Static routes * Route import into BGP, IS-IS, and OSPFv2/v3 * OSPFv2/v3 default route * VLAN and VRF support * BGP confederations * BGP local-as support Cisco ASAv: * You can run ASAv in a vrnetlab container (supported in *containerlab* release 0.72.0) Cisco Catalyst 8000v: * VXLAN over IPv4 with static ingress replication * The default container version has been changed to IOS/XE 17.16.01a (see also: [changing device images](tutorial-release)). * _netlab_ tracks the state of the Catalyst 8000v license applied to the nodes with the **cat8000v.license** node attribute. The [default value of this parameter](caveats-cat8000v) is **premier**. * _netlab_ checks the configured Catalyst 8000v license level and refuses to configure MPLS, SR-MPLS, VXLAN, or SRv6 on a Catalyst 8000v node if the **cat8000v.license** parameter is not set to **premier**. * The VLAN configuration template has been changed to use the new bridge-domain configuration model (service instances are defined as members of **bridge-domain**) when the **cat8000v.license** node attribute is set to **premier**. You might have to rebuild your Catalyst 8000v containers using the latest _vrnetlab_ code for the new template to work, or set the **cat8000v.license** parameter to **none** ([more details](caveats-cat8000v)). Cisco IOSv: * Use the new containerlab **kind** for IOSv containers Fortinet: * Replace device configuration through Ansible modules with configuration templates. * Try to use FortiOS Monitor API to upload configuration scripts to a FortiOS device; fall back to SSH/Expect if needed FRRouting: * Large BGP community lists * You can enable additional FRR daemons not used by *netlab* configuration modules. List them in the **frr.daemons** node attribute * FRRouting containers and VMs can be used as custom bridges Junos: * Large BGP community lists (release-25.12-device-fixes)= ## Fixes in Configuration Templates Cisco 8000v: * Set default IPv6 RA interval to 5 seconds * Configure low OSPF SPF/LSA throttle timers * Rewrite the BGP template to use new BGP neighbor attributes (release-25.12-breaking)= ## Breaking changes * Catalyst 8000v VLAN configuration template assumes you use VMs or containers with the **network-premier** license. You might have to rebuild your Catalyst 8000v container using the latest *vrnetlab* code ([more details](caveats-cat8000v)). * The code expanding [link **groups**](link-groups) retains the link order. Previously, the group members were appended to the end of the **links** list. This change will change the lab addressing for labs using link groups. * The **routing.policy.set.community.delete/delete_list** attributes have been replaced with **routing.policy.delete.community** attribute. You can still use the old attributes in lab topology files; you might have to adjust any custom device configuration templates (or other post-processing tools) that delete communities in route maps. * The **routing.community.type** attribute, which signalled *standard* (simple matching) versus *expanded* (regex matching) BGP community list type, has been renamed to **cl_type**. The **routing.community.type** attribute now encodes the type of communities matched by the community list (*standard*, *large*, and *extended*). There is no impact on lab topologies; you might have to update custom configuration templates. ## Development Features * Implement `_invalid_with` data validation option * Implement `_default` values in data validation * Daemon **daemon_config** attribute can be used to generate container-side initial device configuration (bug-fixes-25.12.01)= ## Bug Fixes in Release 25.12.01 * Containerlab version specified in the `clab.yml` provider definition file must be a string * **netlab install** should stringify default values copied into the process environment (bug-fixes-25.12)= ## Bug Fixes in Release 25.12 * Increase BGP/IS-IS redistribution wait times for Cisco 8000v * Fix device descriptions for Catalyst 8000v and Cisco 8000v * Enable EVPN only on IPv4 or RFC 8950 BGP sessions (#2813) * Stop 'netlab initial' on first error during integration tests * Add tools/ to package MANIFEST.in (#2819) * Use the generic readiness check for the IOS/XR container * SRSIM config deployment crashed with empty update elements * Transform community lists into type/value format * Move rarely-used tests into 'code coverage' tests * Fix the node-level STP protocol override setting (#2821) * Add the ability to generate generic warnings only once * Do not print WARNING/INFO messages when running in QUIET mode * Fix Junos community quirks to work with the new routing policy and community list attributes * Unnumbered interfaces crash topology graphs * Treat 'initial' as another module when creating daemon configs * Add 'extra_path' parameter to write_template function (#2873) * Path to 'daemons' directory is already included in default paths * Refactor the containerlab configuration template (#2859) * Normalize containerlab interface names containing '/' when used in the **netlab capture** command * Retain link order when expanding link groups * Copy relevant link module data to interfaces attached to a bridge * Remove support for task-list-only device configuration * Match the whole test names against the **netlab validate** CLI arguments * Split the **netlab validate** command into numerous modules Integration test fixes: * Use symbolic wait times in integration tests * Add wait times to VRF static routing tests * Increased OSPF SPF times for conditional default route generation * Extend the OSPF adjacency wait time over VLANs * Use redistribution wait times in IS-IS integration tests * It takes Cisco 8000v 60+ seconds to start VRF IPv6 EBGP session * Adjust the BGP VRF tests to use 'BGP redistribution' timeouts * Increase ping timeouts in static routing and data-plane VRF tests * Test EVPN in a dual-stack network * Generic integration test adjustment plugin * vPTX (who else) needs longer for IPv6 interfaces to wake up (doc-fixes-25.12)= ## Documentation Fixes * Update the 'waiting for VM' part of the containerlab documentation * Use a recent vrnetlab version to build Cat8000v containers * New Wireshark release breaks old plugins * vrnetlab can build Cat8000v containers with premier license * Fix the list of commands printed by the **netlab help** command