March 2026

March 31 - Genie v26.3

New Module Versions

Modules

Version

genie

v26.3

genie.lamp

v26.3

genie.libs.health

v26.3

genie.libs.clean

v26.3

genie.libs.conf

v26.3

genie.libs.filetransferutils

v26.3

genie.libs.ops

v26.3

genie.libs.parser

v26.3

genie.libs.robot

v26.3

genie.libs.sdk

v26.3

genie.telemetry

v26.3

genie.trafficgen

v26.3

Changelogs

genie

Fix
  • genie.harness.loader
    • Modified CommonLoader
      • Added logging to debug content after markup processing.

      • Update alias logic to skip segments in topology.

genie.lamp

New
  • device
    • Add ncs5500 and xrv9k platform support to DevicePlatformType enum with IOSXR os_type mapping

  • test setup
    • Modified IOL device startup scripts to support IOL_IMAGE environment variable for specifying custom local IOL images

Fix
  • shell
    • Disable ‘logctl’ command after its registration.

  • ui
    • Loop parsing on ${} over $() or $[]

  • src
    • Fixed error handling

    • Fixed name validation for ‘testbed add’ command to allow hyphens.

    • Fixed autocompletion descriptions after changes to cmd2 library in 3.0.

  • tests
    • Updated tests to reflect changes in error handling

    • Added new tests for improved error handling scenarios

    • Rename tests directory to keep failing tests out of the way.

    • Remove IOL Intellectual property files and reference it from /auto/pyats/lamp_iol.

  • pyproject
    • Pin pydantic>=2.0 in dependencies to prevent pip from installing pydantic v1

genie.libs.clean

New
  • iosxe/cat9k
    • Added new stage to support StackWise Virtual unconfiguration

    • Modified verify_stack_wise_virtual_config step to verify StackWise Virtual configuration on all device members

  • clean-pkg
    • skip the SVL interfaces in configure_interface stage as they are not supported in SVL.

Fix
  • stages
    • Update Connect stage to use parameters.internal for correct result_rollup handling

  • stages/iosxe
    • Update Connect stage to use parameters.internal for correct result_rollup handling

genie.libs.conf

Fix
  • iosxe
    • Added
      • breakout support for ethernet interfaces

genie.libs.filetransferutils

New
  • filetransferutils
    • Added entry point to load internal filetransferutils and updated the plugin discovery mechanism.

  • fileserver/protocols/scp
    • Added RSA host key generation alongside Ed25519.

Fix
  • protocols/http
    • Updated stat() to follow redirects and, when HEAD reports Content-Length 0, fall back to a ranged GET to derive total size from Content-Range.

  • bases/fileutils
    • Fix _resolve_fileutils_class to validate protocol and prevent wrapper class resolution

genie.libs.health

genie.libs.ops

Fix
  • iosxr
    • Modified Platform
      • Added serial number and PID population from show inventory to slot entries during platform learn

      • Handles naming differences between show inventory module names and show platform slot names

genie.libs.robot

genie.libs.sdk

Fix
  • iosxe
    • Added Api for get show output begin

    • Fixed api configure_trustpool_import_terminal
      • Fixed an issue that was causing failure in passing certificates to the configure_trustpool_import_terminal API

    • Modified API get_config_register
      • Added support for getting config register value in ROMMON state

    • Modified API configure_ignore_startup_config
      • Updated the logic to determine the new config register value based on the current value

    • Modified API unconfigure_ignore_startup_config
      • Updated the logic to determine the new config register value based on the current value

    • Modified API verify_ignore_startup_config
      • Updated the logic to only check the startup config bit in config register

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_api_unconfigure_source_template

      • test_api_unconfigure_crypto_key

      • test_api_configure_eigrp_named_networks

      • test_api_configure_eigrp_named_networks_with_af_interface

      • test_api_configure_eigrp_networks

      • test_api_configure_eigrp_networks_redistribute_ospf

      • test_api_configure_eigrp_passive_interface

      • test_api_configure_eigrp_passive_interface_v6

      • test_api_configure_eigrp_redistribute_bgp

      • test_api_configure_eigrp_redistributed_connected

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_api_configure_eigrp_router_configs

      • test_api_configure_interface_eigrp_v6

      • test_api_configure_vrf_ipv6_eigrp_named_networks

      • test_api_enable_ipv6_eigrp_router

      • test_api_shutdown_ipv6_eigrp_instance

      • test_api_unconfigure_eigrp_named_router

      • test_api_unconfigure_eigrp_passive_interface

      • test_api_unconfigure_eigrp_passive_interface_v6

      • test_api_unconfigure_eigrp_router

      • test_api_unconfigure_eigrp_router_configs

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_api_unconfigure_interface_eigrp_v6

      • test_api_unconfigure_ipv6_eigrp_router

      • test_api_unshutdown_ipv6_eigrp_instance

      • test_api_change_nve_source_interface

      • test_api_clear_bgp_l2vpn_evpn

      • test_api_configure_evpn_default_gateway_advertise_global

      • test_api_configure_evpn_ethernet_segment

      • test_api_configure_evpn_evi_replication_type

      • test_api_configure_evpn_instance

      • test_api_configure_evpn_instance_encapsulation_type

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_api_configure_evpn_instance_evi

      • test_api_configure_evpn_l2_instance_bd_association

      • test_api_configure_evpn_l2_instance_vlan_association

      • test_api_configure_evpn_l2_profile_bd_association

      • test_api_configure_evpn_l3_instance_bd_association

      • test_api_configure_evpn_l3_instance_vlan_association

      • test_api_configure_evpn_profile

      • test_api_configure_evpn_replication_type

      • test_api_configure_interface_evpn_ethernet_segment

      • test_api_configure_l2vpn_evpn

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_api_unconfigure_evpn_default_gateway_advertise_global

      • test_api_unconfigure_evpn_evi_replication_type

      • test_api_unconfigure_evpn_instance

      • test_api_unconfigure_evpn_instance_encapsulation_type

      • test_api_unconfigure_evpn_instance_evi

      • test_api_unconfigure_evpn_l2_instance_bd_association

      • test_api_unconfigure_evpn_l2_instance_vlan_association

      • test_api_unconfigure_evpn_l2_profile_bd_association

      • test_api_unconfigure_evpn_l3_instance_vlan_association

      • test_api_unconfigure_evpn_profile

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_api_configure_l2vpn_evpn_advertise_sync

      • test_api_configure_l2vpn_evpn_flooding_suppression

      • test_api_configure_l2vpn_evpn_router_id

      • test_api_configure_nve_interface

      • test_api_configure_nve_interface_group_based_policy

      • test_api_configure_pvlan_loadbalancing_ethernetsegment_l2vpn_evpn

      • test_api_configure_replication_type_on_evi

      • test_api_configure_vfi_context_evpn

      • test_api_configure_vlan_service_instance_bd_association

      • test_api_enable_multicast_advertise_on_evi

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_api_unconfigure_evpn_replication_type

      • test_api_unconfigure_interface_evpn_ethernet_segment

      • test_api_unconfigure_l2vpn_evpn

      • test_api_unconfigure_l2vpn_evpn_flooding_suppression

      • test_api_unconfigure_l2vpn_evpn_router_id

      • test_api_unconfigure_mdt_config_on_vrf

      • test_api_unconfigure_nve_interface

      • test_api_unconfigure_nve_interface_group_based_policy

      • test_api_unconfigure_vfi_context_evpn

      • test_api_unconfigure_vlan_service_instance_bd_association

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_api_clear_monitor_capture

      • test_api_configure_active_timer_under_et_analytics

      • test_api_configure_datalink_flow_monitor

      • test_api_configure_et_analytics

      • test_api_configure_flow_exporter

      • test_api_configure_flow_monitor

      • test_api_configure_flow_monitor_cache_entry

      • test_api_configure_flow_monitor_on_vlan_configuration

      • test_api_configure_flow_record_collect_counter

      • test_api_configure_flow_record_collect_timestamp

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_configure_flow_record_match_collect_interface

      • test_configure_flow_record_match_datalink

      • test_configure_flow_record_match_ip

      • test_configure_fnf_exporter

      • test_configure_fnf_flow_record

      • test_configure_fnf_flow_record_match_flow

      • test_configure_fnf_monitor_datalink_interface

      • test_configure_fnf_monitor_sampler_interface

      • test_configure_fnf_record

      • test_configure_ipv6_flow_monitor

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_api_configure_monitor_capture_buffer_size

      • test_api_configure_monitor_capture_export_location

      • test_api_configure_monitor_capture_export_status

      • test_api_configure_monitor_capture_limit_packet_len

      • test_api_configure_monitor_capture_match

      • test_api_configure_monitor_capture_without_match

      • test_api_configure_sampler

      • test_api_delete_monitor_capture

      • test_api_disable_et_analytics

      • test_api_enable_et_analytics

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • Modified the following unit tests to use unittest.mock.Mock instead of mock_device_cli
      • test_start_monitor_capture

      • test_stop_monitor_capture

      • test_unconfigure_active_timer_under_et_analytics

      • test_unconfigure_flow_exporter

      • test_unconfigure_flow_monitor

      • test_unconfigure_flow_monitor_on_vlan_configuration

      • test_unconfigure_flow_record

      • test_unconfigure_fnf_monitor_datalink_interface

      • test_unconfigure_fnf_monitor_on_interface

      • test_unconfigure_interface_datalink_flow_monitor

    • Removed mock_data.yaml files for the above tests as they are no longer needed

    • IE3K
      • Fixed the issue where factory reset API was not resetting the configuration when the ‘config’ parameter was set to True.

    • Modified API configure_management_ssh default timeout from 120 to 240 seconds.

    • Modified API copy_to_device to display more information in logs on error scenario.

    • Fix get_rp_status_info to handle cases where the output may not contain all expected fields, preventing potential exceptions and ensuring more robust parsing of RP status information.

  • updated api unit tests
    • IOSXE
      • Updated unittests to new testing method
        • configure_nat64_prefix_stateful

        • configure_nat64_translation_timeout

        • configure_nat64_v4_list_pool

        • configure_nat64_v4_list_pool_overload

        • configure_nat64_v4_pool

        • configure_nat64_v6v4_static

        • configure_nat64_v6v4_static_protocol_port

        • configure_nat_extended_acl

        • configure_nat_ipv6_acl

        • configure_nat_overload_rule

    • IOSXE
      • Updated unittests to new testing method
        • configure_static_nat_rule

        • configure_static_nat_source_list_rule

        • force_unconfigure_static_nat_route_map_rule

        • unconfigure_crypto_ikev2_NAT_keepalive

        • unconfigure_dynamic_nat_interface_overload_route_map_rule

        • unconfigure_dynamic_nat_outside_rule

        • unconfigure_dynamic_nat_pool_overload_route_map_rule

        • unconfigure_dynamic_nat_route_map_rule

        • unconfigure_dynamic_nat_rule

        • unconfigure_ip_access_group_in_out

    • IOSXE
      • Updated unittests to new testing method
        • unconfigure_nat64_interface

        • unconfigure_nat64_nd_ra_prefix

        • unconfigure_nat64_prefix_stateful

        • unconfigure_nat64_translation_timeout

        • unconfigure_nat64_v4_list_pool

        • unconfigure_nat64_v4_list_pool_overload

        • unconfigure_nat64_v4_pool

        • unconfigure_nat64_v6v4_static

        • unconfigure_nat64_v6v4_static_protocol_port

        • unconfigure_nat_pool

    • IOSXE
      • Updated unittests to new testing method
        • unconfigure_nat_pool_address

        • unconfigure_nat_pool_overload_rule

        • unconfigure_nat_port_route_map_rule

        • unconfigure_nat_route_map

        • unconfigure_nat_translation_max_entries

        • unconfigure_nat_translation_timeout

        • unconfigure_outside_static_nat_rule

        • unconfigure_standard_access_list

        • unconfigure_static_nat_network_rule

        • unconfigure_static_nat_outside_rule

    • IOSXE
      • Updated unittests to new testing method
        • unconfigure_static_nat_route_map_no_alias_rule

        • unconfigure_static_nat_route_map_rule

        • unconfigure_static_nat_rule

        • unconfigure_static_nat_source_list_rule

        • configure_interface_network_policy

        • configure_network_policy_profile_voice_vlan

        • unconfigure_global_network_policy

        • unconfigure_interface_network_policy

        • unconfigure_network_policy_profile_number

        • unconfigure_network_policy_profile_voice_vlan

    • IOSXE
      • Updated unittests to new testing method
        • remove_ntp_master

        • unconfigure_ntp_server

        • unconfig_nve_src_intf

        • unconfig_nve_vni_members

        • configure_switch_provision

        • unconfigure_switch_provision

        • configure_ipv4_object_group_network

        • configure_ipv4_object_group_service

        • configure_ipv4_ogacl_ip

        • configure_ipv4_ogacl_on_interface

    • IOSXE
      • Updated unittests to new testing method
        • configure_ipv4_ogacl_service

        • configure_ipv4_ogacl_src_dst_nw

        • configure_ipv6_acl_on_interface

        • configure_ipv6_object_group_network

        • configure_ipv6_object_group_service

        • configure_ipv6_ogacl

        • configure_object_group

        • unconfigure_ipv4_object_group

        • unconfigure_ipv4_object_group_service

        • unconfigure_ipv4_ogacl

    • IOSXE
      • Updated unittests to new testing method
        • unconfigure_ipv4_ogacl_on_interface

        • unconfigure_ipv6_acl

        • unconfigure_ipv6_acl_on_interface

        • unconfigure_ipv6_object_group_network

        • unconfigure_ipv6_object_group_network_entry

        • unconfigure_ipv6_object_group_service

        • unconfigure_ipv6_object_group_service_entry

        • unconfigure_ipv6_ogacl_ace

        • clear_ospfv3_process_all

        • configure_distribute_prefix_list_under_ospf

    • IOSXE
      • Updated unittests to new testing method
        • configure_distribute_prefix_list_under_ospf

        • configure_interface_ospfv3_ipsec_ah

        • configure_interface_ospfv3_ipsec_esp

        • configure_ip_ospf_mtu_ignore

        • configure_ip_prefix_list

        • configure_ipv6_ospf_mtu_ignore

        • configure_ipv6_ospf_router_id

        • configure_ipv6_ospf_routing_on_interface

        • configure_maximum_path_under_ospf

        • configure_neighbor_under_ospf

    • IOSXE
      • Updated unittests to new testing method
        • configure_ospf_area_type

        • configure_ospf_max_lsa_limit

        • configure_ospf_network_broadcast

        • configure_ospf_network_non_broadcast

        • configure_ospf_networks

        • configure_ospf_nsf_ietf

        • configure_ospf_priority

        • configure_ospf_redistributed_eigrp_metric

        • configure_ospf_redistributed_static

        • configure_ospf_routing

    • IOSXE
      • Updated unittests to new testing method
        • configure_ospfv3

        • configure_ospfv3_address_family

        • configure_ospfv3_interface

        • configure_ospfv3_ipsec_ah

        • configure_ospfv3_ipsec_esp

        • configure_ospfv3_max_lsa_limit

        • configure_ospfv3_network_point

        • configure_ospfv3_network_type

        • configure_ospfv3_on_interface

        • configure_ospfv3_redistributed_connected

    • IOSXE
      • Updated unittests to new testing method
        • configure_ospf_vrf_lite

        • configure_route_map

        • configure_router_ospf_redistribute_internal_external

        • configure_snmp_if_index_on_ospfv3_process_id

        • redistribute_bgp_metric_route_map_under_ospf

        • redistribute_bgp_on_ospfv3

        • redistribute_eigrp_under_ospf

        • redistribute_route_metric_vrf_green

        • unconfigure_distribute_prefix_list_under_ospf

        • unconfigure_interface_ospfv3_ipsec_ah

  • utils
    • Fixed API get_file_size_from_server
      • Allow for proxy filesize retrieval via socat relay

  • api/utils
    • copy_to_device
      • Fix copy_to_device to use filetransfer utils including pre and post config settings

    • copy_from_device
      • Fix copy_from_device to use filetransfer utils including pre and post config settings

  • iosxe/ie3k
    • Modified API execute_set_config_register
      • Added support for setting config register value

    • Modified API configure_ignore_startup_config
      • Updated the logic to determine the new config register value based on the current value

    • Modified API unconfigure_ignore_startup_config
      • Updated the logic to determine the new config register value based on the current value

    • Modified API verify_ignore_startup_config
      • Updated the logic to only check the startup config bit in config register

  • triggers/blitz/rpc_reply
    • Added fallback regex in add_key_nodes() to handle unquoted key values when RE_FIND_QUOTED_VALUE does not match.

  • iosxe/cat9k/c9200/rommon
    • Fixed get_recovery_details KeyError when drec0 is empty by adding SchemaEmptyParserError handling and tftp_boot fallback support

  • iosxe/rommon
    • Modified device_rommon_boot _rommon_switch_boot handler to to avoid infinite ROMMON boot attempts

  • iosxe/ir1k/ir1100
    • Moved API’s for model ir1100 & to ir1101

  • generic
    • Modified get_interface_from_yaml to support segments

New
  • iosxe
    • Added clear_bgp_ipv6_neighbor_soft

    • Added clear_ip_ssh_pubkey_server
      • API to clear ip ssh pubkey server configuration

    • Added configure_bgp_ipv6_neighbor_list

    • Added configure_bgp_confederation_identifier

    • Added configure_bgp_confederation_peers

    • Added configure_flow_record_parameters
      • API to configure flow record parameters

    • Added configure_bgp_route_reflector_client_address_family
      • API to configure BGP route reflector client address family

    • Added configure_interface_hsr_ring
      • API to configure interface hsr ring

    • Added unconfigure_interface_hsr_ring
      • API to unconfigure interface hsr ring

    • API to configure ip dns view group under interface
      • genie.libs.sdk.apis.iosxe.dns.configure.configure_interface_ip_dns_view_group

      • genie.libs.sdk.apis.iosxe.dns.configure.unconfigure_interface_ip_dns_view_group

    • Added new API configure_license_boot_mode_universal to convert mode to universal licensing (OS-Advantage, OS-essentials)
      • config command| license boot mode universal

    • Added new API unconfigure_license_boot_mode_universal to convert mode back to legacy (network-adv, network-essentials)
      • unconfig command|no license boot mode universal

    • Added configure_rep_no_neighbour

    • Added new API for ie9k platform to get boot variables.

  • iosxe/ie3k
    • Added API get_config_register
      • Added support for getting config register value

  • powercycler
    • Added EnlogicSnmpPDU and EnlogicSnmpv3PDU powercycler classes

genie.libs.parser

New
  • iosxe
    • Added ShowPlatformSoftwareAdjFpActive
      • Added parser for ‘show platform software adj fp active’

    • Added ShowPlatformHardwareQfpActiveDatapathInfrastructureSwPkt
      • show platform hardware qfp active datapath infrastructure sw-pktmem

    • Added ShowPlatformSoftwareFedSwitchActiveSgaclBdMapping
      • Added schema and parser for ‘show platform hardware fed {switch_type} sgacl bd-mapping {vlan}’ command.

    • Added ShowInterfacesTunnelCountersProtocolStatus
      • Added schema and parser for ‘show interfaces {tunnel} counters protocol status’

    • Added ShowIpDhcpSipSessionDetail
      • Added schema and parser for ‘show ip dhcp sip session detail’

    • Added ShowIpv6InterfaceBrief
      • Added schema and parser for ‘show ipv6 interface brief’

    • Added ShowIpv6MrouteVrfVrfSummary
      • Added schema and parser for ‘show ipv6 mroute vrf {vrf} summary’

    • Added ShowPlatformHardwareQfpActiveFeatureNat64DatapathStatistics
      • Added schema and parser for ‘show platform hardware qfp active feature nat64 datapath statistics’

    • Added ShowPlatformHardwareSubslotModuleDeviceDebugMacfltShowRange and ShowStandbyCapability
      • Added schema and parser for ‘show platform hardware subslot {subslot} module device “debug macflt show_range {start_index} {end_index}”’

      • Added schema and parser for ‘show standby capability’

    • Added ShowPolicyMapInterface
      • Added schema and parser for ‘show policy-map interface’

    • Added ShowPolicyMapTypeAccessControlAccessControl
      • Added schema and parser for ‘show policy-map type access-control {access-control}’

    • Added ShowPolicyMapTypeAccessControlInterfaceInterfaceInput
      • Added schema and parser for ‘show policy-map type access-control interface {interface} input’

    • Added ShowPolicyMapTypeAccessControlInterfaceInterfaceOutput
      • Added schema and parser for ‘show policy-map type access-control interface {interface} output’

    • Added show interface {interface} platform
      • Parse “show interface {interface} platform”

    • Added parser for ‘show facility-alarm relay major’ command.

    • Added ShowPlatformHardwareQfpActiveInterfaceAllStatisticsDropSummarySubinterfaceClear
      • ‘show platform hardware qfp active interface all statistics drop_summary subinterface clear_drop’

    • Added ShowXconnectInterface

    • ‘show xconnect interface Gig0/0/7’

    • Added ShowInterfacesMacAccounting
      • Added schema and parser for ‘show interfaces {interface} mac-accounting’

      • Added schema and parser for ‘show interfaces mac-accounting’

Fix
  • iosxe
    • Modified ShowRunInterface
      • Updated schema and parser of show running interface for datalink and ipv6 flow

    • Added fix for ShowRunInterface parser.
      • Added this fix to support multiple all_entries.

    • Modified ShowVlanMapping parser
      • Updated p3 regex pattren to also support vlan ranges

    • Modified ShowPlatformSoftwareFedMatm parser
      • Updated p regex pattern to support keys with spaces in them.

    • Modified ShowMonitorCaptureBuffer parser
      • Modified regex patterns to match the new output format for the command ‘show monitor capture buffer’ on IOS-XE devices.

    • Modified ShowPlatformSoftwareFedActiveMatmMacTableVlanMacDetail parser
      • Added regex pattern to match output

    • IE3K
      • ShowHardwareLed
        • Fix show hardware led parser for IE9K platform.

    • Modified ShowRunInterface
      • Added schema and parser to support parsing of ip address dhcp client-id <client_id>

    • Modified ShowIpv6RouteDistributor
      • Updated p6 regex pattern to match via 100.0.0.2, NVI0

    • Modified ShowAppHostingDetailAppid
      • ‘show app-hosting detail appid {appid}’

    • Modified ShowIox
      • ‘show iox’

    • Modified ShowPlatformHardwareQfpActiveFeatureIpsecSa3 parser
      • Fixed CLI command to support dynamic SA handle

      • Updated cli_command to ‘show platform hardware qfp active feature ipsec sa {sa_id}’

    • Modified ShowPlatformHardwareQfpActiveFeatureIpsecSa parser
      • Renamed schema class to ShowPlatformHardwareQfpActiveFeatureIpsecSaSchema

      • Made ‘mtu’ and ‘mtu_adj’ optional in schema

      • Updated regex to support ‘mtu’ and ‘mtu_adj’ output format

    • Modified ShowMplsL2TransportDetail parser
      • Parser enable multiple parsing without reporting errors.

  • iosxr
    • Modified ShowRedundancy
      • Changed time_since_last_reload from schema to Optional.

      • Updated regex pattern p6 to handle missing time since last reload duration when reload timestamp is in the future.

genie.telemetry