September 2026
September 29 - Genie v26.9
Modules |
Version |
|---|---|
|
v26.9 |
|
v26.9 |
|
v26.9 |
|
v26.9 |
|
v26.9 |
|
v26.9 |
|
v26.9 |
|
v26.9 |
|
v26.9 |
|
v26.9 |
|
v26.9 |
|
v26.9 |
Changelogs
genie.libs.clean
New
- iosxe/cat9k/c9800
Added the
configure_wireless_managementClean stage to configure WMI from explicit stage arguments ordevice.management.wirelessand verify the trunk VLAN, SVI state and address, and wireless management binding.Added unit coverage for testbed fallback, complete missing-value reporting, readiness verification, and C9800-CL stage abstraction.
Updated the stage to require only mode-dependent values and to verify configured IPv6 WMI addresses.
Updated the stage to verify every requested static IPv4 WMI address, including secondary addresses.
Updated wireless binding verification to use the
show wireless interface summaryGenie parser without polling.
- iosxe
- Added the
EraseCertificatesclean stage. Erases certificate files matching configurable filename patterns.
Preserves certificates referenced by running-config or startup-config by default and fails safely when a reference is already missing.
Reports deleted files and certificate storage usage before and after cleanup.
- Added the
- clean
Added
testbed_configto Genie Clean stage parameters so stages can emit serializable devices and topology for the parent pyATS Clean engine to merge into the effective testbed.
Fix
- clean
Modified the
ConfigureManagementgateway verification to fail before pinging when no IPv4 or IPv6 management address is available.- Modified recovery_processor
Merge a failed device recovery result into the owning clean stage so the stage cannot remain passed while its recovery processor failed.
Preserve an existing stage result when it is worse than the recovery result.
Boot only IOS XE stack subconnections already in ROMMON with the configured golden or TFTP recovery image, then reconnect before clear-line or power-cycle recovery.
Improved recovery handling for HA devices with mixed enable and disable subconnections by avoiding unnecessary disconnects and reconnects.
Updated device recovery to clear the mapped terminal-server console lines instead of issuing
clear line 0through the device management connection.Improved recovery handling for stale or closed connections by avoiding commands on invalid sessions and preserving the original connection failure.
- recovery_image
Fixed remote recovery-image size checks to use the server protocol’s FileUtils implementation instead of the device filesystem implementation.
Kept canonical recovery-image paths in clean data and resolves short-path aliases internally only when copying over the production HTTP(S) transport.
Added a disk-space check before recovery-image copies. When size verification is enabled, the stage deletes unprotected files as needed while preserving configured golden files and recovery-image targets that are not being replaced.
- clean/stages
Increased the default IOS XE install_remove_inactive timeout from 180 to 300 seconds to allow package removal to complete on slower devices.
Boot the IOS XE installed image from the generated
packages.confduring the install image reload.Modified
copy_to_deviceto automatically protect an existing target image when the copy operation is skipped, preventing later free-space cleanup from deleting an image required by subsequent clean stages.
- iosxe
Kept the controller-mode reload dialog active after the
Press RETURN to get started!prompt so that authentication and the default-admin password change can complete before the final IOS XE prompt.Added regression coverage for the controller-mode authentication flow and reload timeout propagation.
Restored the post-reconnect autoboot step in the ROMMON boot flow.
- iosxe/cat9k/c9800
Organized C9800 clean stages under the C9800 abstraction.
Retained the AP association stage and removed the unused AP mode, RRM DCA channel, installation mode, AP transmit power, HA state, AP fabric, access tunnel, and wireless process stages. Equivalent reusable APIs are available from the C9800 SDK package.
- iosxe/cat9k/c9800/c9800_cl
Organized C9800-CL clean stages under the C9800-CL submodel abstraction.
Updated the self-signed certificate stage to prefer the Clean YAML password, fall back to the device certificate credential password, and skip when neither is configured.
genie.libs.conf
New
- nxos
- Added
isolateattribute support for service-acceleration conf model in NXOS.
genie.libs.filetransferutils
New
- iosxr
- Added automatic temporary transfer routing to FileUtils.
A temporary host route towards the file transfer endpoint is now installed for the duration of a copy and removed afterwards. This is the default behaviour on IOSXR and requires no opt-in flag.
The route is only installed when the transfer endpoint is a remote IP address, a management gateway is declared in the testbed, and the device does not already reach the endpoint via that gateway. A DNS hostname or a device local path (
disk0:,harddisk:…) never triggers a route.
Fix
- iosxe
- Modified
File transfers temporarily use the requested source interface and restore the original interface configuration afterward.
- filetransferutils
- Modified
HTTP filesize checks now include the HTTP status, reason, redirect URL, and relevant response headers in diagnostic errors while redacting URL credentials.
genie.libs.sdk
New
- iosxe
- Added configure_autoboot API
Sets the configuration register to 0x2102.
- Added device tracking API for IOSXE.
API to verify device tracking database: verify_device_tracking_database
Added unit test coverage for the new API.
Added certificate storage APIs for inventory, reference discovery, deletion, verification, and storage usage reporting.
Allowed extra time to inventory large certificate directories over slow console connections.
Made stack deletion idempotent when IOS XE synchronizes an active member’s certificate removal to its standby member.
Added stack and dual-RP implementations that operate through connected member subconnections and their local
nvram:storage.- Added VRF and global address-family route-replicate configure APIs.
API to configure_vrf_route_replicate_from_vrf.
API to unconfigure_vrf_route_replicate_from_vrf.
API to configure_global_route_replicate_from_vrf.
API to unconfigure_global_route_replicate_from_vrf.
Added unit test coverage for the new APIs.
- Added verify_ip_access_list
API to verify IP access list
- Added BGP VRF cleanup APIs.
API to unconfigure_bgp_address_advertisement.
API to unconfigure_bgp_advertise_l2vpn_evpn.
Added unit test coverage for the new APIs.
- Added iosxe dot1q tunnel configuration view API support
New API support for ‘configure_interface_switchport_dot1q_tunnel’ CLI command to configure dot1q tunnel on interface
- Added SDK API support for
configure_interface_spanning_tree_port_priority
configure_interface_spanning_tree_vlan_cost
unconfigure_interface_spanning_tree_vlan_cost
configure_spanning_tree_pathcost_method
Added unit test coverage for spanning-tree APIs.
- Added running-config verify APIs for IOSXE.
API to verify_show_running_config_section.
Added unit test coverage for the new API.
- iosxe/cat9k/c9800
Added
configure_wireless_managementAPI to configure the C9800 WMI uplink, Layer 3 interface, routes, wireless binding, and AP management credentials.Updated
configure_management_ipto allow callers to disable fallback to the generic device management VRF, keeping the WMI in the global VRF.Added unit coverage for WMI orchestration, input validation, same-VRF gateway conflict handling, and management VRF fallback behavior.
Corrected
configure_management_routesto render IPv6 entries withipv6 routecommands, including VRF routes.- Added APIs
configure_ap_tx_power
configure_rrm_dca_channel
verify_ap_fabric_summary
verify_ap_mode
verify_access_tunnel_summary
verify_ha_state
verify_installation_mode
verify_wireless_process
- iosxr
- Added configure_static_routing_route
API to configure a static route, taking
prefix,next_hop, an optionaladdress_family(ipv4/ipv6) and an optionalvrf. Returns the configuration that was applied and raisesSubCommandFailurewhen the device rejects it.
- Added unconfigure_static_routing_route
API to remove a static route, taking the same arguments as
configure_static_routing_routeso only the exact route that was configured is removed.
- Added get_routing_route_next_hop
API to look up the next hop details for a route, taking
route, an optionaladdress_family(derived fromroutewhen not given) and an optionalvrf.
Fix
- iosxe
- Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
test_api_unconfigure_mdns_gateway_globally
test_api_unconfigure_mdns_global_service_buffer
test_api_unconfigure_mdns_location_filter
test_api_unconfigure_mdns_remote_cache_enable
test_api_unconfigure_mdns_remote_cache_max_limit
test_api_unconfigure_mdns_remote_purge_timer
test_api_unconfigure_mdns_service_policy
test_api_unconfigure_mdns_service_policy_vlan
test_api_unconfigure_mdns_trust
test_api_unconfigure_service_type_mdns_service_definition
Removed mock_data.yaml files for the above tests as they are no longer needed
- Modified configure_interface_storm_control_level API
Updated the API to return the output of the configuration command instead of None.
Updated unit test in test_api_configure_interface_storm_control_level.py accordingly.
Improved cleanup performance by verifying free space with a bounded filesystem query after each deletion batch.
Protected running images and system, configuration, and NVRAM files.
Updated configure_autoboot to use execute_set_config_register so platform-specific boot behavior and HA connection handling are preserved for IOS XE devices.
Added C9800 and C9800-CL support for the full
config-register 0x2102command. Physical Catalyst 9000 platforms continue to use theirboot manualequivalent.- Modified configure_ikev2_profile_pre_share
modified configure_ikev2_profile_pre_share
Modified send_break_boot API to stop sending additional console break characters after detecting the ROMMON switch: prompt.
Modified configure_management_master_key to increase the master key configure timeout from 120s to 300s, fixing a ConfigureManagement clean stage timeout on some platforms (e.g. IE9xxx) when no master key is yet configured and key generation takes longer than the previous timeout. Also added defensive handling for the ‘New key:’ and ‘Confirm key:’ prompts in case a platform prompts interactively instead of accepting the key inline.
Improved IE3K and IE9K ROMMON recovery error reporting when the default ROMMON boot command fails and no golden image is available.
- Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
test_api_configure_ipv6_mld_snooping
test_api_configure_ipv6_mld_snooping_querier
test_api_configure_ipv6_mld_snooping_querier_version
test_api_configure_ipv6_mld_snooping_vlan_querier_version
test_api_unconfigure_ipv6_mld_snooping
test_api_unconfigure_ipv6_mld_snooping_querier
test_api_unconfigure_ipv6_mld_snooping_querier_version
test_api_unconfigure_ipv6_mld_snooping_vlan_querier_version
test_api_config_no_keepalive_intf
test_api_config_qinq_encapsulation_on_interface
Removed mock_data.yaml files for the above tests as they are no longer needed
Fixed IE3K ROMMON recovery when hostname learning is enabled and the configured hostname differs from the device hostname.
- Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
test_api_configure_interface_template_with_default_ipv6_nd_raguard_policy
test_api_configure_ipv6_dhcp_guard_on_interface
test_api_configure_ipv6_nd_raguard_on_interface
test_api_remove_device_tracking_policy
test_api_unconfigure_device_tracking_binding
test_api_unconfigure_device_tracking_on_interface
test_api_unconfigure_ipv6_dhcp_guard_on_interface
test_api_unconfigure_ipv6_nd_raguard_on_interface
test_api_configure_debug_snmp_packets
test_api_configure_logging_snmp_trap
Removed mock_data.yaml files for the above tests as they are no longer needed
- Modified configure_ospf_routing
api configure_ospf_routing now supports segment routing, fast-reroute, microloop, flex-algo, and bfd options
- Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
test_api_unconfigure_dynamic_path_in_tunnel
test_api_unconfigure_ip_rsvp_bandwidth
test_api_unconfigure_ldp_discovery_targeted_hello_accept
test_api_config_ip_multicast_routing_vrf_distributed
test_api_config_ip_pim
test_api_config_ip_pim_vrf
test_api_config_multicast_routing_mvpn_vrf
test_api_config_pim_acl
test_api_config_rp_address
test_api_config_standard_acl_for_ip_pim
Removed mock_data.yaml files for the above tests as they are no longer needed
- Modified send_break_boot
Fixed break-boot recovery after a refused console connection to use the actual detected device state and reliably reach ROMMON.
Preserved existing connected and multi-console behavior.
- Enhanced
configure_management_ntp Added support for configuring the NTP server in the management VRF.
- Enhanced
- Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
test_api_configure_switchport_port_security_maximum
test_api_configure_radius_server
test_api_configure_tacacs_server
test_api_unconfigure_radius_server
test_api_clear_device_tracking_counters
test_api_clear_device_tracking_database
test_api_clear_device_tracking_messages
test_api_configure_device_tracking_on_interface
configure_interface_template_with_default_device_tracking_policy
configure_interface_template_with_default_ipv6_dhcp_guard_policy
Removed mock_data.yaml files for the above tests as they are no longer needed
Fixed question-mark command cleanup to send Ctrl-A followed by Ctrl-K instead of Ctrl-C.
Added unit coverage to verify the control sequence used by
question_mark_retrieve.- Modified unconfigure_key_config_key_password_encrypt
Added backward-compatible password argument alongside old_key
no key config-key password-encrypt
Removed duplicate unconfigure_key_config_key_password_encrypt from platform
- Modified execute_set_config_register
Added the optional preserve_console_speed argument. At rommon, when explicitly enabled for ‘0x0’, writes each connection’s hex(current & 0x1820) so its console-speed bits survive.
Retained the Cat9K manual-boot behavior; Cat9K does not execute confreg when console-speed preservation is requested.
Added support for the argument to the C9800 override, which retains the IOS-XE config-register behavior.
- Modified password_recovery
Explicitly requests console-speed preservation when setting ‘0x0’.
- generic
Improved
free_up_disk_spacereliability and safety by batching deletions, reusing directory listings, and stopping when free space cannot be verified.
- apic
Restricted cleanup to valid regular files while preserving protected-file behavior.
- iosxr
Improved handling of regular files, directories, and symlinks during cleanup.
- nxos
Restored cleanup of file entries from
diroutput without permission metadata while excluding directory names ending in/.
- iosxe/cat9k/c9800
Organized C9800 API tests under the Cat9K C9800 hierarchy.
- iosxe/cat9k/c9800/c9800_cl
Moved the management-IP API that defaults to
no switchportunder the C9800-CL submodel hierarchy so physical C9800 devices use the generic IOS XE behavior.Moved GRUB-specific boot interruption defaults from physical C9800 to C9800-CL.
- iosxe/ir1k/ir1101
- Added a platform-specific configure_no_boot_manual override
Uses the existing configure_autoboot API to set the configuration register to 0x2102 instead of sending the unsupported no boot manual command.
Modified
- iosxe
- Enhanced “execute_monitor_capture_access_list”
Added optional parameters interface,direction,file_path
genie.libs.parser
New
- nxos
- Added ShowNxsecureStatus
show nxsecure status
- Modified ShowIpMrouteSummary
show ip mroute summary count
- Added ShowHardwareProfileForwardingMode
show hardware profile forwarding-mode
- Added ShowMvrInterface
show mvr interface
- Added ShowSystemRoutingMode
show system routing mode
- Added ShowProcessesMemoryShared
show processes memory shared
- Added ShowIpv6PimStatistics
show ipv6 pim statistics
- Added ShowDampeningInterface
show dampening interface
- Added ShowPolicyMapInterfaceControlPlane
show policy-map interface control-plane
Added schema and parser support for byte and packet transmitted and dropped counters.
Added regex handling for byte and packet counter units.
Added optional schema support for offered, conformed, violate, and violated rate sections.
Added golden fixtures for byte counter, packet-only, and empty output.
- Added ShowIcamScaleMulticastRouting
show icam scale multicast-routing
- Added ShowCandidateSummary
show candidate summary
show candidate summary committed
show candidate summary pending
- Added ShowIpPimVrfInternal
show ip pim vrf internal
Parsed RP change and PFM SD state as booleans
- Added ShowIpNatTimeout
show ip nat timeout
- Added ShowIpMrouteDetail
show ip mroute detail
Added schema and regex support for detailed multicast route counters, route client counts, data-created state, statistics, incoming interfaces, and outgoing interfaces.
- iosxe
- Modified ShowInventory revision 1
Added a member inventory view that preserves member-qualified chassis, supervisor, line-card, and descendant records without changing the existing main and slot trees.
- Added C9250 support for C9350-compatible parsers
show platform hardware fed qos scheduler sdk interface
show platform hardware fed qos queue stats interface
show platform hardware fed qos queue config interface
show platform hardware fed qos queue stats internal port_type punt queue
show platform software fed active acl info db detail
show platform software fed active punt asic cause brief
show platform software fed switch active matm macTable
show inventory
show switch stack-ports summary
- Added ShowDeviceTrackingAnchors
show device-tracking anchors
show device-tracking anchors vlan {vlan}
- Added ShowPlatformSoftwareFedSwitchActivePbrUsageRouteMap
Added parser for ‘show platform software fed switch {switch_var} pbr usage route-map {route_map}’ command.
- Added ShowPlatformSoftwareFedSwitchActivePbrInfoRouteMap
Added parser for ‘show platform software fed switch {switch_var} pbr info route-map {route_map}’ command.
- Added C9250 support to ShowPlatformTcamUtilization
show platform hardware fed {switch} {mode} fwd-asic resource tcam utilization
show platform hardware fed active fwd-asic resource tcam utilization
show platform hardware fed switch {mode} fwd-asic resource tcam utilization
show platform hardware fed {switch} {mode} fwd-asic resource tcam utilization {asic}
show platform hardware fed active fwd-asic resource tcam utilization {asic}
show platform hardware fed switch {mode} fwd-asic resource tcam utilization {asic}
- Added ShowIpPortsAll
show ip ports all
- Added ShowPlatformHardwareFedSwitchQosQueueStatsInterface
Added schema and parser for ‘show platform hardware fed switch {switch_num} qos queue stats interface {interface}’
Added schema and parser for ‘show platform hardware fed active qos queue stats interface {interface}’
- Added ShowEnvironmentAll
show environment all
- Added ShowPlatformHardwareVoltageMarginRpActive
show platform hardware voltage margin rp active
- Added ShowDhcpServerTrackingDatabase
show dhcp-server-tracking database
show dhcp-server-tracking database vlan {vlan_id}
- Added ShowDhcpServerTrackingDatabaseDetail
show dhcp-server-tracking database detail
show dhcp-server-tracking database vlan {vlan_id} detail
Fix
- ios
- Modified ShowInventory
Accept inventory records whose NAME field is empty.
Initialize record context so a malformed orphan PID line is ignored instead of raising an unbound-local exception.
- iosxe
- Modified ShowPlatformHardwareFedSwitchForwardLastSummary parser
Updated fields Optional.
- Modified ShowMonitorCaptureBufferDetailed
Added support for parsing “request_frame” and “response_time”
- Modified ShowIpInterface
Added support for parsing the optional
(host-routing)suffix on the Local Proxy ARP status line.Added the optional
local_proxy_arp_host_routingfield.
- Added ShowPlatformHardwareFedSwitchQosQueueStatsInterface to C9400
Reused the C9610 VOQ/ASIC queue statistics parser for c9400 devices.
- Modified ShowIpRouteSchema schema
Added optional vrf under next_hop.outgoing_interface.<interface>.
- Modified ShowIpRoute parser
Updated parsing logic in the shared route parser: %vrf suffixes are now split from outgoing interface names and stored as vrf.
- Modified ShowEnvironmentAll
Added support for C9400 output with optional power-supply summaries and table-based fantray states.
- Added ShowPlatformSoftwareFedSwitchActiveAclInfoSdkDetail
Fix the regex to capture the asic number in the output of ‘show platform software fed switch {switch_num} acl info sdk detail’
- Fix ShowPlatformSoftwareFedQosInterfaceIngressNpd
Fix the regex to capture the port_oid and system_port_oid
- ShowPlatformSoftwareFedQosInterfaceIngressSdkDetailed
Fix regex p7 to use (Asic|ASIC) to capture the asic number in the output of ‘show platform software fed switch {switch_num} qos interface ingress sdk detailed’
- ShowFlowMonitorCache
Added timeout optional variable with default value of 300 seconds
- Modified ShowSdmPrefer
Updated the L3 Multicast entries regex to support the optional
(Stats)label and numeric statistics annotation.
- Modified ShowRouteMapAllSchema schema
Added support for ip tos and ipv6 precedence set clauses
- Modified ShowRouteMapAll parser
REGEX logic update to match ip tos <value> and ipv6 precedence <value>
- Modified ShowPlatformSoftwareFedQosInterfaceIngressNpdDetailed
Added support for ACL ACE details that begin with
Class idwhen theIPV4/IPv6 ACE Key/Maskmarker is absent.Prevented an
UnboundLocalErrorwhile parsing this output format.Added corresponding golden parser coverage.
- iosxr
- Modified ShowVrfAllDetail
- Modified regex <p4_1> to capture all interface names
Replaced the previous regex that relied on specific interface prefixes (e.g., Gi, Bun, Ten, etc.) with a more general pattern.
Introduced
in_interfaces_sectionflag for accurate section tracking
- Modified ShowControllersOpticsAppselAdvertised
Updated parser to revise the pattern to accept any non-pipe content in each table cell. This basically means to allow letters, digits, whitespace, parentheses, dots, hyphens, ‘/’, comma etc
- nxos
- Modified ShowNveInterfaceDetail
Added fabric_convergence_time, fabric_convergence_time_left, and multisite_fabric_advertise_pip_l3 keys to the schema.
Added regex patterns p27, p28, and p29 to parse Fabric convergence time, Fabric convergence time left, and Multisite fabric-advertise-pip l3 configured output.