[INFO] Found progress file. Resuming from: test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_aggregation.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_aggregation_summary_only.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_as_route_filtering.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_authentication.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_confederation.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_local_as.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_local_preference_attribute.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_multi_path.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_neighbor.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_network.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_next_hop_attribute.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_peer_group.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_private_as.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_redistribute.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_route_reflector.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_timer.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp/scenario_bgp_weight_attribute.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp_policy/scenario_bgp_policy_as_path_attribute.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp_policy/scenario_bgp_policy_community_attribute.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp_policy/scenario_bgp_policy_distribute_list_in.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp_policy/scenario_bgp_policy_distribute_list_out.yaml
[INFO] Skipping already-completed scenario: test_sonic/bgp_policy/scenario_bgp_policy_local_preference_attribute.yaml
===========================================================================
Starting Scenario: test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml.
===========================================================================
Extracting test device list. . .
R/S Devices: R-1,R-2,R-3,R-4
H/TG Devices: None
Running test command. . . (attempt 1/2)
./run_tests.sh -n etri-sonic-all -d R-1,R-2,R-3,R-4 -c test_sonic/test_sonic.py -f vtestbed.yaml -i ../ansible/vsonic_vtb -P test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
=== Running tests in groups ===
Running: python3 -m pytest test_sonic/test_sonic.py --inventory ../ansible/vsonic_vtb --host-pattern R-1,R-2,R-3,R-4 --testbed etri-sonic-all --testbed_file vtestbed.yaml --log-cli-level info --log-file-level debug --scenario-filename test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml --showlocals --assert plain --show-capture no -rav --ignore=ptftests --ignore=acstests --ignore=saitests --ignore=scripts --ignore=k8s --ignore=sai_qualify --junit-xml=logs/tr.xml --log-file=logs/test.log
ERROR:pytest_ansible.units:No galaxy.yml file found, plugin not activated
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.4.0, pluggy-1.5.0 -- /usr/bin/python3
cachedir: .pytest_cache
metadata: {'Python': '3.8.10', 'Platform': 'Linux-6.8.0-107-generic-x86_64-with-glibc2.29', 'Packages': {'pytest': '7.4.0', 'pluggy': '1.5.0'}, 'Plugins': {'html': '4.1.1', 'ansible': '4.0.0', 'repeat': '0.9.3', 'stress': '1.0.1', 'forked': '1.6.0', 'xdist': '1.28.0', 'allure-pytest': '2.8.22', 'metadata': '3.1.1'}}
ansible: 2.13.13
rootdir: /data/NetAutoTestFW/tests
configfile: pytest.ini
plugins: html-4.1.1, ansible-4.0.0, repeat-0.9.3, stress-1.0.1, forked-1.6.0, xdist-1.28.0, allure-pytest-2.8.22, metadata-3.1.1
collecting ... DEBUG:tests.common.plugins.conditional_mark:Trying to load test mark conditions files: ['common/plugins/conditional_mark/tests_mark_conditions_skip_traffic_test.yaml', 'common/plugins/conditional_mark/tests_mark_conditions.yaml', 'common/plugins/conditional_mark/tests_mark_conditions_acl.yaml', 'common/plugins/conditional_mark/tests_mark_conditions_drop_packets.yaml', 'common/plugins/conditional_mark/tests_mark_conditions_platform_tests.yaml']
DEBUG:tests.common.plugins.conditional_mark:Loaded test mark conditions file: common/plugins/conditional_mark/tests_mark_conditions_skip_traffic_test.yaml
DEBUG:tests.common.plugins.conditional_mark:Loaded test mark conditions file: common/plugins/conditional_mark/tests_mark_conditions.yaml
DEBUG:tests.common.plugins.conditional_mark:Loaded test mark conditions file: common/plugins/conditional_mark/tests_mark_conditions_acl.yaml
DEBUG:tests.common.plugins.conditional_mark:Loaded test mark conditions file: common/plugins/conditional_mark/tests_mark_conditions_drop_packets.yaml
DEBUG:tests.common.plugins.conditional_mark:Loaded test mark conditions file: common/plugins/conditional_mark/tests_mark_conditions_platform_tests.yaml
----------------------------- live log collection ------------------------------
23:03:32 __init__.load_dut_basic_facts L0143 INFO | Getting dut basic facts
INFO:tests.common.plugins.conditional_mark:Getting dut basic facts
/usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
DEBUG:tests.common.plugins.conditional_mark:raw dut basic facts:
R-1 | SUCCESS => {"ansible_facts": {"dut_basic_facts": {"asic_subtype": "vs","asic_type": "vs","branch": "etri-202505","build_date": "Wed Sep 9 05:16:43 UTC 2026","build_number": 27,"build_version": "etri-202505.27-8610ff460","built_by": "jenkins@w2sh","commit_id": "8610ff460","debian_version": "12.15","feature_status": {"bgp": "enabled","database": "always_enabled","dhcp_relay": "disabled","eventd": "enabled","gbsyncd": "enabled","gnmi": "enabled","lldp": "enabled","macsec": "disabled","mgmt-framework": "enabled","mux": "always_disabled","nat": "disabled","pmon": "enabled","radv": "enabled","sflow": "disabled","snmp": "enabled","swss": "enabled","syncd": "enabled","teamd": "enabled","telemetry": "enabled"},"hwsku": "Etri-SONiC","is_multi_asic": false,"is_supervisor": false,"kernel_version": "6.1.0","libswsscommon": "1.0.0","num_asic": 1,"platform": "x86_64-kvm_x86_64-r0","release": "202505","secure_boot_image": "no","sonic_os_version": 12,"sonic_utilities": 1.2}},"changed": false}
23:03:33 __init__.load_minigraph_facts L0231 INFO | Getting minigraph basic facts
INFO:tests.common.plugins.conditional_mark:Getting minigraph basic facts
/usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
ERROR:tests.common.plugins.conditional_mark:Failed to load minigraph basic facts, exception: CalledProcessError(2, ['ansible', '-m', 'minigraph_facts', '-i', '../ansible/vsonic_vtb', 'R-1', '-a', 'host=R-1'])
23:03:34 __init__.load_minigraph_facts L0245 ERROR | Failed to load minigraph basic facts, exception: CalledProcessError(2, ['ansible', '-m', 'minigraph_facts', '-i', '../ansible/vsonic_vtb', 'R-1', '-a', 'host=R-1'])
INFO:tests.common.plugins.conditional_mark:Getting config basic facts
23:03:34 __init__.load_config_facts L0263 INFO | Getting config basic facts
/usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
DEBUG:tests.common.plugins.conditional_mark:raw config basic facts:
R-1 | SUCCESS => {
"ansible_facts": {
"DEVICE_METADATA": {
"localhost": {
"deployment_id": "1",
"hostname": "R-1",
"hwsku": "Etri-SONiC",
"mac": "22:f1:58:ae:a6:55",
"platform": "x86_64-kvm_x86_64-r0",
"type": "LeafRouter"
}
},
"MGMT_INTERFACE": {
"eth0": {
"10.250.0.51/24": {
"gwaddr": "10.250.0.1"
}
}
},
"MGMT_PORT": {
"eth0": {
"admin_status": "up",
"alias": "eth0"
}
},
"PORT": {
"Ethernet0": {
"admin_status": "up",
"alias": "fortyGigE0/0",
"index": "0",
"lanes": "25,26,27,28",
"speed": "40000"
},
"Ethernet100": {
"admin_status": "up",
"alias": "fortyGigE0/100",
"index": "25",
"lanes": "121,122,123,124",
"speed": "40000"
},
"Ethernet104": {
"admin_status": "up",
"alias": "fortyGigE0/104",
"index": "26",
"lanes": "81,82,83,84",
"speed": "40000"
},
"Ethernet108": {
"admin_status": "up",
"alias": "fortyGigE0/108",
"index": "27",
"lanes": "85,86,87,88",
"speed": "40000"
},
"Ethernet112": {
"admin_status": "up",
"alias": "fortyGigE0/112",
"index": "28",
"lanes": "93,94,95,96",
"speed": "40000"
},
"Ethernet116": {
"admin_status": "up",
"alias": "fortyGigE0/116",
"index": "29",
"lanes": "89,90,91,92",
"speed": "40000"
},
"Ethernet12": {
"admin_status": "up",
"alias": "fortyGigE0/12",
"index": "3",
"lanes": "37,38,39,40",
"speed": "40000"
},
"Ethernet120": {
"admin_status": "up",
"alias": "fortyGigE0/120",
"index": "30",
"lanes": "101,102,103,104",
"speed": "40000"
},
"Ethernet124": {
"admin_status": "up",
"alias": "fortyGigE0/124",
"index": "31",
"lanes": "97,98,99,100",
"speed": "40000"
},
"Ethernet16": {
"admin_status": "up",
"alias": "fortyGigE0/16",
"index": "4",
"lanes": "45,46,47,48",
"speed": "40000"
},
"Ethernet20": {
"admin_status": "up",
"alias": "fortyGigE0/20",
"index": "5",
"lanes": "41,42,43,44",
"speed": "40000"
},
"Ethernet24": {
"admin_status": "up",
"alias": "fortyGigE0/24",
"index": "6",
"lanes": "1,2,3,4",
"speed": "40000"
},
"Ethernet28": {
"admin_status": "up",
"alias": "fortyGigE0/28",
"index": "7",
"lanes": "5,6,7,8",
"speed": "40000"
},
"Ethernet32": {
"admin_status": "up",
"alias": "fortyGigE0/32",
"index": "8",
"lanes": "13,14,15,16",
"speed": "40000"
},
"Ethernet36": {
"admin_status": "up",
"alias": "fortyGigE0/36",
"index": "9",
"lanes": "9,10,11,12",
"speed": "40000"
},
"Ethernet4": {
"admin_status": "up",
"alias": "fortyGigE0/4",
"index": "1",
"lanes": "29,30,31,32",
"speed": "40000"
},
"Ethernet40": {
"admin_status": "up",
"alias": "fortyGigE0/40",
"index": "10",
"lanes": "17,18,19,20",
"speed": "40000"
},
"Ethernet44": {
"admin_status": "up",
"alias": "fortyGigE0/44",
"index": "11",
"lanes": "21,22,23,24",
"speed": "40000"
},
"Ethernet48": {
"admin_status": "up",
"alias": "fortyGigE0/48",
"index": "12",
"lanes": "53,54,55,56",
"speed": "40000"
},
"Ethernet52": {
"admin_status": "up",
"alias": "fortyGigE0/52",
"index": "13",
"lanes": "49,50,51,52",
"speed": "40000"
},
"Ethernet56": {
"admin_status": "up",
"alias": "fortyGigE0/56",
"index": "14",
"lanes": "57,58,59,60",
"speed": "40000"
},
"Ethernet60": {
"admin_status": "up",
"alias": "fortyGigE0/60",
"index": "15",
"lanes": "61,62,63,64",
"speed": "40000"
},
"Ethernet64": {
"admin_status": "up",
"alias": "fortyGigE0/64",
"index": "16",
"lanes": "69,70,71,72",
"speed": "40000"
},
"Ethernet68": {
"admin_status": "up",
"alias": "fortyGigE0/68",
"index": "17",
"lanes": "65,66,67,68",
"speed": "40000"
},
"Ethernet72": {
"admin_status": "up",
"alias": "fortyGigE0/72",
"index": "18",
"lanes": "73,74,75,76",
"speed": "40000"
},
"Ethernet76": {
"admin_status": "up",
"alias": "fortyGigE0/76",
"index": "19",
"lanes": "77,78,79,80",
"speed": "40000"
},
"Ethernet8": {
"admin_status": "up",
"alias": "fortyGigE0/8",
"index": "2",
"lanes": "33,34,35,36",
"speed": "40000"
},
"Ethernet80": {
"admin_status": "up",
"alias": "fortyGigE0/80",
"index": "20",
"lanes": "109,110,111,112",
"speed": "40000"
},
"Ethernet84": {
"admin_status": "up",
"alias": "fortyGigE0/84",
"index": "21",
"lanes": "105,106,107,108",
"speed": "40000"
},
"Ethernet88": {
"admin_status": "up",
"alias": "fortyGigE0/88",
"index": "22",
"lanes": "113,114,115,116",
"speed": "40000"
},
"Ethernet92": {
"admin_status": "up",
"alias": "fortyGigE0/92",
"index": "23",
"lanes": "117,118,119,120",
"speed": "40000"
},
"Ethernet96": {
"admin_status": "up",
"alias": "fortyGigE0/96",
"index": "24",
"lanes": "125,126,127,128",
"speed": "40000"
}
},
"port_alias_to_name_map": {
"fortyGigE0/0": "Ethernet0",
"fortyGigE0/100": "Ethernet100",
"fortyGigE0/104": "Ethernet104",
"fortyGigE0/108": "Ethernet108",
"fortyGigE0/112": "Ethernet112",
"fortyGigE0/116": "Ethernet116",
"fortyGigE0/12": "Ethernet12",
"fortyGigE0/120": "Ethernet120",
"fortyGigE0/124": "Ethernet124",
"fortyGigE0/16": "Ethernet16",
"fortyGigE0/20": "Ethernet20",
"fortyGigE0/24": "Ethernet24",
"fortyGigE0/28": "Ethernet28",
"fortyGigE0/32": "Ethernet32",
"fortyGigE0/36": "Ethernet36",
"fortyGigE0/4": "Ethernet4",
"fortyGigE0/40": "Ethernet40",
"fortyGigE0/44": "Ethernet44",
"fortyGigE0/48": "Ethernet48",
"fortyGigE0/52": "Ethernet52",
"fortyGigE0/56": "Ethernet56",
"fortyGigE0/60": "Ethernet60",
"fortyGigE0/64": "Ethernet64",
"fortyGigE0/68": "Ethernet68",
"fortyGigE0/72": "Ethernet72",
"fortyGigE0/76": "Ethernet76",
"fortyGigE0/8": "Ethernet8",
"fortyGigE0/80": "Ethernet80",
"fortyGigE0/84": "Ethernet84",
"fortyGigE0/88": "Ethernet88",
"fortyGigE0/92": "Ethernet92",
"fortyGigE0/96": "Ethernet96"
},
"port_index_map": {
"Ethernet0": 0,
"Ethernet100": 25,
"Ethernet104": 26,
"Ethernet108": 27,
"Ethernet112": 28,
"Ethernet116": 29,
"Ethernet12": 3,
"Ethernet120": 30,
"Ethernet124": 31,
"Ethernet16": 4,
"Ethernet20": 5,
"Ethernet24": 6,
"Ethernet28": 7,
"Ethernet32": 8,
"Ethernet36": 9,
"Ethernet4": 1,
"Ethernet40": 10,
"Ethernet44": 11,
"Ethernet48": 12,
"Ethernet52": 13,
"Ethernet56": 14,
"Ethernet60": 15,
"Ethernet64": 16,
"Ethernet68": 17,
"Ethernet72": 18,
"Ethernet76": 19,
"Ethernet8": 2,
"Ethernet80": 20,
"Ethernet84": 21,
"Ethernet88": 22,
"Ethernet92": 23,
"Ethernet96": 24
},
"port_name_to_alias_map": {
"Ethernet0": "fortyGigE0/0",
"Ethernet100": "fortyGigE0/100",
"Ethernet104": "fortyGigE0/104",
"Ethernet108": "fortyGigE0/108",
"Ethernet112": "fortyGigE0/112",
"Ethernet116": "fortyGigE0/116",
"Ethernet12": "fortyGigE0/12",
"Ethernet120": "fortyGigE0/120",
"Ethernet124": "fortyGigE0/124",
"Ethernet16": "fortyGigE0/16",
"Ethernet20": "fortyGigE0/20",
"Ethernet24": "fortyGigE0/24",
"Ethernet28": "fortyGigE0/28",
"Ethernet32": "fortyGigE0/32",
"Ethernet36": "fortyGigE0/36",
"Ethernet4": "fortyGigE0/4",
"Ethernet40": "fortyGigE0/40",
"Ethernet44": "fortyGigE0/44",
"Ethernet48": "fortyGigE0/48",
"Ethernet52": "fortyGigE0/52",
"Ethernet56": "fortyGigE0/56",
"Ethernet60": "fortyGigE0/60",
"Ethernet64": "fortyGigE0/64",
"Ethernet68": "fortyGigE0/68",
"Ethernet72": "fortyGigE0/72",
"Ethernet76": "fortyGigE0/76",
"Ethernet8": "fortyGigE0/8",
"Ethernet80": "fortyGigE0/80",
"Ethernet84": "fortyGigE0/84",
"Ethernet88": "fortyGigE0/88",
"Ethernet92": "fortyGigE0/92",
"Ethernet96": "fortyGigE0/96"
}
},
"changed": false
}
INFO:tests.common.plugins.conditional_mark:Getting switch capabilities basic facts
23:03:35 __init__.load_switch_capabilities_facts L0298 INFO | Getting switch capabilities basic facts
/usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
DEBUG:tests.common.plugins.conditional_mark:raw switch capabilities basic facts:
R-1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3",
"switch_capabilities": {
"switch": {
"ACL_ACTION|FLOW_OP": "INT,IOAM,NOP,POSTCARD",
"ACL_ACTION|PACKET_ACTION": "COPY,DROP,FORWARD",
"ASIC_SDK_HEALTH_EVENT": "true",
"ECMP_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"ECMP_HASH_ALGORITHM_CAPABLE": "true",
"ECMP_HASH_CAPABLE": "true",
"HASH|NATIVE_HASH_FIELD_LIST": "SRC_IP,DST_IP,INNER_SRC_IP,INNER_DST_IP,VLAN_ID,IP_PROTOCOL,ETHERTYPE,L4_SRC_PORT,L4_DST_PORT,SRC_MAC,DST_MAC,IN_PORT,INNER_IP_PROTOCOL,INNER_ETHERTYPE,INNER_L4_SRC_PORT,INNER_L4_DST_PORT,INNER_SRC_MAC,INNER_DST_MAC,IPV6_FLOW_LABEL",
"ICMP_OFFLOAD_CAPABLE": "true",
"LAG_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"LAG_HASH_ALGORITHM_CAPABLE": "true",
"LAG_HASH_CAPABLE": "true",
"LAG_TPID_CAPABLE": "true",
"MAX_NEXTHOP_GROUP_COUNT": "512",
"MAX_TWAMP_SESSION_COUNT": "128",
"MIRROR": "true",
"MIRRORV6": "true",
"ORDERED_ECMP_CAPABLE": "true",
"PATH_TRACING_CAPABLE": "true",
"PFC_DLR_INIT_CAPABLE": "true",
"PORT_EGRESS_SAMPLE_CAPABLE": "true",
"PORT_TPID_CAPABLE": "true",
"REG_FATAL_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_NOTICE_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_WARNING_ASIC_SDK_HEALTH_CATEGORY": "true",
"SWITCH_TRIMMING_CAPABLE": "true",
"SWITCH|NUMBER_OF_TRAFFIC_CLASSES": "16",
"SWITCH|NUMBER_OF_UNICAST_QUEUES": "10",
"SWITCH|PACKET_TRIMMING_DSCP_RESOLUTION_MODE": "DSCP_VALUE,FROM_TC",
"SWITCH|PACKET_TRIMMING_QUEUE_RESOLUTION_MODE": "STATIC,DYNAMIC"
}
}
},
"changed": false
}
INFO:tests.common.plugins.conditional_mark:Getting config basic facts
23:03:36 __init__.load_config_facts L0263 INFO | Getting config basic facts
/usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
DEBUG:tests.common.plugins.conditional_mark:raw config basic facts:
R-1 | SUCCESS => {
"ansible_facts": {
"DEVICE_METADATA": {
"localhost": {
"deployment_id": "1",
"hostname": "R-1",
"hwsku": "Etri-SONiC",
"mac": "22:f1:58:ae:a6:55",
"platform": "x86_64-kvm_x86_64-r0",
"type": "LeafRouter"
}
},
"MGMT_INTERFACE": {
"eth0": {
"10.250.0.51/24": {
"gwaddr": "10.250.0.1"
}
}
},
"MGMT_PORT": {
"eth0": {
"admin_status": "up",
"alias": "eth0"
}
},
"PORT": {
"Ethernet0": {
"admin_status": "up",
"alias": "fortyGigE0/0",
"index": "0",
"lanes": "25,26,27,28",
"speed": "40000"
},
"Ethernet100": {
"admin_status": "up",
"alias": "fortyGigE0/100",
"index": "25",
"lanes": "121,122,123,124",
"speed": "40000"
},
"Ethernet104": {
"admin_status": "up",
"alias": "fortyGigE0/104",
"index": "26",
"lanes": "81,82,83,84",
"speed": "40000"
},
"Ethernet108": {
"admin_status": "up",
"alias": "fortyGigE0/108",
"index": "27",
"lanes": "85,86,87,88",
"speed": "40000"
},
"Ethernet112": {
"admin_status": "up",
"alias": "fortyGigE0/112",
"index": "28",
"lanes": "93,94,95,96",
"speed": "40000"
},
"Ethernet116": {
"admin_status": "up",
"alias": "fortyGigE0/116",
"index": "29",
"lanes": "89,90,91,92",
"speed": "40000"
},
"Ethernet12": {
"admin_status": "up",
"alias": "fortyGigE0/12",
"index": "3",
"lanes": "37,38,39,40",
"speed": "40000"
},
"Ethernet120": {
"admin_status": "up",
"alias": "fortyGigE0/120",
"index": "30",
"lanes": "101,102,103,104",
"speed": "40000"
},
"Ethernet124": {
"admin_status": "up",
"alias": "fortyGigE0/124",
"index": "31",
"lanes": "97,98,99,100",
"speed": "40000"
},
"Ethernet16": {
"admin_status": "up",
"alias": "fortyGigE0/16",
"index": "4",
"lanes": "45,46,47,48",
"speed": "40000"
},
"Ethernet20": {
"admin_status": "up",
"alias": "fortyGigE0/20",
"index": "5",
"lanes": "41,42,43,44",
"speed": "40000"
},
"Ethernet24": {
"admin_status": "up",
"alias": "fortyGigE0/24",
"index": "6",
"lanes": "1,2,3,4",
"speed": "40000"
},
"Ethernet28": {
"admin_status": "up",
"alias": "fortyGigE0/28",
"index": "7",
"lanes": "5,6,7,8",
"speed": "40000"
},
"Ethernet32": {
"admin_status": "up",
"alias": "fortyGigE0/32",
"index": "8",
"lanes": "13,14,15,16",
"speed": "40000"
},
"Ethernet36": {
"admin_status": "up",
"alias": "fortyGigE0/36",
"index": "9",
"lanes": "9,10,11,12",
"speed": "40000"
},
"Ethernet4": {
"admin_status": "up",
"alias": "fortyGigE0/4",
"index": "1",
"lanes": "29,30,31,32",
"speed": "40000"
},
"Ethernet40": {
"admin_status": "up",
"alias": "fortyGigE0/40",
"index": "10",
"lanes": "17,18,19,20",
"speed": "40000"
},
"Ethernet44": {
"admin_status": "up",
"alias": "fortyGigE0/44",
"index": "11",
"lanes": "21,22,23,24",
"speed": "40000"
},
"Ethernet48": {
"admin_status": "up",
"alias": "fortyGigE0/48",
"index": "12",
"lanes": "53,54,55,56",
"speed": "40000"
},
"Ethernet52": {
"admin_status": "up",
"alias": "fortyGigE0/52",
"index": "13",
"lanes": "49,50,51,52",
"speed": "40000"
},
"Ethernet56": {
"admin_status": "up",
"alias": "fortyGigE0/56",
"index": "14",
"lanes": "57,58,59,60",
"speed": "40000"
},
"Ethernet60": {
"admin_status": "up",
"alias": "fortyGigE0/60",
"index": "15",
"lanes": "61,62,63,64",
"speed": "40000"
},
"Ethernet64": {
"admin_status": "up",
"alias": "fortyGigE0/64",
"index": "16",
"lanes": "69,70,71,72",
"speed": "40000"
},
"Ethernet68": {
"admin_status": "up",
"alias": "fortyGigE0/68",
"index": "17",
"lanes": "65,66,67,68",
"speed": "40000"
},
"Ethernet72": {
"admin_status": "up",
"alias": "fortyGigE0/72",
"index": "18",
"lanes": "73,74,75,76",
"speed": "40000"
},
"Ethernet76": {
"admin_status": "up",
"alias": "fortyGigE0/76",
"index": "19",
"lanes": "77,78,79,80",
"speed": "40000"
},
"Ethernet8": {
"admin_status": "up",
"alias": "fortyGigE0/8",
"index": "2",
"lanes": "33,34,35,36",
"speed": "40000"
},
"Ethernet80": {
"admin_status": "up",
"alias": "fortyGigE0/80",
"index": "20",
"lanes": "109,110,111,112",
"speed": "40000"
},
"Ethernet84": {
"admin_status": "up",
"alias": "fortyGigE0/84",
"index": "21",
"lanes": "105,106,107,108",
"speed": "40000"
},
"Ethernet88": {
"admin_status": "up",
"alias": "fortyGigE0/88",
"index": "22",
"lanes": "113,114,115,116",
"speed": "40000"
},
"Ethernet92": {
"admin_status": "up",
"alias": "fortyGigE0/92",
"index": "23",
"lanes": "117,118,119,120",
"speed": "40000"
},
"Ethernet96": {
"admin_status": "up",
"alias": "fortyGigE0/96",
"index": "24",
"lanes": "125,126,127,128",
"speed": "40000"
}
},
"port_alias_to_name_map": {
"fortyGigE0/0": "Ethernet0",
"fortyGigE0/100": "Ethernet100",
"fortyGigE0/104": "Ethernet104",
"fortyGigE0/108": "Ethernet108",
"fortyGigE0/112": "Ethernet112",
"fortyGigE0/116": "Ethernet116",
"fortyGigE0/12": "Ethernet12",
"fortyGigE0/120": "Ethernet120",
"fortyGigE0/124": "Ethernet124",
"fortyGigE0/16": "Ethernet16",
"fortyGigE0/20": "Ethernet20",
"fortyGigE0/24": "Ethernet24",
"fortyGigE0/28": "Ethernet28",
"fortyGigE0/32": "Ethernet32",
"fortyGigE0/36": "Ethernet36",
"fortyGigE0/4": "Ethernet4",
"fortyGigE0/40": "Ethernet40",
"fortyGigE0/44": "Ethernet44",
"fortyGigE0/48": "Ethernet48",
"fortyGigE0/52": "Ethernet52",
"fortyGigE0/56": "Ethernet56",
"fortyGigE0/60": "Ethernet60",
"fortyGigE0/64": "Ethernet64",
"fortyGigE0/68": "Ethernet68",
"fortyGigE0/72": "Ethernet72",
"fortyGigE0/76": "Ethernet76",
"fortyGigE0/8": "Ethernet8",
"fortyGigE0/80": "Ethernet80",
"fortyGigE0/84": "Ethernet84",
"fortyGigE0/88": "Ethernet88",
"fortyGigE0/92": "Ethernet92",
"fortyGigE0/96": "Ethernet96"
},
"port_index_map": {
"Ethernet0": 0,
"Ethernet100": 25,
"Ethernet104": 26,
"Ethernet108": 27,
"Ethernet112": 28,
"Ethernet116": 29,
"Ethernet12": 3,
"Ethernet120": 30,
"Ethernet124": 31,
"Ethernet16": 4,
"Ethernet20": 5,
"Ethernet24": 6,
"Ethernet28": 7,
"Ethernet32": 8,
"Ethernet36": 9,
"Ethernet4": 1,
"Ethernet40": 10,
"Ethernet44": 11,
"Ethernet48": 12,
"Ethernet52": 13,
"Ethernet56": 14,
"Ethernet60": 15,
"Ethernet64": 16,
"Ethernet68": 17,
"Ethernet72": 18,
"Ethernet76": 19,
"Ethernet8": 2,
"Ethernet80": 20,
"Ethernet84": 21,
"Ethernet88": 22,
"Ethernet92": 23,
"Ethernet96": 24
},
"port_name_to_alias_map": {
"Ethernet0": "fortyGigE0/0",
"Ethernet100": "fortyGigE0/100",
"Ethernet104": "fortyGigE0/104",
"Ethernet108": "fortyGigE0/108",
"Ethernet112": "fortyGigE0/112",
"Ethernet116": "fortyGigE0/116",
"Ethernet12": "fortyGigE0/12",
"Ethernet120": "fortyGigE0/120",
"Ethernet124": "fortyGigE0/124",
"Ethernet16": "fortyGigE0/16",
"Ethernet20": "fortyGigE0/20",
"Ethernet24": "fortyGigE0/24",
"Ethernet28": "fortyGigE0/28",
"Ethernet32": "fortyGigE0/32",
"Ethernet36": "fortyGigE0/36",
"Ethernet4": "fortyGigE0/4",
"Ethernet40": "fortyGigE0/40",
"Ethernet44": "fortyGigE0/44",
"Ethernet48": "fortyGigE0/48",
"Ethernet52": "fortyGigE0/52",
"Ethernet56": "fortyGigE0/56",
"Ethernet60": "fortyGigE0/60",
"Ethernet64": "fortyGigE0/64",
"Ethernet68": "fortyGigE0/68",
"Ethernet72": "fortyGigE0/72",
"Ethernet76": "fortyGigE0/76",
"Ethernet8": "fortyGigE0/8",
"Ethernet80": "fortyGigE0/80",
"Ethernet84": "fortyGigE0/84",
"Ethernet88": "fortyGigE0/88",
"Ethernet92": "fortyGigE0/92",
"Ethernet96": "fortyGigE0/96"
}
},
"changed": false
}
23:03:36 __init__.pytest_collection_modifyitems L0607 INFO | Available basic facts that can be used in conditional skip:
{
"topo_type": "etri",
"topo_name": "etri",
"testbed": "etri-sonic-all",
"asic_subtype": "vs",
"asic_type": "vs",
"branch": "etri-202505",
"build_date": "Wed Sep 9 05:16:43 UTC 2026",
"build_number": 27,
"build_version": "etri-202505.27-8610ff460",
"built_by": "jenkins@w2sh",
"commit_id": "8610ff460",
"debian_version": "12.15",
"feature_status": {
"bgp": "enabled",
"database": "always_enabled",
"dhcp_relay": "disabled",
"eventd": "enabled",
"gbsyncd": "enabled",
"gnmi": "enabled",
"lldp": "enabled",
"macsec": "disabled",
"mgmt-framework": "enabled",
"mux": "always_disabled",
"nat": "disabled",
"pmon": "enabled",
"radv": "enabled",
"sflow": "disabled",
"snmp": "enabled",
"swss": "enabled",
"syncd": "enabled",
"teamd": "enabled",
"telemetry": "enabled"
},
"hwsku": "Etri-SONiC",
"is_multi_asic": false,
"is_supervisor": false,
"kernel_version": "6.1.0",
"libswsscommon": "1.0.0",
"num_asic": 1,
"platform": "x86_64-kvm_x86_64-r0",
"release": "202505",
"secure_boot_image": "no",
"sonic_os_version": 12,
"sonic_utilities": 1.2,
"asic_gen": "unknown",
"VOQ_INBAND_INTERFACE": {},
"BGP_VOQ_CHASSIS_NEIGHBOR": {},
"INTERFACE": {},
"switch": {
"ACL_ACTION|FLOW_OP": "INT,IOAM,NOP,POSTCARD",
"ACL_ACTION|PACKET_ACTION": "COPY,DROP,FORWARD",
"ASIC_SDK_HEALTH_EVENT": "true",
"ECMP_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"ECMP_HASH_ALGORITHM_CAPABLE": "true",
"ECMP_HASH_CAPABLE": "true",
"HASH|NATIVE_HASH_FIELD_LIST": "SRC_IP,DST_IP,INNER_SRC_IP,INNER_DST_IP,VLAN_ID,IP_PROTOCOL,ETHERTYPE,L4_SRC_PORT,L4_DST_PORT,SRC_MAC,DST_MAC,IN_PORT,INNER_IP_PROTOCOL,INNER_ETHERTYPE,INNER_L4_SRC_PORT,INNER_L4_DST_PORT,INNER_SRC_MAC,INNER_DST_MAC,IPV6_FLOW_LABEL",
"ICMP_OFFLOAD_CAPABLE": "true",
"LAG_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"LAG_HASH_ALGORITHM_CAPABLE": "true",
"LAG_HASH_CAPABLE": "true",
"LAG_TPID_CAPABLE": "true",
"MAX_NEXTHOP_GROUP_COUNT": "512",
"MAX_TWAMP_SESSION_COUNT": "128",
"MIRROR": "true",
"MIRRORV6": "true",
"ORDERED_ECMP_CAPABLE": "true",
"PATH_TRACING_CAPABLE": "true",
"PFC_DLR_INIT_CAPABLE": "true",
"PORT_EGRESS_SAMPLE_CAPABLE": "true",
"PORT_TPID_CAPABLE": "true",
"REG_FATAL_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_NOTICE_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_WARNING_ASIC_SDK_HEALTH_CATEGORY": "true",
"SWITCH_TRIMMING_CAPABLE": "true",
"SWITCH|NUMBER_OF_TRAFFIC_CLASSES": "16",
"SWITCH|NUMBER_OF_UNICAST_QUEUES": "10",
"SWITCH|PACKET_TRIMMING_DSCP_RESOLUTION_MODE": "DSCP_VALUE,FROM_TC",
"SWITCH|PACKET_TRIMMING_QUEUE_RESOLUTION_MODE": "STATIC,DYNAMIC"
}
}
INFO:tests.common.plugins.conditional_mark:Available basic facts that can be used in conditional skip:
{
"topo_type": "etri",
"topo_name": "etri",
"testbed": "etri-sonic-all",
"asic_subtype": "vs",
"asic_type": "vs",
"branch": "etri-202505",
"build_date": "Wed Sep 9 05:16:43 UTC 2026",
"build_number": 27,
"build_version": "etri-202505.27-8610ff460",
"built_by": "jenkins@w2sh",
"commit_id": "8610ff460",
"debian_version": "12.15",
"feature_status": {
"bgp": "enabled",
"database": "always_enabled",
"dhcp_relay": "disabled",
"eventd": "enabled",
"gbsyncd": "enabled",
"gnmi": "enabled",
"lldp": "enabled",
"macsec": "disabled",
"mgmt-framework": "enabled",
"mux": "always_disabled",
"nat": "disabled",
"pmon": "enabled",
"radv": "enabled",
"sflow": "disabled",
"snmp": "enabled",
"swss": "enabled",
"syncd": "enabled",
"teamd": "enabled",
"telemetry": "enabled"
},
"hwsku": "Etri-SONiC",
"is_multi_asic": false,
"is_supervisor": false,
"kernel_version": "6.1.0",
"libswsscommon": "1.0.0",
"num_asic": 1,
"platform": "x86_64-kvm_x86_64-r0",
"release": "202505",
"secure_boot_image": "no",
"sonic_os_version": 12,
"sonic_utilities": 1.2,
"asic_gen": "unknown",
"VOQ_INBAND_INTERFACE": {},
"BGP_VOQ_CHASSIS_NEIGHBOR": {},
"INTERFACE": {},
"switch": {
"ACL_ACTION|FLOW_OP": "INT,IOAM,NOP,POSTCARD",
"ACL_ACTION|PACKET_ACTION": "COPY,DROP,FORWARD",
"ASIC_SDK_HEALTH_EVENT": "true",
"ECMP_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"ECMP_HASH_ALGORITHM_CAPABLE": "true",
"ECMP_HASH_CAPABLE": "true",
"HASH|NATIVE_HASH_FIELD_LIST": "SRC_IP,DST_IP,INNER_SRC_IP,INNER_DST_IP,VLAN_ID,IP_PROTOCOL,ETHERTYPE,L4_SRC_PORT,L4_DST_PORT,SRC_MAC,DST_MAC,IN_PORT,INNER_IP_PROTOCOL,INNER_ETHERTYPE,INNER_L4_SRC_PORT,INNER_L4_DST_PORT,INNER_SRC_MAC,INNER_DST_MAC,IPV6_FLOW_LABEL",
"ICMP_OFFLOAD_CAPABLE": "true",
"LAG_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"LAG_HASH_ALGORITHM_CAPABLE": "true",
"LAG_HASH_CAPABLE": "true",
"LAG_TPID_CAPABLE": "true",
"MAX_NEXTHOP_GROUP_COUNT": "512",
"MAX_TWAMP_SESSION_COUNT": "128",
"MIRROR": "true",
"MIRRORV6": "true",
"ORDERED_ECMP_CAPABLE": "true",
"PATH_TRACING_CAPABLE": "true",
"PFC_DLR_INIT_CAPABLE": "true",
"PORT_EGRESS_SAMPLE_CAPABLE": "true",
"PORT_TPID_CAPABLE": "true",
"REG_FATAL_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_NOTICE_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_WARNING_ASIC_SDK_HEALTH_CATEGORY": "true",
"SWITCH_TRIMMING_CAPABLE": "true",
"SWITCH|NUMBER_OF_TRAFFIC_CLASSES": "16",
"SWITCH|NUMBER_OF_UNICAST_QUEUES": "10",
"SWITCH|PACKET_TRIMMING_DSCP_RESOLUTION_MODE": "DSCP_VALUE,FROM_TC",
"SWITCH|PACKET_TRIMMING_QUEUE_RESOLUTION_MODE": "STATIC,DYNAMIC"
}
}
collected 1 item
test_sonic/test_sonic.py::test_scenario INFO:SectionStartLogger:==================== test_sonic/test_sonic.py::test_scenario setup ====================
-------------------------------- live log setup --------------------------------
23:03:36 __init__.set_default L0053 INFO | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
23:03:36 __init__.check_test_completeness L0151 INFO | Test has no defined levels. Continue without test completeness checks
23:03:36 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/etri-sonic-all/tbinfo.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:36 facts_cache.write L0115 INFO | [Cache] Create cache dir /data/NetAutoTestFW/tests/_cache/etri-sonic-all
23:03:36 facts_cache.write L0121 INFO | [Cache] Cached facts "etri-sonic-all.tbinfo" to /data/NetAutoTestFW/tests/_cache/etri-sonic-all/tbinfo.pickle
23:03:36 conftest.tbinfo L0187 INFO | YCLEE tbinfo: {'conf-name': 'etri-sonic-all', 'group-name': 'etri', 'server': 'server_1', 'vm_base': 'R-1', 'tgs': ['TG-1'], 'inv_name': 'vsonic_vtb', 'auto_recover': 'False', 'comment': 'Tests virtual switch vm', 'duts': ['R-1', 'R-2', 'R-3', 'R-4', 'R-5', 'R-6', 'SW-1', 'SW-2', 'SW-3', 'SW-4'], 'duts_map': {'R-1': 0, 'R-2': 1, 'R-3': 2, 'R-4': 3, 'R-5': 4, 'R-6': 5, 'SW-1': 6, 'SW-2': 7, 'SW-3': 8, 'SW-4': 9}, 'ubuntus': ['H-1', 'H-2', 'H-3', 'H-4', 'H-5', 'H-6', 'H-7'], 'ubuntus_map': {'H-1': 0, 'H-2': 1, 'H-3': 2, 'H-4': 3, 'H-5': 4, 'H-6': 5, 'H-7': 6}, 'topo': defaultdict(None, {'name': 'etri', 'type': 'etri', 'properties': {'topology': {'links': [{'endpoint': ['R-1:Ethernet0', 'R-6:Ethernet0']}, {'endpoint': ['R-1:Ethernet4', 'R-2:Ethernet4']}, {'endpoint': ['R-1:Ethernet8', 'R-3:Ethernet0']}, {'endpoint': ['R-1:Ethernet12', 'R-2:Ethernet8']}, {'endpoint': ['R-2:Ethernet0', 'R-4:Ethernet0']}, {'endpoint': ['R-2:Ethernet12', 'R-3:Ethernet8', 'R-4:Ethernet8']}, {'endpoint': ['R-3:Ethernet4', 'SW-3:Ethernet12']}, {'endpoint': ['R-6:Ethernet4', 'SW-3:Ethernet16']}, {'endpoint': ['R-4:Ethernet4', 'R-5:Ethernet0']}, {'endpoint': ['R-5:Ethernet4', 'H-5:Eth1']}, {'endpoint': ['SW-2:Ethernet12', 'H-2:Eth1']}, {'endpoint': ['SW-2:Ethernet16', 'H-4:Eth1']}, {'endpoint': ['SW-4:Ethernet8', 'H-6:Eth1']}, {'endpoint': ['SW-4:Ethernet12', 'H-7:Eth1']}, {'endpoint': ['SW-1:Ethernet16', 'H-1:Eth1']}, {'endpoint': ['SW-1:Ethernet20', 'H-3:Eth1']}], 'L2_links': [{'switch': 'SW-1', 'intf': 'Ethernet0', 'send_port': 10000, 'recv_port': 10001}, {'switch': 'SW-1', 'intf': 'Ethernet4', 'send_port': 10002, 'recv_port': 10003}, {'switch': 'SW-1', 'intf': 'Ethernet8', 'send_port': 10004, 'recv_port': 10005}, {'switch': 'SW-1', 'intf': 'Ethernet12', 'send_port': 10006, 'recv_port': 10007}, {'switch': 'SW-2', 'intf': 'Ethernet0', 'send_port': 10008, 'recv_port': 10009}, {'switch': 'SW-2', 'intf': 'Ethernet4', 'send_port': 10005, 'recv_port': 10004}, {'switch': 'SW-2', 'intf': 'Ethernet8', 'send_port': 10010, 'recv_port': 10011}, {'switch': 'SW-3', 'intf': 'Ethernet0', 'send_port': 10001, 'recv_port': 10000}, {'switch': 'SW-3', 'intf': 'Ethernet4', 'send_port': 10003, 'recv_port': 10002}, {'switch': 'SW-3', 'intf': 'Ethernet8', 'send_port': 10009, 'recv_port': 10008}, {'switch': 'SW-4', 'intf': 'Ethernet0', 'send_port': 10007, 'recv_port': 10006}, {'switch': 'SW-4', 'intf': 'Ethernet4', 'send_port': 10011, 'recv_port': 10010}], 'VMs': {'R-1': {'vm_offset': 0}, 'R-2': {'vm_offset': 1}, 'R-3': {'vm_offset': 2}, 'R-4': {'vm_offset': 3}, 'R-5': {'vm_offset': 4}, 'R-6': {'vm_offset': 5}, 'SW-1': {'vm_offset': 6}, 'SW-2': {'vm_offset': 7}, 'SW-3': {'vm_offset': 8}, 'SW-4': {'vm_offset': 9}, 'H-1': {'vm_offset': 10}, 'H-2': {'vm_offset': 11}, 'H-3': {'vm_offset': 12}, 'H-4': {'vm_offset': 13}, 'H-5': {'vm_offset': 14}, 'H-6': {'vm_offset': 15}, 'H-7': {'vm_offset': 16}, 'TG-1': {'vm_offset': 17}}}}, 'ptf_map': defaultdict(, {}), 'ptf_map_disabled': defaultdict(, {}), 'ptf_dut_intf_map': defaultdict(, {})})}
SETUP S tbinfo23:03:36 conftest.enhance_inventory L0124 INFO | Inventory file: ['../ansible/vsonic_vtb']
SETUP S enhance_inventory (fixtures used: tbinfo)
SETUP S ansible_adhoc23:03:36 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/basic_facts.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:39 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/host_visible_vars.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:39 facts_cache.write L0115 INFO | [Cache] Create cache dir /data/NetAutoTestFW/tests/_cache/R-1
23:03:39 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.host_visible_vars" to /data/NetAutoTestFW/tests/_cache/R-1/host_visible_vars.pickle
23:03:39 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.basic_facts" to /data/NetAutoTestFW/tests/_cache/R-1/basic_facts.pickle
23:03:39 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/os_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:40 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.os_version" to /data/NetAutoTestFW/tests/_cache/R-1/os_version.pickle
23:03:40 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/feature_status.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:40 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.feature_status" to /data/NetAutoTestFW/tests/_cache/R-1/feature_status.pickle
23:03:40 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/sonic_release.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:41 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.sonic_release" to /data/NetAutoTestFW/tests/_cache/R-1/sonic_release.pickle
23:03:41 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/kernel_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:41 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.kernel_version" to /data/NetAutoTestFW/tests/_cache/R-1/kernel_version.pickle
23:03:42 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/basic_facts.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:44 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/host_visible_vars.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:44 facts_cache.write L0115 INFO | [Cache] Create cache dir /data/NetAutoTestFW/tests/_cache/R-2
23:03:44 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.host_visible_vars" to /data/NetAutoTestFW/tests/_cache/R-2/host_visible_vars.pickle
23:03:45 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.basic_facts" to /data/NetAutoTestFW/tests/_cache/R-2/basic_facts.pickle
23:03:45 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/os_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:45 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.os_version" to /data/NetAutoTestFW/tests/_cache/R-2/os_version.pickle
23:03:45 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/feature_status.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:46 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.feature_status" to /data/NetAutoTestFW/tests/_cache/R-2/feature_status.pickle
23:03:46 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/sonic_release.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:46 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.sonic_release" to /data/NetAutoTestFW/tests/_cache/R-2/sonic_release.pickle
23:03:46 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/kernel_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:47 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.kernel_version" to /data/NetAutoTestFW/tests/_cache/R-2/kernel_version.pickle
23:03:48 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/basic_facts.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:50 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/host_visible_vars.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:50 facts_cache.write L0115 INFO | [Cache] Create cache dir /data/NetAutoTestFW/tests/_cache/R-3
23:03:50 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.host_visible_vars" to /data/NetAutoTestFW/tests/_cache/R-3/host_visible_vars.pickle
23:03:50 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.basic_facts" to /data/NetAutoTestFW/tests/_cache/R-3/basic_facts.pickle
23:03:50 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/os_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:51 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.os_version" to /data/NetAutoTestFW/tests/_cache/R-3/os_version.pickle
23:03:51 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/feature_status.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:51 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.feature_status" to /data/NetAutoTestFW/tests/_cache/R-3/feature_status.pickle
23:03:51 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/sonic_release.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:52 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.sonic_release" to /data/NetAutoTestFW/tests/_cache/R-3/sonic_release.pickle
23:03:52 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/kernel_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:52 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.kernel_version" to /data/NetAutoTestFW/tests/_cache/R-3/kernel_version.pickle
23:03:53 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/basic_facts.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:55 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/host_visible_vars.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:55 facts_cache.write L0115 INFO | [Cache] Create cache dir /data/NetAutoTestFW/tests/_cache/R-4
23:03:55 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.host_visible_vars" to /data/NetAutoTestFW/tests/_cache/R-4/host_visible_vars.pickle
23:03:56 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.basic_facts" to /data/NetAutoTestFW/tests/_cache/R-4/basic_facts.pickle
23:03:56 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/os_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:56 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.os_version" to /data/NetAutoTestFW/tests/_cache/R-4/os_version.pickle
23:03:56 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/feature_status.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:57 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.feature_status" to /data/NetAutoTestFW/tests/_cache/R-4/feature_status.pickle
23:03:57 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/sonic_release.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:57 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.sonic_release" to /data/NetAutoTestFW/tests/_cache/R-4/sonic_release.pickle
23:03:57 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/kernel_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:03:58 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.kernel_version" to /data/NetAutoTestFW/tests/_cache/R-4/kernel_version.pickle
SETUP S duthosts (fixtures used: ansible_adhoc, enhance_inventory, tbinfo)
SETUP S add_mgmt_test_mark (fixtures used: duthosts)
SETUP S pytestconfig
SETUP S ubuntus (fixtures used: ansible_adhoc, enhance_inventory, tbinfo)
SETUP S record_testsuite_property23:04:00 conftest.tag_test_report L0413 INFO | login_user : admin
conn_type : ssh
mgmt_ipv4 : 10.250.0.51
port : 22
23:04:00 conftest.tag_test_report L0413 INFO | login_user : admin
conn_type : ssh
mgmt_ipv4 : 10.250.0.52
port : 22
23:04:00 conftest.tag_test_report L0413 INFO | login_user : admin
conn_type : ssh
mgmt_ipv4 : 10.250.0.53
port : 22
23:04:00 conftest.tag_test_report L0413 INFO | login_user : admin
conn_type : ssh
mgmt_ipv4 : 10.250.0.54
port : 22
SETUP S tag_test_report (fixtures used: duthosts, pytestconfig, record_testsuite_property, tbinfo, ubuntus)
SETUP S vmhost (fixtures used: ansible_adhoc, enhance_inventory, tbinfo)
SETUP S parallel_run_context23:04:00 __init__.sanity_check L0399 INFO | Skip sanity check according to command line argument
SETUP M sanity_check (fixtures used: parallel_run_context)23:04:00 conftest.core_dump_and_config_check L0583 INFO | Dumping Disk and Memory Space informataion before test on R-1
23:04:00 conftest.core_dump_and_config_check L0587 INFO | Collecting core dumps before test on R-1
23:04:01 conftest.core_dump_and_config_check L0596 INFO | Collecting running config before test on R-1
23:04:01 conftest.core_dump_and_config_check L0583 INFO | Dumping Disk and Memory Space informataion before test on R-2
23:04:02 conftest.core_dump_and_config_check L0587 INFO | Collecting core dumps before test on R-2
23:04:02 conftest.core_dump_and_config_check L0596 INFO | Collecting running config before test on R-2
23:04:03 conftest.core_dump_and_config_check L0583 INFO | Dumping Disk and Memory Space informataion before test on R-3
23:04:04 conftest.core_dump_and_config_check L0587 INFO | Collecting core dumps before test on R-3
23:04:04 conftest.core_dump_and_config_check L0596 INFO | Collecting running config before test on R-3
23:04:05 conftest.core_dump_and_config_check L0583 INFO | Dumping Disk and Memory Space informataion before test on R-4
23:04:05 conftest.core_dump_and_config_check L0587 INFO | Collecting core dumps before test on R-4
23:04:06 conftest.core_dump_and_config_check L0596 INFO | Collecting running config before test on R-4
SETUP M core_dump_and_config_check (fixtures used: duthosts, sanity_check, tbinfo)23:04:06 conftest.get_scenario_file L0258 INFO | YCLEE pt_file:
test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
23:04:06 parse_scenario.__init__ L0014 INFO | YCLEE request:
test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
23:04:06 parse_scenario.__init__ L0022 INFO | YCLEE scenario_filename:
test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
23:04:06 conftest.fixture_parse_scenario L0266 INFO | YCLEE protocol:
SETUP M parse_scenario23:04:06 conftest.setup_trex_daemons L0441 INFO | [Setup] Starting the TRex daemon on an Ubuntu device.
SETUP M setup_trex_daemons (fixtures used: parse_scenario, ubuntus)
SETUP M reload_config (fixtures used: duthosts, ubuntus)23:04:16 __init__._fixture_func_decorator L0069 INFO | -------------------- fixture sonic_paramiko_ssh setup starts --------------------
23:04:17 session.sonic_paramiko_ssh L0025 INFO | mgmt_interface:{'eth0|10.250.0.51/24': {'gwaddr': '10.250.0.1'}}
23:04:17 session.sonic_paramiko_ssh L0026 INFO | duthost hostname:R-1
username:admin
password:password
23:04:17 transport._log L1873 INFO | Connected (version 2.0, client OpenSSH_9.2p1)
23:04:17 transport._log L1873 INFO | Auth banner: b'Debian GNU/Linux 12 \\n \\l\n\n'
23:04:17 transport._log L1873 INFO | Authentication (publickey) failed.
23:04:17 transport._log L1873 INFO | Authentication (password) successful!
23:04:17 session.sonic_paramiko_ssh L0046 INFO | output:
Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
23:04:17 session.sonic_paramiko_ssh L0046 INFO | output:
Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 22:48:00 2026 from 10.250.0.1
23:04:17 session.sonic_paramiko_ssh L0046 INFO | output:
Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 22:48:00 2026 from 10.250.0.1
admin@R-1:~$
23:04:19 session.sonic_paramiko_ssh L0056 INFO |
hostname: R-1
23:04:19 session.sonic_paramiko_ssh L0025 INFO | mgmt_interface:{'eth0|10.250.0.52/24': {'gwaddr': '10.250.0.1'}}
23:04:19 session.sonic_paramiko_ssh L0026 INFO | duthost hostname:R-2
username:admin
password:password
23:04:19 transport._log L1873 INFO | Connected (version 2.0, client OpenSSH_9.2p1)
23:04:19 transport._log L1873 INFO | Auth banner: b'Debian GNU/Linux 12 \\n \\l\n\n'
23:04:19 transport._log L1873 INFO | Authentication (publickey) failed.
23:04:19 transport._log L1873 INFO | Authentication (password) successful!
23:04:19 session.sonic_paramiko_ssh L0046 INFO | output:
Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 22:48:02 2026 from 10.250.0.1
admin@R-2:~$
23:04:21 session.sonic_paramiko_ssh L0056 INFO |
hostname: R-2
23:04:21 session.sonic_paramiko_ssh L0025 INFO | mgmt_interface:{'eth0|10.250.0.53/24': {'gwaddr': '10.250.0.1'}}
23:04:21 session.sonic_paramiko_ssh L0026 INFO | duthost hostname:R-3
username:admin
password:password
23:04:21 transport._log L1873 INFO | Connected (version 2.0, client OpenSSH_9.2p1)
23:04:21 transport._log L1873 INFO | Auth banner: b'Debian GNU/Linux 12 \\n \\l\n\n'
23:04:21 transport._log L1873 INFO | Authentication (publickey) failed.
23:04:21 transport._log L1873 INFO | Authentication (password) successful!
23:04:22 session.sonic_paramiko_ssh L0046 INFO | output:
Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 22:48:04 2026 from 10.250.0.1
admin@R-3:~$
23:04:23 session.sonic_paramiko_ssh L0056 INFO |
hostname: R-3
23:04:23 session.sonic_paramiko_ssh L0025 INFO | mgmt_interface:{'eth0|10.250.0.54/24': {'gwaddr': '10.250.0.1'}}
23:04:23 session.sonic_paramiko_ssh L0026 INFO | duthost hostname:R-4
username:admin
password:password
23:04:23 transport._log L1873 INFO | Connected (version 2.0, client OpenSSH_9.2p1)
23:04:24 transport._log L1873 INFO | Auth banner: b'Debian GNU/Linux 12 \\n \\l\n\n'
23:04:24 transport._log L1873 INFO | Authentication (publickey) failed.
23:04:24 transport._log L1873 INFO | Authentication (password) successful!
23:04:24 session.sonic_paramiko_ssh L0046 INFO | output:
Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 22:48:05 2026 from 10.250.0.1
admin@R-4:~$
23:04:25 session.sonic_paramiko_ssh L0056 INFO |
hostname: R-4
23:04:25 __init__._fixture_func_decorator L0076 INFO | -------------------- fixture sonic_paramiko_ssh setup ends --------------------
SETUP M sonic_paramiko_ssh (fixtures used: duthosts)23:04:25 __init__._fixture_func_decorator L0069 INFO | -------------------- fixture ubuntu_paramiko_ssh setup starts --------------------
23:04:25 __init__._fixture_func_decorator L0076 INFO | -------------------- fixture ubuntu_paramiko_ssh setup ends --------------------
SETUP M ubuntu_paramiko_ssh (fixtures used: ubuntus)23:04:26 __init__.analyzer_logrotate L0023 INFO | logrotate called on R-2
23:04:27 __init__.analyzer_logrotate L0023 INFO | logrotate called on R-3
23:04:27 __init__.analyzer_logrotate L0023 INFO | logrotate called on R-4
23:04:27 __init__.analyzer_logrotate L0023 INFO | logrotate called on R-1
23:04:28 parallel.on_terminate L0085 INFO | process analyzer_logrotate-- terminated with exit code None
23:04:29 parallel.on_terminate L0085 INFO | process analyzer_logrotate-- terminated with exit code None
23:04:29 parallel.on_terminate L0085 INFO | process analyzer_logrotate-- terminated with exit code None
23:04:29 parallel.on_terminate L0085 INFO | process analyzer_logrotate-- terminated with exit code None
23:04:29 parallel.parallel_run L0221 INFO | Completed running processes for target "analyzer_logrotate" in 0:00:03.704209 seconds
23:04:29 __init__.analyzer_add_marker L0035 INFO | add marker called on R-1
23:04:29 __init__.analyzer_add_marker L0037 INFO | Add start marker into SONiC Devices syslog for host R-1
23:04:29 __init__.analyzer_add_marker L0035 INFO | add marker called on R-2
23:04:29 __init__.analyzer_add_marker L0037 INFO | Add start marker into SONiC Devices syslog for host R-2
23:04:29 __init__.analyzer_add_marker L0035 INFO | add marker called on R-3
23:04:29 __init__.analyzer_add_marker L0037 INFO | Add start marker into SONiC Devices syslog for host R-3
23:04:29 __init__.analyzer_add_marker L0035 INFO | add marker called on R-4
23:04:29 __init__.analyzer_add_marker L0037 INFO | Add start marker into SONiC Devices syslog for host R-4
23:04:31 parallel.on_terminate L0085 INFO | process analyzer_add_marker-- terminated with exit code None
23:04:31 parallel.on_terminate L0085 INFO | process analyzer_add_marker-- terminated with exit code None
23:04:31 parallel.on_terminate L0085 INFO | process analyzer_add_marker-- terminated with exit code None
23:04:31 parallel.on_terminate L0085 INFO | process analyzer_add_marker-- terminated with exit code None
23:04:31 parallel.parallel_run L0221 INFO | Completed running processes for target "analyzer_add_marker" in 0:00:02.566944 seconds
SETUP F loganalyzer (fixtures used: duthosts)
SETUP F record_property
test_sonic/test_sonic.py::test_scenario (fixtures used: add_mgmt_test_mark, ansible_adhoc, core_dump_and_config_check, duthosts, enhance_inventory, loganalyzer, parallel_run_context, parse_scenario, pytestconfig, record_property, record_testsuite_property, reload_config, request, sanity_check, setup_trex_daemons, sonic_paramiko_ssh, tag_test_report, tbinfo, ubuntu_paramiko_ssh, ubuntus, vmhost)INFO:SectionStartLogger:==================== test_sonic/test_sonic.py::test_scenario call ====================
-------------------------------- live log call ---------------------------------
23:04:31 test_sonic.run_scenario L0098 INFO | test device hostname: , , , ]>
23:04:31 test_sonic.run_scenario L0099 INFO | server hostname: STR-ACS-VSERV-01
23:04:31 test_sonic.run_scenario L0103 INFO | step 0) scenario_data:
23:04:31 test_sonic.run_scenario L0108 INFO |
step 1) scenario name:Print Topology Image
23:04:31 test_sonic.run_scenario L0108 INFO |
step 1) scenario name:Session Check
23:04:31 test_sonic.run_scenario L0130 INFO | nodes: R-1
23:04:31 test_sonic.run_scenario L0138 INFO | step 1)
Hostname:
R-1
node name:
R-1
23:04:31 test_sonic.run_scenario L0139 INFO | step 2)
ssh_prompt:
Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 22:48:00 2026 from 10.250.0.1
admin@R-1:~$
23:04:31 test_sonic.run_scenario L0144 INFO | step 3)
pass
23:04:31 test_sonic.run_scenario L0130 INFO | nodes: R-2
23:04:31 test_sonic.run_scenario L0138 INFO | step 1)
Hostname:
R-2
node name:
R-2
23:04:31 test_sonic.run_scenario L0139 INFO | step 2)
ssh_prompt:
Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 22:48:02 2026 from 10.250.0.1
admin@R-2:~$
23:04:31 test_sonic.run_scenario L0144 INFO | step 3)
pass
23:04:31 test_sonic.run_scenario L0130 INFO | nodes: R-3
23:04:31 test_sonic.run_scenario L0138 INFO | step 1)
Hostname:
R-3
node name:
R-3
23:04:31 test_sonic.run_scenario L0139 INFO | step 2)
ssh_prompt:
Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 22:48:04 2026 from 10.250.0.1
admin@R-3:~$
23:04:31 test_sonic.run_scenario L0144 INFO | step 3)
pass
23:04:31 test_sonic.run_scenario L0130 INFO | nodes: R-4
23:04:31 test_sonic.run_scenario L0138 INFO | step 1)
Hostname:
R-4
node name:
R-4
23:04:31 test_sonic.run_scenario L0139 INFO | step 2)
ssh_prompt:
Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 22:48:05 2026 from 10.250.0.1
admin@R-4:~$
23:04:31 test_sonic.run_scenario L0144 INFO | step 3)
pass
23:04:31 test_sonic.run_scenario L0108 INFO |
step 1) scenario name:IP Assign for BGP Func Test
23:04:31 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Assign IPv4 on R-1
node name: R-1
23:04:32 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}, {'command': 'sudo config interface ip add Ethernet4 10.1.1.1/30'}, {'command': 'sudo config interface ip add Ethernet8 10.1.1.9/30'}, {'command': 'sudo config interface ip add Ethernet12 10.1.1.5/30'}, {'command': 'sudo config interface ip add Ethernet16 10.10.1.1/24'}, {'command': 'sudo config interface ip add Ethernet20 10.10.2.1/24'}]
sub scenario expect mode: and
sub scenario expect values: [[], [], [], [], [], [], [], []]
sub scenario not expect values: [[], [], [], [], [], [], [], []]
sub scenario retries: 5
sub scenario delay: 1
23:04:32 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}
expect values: []
not expect values: []
23:04:39 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:04:30 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:04:39 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:04:39 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:04:30 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:04:39 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}
expect values: []
not expect values: []
23:04:46 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:04:38 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:04:46 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:04:46 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:04:38 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:04:46 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}
expect values: []
not expect values: []
23:04:54 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:04:45 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:04:54 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:04:54 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:04:45 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:04:54 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet4 10.1.1.1/30'}
expect values: []
not expect values: []
23:04:59 test_sonic.run_scenario L0244 INFO |
execute command result:
23:04:59 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:04:59 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:04:59 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet8 10.1.1.9/30'}
expect values: []
not expect values: []
23:05:05 test_sonic.run_scenario L0244 INFO |
execute command result:
23:05:05 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:05:05 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:05:05 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet12 10.1.1.5/30'}
expect values: []
not expect values: []
23:05:11 test_sonic.run_scenario L0244 INFO |
execute command result:
23:05:11 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:05:11 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:05:11 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet16 10.10.1.1/24'}
expect values: []
not expect values: []
23:05:16 test_sonic.run_scenario L0244 INFO |
execute command result:
23:05:16 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:05:16 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:05:16 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet20 10.10.2.1/24'}
expect values: []
not expect values: []
23:05:22 test_sonic.run_scenario L0244 INFO |
execute command result:
23:05:22 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:05:22 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:05:22 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Assign IPv4 on R-2
node name: R-2
23:05:22 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}, {'command': 'sudo config interface ip add Ethernet4 10.1.1.2/30'}, {'command': 'sudo config interface ip add Ethernet8 10.1.1.6/30'}, {'command': 'sudo config interface ip add Ethernet12 10.1.3.1/24'}, {'command': 'sudo config interface ip add Ethernet16 10.20.0.1/24'}, {'command': 'sudo config interface ip add Ethernet20 10.20.1.1/24'}]
sub scenario expect mode: and
sub scenario expect values: [[], [], [], [], [], [], [], []]
sub scenario not expect values: [[], [], [], [], [], [], [], []]
sub scenario retries: 5
sub scenario delay: 1
23:05:22 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}
expect values: []
not expect values: []
23:05:29 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:05:21 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:05:29 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:05:29 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:05:21 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:05:29 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}
expect values: []
not expect values: []
23:05:37 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:05:28 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:05:37 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:05:37 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:05:28 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:05:37 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}
expect values: []
not expect values: []
23:05:44 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:05:36 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:05:44 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:05:44 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:05:36 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:05:44 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet4 10.1.1.2/30'}
expect values: []
not expect values: []
23:05:50 test_sonic.run_scenario L0244 INFO |
execute command result:
23:05:50 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:05:50 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:05:50 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet8 10.1.1.6/30'}
expect values: []
not expect values: []
23:05:55 test_sonic.run_scenario L0244 INFO |
execute command result:
23:05:55 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:05:55 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:05:55 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet12 10.1.3.1/24'}
expect values: []
not expect values: []
23:06:01 test_sonic.run_scenario L0244 INFO |
execute command result:
23:06:01 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:06:01 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:06:01 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet16 10.20.0.1/24'}
expect values: []
not expect values: []
23:06:07 test_sonic.run_scenario L0244 INFO |
execute command result:
23:06:07 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:06:07 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:06:07 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet20 10.20.1.1/24'}
expect values: []
not expect values: []
23:06:13 test_sonic.run_scenario L0244 INFO |
execute command result:
23:06:13 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:06:13 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:06:13 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Assign IPv4 on R-3
node name: R-3
23:06:13 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}, {'command': 'sudo config interface ip add Ethernet0 10.1.1.10/30'}, {'command': 'sudo config interface ip add Ethernet8 10.1.3.2/24'}, {'command': 'sudo config interface ip add Ethernet12 10.30.0.1/24'}, {'command': 'sudo config interface ip add Ethernet16 10.30.1.1/24'}]
sub scenario expect mode: and
sub scenario expect values: [[], [], [], [], [], [], []]
sub scenario not expect values: [[], [], [], [], [], [], []]
sub scenario retries: 5
sub scenario delay: 1
23:06:13 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}
expect values: []
not expect values: []
23:06:20 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:06:12 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:06:20 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:06:20 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:06:12 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:06:20 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}
expect values: []
not expect values: []
23:06:28 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:06:19 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:06:28 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:06:28 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:06:19 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:06:28 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}
expect values: []
not expect values: []
23:06:35 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:06:27 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:06:35 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:06:35 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:06:27 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:06:35 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet0 10.1.1.10/30'}
expect values: []
not expect values: []
23:06:41 test_sonic.run_scenario L0244 INFO |
execute command result:
23:06:41 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:06:41 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:06:41 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet8 10.1.3.2/24'}
expect values: []
not expect values: []
23:06:46 test_sonic.run_scenario L0244 INFO |
execute command result:
23:06:46 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:06:46 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:06:46 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet12 10.30.0.1/24'}
expect values: []
not expect values: []
23:06:52 test_sonic.run_scenario L0244 INFO |
execute command result:
23:06:52 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:06:52 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:06:52 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet16 10.30.1.1/24'}
expect values: []
not expect values: []
23:06:57 test_sonic.run_scenario L0244 INFO |
execute command result:
23:06:57 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:06:57 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:06:57 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Assign IPv4 on R-4
node name: R-4
23:06:57 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}, {'command': 'sudo config interface ip add Ethernet4 10.1.4.1/24'}, {'command': 'sudo config interface ip add Ethernet8 10.1.3.3/24'}, {'command': 'sudo config interface ip add Ethernet12 10.40.0.1/24'}, {'command': 'sudo config interface ip add Ethernet16 10.40.1.1/24'}]
sub scenario expect mode: and
sub scenario expect values: [[], [], [], [], [], [], []]
sub scenario not expect values: [[], [], [], [], [], [], []]
sub scenario retries: 5
sub scenario delay: 1
23:06:57 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}
expect values: []
not expect values: []
23:07:05 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:06:56 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:07:05 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:07:05 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:06:56 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:07:05 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}
expect values: []
not expect values: []
23:07:12 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:07:03 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:07:12 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:07:12 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:07:03 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:07:12 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}
expect values: []
not expect values: []
23:07:20 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:07:11 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:07:20 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:07:20 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:07:11 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:07:20 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet4 10.1.4.1/24'}
expect values: []
not expect values: []
23:07:26 test_sonic.run_scenario L0244 INFO |
execute command result:
23:07:26 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:07:26 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:07:26 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet8 10.1.3.3/24'}
expect values: []
not expect values: []
23:07:31 test_sonic.run_scenario L0244 INFO |
execute command result:
23:07:31 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:07:31 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:07:31 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet12 10.40.0.1/24'}
expect values: []
not expect values: []
23:07:37 test_sonic.run_scenario L0244 INFO |
execute command result:
23:07:37 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:07:37 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:07:37 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet16 10.40.1.1/24'}
expect values: []
not expect values: []
23:07:42 test_sonic.run_scenario L0244 INFO |
execute command result:
23:07:42 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:07:42 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:07:42 test_sonic.run_scenario L0108 INFO |
step 1) scenario name:MED Attribute Function
23:07:42 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Default - Set Default
node name: R-1
23:07:42 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.1.2 remote-as 200" \\\n-c "neighbor 10.1.1.2 route-map permit-all in" \\\n-c "neighbor 10.1.1.2 route-map permit-all out" \\\n-c "neighbor 10.1.1.10 remote-as 100" \\\n-c "neighbor 10.1.1.10 route-map permit-all in" \\\n-c "neighbor 10.1.1.10 route-map permit-all out" \\\n-c "network 10.1.1.8/30" \\\n-c "do show running-config" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:07:42 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.1.2 remote-as 200" \\\n-c "neighbor 10.1.1.2 route-map permit-all in" \\\n-c "neighbor 10.1.1.2 route-map permit-all out" \\\n-c "neighbor 10.1.1.10 remote-as 100" \\\n-c "neighbor 10.1.1.10 route-map permit-all in" \\\n-c "neighbor 10.1.1.10 route-map permit-all out" \\\n-c "network 10.1.1.8/30" \\\n-c "do show running-config" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:07:48 test_sonic.run_scenario L0244 INFO |
execute command result:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-1
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 100
neighbor 10.1.1.2 remote-as 200
neighbor 10.1.1.10 remote-as 100
!
address-family ipv4 unicast
network 10.1.1.8/30
neighbor 10.1.1.2 route-map permit-all in
neighbor 10.1.1.2 route-map permit-all out
neighbor 10.1.1.10 route-map permit-all in
neighbor 10.1.1.10 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:07:48 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:07:48 test_sonic.run_scenario L0252 INFO | [R-1] Auto Ping Verification to neighbor: 10.1.1.2
23:07:50 test_sonic.run_scenario L0254 INFO | [R-1] Ping result:
PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
64 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=0.885 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=0.885 ms
64 bytes from 10.1.1.2: icmp_seq=3 ttl=64 time=1.01 ms
--- 10.1.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.885/0.928/1.014/0.060 ms
23:07:50 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-1
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 100
neighbor 10.1.1.2 remote-as 200
neighbor 10.1.1.10 remote-as 100
!
address-family ipv4 unicast
network 10.1.1.8/30
neighbor 10.1.1.2 route-map permit-all in
neighbor 10.1.1.2 route-map permit-all out
neighbor 10.1.1.10 route-map permit-all in
neighbor 10.1.1.10 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:07:50 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Default - Set Default
node name: R-2
23:07:50 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 200" \\\n-c "neighbor 10.1.1.1 remote-as 100" \\\n-c "neighbor 10.1.1.1 route-map permit-all in" \\\n-c "neighbor 10.1.1.1 route-map permit-all out" \\\n-c "neighbor 10.1.3.2 remote-as 100" \\\n-c "neighbor 10.1.3.2 route-map permit-all in" \\\n-c "neighbor 10.1.3.2 route-map permit-all out" \\\n-c "neighbor 10.1.3.2 next-hop-self" \\\n-c "neighbor 10.1.3.3 remote-as 400" \\\n-c "neighbor 10.1.3.3 route-map permit-all in" \\\n-c "neighbor 10.1.3.3 route-map permit-all out" \\\n-c "neighbor 10.1.3.3 next-hop-self" \\\n-c "do show running-config" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:07:50 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 200" \\\n-c "neighbor 10.1.1.1 remote-as 100" \\\n-c "neighbor 10.1.1.1 route-map permit-all in" \\\n-c "neighbor 10.1.1.1 route-map permit-all out" \\\n-c "neighbor 10.1.3.2 remote-as 100" \\\n-c "neighbor 10.1.3.2 route-map permit-all in" \\\n-c "neighbor 10.1.3.2 route-map permit-all out" \\\n-c "neighbor 10.1.3.2 next-hop-self" \\\n-c "neighbor 10.1.3.3 remote-as 400" \\\n-c "neighbor 10.1.3.3 route-map permit-all in" \\\n-c "neighbor 10.1.3.3 route-map permit-all out" \\\n-c "neighbor 10.1.3.3 next-hop-self" \\\n-c "do show running-config" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:07:56 test_sonic.run_scenario L0244 INFO |
execute command result:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-2
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 200
neighbor 10.1.1.1 remote-as 100
neighbor 10.1.3.2 remote-as 100
neighbor 10.1.3.3 remote-as 400
!
address-family ipv4 unicast
neighbor 10.1.1.1 route-map permit-all in
neighbor 10.1.1.1 route-map permit-all out
neighbor 10.1.3.2 next-hop-self
neighbor 10.1.3.2 route-map permit-all in
neighbor 10.1.3.2 route-map permit-all out
neighbor 10.1.3.3 next-hop-self
neighbor 10.1.3.3 route-map permit-all in
neighbor 10.1.3.3 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:07:56 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:07:56 test_sonic.run_scenario L0252 INFO | [R-2] Auto Ping Verification to neighbor: 10.1.1.1
23:07:58 test_sonic.run_scenario L0254 INFO | [R-2] Ping result:
PING 10.1.1.1 (10.1.1.1) 56(84) bytes of data.
64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=0.709 ms
64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=0.941 ms
64 bytes from 10.1.1.1: icmp_seq=3 ttl=64 time=0.464 ms
--- 10.1.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2010ms
rtt min/avg/max/mdev = 0.464/0.704/0.941/0.194 ms
23:07:58 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-2
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 200
neighbor 10.1.1.1 remote-as 100
neighbor 10.1.3.2 remote-as 100
neighbor 10.1.3.3 remote-as 400
!
address-family ipv4 unicast
neighbor 10.1.1.1 route-map permit-all in
neighbor 10.1.1.1 route-map permit-all out
neighbor 10.1.3.2 next-hop-self
neighbor 10.1.3.2 route-map permit-all in
neighbor 10.1.3.2 route-map permit-all out
neighbor 10.1.3.3 next-hop-self
neighbor 10.1.3.3 route-map permit-all in
neighbor 10.1.3.3 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:07:58 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Default - Set Default
node name: R-3
23:07:58 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 100" \\\n-c "network 10.1.1.8/30" \\\n-c "neighbor 10.1.1.9 remote-as 100" \\\n-c "neighbor 10.1.1.9 route-map permit-all in" \\\n-c "neighbor 10.1.1.9 route-map permit-all out" \\\n-c "neighbor 10.1.3.1 remote-as 200" \\\n-c "neighbor 10.1.3.1 route-map permit-all in" \\\n-c "neighbor 10.1.3.1 route-map permit-all out" \\\n-c "do show running-config" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:07:58 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 100" \\\n-c "network 10.1.1.8/30" \\\n-c "neighbor 10.1.1.9 remote-as 100" \\\n-c "neighbor 10.1.1.9 route-map permit-all in" \\\n-c "neighbor 10.1.1.9 route-map permit-all out" \\\n-c "neighbor 10.1.3.1 remote-as 200" \\\n-c "neighbor 10.1.3.1 route-map permit-all in" \\\n-c "neighbor 10.1.3.1 route-map permit-all out" \\\n-c "do show running-config" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:08:04 test_sonic.run_scenario L0244 INFO |
execute command result:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-3
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 100
neighbor 10.1.1.9 remote-as 100
neighbor 10.1.3.1 remote-as 200
!
address-family ipv4 unicast
network 10.1.1.8/30
neighbor 10.1.1.9 route-map permit-all in
neighbor 10.1.1.9 route-map permit-all out
neighbor 10.1.3.1 route-map permit-all in
neighbor 10.1.3.1 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:08:04 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:08:04 test_sonic.run_scenario L0252 INFO | [R-3] Auto Ping Verification to neighbor: 10.1.1.9
23:08:06 test_sonic.run_scenario L0254 INFO | [R-3] Ping result:
PING 10.1.1.9 (10.1.1.9) 56(84) bytes of data.
64 bytes from 10.1.1.9: icmp_seq=1 ttl=64 time=0.713 ms
64 bytes from 10.1.1.9: icmp_seq=2 ttl=64 time=0.886 ms
64 bytes from 10.1.1.9: icmp_seq=3 ttl=64 time=0.881 ms
--- 10.1.1.9 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.713/0.826/0.886/0.080 ms
23:08:06 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-3
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 100
neighbor 10.1.1.9 remote-as 100
neighbor 10.1.3.1 remote-as 200
!
address-family ipv4 unicast
network 10.1.1.8/30
neighbor 10.1.1.9 route-map permit-all in
neighbor 10.1.1.9 route-map permit-all out
neighbor 10.1.3.1 route-map permit-all in
neighbor 10.1.3.1 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:08:06 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Default - Set Default
node name: R-4
23:08:06 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 400" \\\n-c "neighbor 10.1.3.1 remote-as 200" \\\n-c "neighbor 10.1.3.1 route-map permit-all in" \\\n-c "neighbor 10.1.3.1 route-map permit-all out" \\\n-c "do show running-config" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:08:06 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 400" \\\n-c "neighbor 10.1.3.1 remote-as 200" \\\n-c "neighbor 10.1.3.1 route-map permit-all in" \\\n-c "neighbor 10.1.3.1 route-map permit-all out" \\\n-c "do show running-config" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:08:11 test_sonic.run_scenario L0244 INFO |
execute command result:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-4
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 400
neighbor 10.1.3.1 remote-as 200
!
address-family ipv4 unicast
neighbor 10.1.3.1 route-map permit-all in
neighbor 10.1.3.1 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:08:11 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:08:11 test_sonic.run_scenario L0252 INFO | [R-4] Auto Ping Verification to neighbor: 10.1.3.1
23:08:14 test_sonic.run_scenario L0254 INFO | [R-4] Ping result:
PING 10.1.3.1 (10.1.3.1) 56(84) bytes of data.
64 bytes from 10.1.3.1: icmp_seq=1 ttl=64 time=0.863 ms
64 bytes from 10.1.3.1: icmp_seq=2 ttl=64 time=0.686 ms
64 bytes from 10.1.3.1: icmp_seq=3 ttl=64 time=0.671 ms
--- 10.1.3.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2025ms
rtt min/avg/max/mdev = 0.671/0.740/0.863/0.087 ms
23:08:14 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-4
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 400
neighbor 10.1.3.1 remote-as 200
!
address-family ipv4 unicast
neighbor 10.1.3.1 route-map permit-all in
neighbor 10.1.3.1 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:08:14 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Verification default
node name: R-2
23:08:14 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "show ip bgp"'}]
sub scenario expect mode: and
sub scenario expect values: [['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']]
sub scenario not expect values: [[]]
sub scenario retries: 10
sub scenario delay: 10
23:08:14 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "show ip bgp"'}
expect values: ['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
not expect values: []
23:08:19 test_sonic.run_scenario L0244 INFO |
execute command result:
BGP table version is 2, local router ID is 10.250.0.52, vrf id 0
Default local pref 100, local AS 200
Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.1.8/30 10.1.1.1 0 0 100 i
*= 10.1.3.2 0 0 100 i
Displayed 1 routes and 2 total paths
23:08:19 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:08:19 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
BGP table version is 2, local router ID is 10.250.0.52, vrf id 0
Default local pref 100, local AS 200
Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.1.8/30 10.1.1.1 0 0 100 i
*= 10.1.3.2 0 0 100 i
Displayed 1 routes and 2 total paths
23:08:19 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Verification default
node name: R-2
23:08:19 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "show ip route"'}]
sub scenario expect mode: and
sub scenario expect values: [['B>* 10.1.1.8/30 [20/0] via 10.1.1.1, Ethernet4']]
sub scenario not expect values: [[]]
sub scenario retries: 10
sub scenario delay: 10
23:08:19 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "show ip route"'}
expect values: ['B>* 10.1.1.8/30 [20/0] via 10.1.1.1, Ethernet4']
not expect values: []
23:08:25 test_sonic.run_scenario L0244 INFO |
execute command result:
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
C>* 10.1.1.0/30 is directly connected, Ethernet4, weight 1, 00:02:35
K 10.1.1.0/30 [0/0] is directly connected, Ethernet4, weight 1, 00:02:35
C>* 10.1.1.4/30 is directly connected, Ethernet8, weight 1, 00:02:30
B>* 10.1.1.8/30 [20/0] via 10.1.1.1, Ethernet4, weight 1, 00:00:19
* via 10.1.3.2, Ethernet12, weight 1, 00:00:19
C>* 10.1.3.0/24 is directly connected, Ethernet12, weight 1, 00:02:24
C>* 10.20.0.0/24 is directly connected, Ethernet16, weight 1, 00:02:18
K 10.20.0.0/24 [0/0] is directly connected, Ethernet16, weight 1, 00:02:18
C>* 10.20.1.0/24 is directly connected, Ethernet20, weight 1, 00:02:12
K 10.20.1.0/24 [0/0] is directly connected, Ethernet20, weight 1, 00:02:12
C>* 10.250.0.0/24 is directly connected, eth0, weight 1, 00:09:39
K 240.127.1.0/24 [0/0] is directly connected, docker0 inactive linkdown, weight 1, 00:09:39
23:08:25 test_sonic.run_scenario L0245 INFO |
expect value in result:
['B>* 10.1.1.8/30 [20/0] via 10.1.1.1, Ethernet4']
23:08:25 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
C>* 10.1.1.0/30 is directly connected, Ethernet4, weight 1, 00:02:35
K 10.1.1.0/30 [0/0] is directly connected, Ethernet4, weight 1, 00:02:35
C>* 10.1.1.4/30 is directly connected, Ethernet8, weight 1, 00:02:30
B>* 10.1.1.8/30 [20/0] via 10.1.1.1, Ethernet4, weight 1, 00:00:19
* via 10.1.3.2, Ethernet12, weight 1, 00:00:19
C>* 10.1.3.0/24 is directly connected, Ethernet12, weight 1, 00:02:24
C>* 10.20.0.0/24 is directly connected, Ethernet16, weight 1, 00:02:18
K 10.20.0.0/24 [0/0] is directly connected, Ethernet16, weight 1, 00:02:18
C>* 10.20.1.0/24 is directly connected, Ethernet20, weight 1, 00:02:12
K 10.20.1.0/24 [0/0] is directly connected, Ethernet20, weight 1, 00:02:12
C>* 10.250.0.0/24 is directly connected, eth0, weight 1, 00:09:39
K 240.127.1.0/24 [0/0] is directly connected, docker0 inactive linkdown, weight 1, 00:09:39
23:08:25 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Set route-map
node name: R-1
23:08:25 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map SET-MED permit 10" \\\n-c "set metric 100" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:08:25 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map SET-MED permit 10" \\\n-c "set metric 100" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:08:30 test_sonic.run_scenario L0244 INFO |
execute command result:
23:08:30 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:08:30 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:08:30 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Set route-map
node name: R-3
23:08:30 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map SET-MED permit 10" \\\n-c "set metric 50" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:08:30 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map SET-MED permit 10" \\\n-c "set metric 50" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:08:36 test_sonic.run_scenario L0244 INFO |
execute command result:
23:08:36 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:08:36 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:08:36 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Set neighbor route-map
node name: R-1
23:08:36 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.1.2 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.1.2 soft out"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:08:36 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.1.2 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.1.2 soft out"\n'}
expect values: []
not expect values: []
23:08:41 test_sonic.run_scenario L0244 INFO |
execute command result:
23:08:41 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:08:41 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:08:41 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Set neighbor route-map
node name: R-3
23:08:41 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.3.1 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.3.1 soft out"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:08:41 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.3.1 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.3.1 soft out"\n'}
expect values: []
not expect values: []
23:08:46 test_sonic.run_scenario L0244 INFO |
execute command result:
23:08:46 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:08:46 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:08:46 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Verification neighbor route-map
node name: R-2
23:08:46 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "show ip bgp"'}]
sub scenario expect mode: and
sub scenario expect values: [['10.1.3.2 50 0 100 i', '10.1.1.1 100 0 100 i']]
sub scenario not expect values: [[]]
sub scenario retries: 10
sub scenario delay: 10
23:08:46 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "show ip bgp"'}
expect values: ['10.1.3.2 50 0 100 i', '10.1.1.1 100 0 100 i']
not expect values: []
23:08:52 test_sonic.run_scenario L0244 INFO |
execute command result:
BGP table version is 4, local router ID is 10.250.0.52, vrf id 0
Default local pref 100, local AS 200
Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.1.8/30 10.1.3.2 50 0 100 i
* 10.1.1.1 100 0 100 i
Displayed 1 routes and 2 total paths
23:08:52 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.3.2 50 0 100 i', '10.1.1.1 100 0 100 i']
23:08:52 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
BGP table version is 4, local router ID is 10.250.0.52, vrf id 0
Default local pref 100, local AS 200
Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.1.8/30 10.1.3.2 50 0 100 i
* 10.1.1.1 100 0 100 i
Displayed 1 routes and 2 total paths
23:08:52 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Verification neighbor route-map
node name: R-2
23:08:52 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "show ip route"'}]
sub scenario expect mode: and
sub scenario expect values: [['B>* 10.1.1.8/30 [20/50] via 10.1.3.2, Ethernet12']]
sub scenario not expect values: [[]]
sub scenario retries: 10
sub scenario delay: 10
23:08:52 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "show ip route"'}
expect values: ['B>* 10.1.1.8/30 [20/50] via 10.1.3.2, Ethernet12']
not expect values: []
23:08:57 test_sonic.run_scenario L0244 INFO |
execute command result:
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
C>* 10.1.1.0/30 is directly connected, Ethernet4, weight 1, 00:03:07
K 10.1.1.0/30 [0/0] is directly connected, Ethernet4, weight 1, 00:03:07
C>* 10.1.1.4/30 is directly connected, Ethernet8, weight 1, 00:03:02
B>* 10.1.1.8/30 [20/50] via 10.1.3.2, Ethernet12, weight 1, 00:00:10
C>* 10.1.3.0/24 is directly connected, Ethernet12, weight 1, 00:02:56
C>* 10.20.0.0/24 is directly connected, Ethernet16, weight 1, 00:02:50
K 10.20.0.0/24 [0/0] is directly connected, Ethernet16, weight 1, 00:02:50
C>* 10.20.1.0/24 is directly connected, Ethernet20, weight 1, 00:02:44
K 10.20.1.0/24 [0/0] is directly connected, Ethernet20, weight 1, 00:02:44
C>* 10.250.0.0/24 is directly connected, eth0, weight 1, 00:10:11
K 240.127.1.0/24 [0/0] is directly connected, docker0 inactive linkdown, weight 1, 00:10:11
23:08:57 test_sonic.run_scenario L0245 INFO |
expect value in result:
['B>* 10.1.1.8/30 [20/50] via 10.1.3.2, Ethernet12']
23:08:57 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
C>* 10.1.1.0/30 is directly connected, Ethernet4, weight 1, 00:03:07
K 10.1.1.0/30 [0/0] is directly connected, Ethernet4, weight 1, 00:03:07
C>* 10.1.1.4/30 is directly connected, Ethernet8, weight 1, 00:03:02
B>* 10.1.1.8/30 [20/50] via 10.1.3.2, Ethernet12, weight 1, 00:00:10
C>* 10.1.3.0/24 is directly connected, Ethernet12, weight 1, 00:02:56
C>* 10.20.0.0/24 is directly connected, Ethernet16, weight 1, 00:02:50
K 10.20.0.0/24 [0/0] is directly connected, Ethernet16, weight 1, 00:02:50
C>* 10.20.1.0/24 is directly connected, Ethernet20, weight 1, 00:02:44
K 10.20.1.0/24 [0/0] is directly connected, Ethernet20, weight 1, 00:02:44
C>* 10.250.0.0/24 is directly connected, eth0, weight 1, 00:10:11
K 240.127.1.0/24 [0/0] is directly connected, docker0 inactive linkdown, weight 1, 00:10:11
23:08:57 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Delete neighbor route-map
node name: R-1
23:08:57 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "no neighbor 10.1.1.2 route-map SET-MED out" \\\n-c "no neighbor 10.1.1.2 route-map permit-all out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.1.2 soft out"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:08:57 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "no neighbor 10.1.1.2 route-map SET-MED out" \\\n-c "no neighbor 10.1.1.2 route-map permit-all out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.1.2 soft out"\n'}
expect values: []
not expect values: []
23:09:03 test_sonic.run_scenario L0244 INFO |
execute command result:
23:09:03 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:09:03 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:09:03 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Delete neighbor route-map
node name: R-3
23:09:03 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "no neighbor 10.1.3.1 route-map SET-MED out" \\\n-c "no neighbor 10.1.3.1 route-map permit-all out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.3.1 soft out"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:09:03 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "no neighbor 10.1.3.1 route-map SET-MED out" \\\n-c "no neighbor 10.1.3.1 route-map permit-all out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.3.1 soft out"\n'}
expect values: []
not expect values: []
23:09:08 test_sonic.run_scenario L0244 INFO |
execute command result:
23:09:08 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:09:08 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:09:08 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Delete route-map
node name: R-1
23:09:08 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "no route-map SET-MED permit 10" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:09:08 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "no route-map SET-MED permit 10" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:09:14 test_sonic.run_scenario L0244 INFO |
execute command result:
23:09:14 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:09:14 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:09:14 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Delete route-map
node name: R-3
23:09:14 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "no route-map SET-MED permit 10" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:09:14 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "no route-map SET-MED permit 10" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:09:19 test_sonic.run_scenario L0244 INFO |
execute command result:
23:09:19 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:09:19 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:09:19 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Verification default
node name: R-2
23:09:19 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "show ip bgp"'}]
sub scenario expect mode: and
sub scenario expect values: [['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']]
sub scenario not expect values: [[]]
sub scenario retries: 10
sub scenario delay: 10
23:09:19 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "show ip bgp"'}
expect values: ['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
not expect values: []
23:09:24 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:09:24 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:09:24 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((1/10 attempts)
23:09:40 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:09:40 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:09:40 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((2/10 attempts)
23:09:55 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:09:55 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:09:55 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((3/10 attempts)
23:10:11 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:10:11 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:10:11 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((4/10 attempts)
23:10:26 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:10:26 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:10:26 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((5/10 attempts)
23:10:42 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:10:42 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:10:42 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((6/10 attempts)
23:10:57 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:10:57 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:10:57 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((7/10 attempts)
23:11:13 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:11:13 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:11:13 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((8/10 attempts)
23:11:28 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:11:28 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:11:28 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((9/10 attempts)
23:11:44 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:11:44 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:11:44 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((10/10 attempts)
23:11:54 test_sonic.run_scenario L0292 ERROR | Test failed after 10 retries for command: vtysh -c "show ip bgp"
23:11:54 test_sonic.run_scenario L0293 ERROR | Final output was:
No BGP prefixes displayed, 0 exist
23:11:54 __init__.pytest_runtest_call L0040 ERROR | Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 1788, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 194, in pytest_pyfunc_call
result = testfunction(**testargs)
File "/data/NetAutoTestFW/tests/test_sonic/test_sonic.py", line 413, in test_scenario
run_scenario(duthosts, ubuntus, vmhost, parse_scenario, record_property, reload_config, sonicHostname, sonic_ssh_prompt, ubuntuHostname, ubuntu_ssh_prompt)
File "/data/NetAutoTestFW/tests/test_sonic/test_sonic.py", line 294, in run_scenario
assert False, error_message
AssertionError: Test failed after 10 retries for command: vtysh -c "show ip bgp"
ERROR:root:Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 1788, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 194, in pytest_pyfunc_call
result = testfunction(**testargs)
File "/data/NetAutoTestFW/tests/test_sonic/test_sonic.py", line 413, in test_scenario
run_scenario(duthosts, ubuntus, vmhost, parse_scenario, record_property, reload_config, sonicHostname, sonic_ssh_prompt, ubuntuHostname, ubuntu_ssh_prompt)
File "/data/NetAutoTestFW/tests/test_sonic/test_sonic.py", line 294, in run_scenario
assert False, error_message
AssertionError: Test failed after 10 retries for command: vtysh -c "show ip bgp"
FAILEDINFO:SectionStartLogger:==================== test_sonic/test_sonic.py::test_scenario teardown ====================
TEARDOWN F record_property
------------------------------ live log teardown -------------------------------
23:11:54 __init__.loganalyzer L0074 INFO | Starting to analyse on all SONiC Devices
23:11:58 parallel.on_terminate L0085 INFO | process analyze_logs-- terminated with exit code None
23:11:59 parallel.on_terminate L0085 INFO | process analyze_logs-- terminated with exit code None
23:11:59 parallel.on_terminate L0085 INFO | process analyze_logs-- terminated with exit code None
23:11:59 parallel.on_terminate L0085 INFO | process analyze_logs-- terminated with exit code None
23:11:59 parallel.parallel_run L0221 INFO | Completed running processes for target "analyze_logs" in 0:00:05.048649 seconds
TEARDOWN F loganalyzer
TEARDOWN M ubuntu_paramiko_ssh
TEARDOWN M sonic_paramiko_ssh23:11:59 config_reload.config_reload L0144 INFO | reloading config_db
23:13:20 processes_utils.wait_critical_processes L0076 INFO | Wait until all critical processes are healthy in 300 sec
23:13:20 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:13:24 processes_utils.get_critical_processes_s L0035 INFO | The status of checking process in container 'snmp' is: False
23:13:24 processes_utils.get_critical_processes_s L0037 INFO | The processes not running in container 'snmp' are: '['snmp-subagent']'
23:13:44 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:13:48 config_reload.config_reload L0144 INFO | reloading config_db
23:15:11 processes_utils.wait_critical_processes L0076 INFO | Wait until all critical processes are healthy in 300 sec
23:15:11 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:15:15 processes_utils.get_critical_processes_s L0035 INFO | The status of checking process in container 'snmp' is: False
23:15:15 processes_utils.get_critical_processes_s L0037 INFO | The processes not running in container 'snmp' are: '['snmp-subagent', 'snmpd']'
23:15:35 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:15:39 config_reload.config_reload L0144 INFO | reloading config_db
23:17:00 processes_utils.wait_critical_processes L0076 INFO | Wait until all critical processes are healthy in 300 sec
23:17:00 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:17:05 processes_utils.get_critical_processes_s L0035 INFO | The status of checking process in container 'snmp' is: False
23:17:05 processes_utils.get_critical_processes_s L0037 INFO | The processes not running in container 'snmp' are: '['snmp-subagent']'
23:17:25 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:17:29 config_reload.config_reload L0144 INFO | reloading config_db
23:18:51 processes_utils.wait_critical_processes L0076 INFO | Wait until all critical processes are healthy in 300 sec
23:18:51 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:18:55 processes_utils.get_critical_processes_s L0035 INFO | The status of checking process in container 'snmp' is: False
23:18:55 processes_utils.get_critical_processes_s L0037 INFO | The processes not running in container 'snmp' are: '['snmp-subagent']'
23:19:15 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
TEARDOWN M reload_config23:19:29 conftest.setup_trex_daemons L0465 INFO | [Teardown] Test finished. TRex daemon stopped: set()
TEARDOWN M setup_trex_daemons
TEARDOWN M parse_scenario23:19:29 conftest.core_dump_and_config_check L0636 INFO | Dumping Disk and Memory Space informataion after test on R-1
23:19:30 conftest.core_dump_and_config_check L0640 INFO | Collecting core dumps after test on R-1
23:19:30 conftest.core_dump_and_config_check L0658 INFO | Collecting running config after test on R-1
23:19:31 conftest.core_dump_and_config_check L0636 INFO | Dumping Disk and Memory Space informataion after test on R-2
23:19:32 conftest.core_dump_and_config_check L0640 INFO | Collecting core dumps after test on R-2
23:19:32 conftest.core_dump_and_config_check L0658 INFO | Collecting running config after test on R-2
23:19:32 conftest.core_dump_and_config_check L0636 INFO | Dumping Disk and Memory Space informataion after test on R-3
23:19:33 conftest.core_dump_and_config_check L0640 INFO | Collecting core dumps after test on R-3
23:19:34 conftest.core_dump_and_config_check L0658 INFO | Collecting running config after test on R-3
23:19:34 conftest.core_dump_and_config_check L0636 INFO | Dumping Disk and Memory Space informataion after test on R-4
23:19:35 conftest.core_dump_and_config_check L0640 INFO | Collecting core dumps after test on R-4
23:19:35 conftest.core_dump_and_config_check L0658 INFO | Collecting running config after test on R-4
23:19:36 conftest.core_dump_and_config_check L0796 INFO | Core dump and config check passed for test_sonic/test_sonic.py
TEARDOWN M core_dump_and_config_check
TEARDOWN M sanity_check
TEARDOWN S parallel_run_context
TEARDOWN S vmhost
TEARDOWN S tag_test_report
TEARDOWN S record_testsuite_property
TEARDOWN S ubuntus
TEARDOWN S pytestconfig
TEARDOWN S add_mgmt_test_mark
TEARDOWN S duthosts
TEARDOWN S ansible_adhoc
TEARDOWN S enhance_inventory
TEARDOWN S tbinfoDEBUG:tests.conftest:[log_custom_msg] item:
=================================== FAILURES ===================================
________________________________ test_scenario _________________________________
duthosts = [, , , ]
ubuntus = []
vmhost =
parse_scenario =
record_property = .append_property at 0x70174cf8ea60>
reload_config = None
sonic_paramiko_ssh = (['R-1', 'R-2', 'R-3', 'R-4'], ['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_6... https://sonic-net.github.io/SONiC/\r\n\r\nLast login: Mon Sep 21 22:48:05 2026 from 10.250.0.1\r\r\nadmin@R-4:~$ '])
ubuntu_paramiko_ssh = ([], [])
def test_scenario(duthosts, ubuntus, vmhost, parse_scenario, record_property, reload_config, sonic_paramiko_ssh, ubuntu_paramiko_ssh):
sonicHostname, sonic_ssh_prompt = sonic_paramiko_ssh
ubuntuHostname, ubuntu_ssh_prompt = ubuntu_paramiko_ssh
> run_scenario(duthosts, ubuntus, vmhost, parse_scenario, record_property, reload_config, sonicHostname, sonic_ssh_prompt, ubuntuHostname, ubuntu_ssh_prompt)
duthosts = [, , , ]
parse_scenario =
record_property = .append_property at 0x70174cf8ea60>
reload_config = None
sonicHostname = ['R-1', 'R-2', 'R-3', 'R-4']
sonic_paramiko_ssh = (['R-1', 'R-2', 'R-3', 'R-4'],
['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:00 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-1:~$ ',
'Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:02 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-2:~$ ',
'Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:04 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-3:~$ ',
'Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:05 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-4:~$ '])
sonic_ssh_prompt = ['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:00 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-1:~$ ',
'Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:02 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-2:~$ ',
'Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:04 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-3:~$ ',
'Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:05 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-4:~$ ']
ubuntuHostname = []
ubuntu_paramiko_ssh = ([], [])
ubuntu_ssh_prompt = []
ubuntus = []
vmhost =
test_sonic/test_sonic.py:413:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
duthosts = [, , , ]
ubuntus = []
vmhost =
parse_scenario =
record_property = .append_property at 0x70174cf8ea60>
reload_config = None, sonicHostname = ['R-1', 'R-2', 'R-3', 'R-4']
sonic_ssh_prompt = ['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64\r\nYou are on\r\n ____ ___... https://sonic-net.github.io/SONiC/\r\n\r\nLast login: Mon Sep 21 22:48:05 2026 from 10.250.0.1\r\r\nadmin@R-4:~$ ']
ubuntuHostname = [], ubuntu_ssh_prompt = []
def run_scenario(duthosts, ubuntus, vmhost, parse_scenario, record_property, reload_config, sonicHostname, sonic_ssh_prompt, ubuntuHostname, ubuntu_ssh_prompt):
duthost = duthosts
ubuntu = ubuntus
server = vmhost
logger.info('test device hostname: {}'.format(duthost.hostname))
logger.info('server hostname: {}'.format(server.hostname))
# Parsing Scenario data
scenario = parse_scenario
logger.info('step 0) scenario_data:\n{}'.format(scenario))
# This Section, parsed data save to variable for test
for keys in scenario:
scenario_name = keys['scenario_name']
logger.info('\nstep 1) scenario name:{}'.format(scenario_name))
record_property("Scenario_name","{}".format(scenario_name))
for tasks in keys['steps']:
sub_scenario_name = tasks['name']
if scenario_name == "Print Topology Image":
topo_img_path = tasks['img_path']
topo_img_name = tasks['img_name']
sum_img_path = topo_img_path + '/' + topo_img_name
start_time = datetime.now().strftime('%H:%M:%S')
assert sum_img_path, record_property("Fail", "Fail")
record_property('Action', sub_scenario_name)
record_property('Session','caller')
record_property('Time Stamp',start_time)
record_property('Pass/Fail','Pass')
record_property('Parameter',topo_img_name)
record_property('Response',sum_img_path)
elif scenario_name == "Session Check":
session_node_name = tasks['node']
logger.info('nodes: {}'.format(session_node_name))
device = sonicHostname + ubuntuHostname
ssh_prompt = sonic_ssh_prompt + ubuntu_ssh_prompt
for dev, ssh in zip(device, ssh_prompt):
if dev == session_node_name:
logger.info('step 1)\nHostname:\n{}\nnode name:\n{}'.format(dev, session_node_name))
logger.info('step 2)\nssh_prompt:\n{}'.format(ssh))
start_time = datetime.now().strftime('%H:%M:%S')
assert dev == session_node_name, record_property("Fail", "Fail")
logger.info('step 3)\n pass')
record_property("Action", sub_scenario_name)
record_property("Session","{}".format(dev))
record_property("Time Stamp",start_time)
record_property("Pass/Fail","Pass")
record_property("Parameter","None")
record_property("Response","{}".format(ssh))
elif 'source' in tasks and 'packet' in tasks:
# Duck-typing: If a step has 'source' and 'packet', it is a Traffic Generation test
logger.info('\nstep 1) Traffic Generation test detected: {}'.format(sub_scenario_name))
start_time = datetime.now().strftime('%H:%M:%S')
execute_traffic_step(tasks, duthost, ubuntu)
# If it successfully returns without assertion failure, we record PASS
record_property("Action", sub_scenario_name)
record_property("Session", tasks['source']['node'])
record_property("Time Stamp", start_time)
record_property("Pass/Fail", "Pass")
record_property("Parameter", "Snappi TRex Traffic ({} pkts)".format(tasks['packet']['tx_packets']))
record_property("Response", "Traffic validation succeeded")
record_property("Judgement", "Success")
else:
node_name = tasks['node']
logger.info('\nstep 1-1) sub scenario name: {}\nnode name: {}'.format(sub_scenario_name, node_name))
if 'template' in tasks:
import yaml
from jinja2 import Template
scenario_path = getattr(parse_scenario, 'scenario_filename', '')
if "bgp/" in scenario_path or "bgp_policy/" in scenario_path:
ip_profile = "bgp_ip"
elif "ospf_routemap_redistribute/" in scenario_path:
ip_profile = "ospf_redist_ip"
else:
ip_profile = "common_ip"
if "vlan/" in scenario_path or "lacp/" in scenario_path or "ip/" in scenario_path:
start_daemons = False
else:
start_daemons = True
try:
with open("/data/NetAutoTestFW/ansible/vsonic_vtb", "r") as f:
vtb = yaml.safe_load(f)
ip_map = vtb['all']['children']['sonic_r']['vars'].get(ip_profile, {})
target_ips = ip_map.get(node_name, [])
except Exception as e:
logger.error(f"Failed to load IP profile from vsonic_vtb: {e}")
target_ips = []
template_path = tasks['template']
with open(f"/data/NetAutoTestFW/{template_path}", "r") as f:
template_content = f.read()
rendered = Template(template_content).render(ip_list=target_ips, start_daemons=start_daemons)
cmds = [cmd.strip() for cmd in rendered.strip().split('\n') if cmd.strip() and not cmd.strip().startswith('#')]
tasks['actions'] = [{'command': cmd} for cmd in cmds]
tasks['expect'] = {'mode': 'and', 'values': [[] for _ in cmds]}
tasks['not_expect'] = {'mode': 'and', 'values': [[] for _ in cmds]}
sub_scenario_actions = tasks['actions']
sub_scenario_expect = tasks.get('expect', {'mode': 'and', 'values': []})
sub_scenario_not_expect = tasks.get('not_expect', {'mode': 'and', 'values': []})
sub_scenario_retries = tasks.get('retries', 5)
sub_scenario_delay = tasks.get('delay', 1)
sub_sce_exp_mode = sub_scenario_expect.get('mode', 'and')
sub_sce_exp_values = sub_scenario_expect.get('values', [])
sub_sce_not_exp_values = sub_scenario_not_expect.get('values', [])
logger.info('\nstep 1-2) sub scenario actions: {}\nsub scenario expect mode: {}\nsub scenario expect values: {}\nsub scenario not expect values: {}\nsub scenario retries: {}\nsub scenario delay: {}'.format(sub_scenario_actions, sub_sce_exp_mode, sub_sce_exp_values, sub_sce_not_exp_values, sub_scenario_retries, sub_scenario_delay))
# This Section, command execute to SONiC Test Device
for dut in duthost:
if node_name == dut.hostname:
for act_command, expect_values, not_expect_values in zip(sub_scenario_actions, sub_sce_exp_values, sub_sce_not_exp_values):
logger.info('\nstep 1-3) act command: {}\nexpect values: {}\nnot expect values: {}'.format(act_command, expect_values, not_expect_values))
single_command = act_command.get('command')
timestamps = datetime.now().strftime('%H:%M:%S')
contain_str = '\n'.join("contain string: {}".format(v) for v in expect_values)
not_contain_str = '\n'.join("not contain string: {}".format(n) for n in not_expect_values)
# trace success function
trace_success = False
output = ""
# This Section, repeat until the output contains the intended value.
for attempt in range(sub_scenario_retries):
execute_cmd = dut.shell(single_command, module_ignore_errors=True)
time.sleep(5)
stdout = execute_cmd.get('stdout', '')
stderr = execute_cmd.get('stderr', '')
output = stdout + '\n' + stderr
nomalized_lines = [' '.join(line.split()) for line in output.splitlines()]
logger.info('\nexecute command result:\n{}'.format(output))
logger.info('\nexpect value in result:\n{}'.format(expect_values))
import re
if 'neighbor' in single_command and 'remote-as' in single_command:
match = re.search(r'neighbor\s+([0-9\.]+)\s+remote-as', single_command)
if match:
neighbor_ip = match.group(1)
logger.info(f"[{node_name}] Auto Ping Verification to neighbor: {neighbor_ip}")
ping_result = dut.shell(f"ping {neighbor_ip} -c 3", module_ignore_errors=True)
logger.info(f"[{node_name}] Ping result:\n{ping_result.get('stdout', '')}")
if ping_result.get('rc', -1) != 0:
logger.warning(f"[{node_name}] Ping failed to {neighbor_ip}")
expect_ok = False
if not expect_values:
expect_ok = True
elif sub_sce_exp_mode == "and":
expect_ok = all(any(val in line for line in nomalized_lines) for val in expect_values)
elif sub_sce_exp_mode == "or":
expect_ok = any(any(val in line for line in nomalized_lines) for val in expect_values)
not_expect_ok = not not_expect_values or all(all(val not in line for line in nomalized_lines) for val in not_expect_values)
condition_met = expect_ok and not_expect_ok
if condition_met:
logger.info('The expected value is included in the printed result.\noutput:\n{}'.format(output))
trace_success = True
if isinstance(output, str) and output.strip():
if not_expect_values == "":
exist_only_expect_values(sub_scenario_name, node_name, timestamps, single_command, output, sub_sce_exp_mode, contain_str, record_property)
elif not_expect_values != "" and expect_values == "":
exist_only_not_expect_values(sub_scenario_name, node_name, timestamps, single_command, output, sub_sce_exp_mode, not_contain_str, record_property)
elif not_expect_values != "" and expect_values != "":
exist_not_expect_and_expect_values(sub_scenario_name, node_name, timestamps, single_command, output, sub_sce_exp_mode, contain_str, not_contain_str, record_property)
else:
empty_expect_and_not_expect_values(sub_scenario_name, node_name, timestamps, single_command, record_property)
break
else:
logger.info('Contidion not met. Retrying in {} seconds...(({}/{} attempts)'.format(sub_scenario_delay, attempt + 1, sub_scenario_retries))
time.sleep(sub_scenario_delay)
if not trace_success:
# If generated AssertionError when test failed
error_message = "Test failed after {} retries for command: {}".format(sub_scenario_retries, single_command)
logger.error(error_message)
logger.error("Final output was:\n{}".format(output))
> assert False, error_message
E AssertionError: Test failed after 10 retries for command: vtysh -c "show ip bgp"
Template =
act_command = {'command': 'vtysh -c "show ip bgp"'}
attempt = 9
cmds = ['docker exec -i bgp bash -c "/usr/lib/frr/ripd &"',
'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"',
'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"',
'sudo config interface ip add Ethernet4 10.1.4.1/24',
'sudo config interface ip add Ethernet8 10.1.3.3/24',
'sudo config interface ip add Ethernet12 10.40.0.1/24',
'sudo config interface ip add Ethernet16 10.40.1.1/24']
condition_met = False
contain_str = 'contain string: 10.1.1.1 0 0 100 i\ncontain string: 10.1.3.2 0 0 100 i'
dev = 'R-4'
device = ['R-1', 'R-2', 'R-3', 'R-4']
dut =
duthost = [, , , ]
duthosts = [, , , ]
error_message = 'Test failed after 10 retries for command: vtysh -c "show ip bgp"'
execute_cmd = {'_ansible_no_log': None,
'changed': True,
'cmd': 'vtysh -c "show ip bgp"',
'delta': '0:00:00.133478',
'end': '2026-09-21 23:11:38.042623',
'failed': False,
'invocation': {'module_args': {'_raw_params': 'vtysh -c "show ip bgp"',
'_uses_shell': True,
'argv': None,
'chdir': None,
'creates': None,
'executable': None,
'removes': None,
'stdin': None,
'stdin_add_newline': True,
'strip_empty_ends': True,
'warn': False}},
'msg': '',
'rc': 0,
'start': '2026-09-21 23:11:37.909145',
'stderr': '',
'stderr_lines': [],
'stdout': 'No BGP prefixes displayed, 0 exist',
'stdout_lines': ['No BGP prefixes displayed, 0 exist']}
expect_ok = False
expect_values = ['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
f = <_io.TextIOWrapper name='/data/NetAutoTestFW/tests/common/templates/common_setup.j2' mode='r' encoding='UTF-8'>
ip_map = {'R-1': [{'intf': 'Ethernet4', 'ip': '10.1.1.1/30'},
{'intf': 'Ethernet8', 'ip': '10.1.1.9/30'},
{'intf': 'Ethernet12', 'ip': '10.1.1.5/30'},
{'intf': 'Ethernet16', 'ip': '10.10.1.1/24'},
{'intf': 'Ethernet20', 'ip': '10.10.2.1/24'}],
'R-2': [{'intf': 'Ethernet4', 'ip': '10.1.1.2/30'},
{'intf': 'Ethernet8', 'ip': '10.1.1.6/30'},
{'intf': 'Ethernet12', 'ip': '10.1.3.1/24'},
{'intf': 'Ethernet16', 'ip': '10.20.0.1/24'},
{'intf': 'Ethernet20', 'ip': '10.20.1.1/24'}],
'R-3': [{'intf': 'Ethernet0', 'ip': '10.1.1.10/30'},
{'intf': 'Ethernet8', 'ip': '10.1.3.2/24'},
{'intf': 'Ethernet12', 'ip': '10.30.0.1/24'},
{'intf': 'Ethernet16', 'ip': '10.30.1.1/24'}],
'R-4': [{'intf': 'Ethernet4', 'ip': '10.1.4.1/24'},
{'intf': 'Ethernet8', 'ip': '10.1.3.3/24'},
{'intf': 'Ethernet12', 'ip': '10.40.0.1/24'},
{'intf': 'Ethernet16', 'ip': '10.40.1.1/24'}],
'R-5': [{'intf': 'Ethernet0', 'ip': '10.1.4.2/24'},
{'intf': 'Ethernet8', 'ip': '10.50.0.1/24'},
{'intf': 'Ethernet12', 'ip': '10.50.1.1/24'}]}
ip_profile = 'bgp_ip'
keys = {'scenario_name': 'MED Attribute Function',
'steps': [{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map permit-all permit 10" \\\n'
'-c "exit" \\\n'
'-c "router bgp 100" \\\n'
'-c "neighbor 10.1.1.2 remote-as 200" \\\n'
'-c "neighbor 10.1.1.2 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.1.2 route-map '
'permit-all out" \\\n'
'-c "neighbor 10.1.1.10 remote-as 100" \\\n'
'-c "neighbor 10.1.1.10 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.1.10 route-map '
'permit-all out" \\\n'
'-c "network 10.1.1.8/30" \\\n'
'-c "do show running-config" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Default - Set Default',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map permit-all permit 10" \\\n'
'-c "exit" \\\n'
'-c "router bgp 200" \\\n'
'-c "neighbor 10.1.1.1 remote-as 100" \\\n'
'-c "neighbor 10.1.1.1 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.1.1 route-map '
'permit-all out" \\\n'
'-c "neighbor 10.1.3.2 remote-as 100" \\\n'
'-c "neighbor 10.1.3.2 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.3.2 route-map '
'permit-all out" \\\n'
'-c "neighbor 10.1.3.2 next-hop-self" \\\n'
'-c "neighbor 10.1.3.3 remote-as 400" \\\n'
'-c "neighbor 10.1.3.3 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.3.3 route-map '
'permit-all out" \\\n'
'-c "neighbor 10.1.3.3 next-hop-self" \\\n'
'-c "do show running-config" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Default - Set Default',
'node': 'R-2',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map permit-all permit 10" \\\n'
'-c "exit" \\\n'
'-c "router bgp 100" \\\n'
'-c "network 10.1.1.8/30" \\\n'
'-c "neighbor 10.1.1.9 remote-as 100" \\\n'
'-c "neighbor 10.1.1.9 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.1.9 route-map '
'permit-all out" \\\n'
'-c "neighbor 10.1.3.1 remote-as 200" \\\n'
'-c "neighbor 10.1.3.1 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.3.1 route-map '
'permit-all out" \\\n'
'-c "do show running-config" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Default - Set Default',
'node': 'R-3',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map permit-all permit 10" \\\n'
'-c "exit" \\\n'
'-c "router bgp 400" \\\n'
'-c "neighbor 10.1.3.1 remote-as 200" \\\n'
'-c "neighbor 10.1.3.1 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.3.1 route-map '
'permit-all out" \\\n'
'-c "do show running-config" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Default - Set Default',
'node': 'R-4',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "show ip bgp"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['10.1.1.1 0 0 100 i',
'10.1.3.2 0 0 100 i']]},
'name': 'Verification default',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "show ip route"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['B>* 10.1.1.8/30 [20/0] via 10.1.1.1, '
'Ethernet4']]},
'name': 'Verification default',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map SET-MED permit 10" \\\n'
'-c "set metric 100" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Set route-map',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map SET-MED permit 10" \\\n'
'-c "set metric 50" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Set route-map',
'node': 'R-3',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "router bgp 100" \\\n'
'-c "neighbor 10.1.1.2 route-map SET-MED '
'out" \\\n'
'-c "end" \\\n'
'-c "clear ip bgp 10.1.1.2 soft out"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Set neighbor route-map',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "router bgp 100" \\\n'
'-c "neighbor 10.1.3.1 route-map SET-MED '
'out" \\\n'
'-c "end" \\\n'
'-c "clear ip bgp 10.1.3.1 soft out"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Set neighbor route-map',
'node': 'R-3',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "show ip bgp"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['10.1.3.2 50 0 100 i',
'10.1.1.1 100 0 100 i']]},
'name': 'Verification neighbor route-map',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "show ip route"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['B>* 10.1.1.8/30 [20/50] via 10.1.3.2, '
'Ethernet12']]},
'name': 'Verification neighbor route-map',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "router bgp 100" \\\n'
'-c "no neighbor 10.1.1.2 route-map '
'SET-MED out" \\\n'
'-c "no neighbor 10.1.1.2 route-map '
'permit-all out" \\\n'
'-c "end" \\\n'
'-c "clear ip bgp 10.1.1.2 soft out"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete neighbor route-map',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "router bgp 100" \\\n'
'-c "no neighbor 10.1.3.1 route-map '
'SET-MED out" \\\n'
'-c "no neighbor 10.1.3.1 route-map '
'permit-all out" \\\n'
'-c "end" \\\n'
'-c "clear ip bgp 10.1.3.1 soft out"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete neighbor route-map',
'node': 'R-3',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "no route-map SET-MED permit 10" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete route-map',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "no route-map SET-MED permit 10" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete route-map',
'node': 'R-3',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "show ip bgp"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['10.1.1.1 0 0 100 i',
'10.1.3.2 0 0 100 i']]},
'name': 'Verification default',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "show ip route"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['B>* 10.1.1.8/30 [20/0] via 10.1.1.1, '
'Ethernet4']]},
'name': 'Verification default',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "no router bgp 100" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete Default',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "no router bgp 200" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete Default',
'node': 'R-2',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "no router bgp 100" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete Default',
'node': 'R-3',
'not_expect': {'values': [[]]}}]}
match =
neighbor_ip = '10.1.3.1'
node_name = 'R-2'
nomalized_lines = ['No BGP prefixes displayed, 0 exist']
not_contain_str = ''
not_expect_ok = True
not_expect_values = []
output = 'No BGP prefixes displayed, 0 exist\n'
parse_scenario =
ping_result = {'_ansible_no_log': None,
'changed': True,
'cmd': 'ping 10.1.3.1 -c 3',
'delta': '0:00:02.034156',
'end': '2026-09-21 23:08:12.045746',
'failed': False,
'invocation': {'module_args': {'_raw_params': 'ping 10.1.3.1 -c 3',
'_uses_shell': True,
'argv': None,
'chdir': None,
'creates': None,
'executable': None,
'removes': None,
'stdin': None,
'stdin_add_newline': True,
'strip_empty_ends': True,
'warn': False}},
'msg': '',
'rc': 0,
'start': '2026-09-21 23:08:10.011590',
'stderr': '',
'stderr_lines': [],
'stdout': 'PING 10.1.3.1 (10.1.3.1) 56(84) bytes of data.\n'
'64 bytes from 10.1.3.1: icmp_seq=1 ttl=64 time=0.863 ms\n'
'64 bytes from 10.1.3.1: icmp_seq=2 ttl=64 time=0.686 ms\n'
'64 bytes from 10.1.3.1: icmp_seq=3 ttl=64 time=0.671 ms\n'
'\n'
'--- 10.1.3.1 ping statistics ---\n'
'3 packets transmitted, 3 received, 0% packet loss, time 2025ms\n'
'rtt min/avg/max/mdev = 0.671/0.740/0.863/0.087 ms',
'stdout_lines': ['PING 10.1.3.1 (10.1.3.1) 56(84) bytes of data.',
'64 bytes from 10.1.3.1: icmp_seq=1 ttl=64 time=0.863 ms',
'64 bytes from 10.1.3.1: icmp_seq=2 ttl=64 time=0.686 ms',
'64 bytes from 10.1.3.1: icmp_seq=3 ttl=64 time=0.671 ms',
'',
'--- 10.1.3.1 ping statistics ---',
'3 packets transmitted, 3 received, 0% packet loss, time '
'2025ms',
'rtt min/avg/max/mdev = 0.671/0.740/0.863/0.087 ms']}
re =
record_property = .append_property at 0x70174cf8ea60>
reload_config = None
rendered = ('\n'
'# Start daemons\n'
'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"\n'
'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"\n'
'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"\n'
'\n'
'\n'
'# Set IPs\n'
'\n'
'sudo config interface ip add Ethernet4 10.1.4.1/24\n'
'\n'
'sudo config interface ip add Ethernet8 10.1.3.3/24\n'
'\n'
'sudo config interface ip add Ethernet12 10.40.0.1/24\n'
'\n'
'sudo config interface ip add Ethernet16 10.40.1.1/24\n')
scenario =
scenario_name = 'MED Attribute Function'
scenario_path = 'test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml'
server =
session_node_name = 'R-4'
single_command = 'vtysh -c "show ip bgp"'
sonicHostname = ['R-1', 'R-2', 'R-3', 'R-4']
sonic_ssh_prompt = ['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:00 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-1:~$ ',
'Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:02 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-2:~$ ',
'Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:04 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-3:~$ ',
'Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:05 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-4:~$ ']
ssh = ('Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:05 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-4:~$ ')
ssh_prompt = ['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:00 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-1:~$ ',
'Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:02 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-2:~$ ',
'Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:04 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-3:~$ ',
'Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 22:48:05 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-4:~$ ']
start_daemons = True
start_time = '23:04:31'
stderr = ''
stdout = 'No BGP prefixes displayed, 0 exist'
sub_sce_exp_mode = 'and'
sub_sce_exp_values = [['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']]
sub_sce_not_exp_values = [[]]
sub_scenario_actions = [{'command': 'vtysh -c "show ip bgp"'}]
sub_scenario_delay = 10
sub_scenario_expect = {'mode': 'and', 'values': [['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']]}
sub_scenario_name = 'Verification default'
sub_scenario_not_expect = {'values': [[]]}
sub_scenario_retries = 10
sum_img_path = '/data/NetAutoTestFW/tests/converter_report/topology_img/topo-L3-bgp.jpg'
target_ips = [{'intf': 'Ethernet4', 'ip': '10.1.4.1/24'},
{'intf': 'Ethernet8', 'ip': '10.1.3.3/24'},
{'intf': 'Ethernet12', 'ip': '10.40.0.1/24'},
{'intf': 'Ethernet16', 'ip': '10.40.1.1/24'}]
tasks = {'actions': [{'command': 'vtysh -c "show ip bgp"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']]},
'name': 'Verification default',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10}
template_content = ('{% if start_daemons %}\n'
'# Start daemons\n'
'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"\n'
'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"\n'
'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"\n'
'{% endif %}\n'
'\n'
'# Set IPs\n'
'{% for item in ip_list %}\n'
'sudo config interface ip add {{ item.intf }} {{ item.ip }}\n'
'{% endfor %}\n')
template_path = 'tests/common/templates/common_setup.j2'
timestamps = '23:09:19'
topo_img_name = 'topo-L3-bgp.jpg'
topo_img_path = '/data/NetAutoTestFW/tests/converter_report/topology_img'
trace_success = False
ubuntu = []
ubuntuHostname = []
ubuntu_ssh_prompt = []
ubuntus = []
vmhost =
vtb = {'all': {'children': {'TGS': {'hosts': {'TG-1': {'ansible_host': '10.250.0.108',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'first_mac': '52:54:00:20:01:02',
'mac_addr': '52:54:00:20:01:01',
'second_mac': '52:54:00:20:01:03',
'type': 'kvm'}},
'vars': {'ansible_altpassword': 'YourPaSsWoRd',
'ansible_connection': 'multi_passwd_ssh',
'mgmt_subnet_mask_length': 24,
'mgmt_subnet_v6_mask_length': 64}},
'onie': {'hosts': {'dhcp-server': {'ansible_host': '10.250.0.2',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'type': 'kvm'},
'http-server': {'ansible_host': '10.250.0.3',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'type': 'kvm'}},
'vars': {'ansible_altpassword': 'YourPaSsWoRd',
'ansible_connection': 'multi_passwd_ssh',
'mgmt_subnet_mask_length': 24,
'mgmt_subnet_v6_mask_length': 64}},
'servers': {'children': {'server_1': {'children': {'TGS': None,
'onie': None,
'sonic_r': None,
'sonic_sw': None,
'ubuntu': None,
'vm_host_1': None},
'vars': {'host_var_file': 'host_vars/STR-ACS-VSERV-01.yml'}}},
'vars': {'topologies': ['etri',
'etri_bgp',
'etri_l2']}},
'sonic_r': {'hosts': {'R-1': {'ansible_host': '10.250.0.51',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:01',
'os_name': 'sonic-vs.bin',
'serial_port': 7001,
'symbolic_link': 'onie-installer-vs-1',
'type': 'kvm'},
'R-2': {'ansible_host': '10.250.0.52',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:02',
'os_name': 'sonic-vs.bin',
'serial_port': 7002,
'symbolic_link': 'onie-installer-vs-2',
'type': 'kvm'},
'R-3': {'ansible_host': '10.250.0.53',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:03',
'os_name': 'sonic-vs.bin',
'serial_port': 7003,
'symbolic_link': 'onie-installer-vs-3',
'type': 'kvm'},
'R-4': {'ansible_host': '10.250.0.54',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:04',
'os_name': 'sonic-vs.bin',
'serial_port': 7004,
'symbolic_link': 'onie-installer-vs-4',
'type': 'kvm'},
'R-5': {'ansible_host': '10.250.0.55',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:05',
'os_name': 'sonic-vs.bin',
'serial_port': 7005,
'symbolic_link': 'onie-installer-vs-5',
'type': 'kvm'},
'R-6': {'ansible_host': '10.250.0.56',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:06',
'os_name': 'sonic-vs.bin',
'serial_port': 7006,
'symbolic_link': 'onie-installer-vs-6',
'type': 'kvm'}},
'vars': {'ansible_altpassword': 'YourPaSsWoRd',
'ansible_connection': 'multi_passwd_ssh',
'bgp_ip': {'R-1': [{'intf': 'Ethernet4',
'ip': '10.1.1.1/30'},
{'intf': 'Ethernet8',
'ip': '10.1.1.9/30'},
{'intf': 'Ethernet12',
'ip': '10.1.1.5/30'},
{'intf': 'Ethernet16',
'ip': '10.10.1.1/24'},
{'intf': 'Ethernet20',
'ip': '10.10.2.1/24'}],
'R-2': [{'intf': 'Ethernet4',
'ip': '10.1.1.2/30'},
{'intf': 'Ethernet8',
'ip': '10.1.1.6/30'},
{'intf': 'Ethernet12',
'ip': '10.1.3.1/24'},
{'intf': 'Ethernet16',
'ip': '10.20.0.1/24'},
{'intf': 'Ethernet20',
'ip': '10.20.1.1/24'}],
'R-3': [{'intf': 'Ethernet0',
'ip': '10.1.1.10/30'},
{'intf': 'Ethernet8',
'ip': '10.1.3.2/24'},
{'intf': 'Ethernet12',
'ip': '10.30.0.1/24'},
{'intf': 'Ethernet16',
'ip': '10.30.1.1/24'}],
'R-4': [{'intf': 'Ethernet4',
'ip': '10.1.4.1/24'},
{'intf': 'Ethernet8',
'ip': '10.1.3.3/24'},
{'intf': 'Ethernet12',
'ip': '10.40.0.1/24'},
{'intf': 'Ethernet16',
'ip': '10.40.1.1/24'}],
'R-5': [{'intf': 'Ethernet0',
'ip': '10.1.4.2/24'},
{'intf': 'Ethernet8',
'ip': '10.50.0.1/24'},
{'intf': 'Ethernet12',
'ip': '10.50.1.1/24'}]},
'common_ip': {'R-1': [{'intf': 'Ethernet0',
'ip': '21.1.1.2/24'},
{'intf': 'Ethernet4',
'ip': '30.1.1.2/24'},
{'intf': 'Ethernet8',
'ip': '20.1.1.2/24'}],
'R-2': [{'intf': 'Ethernet0',
'ip': '22.1.1.4/24'},
{'intf': 'Ethernet4',
'ip': '30.1.1.4/24'}],
'R-3': [{'intf': 'Ethernet0',
'ip': '20.1.1.3/24'},
{'intf': 'Ethernet4',
'ip': '10.0.100.1/24'}],
'R-4': [{'intf': 'Ethernet0',
'ip': '22.1.1.11/24'},
{'intf': 'Ethernet4',
'ip': '50.1.1.2/24'}],
'R-5': [{'intf': 'Ethernet0',
'ip': '50.1.1.3/24'},
{'intf': 'Ethernet4',
'ip': '40.0.100.1/24'}],
'R-6': [{'intf': 'Ethernet0',
'ip': '21.1.1.3/24'},
{'intf': 'Ethernet4',
'ip': '10.0.100.3/24'}]},
'mgmt_subnet_mask_length': 24,
'mgmt_subnet_v6_mask_length': 64,
'ospf_redist_ip': {'R-1': [{'intf': 'Ethernet4',
'ip': '30.1.1.2/24'},
{'intf': 'Ethernet8',
'ip': '20.1.1.2/24'}],
'R-2': [{'intf': 'Ethernet4',
'ip': '30.1.1.4/24'}],
'R-3': [{'intf': 'Ethernet0',
'ip': '20.1.1.3/24'},
{'intf': 'Ethernet4',
'ip': '10.0.100.1/24'},
{'intf': 'Ethernet8',
'ip': '10.1.100.1/24'},
{'intf': 'Ethernet12',
'ip': '10.2.100.1/24'},
{'intf': 'Ethernet16',
'ip': '10.3.100.1/24'}]}}},
'sonic_sw': {'hosts': {'SW-1': {'ansible_host': '10.250.0.10',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:07',
'os_name': 'sonic-vs.bin',
'serial_port': 8001,
'symbolic_link': 'onie-installer-vs-7',
'type': 'kvm'},
'SW-2': {'ansible_host': '10.250.0.11',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:08',
'os_name': 'sonic-vs.bin',
'serial_port': 8002,
'symbolic_link': 'onie-installer-vs-8',
'type': 'kvm'},
'SW-3': {'ansible_host': '10.250.0.12',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:09',
'os_name': 'sonic-vs.bin',
'serial_port': 8003,
'symbolic_link': 'onie-installer-vs-9',
'type': 'kvm'},
'SW-4': {'ansible_host': '10.250.0.13',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:10',
'os_name': 'sonic-vs.bin',
'serial_port': 8004,
'symbolic_link': 'onie-installer-vs-10',
'type': 'kvm'}},
'vars': {'ansible_altpassword': 'YourPaSsWoRd',
'ansible_connection': 'multi_passwd_ssh',
'mgmt_subnet_mask_length': 24,
'mgmt_subnet_v6_mask_length': 64}},
'ubuntu': {'hosts': {'H-1': {'ansible_host': '10.250.0.101',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.10/24',
'first_mac': '52:54:00:10:02:01',
'mac_addr': '52:54:00:10:01:01',
'src_ip': '10.0.100.1',
'type': 'kvm'},
'H-2': {'ansible_host': '10.250.0.102',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.11/24',
'first_mac': '52:54:00:10:02:02',
'mac_addr': '52:54:00:10:01:02',
'src_ip': '10.0.100.1',
'type': 'kvm'},
'H-3': {'ansible_host': '10.250.0.103',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.12/24',
'first_mac': '52:54:00:10:02:03',
'mac_addr': '52:54:00:10:01:03',
'src_ip': '10.0.100.1',
'type': 'kvm'},
'H-4': {'ansible_host': '10.250.0.104',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.13/24',
'first_mac': '52:54:00:10:02:04',
'mac_addr': '52:54:00:10:01:04',
'src_ip': '10.0.100.1',
'type': 'kvm'},
'H-5': {'ansible_host': '10.250.0.105',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '10.0.100.0/24',
'dp_ip': '40.0.100.105/24',
'first_mac': '52:54:00:10:02:05',
'mac_addr': '52:54:00:10:01:05',
'src_ip': '40.0.100.1',
'type': 'kvm'},
'H-6': {'ansible_host': '10.250.0.106',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.14/24',
'first_mac': '52:54:00:10:02:06',
'mac_addr': '52:54:00:10:01:06',
'src_ip': '10.0.100.1',
'type': 'kvm'},
'H-7': {'ansible_host': '10.250.0.107',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.15/24',
'first_mac': '52:54:00:10:02:07',
'mac_addr': '52:54:00:10:01:07',
'src_ip': '10.0.100.1',
'type': 'kvm'}},
'vars': {'ansible_altpassword': 'YourPaSsWoRd',
'ansible_connection': 'multi_passwd_ssh',
'mgmt_subnet_mask_length': 24,
'mgmt_subnet_v6_mask_length': 64}},
'vm_host': {'children': {'vm_host_1': {'hosts': {'STR-ACS-VSERV-01': {'ansible_host': '172.17.0.1',
'ansible_user': 'jenkins',
'vm_host_user': 'jenkins'}}}}}}}}
yaml =
test_sonic/test_sonic.py:294: AssertionError
---------- generated xml file: /data/NetAutoTestFW/tests/logs/tr.xml -----------
---------------------------- live log sessionfinish ----------------------------
23:19:36 __init__.pytest_terminal_summary L0067 INFO | Can not get Allure report URL. Please check logs
INFO:root:Can not get Allure report URL. Please check logs
=========================== short test summary info ============================
FAILED test_sonic/test_sonic.py::test_scenario - AssertionError: Test failed ...
======================== 1 failed in 964.40s (0:16:04) =========================
⚠️ [WARN] Scenario failed on attempt 1/2 (exit code 1): test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
Retrying test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml in 30s...
Running test command. . . (attempt 2/2)
./run_tests.sh -n etri-sonic-all -d R-1,R-2,R-3,R-4 -c test_sonic/test_sonic.py -f vtestbed.yaml -i ../ansible/vsonic_vtb -P test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
=== Running tests in groups ===
Running: python3 -m pytest test_sonic/test_sonic.py --inventory ../ansible/vsonic_vtb --host-pattern R-1,R-2,R-3,R-4 --testbed etri-sonic-all --testbed_file vtestbed.yaml --log-cli-level info --log-file-level debug --scenario-filename test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml --showlocals --assert plain --show-capture no -rav --ignore=ptftests --ignore=acstests --ignore=saitests --ignore=scripts --ignore=k8s --ignore=sai_qualify --junit-xml=logs/tr.xml --log-file=logs/test.log
ERROR:pytest_ansible.units:No galaxy.yml file found, plugin not activated
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.4.0, pluggy-1.5.0 -- /usr/bin/python3
cachedir: .pytest_cache
metadata: {'Python': '3.8.10', 'Platform': 'Linux-6.8.0-107-generic-x86_64-with-glibc2.29', 'Packages': {'pytest': '7.4.0', 'pluggy': '1.5.0'}, 'Plugins': {'html': '4.1.1', 'ansible': '4.0.0', 'repeat': '0.9.3', 'stress': '1.0.1', 'forked': '1.6.0', 'xdist': '1.28.0', 'allure-pytest': '2.8.22', 'metadata': '3.1.1'}}
ansible: 2.13.13
rootdir: /data/NetAutoTestFW/tests
configfile: pytest.ini
plugins: html-4.1.1, ansible-4.0.0, repeat-0.9.3, stress-1.0.1, forked-1.6.0, xdist-1.28.0, allure-pytest-2.8.22, metadata-3.1.1
collecting ... DEBUG:tests.common.plugins.conditional_mark:Trying to load test mark conditions files: ['common/plugins/conditional_mark/tests_mark_conditions_skip_traffic_test.yaml', 'common/plugins/conditional_mark/tests_mark_conditions.yaml', 'common/plugins/conditional_mark/tests_mark_conditions_acl.yaml', 'common/plugins/conditional_mark/tests_mark_conditions_drop_packets.yaml', 'common/plugins/conditional_mark/tests_mark_conditions_platform_tests.yaml']
DEBUG:tests.common.plugins.conditional_mark:Loaded test mark conditions file: common/plugins/conditional_mark/tests_mark_conditions_skip_traffic_test.yaml
DEBUG:tests.common.plugins.conditional_mark:Loaded test mark conditions file: common/plugins/conditional_mark/tests_mark_conditions.yaml
DEBUG:tests.common.plugins.conditional_mark:Loaded test mark conditions file: common/plugins/conditional_mark/tests_mark_conditions_acl.yaml
DEBUG:tests.common.plugins.conditional_mark:Loaded test mark conditions file: common/plugins/conditional_mark/tests_mark_conditions_drop_packets.yaml
DEBUG:tests.common.plugins.conditional_mark:Loaded test mark conditions file: common/plugins/conditional_mark/tests_mark_conditions_platform_tests.yaml
----------------------------- live log collection ------------------------------
23:20:08 __init__.load_dut_basic_facts L0143 INFO | Getting dut basic facts
INFO:tests.common.plugins.conditional_mark:Getting dut basic facts
/usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
DEBUG:tests.common.plugins.conditional_mark:raw dut basic facts:
R-1 | SUCCESS => {"ansible_facts": {"dut_basic_facts": {"asic_subtype": "vs","asic_type": "vs","branch": "etri-202505","build_date": "Wed Sep 9 05:16:43 UTC 2026","build_number": 27,"build_version": "etri-202505.27-8610ff460","built_by": "jenkins@w2sh","commit_id": "8610ff460","debian_version": "12.15","feature_status": {"bgp": "enabled","database": "always_enabled","dhcp_relay": "disabled","eventd": "enabled","gbsyncd": "enabled","gnmi": "enabled","lldp": "enabled","macsec": "disabled","mgmt-framework": "enabled","mux": "always_disabled","nat": "disabled","pmon": "enabled","radv": "enabled","sflow": "disabled","snmp": "enabled","swss": "enabled","syncd": "enabled","teamd": "enabled","telemetry": "enabled"},"hwsku": "Etri-SONiC","is_multi_asic": false,"is_supervisor": false,"kernel_version": "6.1.0","libswsscommon": "1.0.0","num_asic": 1,"platform": "x86_64-kvm_x86_64-r0","release": "202505","secure_boot_image": "no","sonic_os_version": 12,"sonic_utilities": 1.2}},"changed": false}
23:20:09 __init__.load_minigraph_facts L0231 INFO | Getting minigraph basic facts
INFO:tests.common.plugins.conditional_mark:Getting minigraph basic facts
/usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
ERROR:tests.common.plugins.conditional_mark:Failed to load minigraph basic facts, exception: CalledProcessError(2, ['ansible', '-m', 'minigraph_facts', '-i', '../ansible/vsonic_vtb', 'R-1', '-a', 'host=R-1'])
23:20:10 __init__.load_minigraph_facts L0245 ERROR | Failed to load minigraph basic facts, exception: CalledProcessError(2, ['ansible', '-m', 'minigraph_facts', '-i', '../ansible/vsonic_vtb', 'R-1', '-a', 'host=R-1'])
INFO:tests.common.plugins.conditional_mark:Getting config basic facts
23:20:10 __init__.load_config_facts L0263 INFO | Getting config basic facts
/usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
DEBUG:tests.common.plugins.conditional_mark:raw config basic facts:
R-1 | SUCCESS => {
"ansible_facts": {
"DEVICE_METADATA": {
"localhost": {
"deployment_id": "1",
"hostname": "R-1",
"hwsku": "Etri-SONiC",
"mac": "22:f1:58:ae:a6:55",
"platform": "x86_64-kvm_x86_64-r0",
"type": "LeafRouter"
}
},
"MGMT_INTERFACE": {
"eth0": {
"10.250.0.51/24": {
"gwaddr": "10.250.0.1"
}
}
},
"MGMT_PORT": {
"eth0": {
"admin_status": "up",
"alias": "eth0"
}
},
"PORT": {
"Ethernet0": {
"admin_status": "up",
"alias": "fortyGigE0/0",
"index": "0",
"lanes": "25,26,27,28",
"speed": "40000"
},
"Ethernet100": {
"admin_status": "up",
"alias": "fortyGigE0/100",
"index": "25",
"lanes": "121,122,123,124",
"speed": "40000"
},
"Ethernet104": {
"admin_status": "up",
"alias": "fortyGigE0/104",
"index": "26",
"lanes": "81,82,83,84",
"speed": "40000"
},
"Ethernet108": {
"admin_status": "up",
"alias": "fortyGigE0/108",
"index": "27",
"lanes": "85,86,87,88",
"speed": "40000"
},
"Ethernet112": {
"admin_status": "up",
"alias": "fortyGigE0/112",
"index": "28",
"lanes": "93,94,95,96",
"speed": "40000"
},
"Ethernet116": {
"admin_status": "up",
"alias": "fortyGigE0/116",
"index": "29",
"lanes": "89,90,91,92",
"speed": "40000"
},
"Ethernet12": {
"admin_status": "up",
"alias": "fortyGigE0/12",
"index": "3",
"lanes": "37,38,39,40",
"speed": "40000"
},
"Ethernet120": {
"admin_status": "up",
"alias": "fortyGigE0/120",
"index": "30",
"lanes": "101,102,103,104",
"speed": "40000"
},
"Ethernet124": {
"admin_status": "up",
"alias": "fortyGigE0/124",
"index": "31",
"lanes": "97,98,99,100",
"speed": "40000"
},
"Ethernet16": {
"admin_status": "up",
"alias": "fortyGigE0/16",
"index": "4",
"lanes": "45,46,47,48",
"speed": "40000"
},
"Ethernet20": {
"admin_status": "up",
"alias": "fortyGigE0/20",
"index": "5",
"lanes": "41,42,43,44",
"speed": "40000"
},
"Ethernet24": {
"admin_status": "up",
"alias": "fortyGigE0/24",
"index": "6",
"lanes": "1,2,3,4",
"speed": "40000"
},
"Ethernet28": {
"admin_status": "up",
"alias": "fortyGigE0/28",
"index": "7",
"lanes": "5,6,7,8",
"speed": "40000"
},
"Ethernet32": {
"admin_status": "up",
"alias": "fortyGigE0/32",
"index": "8",
"lanes": "13,14,15,16",
"speed": "40000"
},
"Ethernet36": {
"admin_status": "up",
"alias": "fortyGigE0/36",
"index": "9",
"lanes": "9,10,11,12",
"speed": "40000"
},
"Ethernet4": {
"admin_status": "up",
"alias": "fortyGigE0/4",
"index": "1",
"lanes": "29,30,31,32",
"speed": "40000"
},
"Ethernet40": {
"admin_status": "up",
"alias": "fortyGigE0/40",
"index": "10",
"lanes": "17,18,19,20",
"speed": "40000"
},
"Ethernet44": {
"admin_status": "up",
"alias": "fortyGigE0/44",
"index": "11",
"lanes": "21,22,23,24",
"speed": "40000"
},
"Ethernet48": {
"admin_status": "up",
"alias": "fortyGigE0/48",
"index": "12",
"lanes": "53,54,55,56",
"speed": "40000"
},
"Ethernet52": {
"admin_status": "up",
"alias": "fortyGigE0/52",
"index": "13",
"lanes": "49,50,51,52",
"speed": "40000"
},
"Ethernet56": {
"admin_status": "up",
"alias": "fortyGigE0/56",
"index": "14",
"lanes": "57,58,59,60",
"speed": "40000"
},
"Ethernet60": {
"admin_status": "up",
"alias": "fortyGigE0/60",
"index": "15",
"lanes": "61,62,63,64",
"speed": "40000"
},
"Ethernet64": {
"admin_status": "up",
"alias": "fortyGigE0/64",
"index": "16",
"lanes": "69,70,71,72",
"speed": "40000"
},
"Ethernet68": {
"admin_status": "up",
"alias": "fortyGigE0/68",
"index": "17",
"lanes": "65,66,67,68",
"speed": "40000"
},
"Ethernet72": {
"admin_status": "up",
"alias": "fortyGigE0/72",
"index": "18",
"lanes": "73,74,75,76",
"speed": "40000"
},
"Ethernet76": {
"admin_status": "up",
"alias": "fortyGigE0/76",
"index": "19",
"lanes": "77,78,79,80",
"speed": "40000"
},
"Ethernet8": {
"admin_status": "up",
"alias": "fortyGigE0/8",
"index": "2",
"lanes": "33,34,35,36",
"speed": "40000"
},
"Ethernet80": {
"admin_status": "up",
"alias": "fortyGigE0/80",
"index": "20",
"lanes": "109,110,111,112",
"speed": "40000"
},
"Ethernet84": {
"admin_status": "up",
"alias": "fortyGigE0/84",
"index": "21",
"lanes": "105,106,107,108",
"speed": "40000"
},
"Ethernet88": {
"admin_status": "up",
"alias": "fortyGigE0/88",
"index": "22",
"lanes": "113,114,115,116",
"speed": "40000"
},
"Ethernet92": {
"admin_status": "up",
"alias": "fortyGigE0/92",
"index": "23",
"lanes": "117,118,119,120",
"speed": "40000"
},
"Ethernet96": {
"admin_status": "up",
"alias": "fortyGigE0/96",
"index": "24",
"lanes": "125,126,127,128",
"speed": "40000"
}
},
"port_alias_to_name_map": {
"fortyGigE0/0": "Ethernet0",
"fortyGigE0/100": "Ethernet100",
"fortyGigE0/104": "Ethernet104",
"fortyGigE0/108": "Ethernet108",
"fortyGigE0/112": "Ethernet112",
"fortyGigE0/116": "Ethernet116",
"fortyGigE0/12": "Ethernet12",
"fortyGigE0/120": "Ethernet120",
"fortyGigE0/124": "Ethernet124",
"fortyGigE0/16": "Ethernet16",
"fortyGigE0/20": "Ethernet20",
"fortyGigE0/24": "Ethernet24",
"fortyGigE0/28": "Ethernet28",
"fortyGigE0/32": "Ethernet32",
"fortyGigE0/36": "Ethernet36",
"fortyGigE0/4": "Ethernet4",
"fortyGigE0/40": "Ethernet40",
"fortyGigE0/44": "Ethernet44",
"fortyGigE0/48": "Ethernet48",
"fortyGigE0/52": "Ethernet52",
"fortyGigE0/56": "Ethernet56",
"fortyGigE0/60": "Ethernet60",
"fortyGigE0/64": "Ethernet64",
"fortyGigE0/68": "Ethernet68",
"fortyGigE0/72": "Ethernet72",
"fortyGigE0/76": "Ethernet76",
"fortyGigE0/8": "Ethernet8",
"fortyGigE0/80": "Ethernet80",
"fortyGigE0/84": "Ethernet84",
"fortyGigE0/88": "Ethernet88",
"fortyGigE0/92": "Ethernet92",
"fortyGigE0/96": "Ethernet96"
},
"port_index_map": {
"Ethernet0": 0,
"Ethernet100": 25,
"Ethernet104": 26,
"Ethernet108": 27,
"Ethernet112": 28,
"Ethernet116": 29,
"Ethernet12": 3,
"Ethernet120": 30,
"Ethernet124": 31,
"Ethernet16": 4,
"Ethernet20": 5,
"Ethernet24": 6,
"Ethernet28": 7,
"Ethernet32": 8,
"Ethernet36": 9,
"Ethernet4": 1,
"Ethernet40": 10,
"Ethernet44": 11,
"Ethernet48": 12,
"Ethernet52": 13,
"Ethernet56": 14,
"Ethernet60": 15,
"Ethernet64": 16,
"Ethernet68": 17,
"Ethernet72": 18,
"Ethernet76": 19,
"Ethernet8": 2,
"Ethernet80": 20,
"Ethernet84": 21,
"Ethernet88": 22,
"Ethernet92": 23,
"Ethernet96": 24
},
"port_name_to_alias_map": {
"Ethernet0": "fortyGigE0/0",
"Ethernet100": "fortyGigE0/100",
"Ethernet104": "fortyGigE0/104",
"Ethernet108": "fortyGigE0/108",
"Ethernet112": "fortyGigE0/112",
"Ethernet116": "fortyGigE0/116",
"Ethernet12": "fortyGigE0/12",
"Ethernet120": "fortyGigE0/120",
"Ethernet124": "fortyGigE0/124",
"Ethernet16": "fortyGigE0/16",
"Ethernet20": "fortyGigE0/20",
"Ethernet24": "fortyGigE0/24",
"Ethernet28": "fortyGigE0/28",
"Ethernet32": "fortyGigE0/32",
"Ethernet36": "fortyGigE0/36",
"Ethernet4": "fortyGigE0/4",
"Ethernet40": "fortyGigE0/40",
"Ethernet44": "fortyGigE0/44",
"Ethernet48": "fortyGigE0/48",
"Ethernet52": "fortyGigE0/52",
"Ethernet56": "fortyGigE0/56",
"Ethernet60": "fortyGigE0/60",
"Ethernet64": "fortyGigE0/64",
"Ethernet68": "fortyGigE0/68",
"Ethernet72": "fortyGigE0/72",
"Ethernet76": "fortyGigE0/76",
"Ethernet8": "fortyGigE0/8",
"Ethernet80": "fortyGigE0/80",
"Ethernet84": "fortyGigE0/84",
"Ethernet88": "fortyGigE0/88",
"Ethernet92": "fortyGigE0/92",
"Ethernet96": "fortyGigE0/96"
}
},
"changed": false
}
INFO:tests.common.plugins.conditional_mark:Getting switch capabilities basic facts
23:20:11 __init__.load_switch_capabilities_facts L0298 INFO | Getting switch capabilities basic facts
/usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
DEBUG:tests.common.plugins.conditional_mark:raw switch capabilities basic facts:
R-1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3",
"switch_capabilities": {
"switch": {
"ACL_ACTION|FLOW_OP": "INT,IOAM,NOP,POSTCARD",
"ACL_ACTION|PACKET_ACTION": "COPY,DROP,FORWARD",
"ASIC_SDK_HEALTH_EVENT": "true",
"ECMP_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"ECMP_HASH_ALGORITHM_CAPABLE": "true",
"ECMP_HASH_CAPABLE": "true",
"HASH|NATIVE_HASH_FIELD_LIST": "SRC_IP,DST_IP,INNER_SRC_IP,INNER_DST_IP,VLAN_ID,IP_PROTOCOL,ETHERTYPE,L4_SRC_PORT,L4_DST_PORT,SRC_MAC,DST_MAC,IN_PORT,INNER_IP_PROTOCOL,INNER_ETHERTYPE,INNER_L4_SRC_PORT,INNER_L4_DST_PORT,INNER_SRC_MAC,INNER_DST_MAC,IPV6_FLOW_LABEL",
"ICMP_OFFLOAD_CAPABLE": "true",
"LAG_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"LAG_HASH_ALGORITHM_CAPABLE": "true",
"LAG_HASH_CAPABLE": "true",
"LAG_TPID_CAPABLE": "true",
"MAX_NEXTHOP_GROUP_COUNT": "512",
"MAX_TWAMP_SESSION_COUNT": "128",
"MIRROR": "true",
"MIRRORV6": "true",
"ORDERED_ECMP_CAPABLE": "true",
"PATH_TRACING_CAPABLE": "true",
"PFC_DLR_INIT_CAPABLE": "true",
"PORT_EGRESS_SAMPLE_CAPABLE": "true",
"PORT_TPID_CAPABLE": "true",
"REG_FATAL_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_NOTICE_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_WARNING_ASIC_SDK_HEALTH_CATEGORY": "true",
"SWITCH_TRIMMING_CAPABLE": "true",
"SWITCH|NUMBER_OF_TRAFFIC_CLASSES": "16",
"SWITCH|NUMBER_OF_UNICAST_QUEUES": "10",
"SWITCH|PACKET_TRIMMING_DSCP_RESOLUTION_MODE": "DSCP_VALUE,FROM_TC",
"SWITCH|PACKET_TRIMMING_QUEUE_RESOLUTION_MODE": "STATIC,DYNAMIC"
}
}
},
"changed": false
}
INFO:tests.common.plugins.conditional_mark:Getting config basic facts
23:20:12 __init__.load_config_facts L0263 INFO | Getting config basic facts
/usr/local/lib/python3.8/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
"class": algorithms.Blowfish,
DEBUG:tests.common.plugins.conditional_mark:raw config basic facts:
R-1 | SUCCESS => {
"ansible_facts": {
"DEVICE_METADATA": {
"localhost": {
"deployment_id": "1",
"hostname": "R-1",
"hwsku": "Etri-SONiC",
"mac": "22:f1:58:ae:a6:55",
"platform": "x86_64-kvm_x86_64-r0",
"type": "LeafRouter"
}
},
"MGMT_INTERFACE": {
"eth0": {
"10.250.0.51/24": {
"gwaddr": "10.250.0.1"
}
}
},
"MGMT_PORT": {
"eth0": {
"admin_status": "up",
"alias": "eth0"
}
},
"PORT": {
"Ethernet0": {
"admin_status": "up",
"alias": "fortyGigE0/0",
"index": "0",
"lanes": "25,26,27,28",
"speed": "40000"
},
"Ethernet100": {
"admin_status": "up",
"alias": "fortyGigE0/100",
"index": "25",
"lanes": "121,122,123,124",
"speed": "40000"
},
"Ethernet104": {
"admin_status": "up",
"alias": "fortyGigE0/104",
"index": "26",
"lanes": "81,82,83,84",
"speed": "40000"
},
"Ethernet108": {
"admin_status": "up",
"alias": "fortyGigE0/108",
"index": "27",
"lanes": "85,86,87,88",
"speed": "40000"
},
"Ethernet112": {
"admin_status": "up",
"alias": "fortyGigE0/112",
"index": "28",
"lanes": "93,94,95,96",
"speed": "40000"
},
"Ethernet116": {
"admin_status": "up",
"alias": "fortyGigE0/116",
"index": "29",
"lanes": "89,90,91,92",
"speed": "40000"
},
"Ethernet12": {
"admin_status": "up",
"alias": "fortyGigE0/12",
"index": "3",
"lanes": "37,38,39,40",
"speed": "40000"
},
"Ethernet120": {
"admin_status": "up",
"alias": "fortyGigE0/120",
"index": "30",
"lanes": "101,102,103,104",
"speed": "40000"
},
"Ethernet124": {
"admin_status": "up",
"alias": "fortyGigE0/124",
"index": "31",
"lanes": "97,98,99,100",
"speed": "40000"
},
"Ethernet16": {
"admin_status": "up",
"alias": "fortyGigE0/16",
"index": "4",
"lanes": "45,46,47,48",
"speed": "40000"
},
"Ethernet20": {
"admin_status": "up",
"alias": "fortyGigE0/20",
"index": "5",
"lanes": "41,42,43,44",
"speed": "40000"
},
"Ethernet24": {
"admin_status": "up",
"alias": "fortyGigE0/24",
"index": "6",
"lanes": "1,2,3,4",
"speed": "40000"
},
"Ethernet28": {
"admin_status": "up",
"alias": "fortyGigE0/28",
"index": "7",
"lanes": "5,6,7,8",
"speed": "40000"
},
"Ethernet32": {
"admin_status": "up",
"alias": "fortyGigE0/32",
"index": "8",
"lanes": "13,14,15,16",
"speed": "40000"
},
"Ethernet36": {
"admin_status": "up",
"alias": "fortyGigE0/36",
"index": "9",
"lanes": "9,10,11,12",
"speed": "40000"
},
"Ethernet4": {
"admin_status": "up",
"alias": "fortyGigE0/4",
"index": "1",
"lanes": "29,30,31,32",
"speed": "40000"
},
"Ethernet40": {
"admin_status": "up",
"alias": "fortyGigE0/40",
"index": "10",
"lanes": "17,18,19,20",
"speed": "40000"
},
"Ethernet44": {
"admin_status": "up",
"alias": "fortyGigE0/44",
"index": "11",
"lanes": "21,22,23,24",
"speed": "40000"
},
"Ethernet48": {
"admin_status": "up",
"alias": "fortyGigE0/48",
"index": "12",
"lanes": "53,54,55,56",
"speed": "40000"
},
"Ethernet52": {
"admin_status": "up",
"alias": "fortyGigE0/52",
"index": "13",
"lanes": "49,50,51,52",
"speed": "40000"
},
"Ethernet56": {
"admin_status": "up",
"alias": "fortyGigE0/56",
"index": "14",
"lanes": "57,58,59,60",
"speed": "40000"
},
"Ethernet60": {
"admin_status": "up",
"alias": "fortyGigE0/60",
"index": "15",
"lanes": "61,62,63,64",
"speed": "40000"
},
"Ethernet64": {
"admin_status": "up",
"alias": "fortyGigE0/64",
"index": "16",
"lanes": "69,70,71,72",
"speed": "40000"
},
"Ethernet68": {
"admin_status": "up",
"alias": "fortyGigE0/68",
"index": "17",
"lanes": "65,66,67,68",
"speed": "40000"
},
"Ethernet72": {
"admin_status": "up",
"alias": "fortyGigE0/72",
"index": "18",
"lanes": "73,74,75,76",
"speed": "40000"
},
"Ethernet76": {
"admin_status": "up",
"alias": "fortyGigE0/76",
"index": "19",
"lanes": "77,78,79,80",
"speed": "40000"
},
"Ethernet8": {
"admin_status": "up",
"alias": "fortyGigE0/8",
"index": "2",
"lanes": "33,34,35,36",
"speed": "40000"
},
"Ethernet80": {
"admin_status": "up",
"alias": "fortyGigE0/80",
"index": "20",
"lanes": "109,110,111,112",
"speed": "40000"
},
"Ethernet84": {
"admin_status": "up",
"alias": "fortyGigE0/84",
"index": "21",
"lanes": "105,106,107,108",
"speed": "40000"
},
"Ethernet88": {
"admin_status": "up",
"alias": "fortyGigE0/88",
"index": "22",
"lanes": "113,114,115,116",
"speed": "40000"
},
"Ethernet92": {
"admin_status": "up",
"alias": "fortyGigE0/92",
"index": "23",
"lanes": "117,118,119,120",
"speed": "40000"
},
"Ethernet96": {
"admin_status": "up",
"alias": "fortyGigE0/96",
"index": "24",
"lanes": "125,126,127,128",
"speed": "40000"
}
},
"port_alias_to_name_map": {
"fortyGigE0/0": "Ethernet0",
"fortyGigE0/100": "Ethernet100",
"fortyGigE0/104": "Ethernet104",
"fortyGigE0/108": "Ethernet108",
"fortyGigE0/112": "Ethernet112",
"fortyGigE0/116": "Ethernet116",
"fortyGigE0/12": "Ethernet12",
"fortyGigE0/120": "Ethernet120",
"fortyGigE0/124": "Ethernet124",
"fortyGigE0/16": "Ethernet16",
"fortyGigE0/20": "Ethernet20",
"fortyGigE0/24": "Ethernet24",
"fortyGigE0/28": "Ethernet28",
"fortyGigE0/32": "Ethernet32",
"fortyGigE0/36": "Ethernet36",
"fortyGigE0/4": "Ethernet4",
"fortyGigE0/40": "Ethernet40",
"fortyGigE0/44": "Ethernet44",
"fortyGigE0/48": "Ethernet48",
"fortyGigE0/52": "Ethernet52",
"fortyGigE0/56": "Ethernet56",
"fortyGigE0/60": "Ethernet60",
"fortyGigE0/64": "Ethernet64",
"fortyGigE0/68": "Ethernet68",
"fortyGigE0/72": "Ethernet72",
"fortyGigE0/76": "Ethernet76",
"fortyGigE0/8": "Ethernet8",
"fortyGigE0/80": "Ethernet80",
"fortyGigE0/84": "Ethernet84",
"fortyGigE0/88": "Ethernet88",
"fortyGigE0/92": "Ethernet92",
"fortyGigE0/96": "Ethernet96"
},
"port_index_map": {
"Ethernet0": 0,
"Ethernet100": 25,
"Ethernet104": 26,
"Ethernet108": 27,
"Ethernet112": 28,
"Ethernet116": 29,
"Ethernet12": 3,
"Ethernet120": 30,
"Ethernet124": 31,
"Ethernet16": 4,
"Ethernet20": 5,
"Ethernet24": 6,
"Ethernet28": 7,
"Ethernet32": 8,
"Ethernet36": 9,
"Ethernet4": 1,
"Ethernet40": 10,
"Ethernet44": 11,
"Ethernet48": 12,
"Ethernet52": 13,
"Ethernet56": 14,
"Ethernet60": 15,
"Ethernet64": 16,
"Ethernet68": 17,
"Ethernet72": 18,
"Ethernet76": 19,
"Ethernet8": 2,
"Ethernet80": 20,
"Ethernet84": 21,
"Ethernet88": 22,
"Ethernet92": 23,
"Ethernet96": 24
},
"port_name_to_alias_map": {
"Ethernet0": "fortyGigE0/0",
"Ethernet100": "fortyGigE0/100",
"Ethernet104": "fortyGigE0/104",
"Ethernet108": "fortyGigE0/108",
"Ethernet112": "fortyGigE0/112",
"Ethernet116": "fortyGigE0/116",
"Ethernet12": "fortyGigE0/12",
"Ethernet120": "fortyGigE0/120",
"Ethernet124": "fortyGigE0/124",
"Ethernet16": "fortyGigE0/16",
"Ethernet20": "fortyGigE0/20",
"Ethernet24": "fortyGigE0/24",
"Ethernet28": "fortyGigE0/28",
"Ethernet32": "fortyGigE0/32",
"Ethernet36": "fortyGigE0/36",
"Ethernet4": "fortyGigE0/4",
"Ethernet40": "fortyGigE0/40",
"Ethernet44": "fortyGigE0/44",
"Ethernet48": "fortyGigE0/48",
"Ethernet52": "fortyGigE0/52",
"Ethernet56": "fortyGigE0/56",
"Ethernet60": "fortyGigE0/60",
"Ethernet64": "fortyGigE0/64",
"Ethernet68": "fortyGigE0/68",
"Ethernet72": "fortyGigE0/72",
"Ethernet76": "fortyGigE0/76",
"Ethernet8": "fortyGigE0/8",
"Ethernet80": "fortyGigE0/80",
"Ethernet84": "fortyGigE0/84",
"Ethernet88": "fortyGigE0/88",
"Ethernet92": "fortyGigE0/92",
"Ethernet96": "fortyGigE0/96"
}
},
"changed": false
}
INFO:tests.common.plugins.conditional_mark:Available basic facts that can be used in conditional skip:
{
"topo_type": "etri",
"topo_name": "etri",
"testbed": "etri-sonic-all",
"asic_subtype": "vs",
"asic_type": "vs",
"branch": "etri-202505",
"build_date": "Wed Sep 9 05:16:43 UTC 2026",
"build_number": 27,
"build_version": "etri-202505.27-8610ff460",
"built_by": "jenkins@w2sh",
"commit_id": "8610ff460",
"debian_version": "12.15",
"feature_status": {
"bgp": "enabled",
"database": "always_enabled",
"dhcp_relay": "disabled",
"eventd": "enabled",
"gbsyncd": "enabled",
"gnmi": "enabled",
"lldp": "enabled",
"macsec": "disabled",
"mgmt-framework": "enabled",
"mux": "always_disabled",
"nat": "disabled",
"pmon": "enabled",
"radv": "enabled",
"sflow": "disabled",
"snmp": "enabled",
"swss": "enabled",
"syncd": "enabled",
"teamd": "enabled",
"telemetry": "enabled"
},
"hwsku": "Etri-SONiC",
"is_multi_asic": false,
"is_supervisor": false,
"kernel_version": "6.1.0",
"libswsscommon": "1.0.0",
"num_asic": 1,
"platform": "x86_64-kvm_x86_64-r0",
"release": "202505",
"secure_boot_image": "no",
"sonic_os_version": 12,
"sonic_utilities": 1.2,
"asic_gen": "unknown",
"VOQ_INBAND_INTERFACE": {},
"BGP_VOQ_CHASSIS_NEIGHBOR": {},
"INTERFACE": {},
"switch": {
"ACL_ACTION|FLOW_OP": "INT,IOAM,NOP,POSTCARD",
"ACL_ACTION|PACKET_ACTION": "COPY,DROP,FORWARD",
"ASIC_SDK_HEALTH_EVENT": "true",
"ECMP_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"ECMP_HASH_ALGORITHM_CAPABLE": "true",
"ECMP_HASH_CAPABLE": "true",
"HASH|NATIVE_HASH_FIELD_LIST": "SRC_IP,DST_IP,INNER_SRC_IP,INNER_DST_IP,VLAN_ID,IP_PROTOCOL,ETHERTYPE,L4_SRC_PORT,L4_DST_PORT,SRC_MAC,DST_MAC,IN_PORT,INNER_IP_PROTOCOL,INNER_ETHERTYPE,INNER_L4_SRC_PORT,INNER_L4_DST_PORT,INNER_SRC_MAC,INNER_DST_MAC,IPV6_FLOW_LABEL",
"ICMP_OFFLOAD_CAPABLE": "true",
"LAG_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"LAG_HASH_ALGORITHM_CAPABLE": "true",
"LAG_HASH_CAPABLE": "true",
"LAG_TPID_CAPABLE": "true",
"MAX_NEXTHOP_GROUP_COUNT": "512",
"MAX_TWAMP_SESSION_COUNT": "128",
"MIRROR": "true",
"MIRRORV6": "true",
"ORDERED_ECMP_CAPABLE": "true",
"PATH_TRACING_CAPABLE": "true",
"PFC_DLR_INIT_CAPABLE": "true",
"PORT_EGRESS_SAMPLE_CAPABLE": "true",
"PORT_TPID_CAPABLE": "true",
"REG_FATAL_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_NOTICE_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_WARNING_ASIC_SDK_HEALTH_CATEGORY": "true",
"SWITCH_TRIMMING_CAPABLE": "true",
"SWITCH|NUMBER_OF_TRAFFIC_CLASSES": "16",
"SWITCH|NUMBER_OF_UNICAST_QUEUES": "10",
"SWITCH|PACKET_TRIMMING_DSCP_RESOLUTION_MODE": "DSCP_VALUE,FROM_TC",
"SWITCH|PACKET_TRIMMING_QUEUE_RESOLUTION_MODE": "STATIC,DYNAMIC"
}
}
23:20:13 __init__.pytest_collection_modifyitems L0607 INFO | Available basic facts that can be used in conditional skip:
{
"topo_type": "etri",
"topo_name": "etri",
"testbed": "etri-sonic-all",
"asic_subtype": "vs",
"asic_type": "vs",
"branch": "etri-202505",
"build_date": "Wed Sep 9 05:16:43 UTC 2026",
"build_number": 27,
"build_version": "etri-202505.27-8610ff460",
"built_by": "jenkins@w2sh",
"commit_id": "8610ff460",
"debian_version": "12.15",
"feature_status": {
"bgp": "enabled",
"database": "always_enabled",
"dhcp_relay": "disabled",
"eventd": "enabled",
"gbsyncd": "enabled",
"gnmi": "enabled",
"lldp": "enabled",
"macsec": "disabled",
"mgmt-framework": "enabled",
"mux": "always_disabled",
"nat": "disabled",
"pmon": "enabled",
"radv": "enabled",
"sflow": "disabled",
"snmp": "enabled",
"swss": "enabled",
"syncd": "enabled",
"teamd": "enabled",
"telemetry": "enabled"
},
"hwsku": "Etri-SONiC",
"is_multi_asic": false,
"is_supervisor": false,
"kernel_version": "6.1.0",
"libswsscommon": "1.0.0",
"num_asic": 1,
"platform": "x86_64-kvm_x86_64-r0",
"release": "202505",
"secure_boot_image": "no",
"sonic_os_version": 12,
"sonic_utilities": 1.2,
"asic_gen": "unknown",
"VOQ_INBAND_INTERFACE": {},
"BGP_VOQ_CHASSIS_NEIGHBOR": {},
"INTERFACE": {},
"switch": {
"ACL_ACTION|FLOW_OP": "INT,IOAM,NOP,POSTCARD",
"ACL_ACTION|PACKET_ACTION": "COPY,DROP,FORWARD",
"ASIC_SDK_HEALTH_EVENT": "true",
"ECMP_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"ECMP_HASH_ALGORITHM_CAPABLE": "true",
"ECMP_HASH_CAPABLE": "true",
"HASH|NATIVE_HASH_FIELD_LIST": "SRC_IP,DST_IP,INNER_SRC_IP,INNER_DST_IP,VLAN_ID,IP_PROTOCOL,ETHERTYPE,L4_SRC_PORT,L4_DST_PORT,SRC_MAC,DST_MAC,IN_PORT,INNER_IP_PROTOCOL,INNER_ETHERTYPE,INNER_L4_SRC_PORT,INNER_L4_DST_PORT,INNER_SRC_MAC,INNER_DST_MAC,IPV6_FLOW_LABEL",
"ICMP_OFFLOAD_CAPABLE": "true",
"LAG_HASH_ALGORITHM": "CRC,XOR,RANDOM,CRC_32LO,CRC_32HI,CRC_CCITT,CRC_XOR",
"LAG_HASH_ALGORITHM_CAPABLE": "true",
"LAG_HASH_CAPABLE": "true",
"LAG_TPID_CAPABLE": "true",
"MAX_NEXTHOP_GROUP_COUNT": "512",
"MAX_TWAMP_SESSION_COUNT": "128",
"MIRROR": "true",
"MIRRORV6": "true",
"ORDERED_ECMP_CAPABLE": "true",
"PATH_TRACING_CAPABLE": "true",
"PFC_DLR_INIT_CAPABLE": "true",
"PORT_EGRESS_SAMPLE_CAPABLE": "true",
"PORT_TPID_CAPABLE": "true",
"REG_FATAL_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_NOTICE_ASIC_SDK_HEALTH_CATEGORY": "true",
"REG_WARNING_ASIC_SDK_HEALTH_CATEGORY": "true",
"SWITCH_TRIMMING_CAPABLE": "true",
"SWITCH|NUMBER_OF_TRAFFIC_CLASSES": "16",
"SWITCH|NUMBER_OF_UNICAST_QUEUES": "10",
"SWITCH|PACKET_TRIMMING_DSCP_RESOLUTION_MODE": "DSCP_VALUE,FROM_TC",
"SWITCH|PACKET_TRIMMING_QUEUE_RESOLUTION_MODE": "STATIC,DYNAMIC"
}
}
collected 1 item
test_sonic/test_sonic.py::test_scenario INFO:SectionStartLogger:==================== test_sonic/test_sonic.py::test_scenario setup ====================
-------------------------------- live log setup --------------------------------
23:20:13 __init__.set_default L0053 INFO | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic
23:20:13 __init__.check_test_completeness L0151 INFO | Test has no defined levels. Continue without test completeness checks
23:20:13 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/etri-sonic-all/tbinfo.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:13 facts_cache.write L0115 INFO | [Cache] Create cache dir /data/NetAutoTestFW/tests/_cache/etri-sonic-all
23:20:13 facts_cache.write L0121 INFO | [Cache] Cached facts "etri-sonic-all.tbinfo" to /data/NetAutoTestFW/tests/_cache/etri-sonic-all/tbinfo.pickle
23:20:13 conftest.tbinfo L0187 INFO | YCLEE tbinfo: {'conf-name': 'etri-sonic-all', 'group-name': 'etri', 'server': 'server_1', 'vm_base': 'R-1', 'tgs': ['TG-1'], 'inv_name': 'vsonic_vtb', 'auto_recover': 'False', 'comment': 'Tests virtual switch vm', 'duts': ['R-1', 'R-2', 'R-3', 'R-4', 'R-5', 'R-6', 'SW-1', 'SW-2', 'SW-3', 'SW-4'], 'duts_map': {'R-1': 0, 'R-2': 1, 'R-3': 2, 'R-4': 3, 'R-5': 4, 'R-6': 5, 'SW-1': 6, 'SW-2': 7, 'SW-3': 8, 'SW-4': 9}, 'ubuntus': ['H-1', 'H-2', 'H-3', 'H-4', 'H-5', 'H-6', 'H-7'], 'ubuntus_map': {'H-1': 0, 'H-2': 1, 'H-3': 2, 'H-4': 3, 'H-5': 4, 'H-6': 5, 'H-7': 6}, 'topo': defaultdict(None, {'name': 'etri', 'type': 'etri', 'properties': {'topology': {'links': [{'endpoint': ['R-1:Ethernet0', 'R-6:Ethernet0']}, {'endpoint': ['R-1:Ethernet4', 'R-2:Ethernet4']}, {'endpoint': ['R-1:Ethernet8', 'R-3:Ethernet0']}, {'endpoint': ['R-1:Ethernet12', 'R-2:Ethernet8']}, {'endpoint': ['R-2:Ethernet0', 'R-4:Ethernet0']}, {'endpoint': ['R-2:Ethernet12', 'R-3:Ethernet8', 'R-4:Ethernet8']}, {'endpoint': ['R-3:Ethernet4', 'SW-3:Ethernet12']}, {'endpoint': ['R-6:Ethernet4', 'SW-3:Ethernet16']}, {'endpoint': ['R-4:Ethernet4', 'R-5:Ethernet0']}, {'endpoint': ['R-5:Ethernet4', 'H-5:Eth1']}, {'endpoint': ['SW-2:Ethernet12', 'H-2:Eth1']}, {'endpoint': ['SW-2:Ethernet16', 'H-4:Eth1']}, {'endpoint': ['SW-4:Ethernet8', 'H-6:Eth1']}, {'endpoint': ['SW-4:Ethernet12', 'H-7:Eth1']}, {'endpoint': ['SW-1:Ethernet16', 'H-1:Eth1']}, {'endpoint': ['SW-1:Ethernet20', 'H-3:Eth1']}], 'L2_links': [{'switch': 'SW-1', 'intf': 'Ethernet0', 'send_port': 10000, 'recv_port': 10001}, {'switch': 'SW-1', 'intf': 'Ethernet4', 'send_port': 10002, 'recv_port': 10003}, {'switch': 'SW-1', 'intf': 'Ethernet8', 'send_port': 10004, 'recv_port': 10005}, {'switch': 'SW-1', 'intf': 'Ethernet12', 'send_port': 10006, 'recv_port': 10007}, {'switch': 'SW-2', 'intf': 'Ethernet0', 'send_port': 10008, 'recv_port': 10009}, {'switch': 'SW-2', 'intf': 'Ethernet4', 'send_port': 10005, 'recv_port': 10004}, {'switch': 'SW-2', 'intf': 'Ethernet8', 'send_port': 10010, 'recv_port': 10011}, {'switch': 'SW-3', 'intf': 'Ethernet0', 'send_port': 10001, 'recv_port': 10000}, {'switch': 'SW-3', 'intf': 'Ethernet4', 'send_port': 10003, 'recv_port': 10002}, {'switch': 'SW-3', 'intf': 'Ethernet8', 'send_port': 10009, 'recv_port': 10008}, {'switch': 'SW-4', 'intf': 'Ethernet0', 'send_port': 10007, 'recv_port': 10006}, {'switch': 'SW-4', 'intf': 'Ethernet4', 'send_port': 10011, 'recv_port': 10010}], 'VMs': {'R-1': {'vm_offset': 0}, 'R-2': {'vm_offset': 1}, 'R-3': {'vm_offset': 2}, 'R-4': {'vm_offset': 3}, 'R-5': {'vm_offset': 4}, 'R-6': {'vm_offset': 5}, 'SW-1': {'vm_offset': 6}, 'SW-2': {'vm_offset': 7}, 'SW-3': {'vm_offset': 8}, 'SW-4': {'vm_offset': 9}, 'H-1': {'vm_offset': 10}, 'H-2': {'vm_offset': 11}, 'H-3': {'vm_offset': 12}, 'H-4': {'vm_offset': 13}, 'H-5': {'vm_offset': 14}, 'H-6': {'vm_offset': 15}, 'H-7': {'vm_offset': 16}, 'TG-1': {'vm_offset': 17}}}}, 'ptf_map': defaultdict(, {}), 'ptf_map_disabled': defaultdict(, {}), 'ptf_dut_intf_map': defaultdict(, {})})}
SETUP S tbinfo23:20:13 conftest.enhance_inventory L0124 INFO | Inventory file: ['../ansible/vsonic_vtb']
SETUP S enhance_inventory (fixtures used: tbinfo)
SETUP S ansible_adhoc23:20:13 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/basic_facts.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:15 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/host_visible_vars.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:15 facts_cache.write L0115 INFO | [Cache] Create cache dir /data/NetAutoTestFW/tests/_cache/R-1
23:20:15 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.host_visible_vars" to /data/NetAutoTestFW/tests/_cache/R-1/host_visible_vars.pickle
23:20:16 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.basic_facts" to /data/NetAutoTestFW/tests/_cache/R-1/basic_facts.pickle
23:20:16 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/os_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:16 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.os_version" to /data/NetAutoTestFW/tests/_cache/R-1/os_version.pickle
23:20:16 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/feature_status.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:17 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.feature_status" to /data/NetAutoTestFW/tests/_cache/R-1/feature_status.pickle
23:20:17 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/sonic_release.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:17 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.sonic_release" to /data/NetAutoTestFW/tests/_cache/R-1/sonic_release.pickle
23:20:17 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-1/kernel_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:17 facts_cache.write L0121 INFO | [Cache] Cached facts "R-1.kernel_version" to /data/NetAutoTestFW/tests/_cache/R-1/kernel_version.pickle
23:20:18 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/basic_facts.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:21 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/host_visible_vars.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:21 facts_cache.write L0115 INFO | [Cache] Create cache dir /data/NetAutoTestFW/tests/_cache/R-2
23:20:21 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.host_visible_vars" to /data/NetAutoTestFW/tests/_cache/R-2/host_visible_vars.pickle
23:20:21 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.basic_facts" to /data/NetAutoTestFW/tests/_cache/R-2/basic_facts.pickle
23:20:21 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/os_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:22 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.os_version" to /data/NetAutoTestFW/tests/_cache/R-2/os_version.pickle
23:20:22 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/feature_status.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:22 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.feature_status" to /data/NetAutoTestFW/tests/_cache/R-2/feature_status.pickle
23:20:22 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/sonic_release.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:23 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.sonic_release" to /data/NetAutoTestFW/tests/_cache/R-2/sonic_release.pickle
23:20:23 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-2/kernel_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:23 facts_cache.write L0121 INFO | [Cache] Cached facts "R-2.kernel_version" to /data/NetAutoTestFW/tests/_cache/R-2/kernel_version.pickle
23:20:24 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/basic_facts.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:26 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/host_visible_vars.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:26 facts_cache.write L0115 INFO | [Cache] Create cache dir /data/NetAutoTestFW/tests/_cache/R-3
23:20:26 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.host_visible_vars" to /data/NetAutoTestFW/tests/_cache/R-3/host_visible_vars.pickle
23:20:27 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.basic_facts" to /data/NetAutoTestFW/tests/_cache/R-3/basic_facts.pickle
23:20:27 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/os_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:27 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.os_version" to /data/NetAutoTestFW/tests/_cache/R-3/os_version.pickle
23:20:27 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/feature_status.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:28 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.feature_status" to /data/NetAutoTestFW/tests/_cache/R-3/feature_status.pickle
23:20:28 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/sonic_release.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:28 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.sonic_release" to /data/NetAutoTestFW/tests/_cache/R-3/sonic_release.pickle
23:20:28 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-3/kernel_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:28 facts_cache.write L0121 INFO | [Cache] Cached facts "R-3.kernel_version" to /data/NetAutoTestFW/tests/_cache/R-3/kernel_version.pickle
23:20:29 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/basic_facts.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:31 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/host_visible_vars.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:31 facts_cache.write L0115 INFO | [Cache] Create cache dir /data/NetAutoTestFW/tests/_cache/R-4
23:20:31 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.host_visible_vars" to /data/NetAutoTestFW/tests/_cache/R-4/host_visible_vars.pickle
23:20:32 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.basic_facts" to /data/NetAutoTestFW/tests/_cache/R-4/basic_facts.pickle
23:20:32 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/os_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:32 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.os_version" to /data/NetAutoTestFW/tests/_cache/R-4/os_version.pickle
23:20:32 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/feature_status.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:33 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.feature_status" to /data/NetAutoTestFW/tests/_cache/R-4/feature_status.pickle
23:20:33 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/sonic_release.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:33 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.sonic_release" to /data/NetAutoTestFW/tests/_cache/R-4/sonic_release.pickle
23:20:33 facts_cache.read L0093 INFO | [Cache] Load cache file "/data/NetAutoTestFW/tests/_cache/R-4/kernel_version.pickle" failed with exception: FileNotFoundError(2, 'No such file or directory')
23:20:34 facts_cache.write L0121 INFO | [Cache] Cached facts "R-4.kernel_version" to /data/NetAutoTestFW/tests/_cache/R-4/kernel_version.pickle
SETUP S duthosts (fixtures used: ansible_adhoc, enhance_inventory, tbinfo)
SETUP S add_mgmt_test_mark (fixtures used: duthosts)
SETUP S pytestconfig
SETUP S ubuntus (fixtures used: ansible_adhoc, enhance_inventory, tbinfo)
SETUP S record_testsuite_property23:20:36 conftest.tag_test_report L0413 INFO | login_user : admin
conn_type : ssh
mgmt_ipv4 : 10.250.0.51
port : 22
23:20:36 conftest.tag_test_report L0413 INFO | login_user : admin
conn_type : ssh
mgmt_ipv4 : 10.250.0.52
port : 22
23:20:36 conftest.tag_test_report L0413 INFO | login_user : admin
conn_type : ssh
mgmt_ipv4 : 10.250.0.53
port : 22
23:20:36 conftest.tag_test_report L0413 INFO | login_user : admin
conn_type : ssh
mgmt_ipv4 : 10.250.0.54
port : 22
SETUP S tag_test_report (fixtures used: duthosts, pytestconfig, record_testsuite_property, tbinfo, ubuntus)
SETUP S vmhost (fixtures used: ansible_adhoc, enhance_inventory, tbinfo)
SETUP S parallel_run_context23:20:36 __init__.sanity_check L0399 INFO | Skip sanity check according to command line argument
SETUP M sanity_check (fixtures used: parallel_run_context)23:20:36 conftest.core_dump_and_config_check L0583 INFO | Dumping Disk and Memory Space informataion before test on R-1
23:20:36 conftest.core_dump_and_config_check L0587 INFO | Collecting core dumps before test on R-1
23:20:37 conftest.core_dump_and_config_check L0596 INFO | Collecting running config before test on R-1
23:20:37 conftest.core_dump_and_config_check L0583 INFO | Dumping Disk and Memory Space informataion before test on R-2
23:20:38 conftest.core_dump_and_config_check L0587 INFO | Collecting core dumps before test on R-2
23:20:38 conftest.core_dump_and_config_check L0596 INFO | Collecting running config before test on R-2
23:20:39 conftest.core_dump_and_config_check L0583 INFO | Dumping Disk and Memory Space informataion before test on R-3
23:20:40 conftest.core_dump_and_config_check L0587 INFO | Collecting core dumps before test on R-3
23:20:40 conftest.core_dump_and_config_check L0596 INFO | Collecting running config before test on R-3
23:20:41 conftest.core_dump_and_config_check L0583 INFO | Dumping Disk and Memory Space informataion before test on R-4
23:20:41 conftest.core_dump_and_config_check L0587 INFO | Collecting core dumps before test on R-4
23:20:42 conftest.core_dump_and_config_check L0596 INFO | Collecting running config before test on R-4
SETUP M core_dump_and_config_check (fixtures used: duthosts, sanity_check, tbinfo)23:20:42 conftest.get_scenario_file L0258 INFO | YCLEE pt_file:
test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
23:20:42 parse_scenario.__init__ L0014 INFO | YCLEE request:
test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
23:20:42 parse_scenario.__init__ L0022 INFO | YCLEE scenario_filename:
test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
23:20:42 conftest.fixture_parse_scenario L0266 INFO | YCLEE protocol:
SETUP M parse_scenario23:20:42 conftest.setup_trex_daemons L0441 INFO | [Setup] Starting the TRex daemon on an Ubuntu device.
SETUP M setup_trex_daemons (fixtures used: parse_scenario, ubuntus)
SETUP M reload_config (fixtures used: duthosts, ubuntus)23:20:52 __init__._fixture_func_decorator L0069 INFO | -------------------- fixture sonic_paramiko_ssh setup starts --------------------
23:20:53 session.sonic_paramiko_ssh L0025 INFO | mgmt_interface:{'eth0|10.250.0.51/24': {'gwaddr': '10.250.0.1'}}
23:20:53 session.sonic_paramiko_ssh L0026 INFO | duthost hostname:R-1
username:admin
password:password
23:20:53 transport._log L1873 INFO | Connected (version 2.0, client OpenSSH_9.2p1)
23:20:53 transport._log L1873 INFO | Auth banner: b'Debian GNU/Linux 12 \\n \\l\n\n'
23:20:53 transport._log L1873 INFO | Authentication (publickey) failed.
23:20:53 transport._log L1873 INFO | Authentication (password) successful!
23:20:53 session.sonic_paramiko_ssh L0046 INFO | output:
Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 23:04:16 2026 from 10.250.0.1
admin@R-1:~$
23:20:54 session.sonic_paramiko_ssh L0056 INFO |
hostname: R-1
23:20:55 session.sonic_paramiko_ssh L0025 INFO | mgmt_interface:{'eth0|10.250.0.52/24': {'gwaddr': '10.250.0.1'}}
23:20:55 session.sonic_paramiko_ssh L0026 INFO | duthost hostname:R-2
username:admin
password:password
23:20:55 transport._log L1873 INFO | Connected (version 2.0, client OpenSSH_9.2p1)
23:20:55 transport._log L1873 INFO | Auth banner: b'Debian GNU/Linux 12 \\n \\l\n\n'
23:20:55 transport._log L1873 INFO | Authentication (publickey) failed.
23:20:55 transport._log L1873 INFO | Authentication (password) successful!
23:20:55 session.sonic_paramiko_ssh L0046 INFO | output:
Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 23:04:18 2026 from 10.250.0.1
admin@R-2:~$
23:20:57 session.sonic_paramiko_ssh L0056 INFO |
hostname: R-2
23:20:57 session.sonic_paramiko_ssh L0025 INFO | mgmt_interface:{'eth0|10.250.0.53/24': {'gwaddr': '10.250.0.1'}}
23:20:57 session.sonic_paramiko_ssh L0026 INFO | duthost hostname:R-3
username:admin
password:password
23:20:57 transport._log L1873 INFO | Connected (version 2.0, client OpenSSH_9.2p1)
23:20:57 transport._log L1873 INFO | Auth banner: b'Debian GNU/Linux 12 \\n \\l\n\n'
23:20:57 transport._log L1873 INFO | Authentication (publickey) failed.
23:20:57 transport._log L1873 INFO | Authentication (password) successful!
23:20:57 session.sonic_paramiko_ssh L0046 INFO | output:
Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 23:04:20 2026 from 10.250.0.1
admin@R-3:~$
23:20:59 session.sonic_paramiko_ssh L0056 INFO |
hostname: R-3
23:20:59 session.sonic_paramiko_ssh L0025 INFO | mgmt_interface:{'eth0|10.250.0.54/24': {'gwaddr': '10.250.0.1'}}
23:20:59 session.sonic_paramiko_ssh L0026 INFO | duthost hostname:R-4
username:admin
password:password
23:20:59 transport._log L1873 INFO | Connected (version 2.0, client OpenSSH_9.2p1)
23:20:59 transport._log L1873 INFO | Auth banner: b'Debian GNU/Linux 12 \\n \\l\n\n'
23:20:59 transport._log L1873 INFO | Authentication (publickey) failed.
23:20:59 transport._log L1873 INFO | Authentication (password) successful!
23:20:59 session.sonic_paramiko_ssh L0046 INFO | output:
Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 23:04:21 2026 from 10.250.0.1
admin@R-4:~$
23:21:01 session.sonic_paramiko_ssh L0056 INFO |
hostname: R-4
23:21:01 __init__._fixture_func_decorator L0076 INFO | -------------------- fixture sonic_paramiko_ssh setup ends --------------------
SETUP M sonic_paramiko_ssh (fixtures used: duthosts)23:21:01 __init__._fixture_func_decorator L0069 INFO | -------------------- fixture ubuntu_paramiko_ssh setup starts --------------------
23:21:01 __init__._fixture_func_decorator L0076 INFO | -------------------- fixture ubuntu_paramiko_ssh setup ends --------------------
SETUP M ubuntu_paramiko_ssh (fixtures used: ubuntus)23:21:02 __init__.analyzer_logrotate L0023 INFO | logrotate called on R-1
23:21:02 __init__.analyzer_logrotate L0023 INFO | logrotate called on R-4
23:21:02 __init__.analyzer_logrotate L0023 INFO | logrotate called on R-2
23:21:03 __init__.analyzer_logrotate L0023 INFO | logrotate called on R-3
23:21:04 parallel.on_terminate L0085 INFO | process analyzer_logrotate-- terminated with exit code None
23:21:04 parallel.on_terminate L0085 INFO | process analyzer_logrotate-- terminated with exit code None
23:21:04 parallel.on_terminate L0085 INFO | process analyzer_logrotate-- terminated with exit code None
23:21:04 parallel.on_terminate L0085 INFO | process analyzer_logrotate-- terminated with exit code None
23:21:04 parallel.parallel_run L0221 INFO | Completed running processes for target "analyzer_logrotate" in 0:00:03.661749 seconds
23:21:05 __init__.analyzer_add_marker L0035 INFO | add marker called on R-1
23:21:05 __init__.analyzer_add_marker L0037 INFO | Add start marker into SONiC Devices syslog for host R-1
23:21:05 __init__.analyzer_add_marker L0035 INFO | add marker called on R-2
23:21:05 __init__.analyzer_add_marker L0037 INFO | Add start marker into SONiC Devices syslog for host R-2
23:21:05 __init__.analyzer_add_marker L0035 INFO | add marker called on R-3
23:21:05 __init__.analyzer_add_marker L0037 INFO | Add start marker into SONiC Devices syslog for host R-3
23:21:05 __init__.analyzer_add_marker L0035 INFO | add marker called on R-4
23:21:05 __init__.analyzer_add_marker L0037 INFO | Add start marker into SONiC Devices syslog for host R-4
23:21:07 parallel.on_terminate L0085 INFO | process analyzer_add_marker-- terminated with exit code None
23:21:07 parallel.on_terminate L0085 INFO | process analyzer_add_marker-- terminated with exit code None
23:21:08 parallel.on_terminate L0085 INFO | process analyzer_add_marker-- terminated with exit code None
23:21:08 parallel.on_terminate L0085 INFO | process analyzer_add_marker-- terminated with exit code None
23:21:08 parallel.parallel_run L0221 INFO | Completed running processes for target "analyzer_add_marker" in 0:00:03.123838 seconds
SETUP F loganalyzer (fixtures used: duthosts)
SETUP F record_property
test_sonic/test_sonic.py::test_scenario (fixtures used: add_mgmt_test_mark, ansible_adhoc, core_dump_and_config_check, duthosts, enhance_inventory, loganalyzer, parallel_run_context, parse_scenario, pytestconfig, record_property, record_testsuite_property, reload_config, request, sanity_check, setup_trex_daemons, sonic_paramiko_ssh, tag_test_report, tbinfo, ubuntu_paramiko_ssh, ubuntus, vmhost)INFO:SectionStartLogger:==================== test_sonic/test_sonic.py::test_scenario call ====================
-------------------------------- live log call ---------------------------------
23:21:08 test_sonic.run_scenario L0098 INFO | test device hostname: , , , ]>
23:21:08 test_sonic.run_scenario L0099 INFO | server hostname: STR-ACS-VSERV-01
23:21:08 test_sonic.run_scenario L0103 INFO | step 0) scenario_data:
23:21:08 test_sonic.run_scenario L0108 INFO |
step 1) scenario name:Print Topology Image
23:21:08 test_sonic.run_scenario L0108 INFO |
step 1) scenario name:Session Check
23:21:08 test_sonic.run_scenario L0130 INFO | nodes: R-1
23:21:08 test_sonic.run_scenario L0138 INFO | step 1)
Hostname:
R-1
node name:
R-1
23:21:08 test_sonic.run_scenario L0139 INFO | step 2)
ssh_prompt:
Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 23:04:16 2026 from 10.250.0.1
admin@R-1:~$
23:21:08 test_sonic.run_scenario L0144 INFO | step 3)
pass
23:21:08 test_sonic.run_scenario L0130 INFO | nodes: R-2
23:21:08 test_sonic.run_scenario L0138 INFO | step 1)
Hostname:
R-2
node name:
R-2
23:21:08 test_sonic.run_scenario L0139 INFO | step 2)
ssh_prompt:
Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 23:04:18 2026 from 10.250.0.1
admin@R-2:~$
23:21:08 test_sonic.run_scenario L0144 INFO | step 3)
pass
23:21:08 test_sonic.run_scenario L0130 INFO | nodes: R-3
23:21:08 test_sonic.run_scenario L0138 INFO | step 1)
Hostname:
R-3
node name:
R-3
23:21:08 test_sonic.run_scenario L0139 INFO | step 2)
ssh_prompt:
Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 23:04:20 2026 from 10.250.0.1
admin@R-3:~$
23:21:08 test_sonic.run_scenario L0144 INFO | step 3)
pass
23:21:08 test_sonic.run_scenario L0130 INFO | nodes: R-4
23:21:08 test_sonic.run_scenario L0138 INFO | step 1)
Hostname:
R-4
node name:
R-4
23:21:08 test_sonic.run_scenario L0139 INFO | step 2)
ssh_prompt:
Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
You are on
____ ___ _ _ _ ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | | \| | | |
___) | |_| | |\ | | |___
|____/ \___/|_| \_|_|\____|
-- Software for Open Networking in the Cloud --
Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.
Help: https://sonic-net.github.io/SONiC/
Last login: Mon Sep 21 23:04:21 2026 from 10.250.0.1
admin@R-4:~$
23:21:08 test_sonic.run_scenario L0144 INFO | step 3)
pass
23:21:08 test_sonic.run_scenario L0108 INFO |
step 1) scenario name:IP Assign for BGP Func Test
23:21:08 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Assign IPv4 on R-1
node name: R-1
23:21:08 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}, {'command': 'sudo config interface ip add Ethernet4 10.1.1.1/30'}, {'command': 'sudo config interface ip add Ethernet8 10.1.1.9/30'}, {'command': 'sudo config interface ip add Ethernet12 10.1.1.5/30'}, {'command': 'sudo config interface ip add Ethernet16 10.10.1.1/24'}, {'command': 'sudo config interface ip add Ethernet20 10.10.2.1/24'}]
sub scenario expect mode: and
sub scenario expect values: [[], [], [], [], [], [], [], []]
sub scenario not expect values: [[], [], [], [], [], [], [], []]
sub scenario retries: 5
sub scenario delay: 1
23:21:08 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}
expect values: []
not expect values: []
23:21:15 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:21:06 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:21:15 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:21:15 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:21:06 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:21:15 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}
expect values: []
not expect values: []
23:21:23 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:21:14 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:21:23 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:21:23 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:21:14 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:21:23 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}
expect values: []
not expect values: []
23:21:30 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:21:21 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:21:30 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:21:30 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:21:21 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:21:30 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet4 10.1.1.1/30'}
expect values: []
not expect values: []
23:21:36 test_sonic.run_scenario L0244 INFO |
execute command result:
23:21:36 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:21:36 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:21:36 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet8 10.1.1.9/30'}
expect values: []
not expect values: []
23:21:41 test_sonic.run_scenario L0244 INFO |
execute command result:
23:21:41 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:21:41 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:21:41 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet12 10.1.1.5/30'}
expect values: []
not expect values: []
23:21:47 test_sonic.run_scenario L0244 INFO |
execute command result:
23:21:47 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:21:47 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:21:47 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet16 10.10.1.1/24'}
expect values: []
not expect values: []
23:21:53 test_sonic.run_scenario L0244 INFO |
execute command result:
23:21:53 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:21:53 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:21:53 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet20 10.10.2.1/24'}
expect values: []
not expect values: []
23:21:58 test_sonic.run_scenario L0244 INFO |
execute command result:
23:21:58 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:21:58 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:21:58 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Assign IPv4 on R-2
node name: R-2
23:21:59 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}, {'command': 'sudo config interface ip add Ethernet4 10.1.1.2/30'}, {'command': 'sudo config interface ip add Ethernet8 10.1.1.6/30'}, {'command': 'sudo config interface ip add Ethernet12 10.1.3.1/24'}, {'command': 'sudo config interface ip add Ethernet16 10.20.0.1/24'}, {'command': 'sudo config interface ip add Ethernet20 10.20.1.1/24'}]
sub scenario expect mode: and
sub scenario expect values: [[], [], [], [], [], [], [], []]
sub scenario not expect values: [[], [], [], [], [], [], [], []]
sub scenario retries: 5
sub scenario delay: 1
23:21:59 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}
expect values: []
not expect values: []
23:22:06 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:21:58 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:22:06 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:22:06 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:21:58 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:22:06 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}
expect values: []
not expect values: []
23:22:13 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:22:05 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:22:13 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:22:13 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:22:05 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:22:13 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}
expect values: []
not expect values: []
23:22:21 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:22:12 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:22:21 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:22:21 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:22:12 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:22:21 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet4 10.1.1.2/30'}
expect values: []
not expect values: []
23:22:27 test_sonic.run_scenario L0244 INFO |
execute command result:
23:22:27 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:22:27 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:22:27 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet8 10.1.1.6/30'}
expect values: []
not expect values: []
23:22:32 test_sonic.run_scenario L0244 INFO |
execute command result:
23:22:32 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:22:32 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:22:32 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet12 10.1.3.1/24'}
expect values: []
not expect values: []
23:22:38 test_sonic.run_scenario L0244 INFO |
execute command result:
23:22:38 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:22:38 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:22:38 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet16 10.20.0.1/24'}
expect values: []
not expect values: []
23:22:43 test_sonic.run_scenario L0244 INFO |
execute command result:
23:22:43 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:22:43 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:22:43 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet20 10.20.1.1/24'}
expect values: []
not expect values: []
23:22:49 test_sonic.run_scenario L0244 INFO |
execute command result:
23:22:49 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:22:49 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:22:49 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Assign IPv4 on R-3
node name: R-3
23:22:49 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}, {'command': 'sudo config interface ip add Ethernet0 10.1.1.10/30'}, {'command': 'sudo config interface ip add Ethernet8 10.1.3.2/24'}, {'command': 'sudo config interface ip add Ethernet12 10.30.0.1/24'}, {'command': 'sudo config interface ip add Ethernet16 10.30.1.1/24'}]
sub scenario expect mode: and
sub scenario expect values: [[], [], [], [], [], [], []]
sub scenario not expect values: [[], [], [], [], [], [], []]
sub scenario retries: 5
sub scenario delay: 1
23:22:49 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}
expect values: []
not expect values: []
23:22:56 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:22:48 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:22:56 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:22:56 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:22:48 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:22:56 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}
expect values: []
not expect values: []
23:23:04 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:22:56 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:23:04 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:23:04 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:22:56 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:23:04 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}
expect values: []
not expect values: []
23:23:11 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:23:03 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:23:11 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:23:11 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:23:03 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:23:11 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet0 10.1.1.10/30'}
expect values: []
not expect values: []
23:23:17 test_sonic.run_scenario L0244 INFO |
execute command result:
23:23:17 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:23:17 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:23:17 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet8 10.1.3.2/24'}
expect values: []
not expect values: []
23:23:22 test_sonic.run_scenario L0244 INFO |
execute command result:
23:23:22 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:23:22 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:23:22 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet12 10.30.0.1/24'}
expect values: []
not expect values: []
23:23:28 test_sonic.run_scenario L0244 INFO |
execute command result:
23:23:28 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:23:28 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:23:28 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet16 10.30.1.1/24'}
expect values: []
not expect values: []
23:23:34 test_sonic.run_scenario L0244 INFO |
execute command result:
23:23:34 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:23:34 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:23:34 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Assign IPv4 on R-4
node name: R-4
23:23:34 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}, {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}, {'command': 'sudo config interface ip add Ethernet4 10.1.4.1/24'}, {'command': 'sudo config interface ip add Ethernet8 10.1.3.3/24'}, {'command': 'sudo config interface ip add Ethernet12 10.40.0.1/24'}, {'command': 'sudo config interface ip add Ethernet16 10.40.1.1/24'}]
sub scenario expect mode: and
sub scenario expect values: [[], [], [], [], [], [], []]
sub scenario not expect values: [[], [], [], [], [], [], []]
sub scenario retries: 5
sub scenario delay: 1
23:23:34 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"'}
expect values: []
not expect values: []
23:23:42 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:23:32 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:23:42 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:23:42 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:23:32 RIP: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:23:42 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"'}
expect values: []
not expect values: []
23:23:49 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:23:40 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:23:49 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:23:49 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:23:40 ISIS: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:23:49 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"'}
expect values: []
not expect values: []
23:23:56 test_sonic.run_scenario L0244 INFO |
execute command result:
2026/09/21 23:23:47 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:23:56 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:23:56 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
2026/09/21 23:23:47 OSPF: [YDG3W-JND95] FD Limit set: 1048576 is stupidly large. Is this what you intended? Consider using --limit-fds also limiting size to 100000
23:23:56 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet4 10.1.4.1/24'}
expect values: []
not expect values: []
23:24:02 test_sonic.run_scenario L0244 INFO |
execute command result:
23:24:02 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:24:02 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:24:02 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet8 10.1.3.3/24'}
expect values: []
not expect values: []
23:24:08 test_sonic.run_scenario L0244 INFO |
execute command result:
23:24:08 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:24:08 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:24:08 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet12 10.40.0.1/24'}
expect values: []
not expect values: []
23:24:13 test_sonic.run_scenario L0244 INFO |
execute command result:
23:24:13 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:24:13 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:24:13 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'sudo config interface ip add Ethernet16 10.40.1.1/24'}
expect values: []
not expect values: []
23:24:19 test_sonic.run_scenario L0244 INFO |
execute command result:
23:24:19 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:24:19 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:24:19 test_sonic.run_scenario L0108 INFO |
step 1) scenario name:MED Attribute Function
23:24:19 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Default - Set Default
node name: R-1
23:24:19 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.1.2 remote-as 200" \\\n-c "neighbor 10.1.1.2 route-map permit-all in" \\\n-c "neighbor 10.1.1.2 route-map permit-all out" \\\n-c "neighbor 10.1.1.10 remote-as 100" \\\n-c "neighbor 10.1.1.10 route-map permit-all in" \\\n-c "neighbor 10.1.1.10 route-map permit-all out" \\\n-c "network 10.1.1.8/30" \\\n-c "do show running-config" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:24:19 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.1.2 remote-as 200" \\\n-c "neighbor 10.1.1.2 route-map permit-all in" \\\n-c "neighbor 10.1.1.2 route-map permit-all out" \\\n-c "neighbor 10.1.1.10 remote-as 100" \\\n-c "neighbor 10.1.1.10 route-map permit-all in" \\\n-c "neighbor 10.1.1.10 route-map permit-all out" \\\n-c "network 10.1.1.8/30" \\\n-c "do show running-config" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:24:25 test_sonic.run_scenario L0244 INFO |
execute command result:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-1
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 100
neighbor 10.1.1.2 remote-as 200
neighbor 10.1.1.10 remote-as 100
!
address-family ipv4 unicast
network 10.1.1.8/30
neighbor 10.1.1.2 route-map permit-all in
neighbor 10.1.1.2 route-map permit-all out
neighbor 10.1.1.10 route-map permit-all in
neighbor 10.1.1.10 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:24:25 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:24:25 test_sonic.run_scenario L0252 INFO | [R-1] Auto Ping Verification to neighbor: 10.1.1.2
23:24:27 test_sonic.run_scenario L0254 INFO | [R-1] Ping result:
PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
64 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=2.25 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=0.680 ms
64 bytes from 10.1.1.2: icmp_seq=3 ttl=64 time=0.941 ms
--- 10.1.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.680/1.290/2.249/0.686 ms
23:24:27 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-1
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 100
neighbor 10.1.1.2 remote-as 200
neighbor 10.1.1.10 remote-as 100
!
address-family ipv4 unicast
network 10.1.1.8/30
neighbor 10.1.1.2 route-map permit-all in
neighbor 10.1.1.2 route-map permit-all out
neighbor 10.1.1.10 route-map permit-all in
neighbor 10.1.1.10 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:24:27 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Default - Set Default
node name: R-2
23:24:27 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 200" \\\n-c "neighbor 10.1.1.1 remote-as 100" \\\n-c "neighbor 10.1.1.1 route-map permit-all in" \\\n-c "neighbor 10.1.1.1 route-map permit-all out" \\\n-c "neighbor 10.1.3.2 remote-as 100" \\\n-c "neighbor 10.1.3.2 route-map permit-all in" \\\n-c "neighbor 10.1.3.2 route-map permit-all out" \\\n-c "neighbor 10.1.3.2 next-hop-self" \\\n-c "neighbor 10.1.3.3 remote-as 400" \\\n-c "neighbor 10.1.3.3 route-map permit-all in" \\\n-c "neighbor 10.1.3.3 route-map permit-all out" \\\n-c "neighbor 10.1.3.3 next-hop-self" \\\n-c "do show running-config" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:24:27 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 200" \\\n-c "neighbor 10.1.1.1 remote-as 100" \\\n-c "neighbor 10.1.1.1 route-map permit-all in" \\\n-c "neighbor 10.1.1.1 route-map permit-all out" \\\n-c "neighbor 10.1.3.2 remote-as 100" \\\n-c "neighbor 10.1.3.2 route-map permit-all in" \\\n-c "neighbor 10.1.3.2 route-map permit-all out" \\\n-c "neighbor 10.1.3.2 next-hop-self" \\\n-c "neighbor 10.1.3.3 remote-as 400" \\\n-c "neighbor 10.1.3.3 route-map permit-all in" \\\n-c "neighbor 10.1.3.3 route-map permit-all out" \\\n-c "neighbor 10.1.3.3 next-hop-self" \\\n-c "do show running-config" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:24:32 test_sonic.run_scenario L0244 INFO |
execute command result:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-2
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 200
neighbor 10.1.1.1 remote-as 100
neighbor 10.1.3.2 remote-as 100
neighbor 10.1.3.3 remote-as 400
!
address-family ipv4 unicast
neighbor 10.1.1.1 route-map permit-all in
neighbor 10.1.1.1 route-map permit-all out
neighbor 10.1.3.2 next-hop-self
neighbor 10.1.3.2 route-map permit-all in
neighbor 10.1.3.2 route-map permit-all out
neighbor 10.1.3.3 next-hop-self
neighbor 10.1.3.3 route-map permit-all in
neighbor 10.1.3.3 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:24:32 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:24:32 test_sonic.run_scenario L0252 INFO | [R-2] Auto Ping Verification to neighbor: 10.1.1.1
23:24:35 test_sonic.run_scenario L0254 INFO | [R-2] Ping result:
PING 10.1.1.1 (10.1.1.1) 56(84) bytes of data.
64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=0.877 ms
64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=1.05 ms
64 bytes from 10.1.1.1: icmp_seq=3 ttl=64 time=0.900 ms
--- 10.1.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.877/0.942/1.049/0.076 ms
23:24:35 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-2
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 200
neighbor 10.1.1.1 remote-as 100
neighbor 10.1.3.2 remote-as 100
neighbor 10.1.3.3 remote-as 400
!
address-family ipv4 unicast
neighbor 10.1.1.1 route-map permit-all in
neighbor 10.1.1.1 route-map permit-all out
neighbor 10.1.3.2 next-hop-self
neighbor 10.1.3.2 route-map permit-all in
neighbor 10.1.3.2 route-map permit-all out
neighbor 10.1.3.3 next-hop-self
neighbor 10.1.3.3 route-map permit-all in
neighbor 10.1.3.3 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:24:35 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Default - Set Default
node name: R-3
23:24:35 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 100" \\\n-c "network 10.1.1.8/30" \\\n-c "neighbor 10.1.1.9 remote-as 100" \\\n-c "neighbor 10.1.1.9 route-map permit-all in" \\\n-c "neighbor 10.1.1.9 route-map permit-all out" \\\n-c "neighbor 10.1.3.1 remote-as 200" \\\n-c "neighbor 10.1.3.1 route-map permit-all in" \\\n-c "neighbor 10.1.3.1 route-map permit-all out" \\\n-c "do show running-config" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:24:35 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 100" \\\n-c "network 10.1.1.8/30" \\\n-c "neighbor 10.1.1.9 remote-as 100" \\\n-c "neighbor 10.1.1.9 route-map permit-all in" \\\n-c "neighbor 10.1.1.9 route-map permit-all out" \\\n-c "neighbor 10.1.3.1 remote-as 200" \\\n-c "neighbor 10.1.3.1 route-map permit-all in" \\\n-c "neighbor 10.1.3.1 route-map permit-all out" \\\n-c "do show running-config" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:24:40 test_sonic.run_scenario L0244 INFO |
execute command result:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-3
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 100
neighbor 10.1.1.9 remote-as 100
neighbor 10.1.3.1 remote-as 200
!
address-family ipv4 unicast
network 10.1.1.8/30
neighbor 10.1.1.9 route-map permit-all in
neighbor 10.1.1.9 route-map permit-all out
neighbor 10.1.3.1 route-map permit-all in
neighbor 10.1.3.1 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:24:40 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:24:40 test_sonic.run_scenario L0252 INFO | [R-3] Auto Ping Verification to neighbor: 10.1.1.9
23:24:42 test_sonic.run_scenario L0254 INFO | [R-3] Ping result:
PING 10.1.1.9 (10.1.1.9) 56(84) bytes of data.
64 bytes from 10.1.1.9: icmp_seq=1 ttl=64 time=0.706 ms
64 bytes from 10.1.1.9: icmp_seq=2 ttl=64 time=0.966 ms
64 bytes from 10.1.1.9: icmp_seq=3 ttl=64 time=0.787 ms
--- 10.1.1.9 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2031ms
rtt min/avg/max/mdev = 0.706/0.819/0.966/0.108 ms
23:24:42 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-3
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 100
neighbor 10.1.1.9 remote-as 100
neighbor 10.1.3.1 remote-as 200
!
address-family ipv4 unicast
network 10.1.1.8/30
neighbor 10.1.1.9 route-map permit-all in
neighbor 10.1.1.9 route-map permit-all out
neighbor 10.1.3.1 route-map permit-all in
neighbor 10.1.3.1 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:24:42 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Default - Set Default
node name: R-4
23:24:42 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 400" \\\n-c "neighbor 10.1.3.1 remote-as 200" \\\n-c "neighbor 10.1.3.1 route-map permit-all in" \\\n-c "neighbor 10.1.3.1 route-map permit-all out" \\\n-c "do show running-config" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:24:42 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map permit-all permit 10" \\\n-c "exit" \\\n-c "router bgp 400" \\\n-c "neighbor 10.1.3.1 remote-as 200" \\\n-c "neighbor 10.1.3.1 route-map permit-all in" \\\n-c "neighbor 10.1.3.1 route-map permit-all out" \\\n-c "do show running-config" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:24:48 test_sonic.run_scenario L0244 INFO |
execute command result:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-4
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 400
neighbor 10.1.3.1 remote-as 200
!
address-family ipv4 unicast
neighbor 10.1.3.1 route-map permit-all in
neighbor 10.1.3.1 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:24:48 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:24:48 test_sonic.run_scenario L0252 INFO | [R-4] Auto Ping Verification to neighbor: 10.1.3.1
23:24:50 test_sonic.run_scenario L0254 INFO | [R-4] Ping result:
PING 10.1.3.1 (10.1.3.1) 56(84) bytes of data.
64 bytes from 10.1.3.1: icmp_seq=1 ttl=64 time=0.892 ms
64 bytes from 10.1.3.1: icmp_seq=2 ttl=64 time=0.659 ms
64 bytes from 10.1.3.1: icmp_seq=3 ttl=64 time=0.925 ms
--- 10.1.3.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2023ms
rtt min/avg/max/mdev = 0.659/0.825/0.925/0.118 ms
23:24:50 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Building configuration...
Current configuration:
!
frr version 10.3
frr defaults traditional
hostname R-4
log syslog informational
log facility local4
zebra nexthop-group keep 1
no zebra nexthop kernel enable
fpm address 127.0.0.1
no fpm use-next-hop-groups
agentx
no service integrated-vtysh-config
!
route-map permit-all permit 10
exit
!
password zebra
enable password zebra
!
router bgp 400
neighbor 10.1.3.1 remote-as 200
!
address-family ipv4 unicast
neighbor 10.1.3.1 route-map permit-all in
neighbor 10.1.3.1 route-map permit-all out
exit-address-family
exit
!
ip nht resolve-via-default
!
ipv6 nht resolve-via-default
!
end
23:24:50 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Verification default
node name: R-2
23:24:50 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "show ip bgp"'}]
sub scenario expect mode: and
sub scenario expect values: [['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']]
sub scenario not expect values: [[]]
sub scenario retries: 10
sub scenario delay: 10
23:24:50 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "show ip bgp"'}
expect values: ['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
not expect values: []
23:24:56 test_sonic.run_scenario L0244 INFO |
execute command result:
BGP table version is 2, local router ID is 10.250.0.52, vrf id 0
Default local pref 100, local AS 200
Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.1.8/30 10.1.1.1 0 0 100 i
*= 10.1.3.2 0 0 100 i
Displayed 1 routes and 2 total paths
23:24:56 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:24:56 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
BGP table version is 2, local router ID is 10.250.0.52, vrf id 0
Default local pref 100, local AS 200
Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.1.8/30 10.1.1.1 0 0 100 i
*= 10.1.3.2 0 0 100 i
Displayed 1 routes and 2 total paths
23:24:56 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Verification default
node name: R-2
23:24:56 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "show ip route"'}]
sub scenario expect mode: and
sub scenario expect values: [['B>* 10.1.1.8/30 [20/0] via 10.1.1.1, Ethernet4']]
sub scenario not expect values: [[]]
sub scenario retries: 10
sub scenario delay: 10
23:24:56 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "show ip route"'}
expect values: ['B>* 10.1.1.8/30 [20/0] via 10.1.1.1, Ethernet4']
not expect values: []
23:25:01 test_sonic.run_scenario L0244 INFO |
execute command result:
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
C>* 10.1.1.0/30 is directly connected, Ethernet4, weight 1, 00:02:35
K 10.1.1.0/30 [0/0] is directly connected, Ethernet4, weight 1, 00:02:35
C>* 10.1.1.4/30 is directly connected, Ethernet8, weight 1, 00:02:29
B>* 10.1.1.8/30 [20/0] via 10.1.1.1, Ethernet4, weight 1, 00:00:19
* via 10.1.3.2, Ethernet12, weight 1, 00:00:19
C>* 10.1.3.0/24 is directly connected, Ethernet12, weight 1, 00:02:23
C>* 10.20.0.0/24 is directly connected, Ethernet16, weight 1, 00:02:18
K 10.20.0.0/24 [0/0] is directly connected, Ethernet16, weight 1, 00:02:18
C>* 10.20.1.0/24 is directly connected, Ethernet20, weight 1, 00:02:12
K 10.20.1.0/24 [0/0] is directly connected, Ethernet20, weight 1, 00:02:12
C>* 10.250.0.0/24 is directly connected, eth0, weight 1, 00:10:01
K 240.127.1.0/24 [0/0] is directly connected, docker0 inactive linkdown, weight 1, 00:10:01
23:25:01 test_sonic.run_scenario L0245 INFO |
expect value in result:
['B>* 10.1.1.8/30 [20/0] via 10.1.1.1, Ethernet4']
23:25:01 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
C>* 10.1.1.0/30 is directly connected, Ethernet4, weight 1, 00:02:35
K 10.1.1.0/30 [0/0] is directly connected, Ethernet4, weight 1, 00:02:35
C>* 10.1.1.4/30 is directly connected, Ethernet8, weight 1, 00:02:29
B>* 10.1.1.8/30 [20/0] via 10.1.1.1, Ethernet4, weight 1, 00:00:19
* via 10.1.3.2, Ethernet12, weight 1, 00:00:19
C>* 10.1.3.0/24 is directly connected, Ethernet12, weight 1, 00:02:23
C>* 10.20.0.0/24 is directly connected, Ethernet16, weight 1, 00:02:18
K 10.20.0.0/24 [0/0] is directly connected, Ethernet16, weight 1, 00:02:18
C>* 10.20.1.0/24 is directly connected, Ethernet20, weight 1, 00:02:12
K 10.20.1.0/24 [0/0] is directly connected, Ethernet20, weight 1, 00:02:12
C>* 10.250.0.0/24 is directly connected, eth0, weight 1, 00:10:01
K 240.127.1.0/24 [0/0] is directly connected, docker0 inactive linkdown, weight 1, 00:10:01
23:25:01 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Set route-map
node name: R-1
23:25:01 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map SET-MED permit 10" \\\n-c "set metric 100" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:25:01 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map SET-MED permit 10" \\\n-c "set metric 100" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:25:07 test_sonic.run_scenario L0244 INFO |
execute command result:
23:25:07 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:25:07 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:25:07 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Set route-map
node name: R-3
23:25:07 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "route-map SET-MED permit 10" \\\n-c "set metric 50" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:25:07 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "route-map SET-MED permit 10" \\\n-c "set metric 50" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:25:12 test_sonic.run_scenario L0244 INFO |
execute command result:
23:25:12 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:25:12 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:25:12 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Set neighbor route-map
node name: R-1
23:25:12 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.1.2 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.1.2 soft out"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:25:12 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.1.2 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.1.2 soft out"\n'}
expect values: []
not expect values: []
23:25:17 test_sonic.run_scenario L0244 INFO |
execute command result:
23:25:17 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:25:17 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:25:17 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Set neighbor route-map
node name: R-3
23:25:17 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.3.1 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.3.1 soft out"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:25:17 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "neighbor 10.1.3.1 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.3.1 soft out"\n'}
expect values: []
not expect values: []
23:25:23 test_sonic.run_scenario L0244 INFO |
execute command result:
23:25:23 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:25:23 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:25:23 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Verification neighbor route-map
node name: R-2
23:25:23 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "show ip bgp"'}]
sub scenario expect mode: and
sub scenario expect values: [['10.1.3.2 50 0 100 i', '10.1.1.1 100 0 100 i']]
sub scenario not expect values: [[]]
sub scenario retries: 10
sub scenario delay: 10
23:25:23 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "show ip bgp"'}
expect values: ['10.1.3.2 50 0 100 i', '10.1.1.1 100 0 100 i']
not expect values: []
23:25:28 test_sonic.run_scenario L0244 INFO |
execute command result:
BGP table version is 4, local router ID is 10.250.0.52, vrf id 0
Default local pref 100, local AS 200
Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.1.8/30 10.1.3.2 50 0 100 i
* 10.1.1.1 100 0 100 i
Displayed 1 routes and 2 total paths
23:25:28 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.3.2 50 0 100 i', '10.1.1.1 100 0 100 i']
23:25:28 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
BGP table version is 4, local router ID is 10.250.0.52, vrf id 0
Default local pref 100, local AS 200
Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 10.1.1.8/30 10.1.3.2 50 0 100 i
* 10.1.1.1 100 0 100 i
Displayed 1 routes and 2 total paths
23:25:28 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Verification neighbor route-map
node name: R-2
23:25:28 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "show ip route"'}]
sub scenario expect mode: and
sub scenario expect values: [['B>* 10.1.1.8/30 [20/50] via 10.1.3.2, Ethernet12']]
sub scenario not expect values: [[]]
sub scenario retries: 10
sub scenario delay: 10
23:25:28 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "show ip route"'}
expect values: ['B>* 10.1.1.8/30 [20/50] via 10.1.3.2, Ethernet12']
not expect values: []
23:25:34 test_sonic.run_scenario L0244 INFO |
execute command result:
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
C>* 10.1.1.0/30 is directly connected, Ethernet4, weight 1, 00:03:08
K 10.1.1.0/30 [0/0] is directly connected, Ethernet4, weight 1, 00:03:08
C>* 10.1.1.4/30 is directly connected, Ethernet8, weight 1, 00:03:02
B>* 10.1.1.8/30 [20/50] via 10.1.3.2, Ethernet12, weight 1, 00:00:11
C>* 10.1.3.0/24 is directly connected, Ethernet12, weight 1, 00:02:56
C>* 10.20.0.0/24 is directly connected, Ethernet16, weight 1, 00:02:51
K 10.20.0.0/24 [0/0] is directly connected, Ethernet16, weight 1, 00:02:51
C>* 10.20.1.0/24 is directly connected, Ethernet20, weight 1, 00:02:45
K 10.20.1.0/24 [0/0] is directly connected, Ethernet20, weight 1, 00:02:45
C>* 10.250.0.0/24 is directly connected, eth0, weight 1, 00:10:34
K 240.127.1.0/24 [0/0] is directly connected, docker0 inactive linkdown, weight 1, 00:10:34
23:25:34 test_sonic.run_scenario L0245 INFO |
expect value in result:
['B>* 10.1.1.8/30 [20/50] via 10.1.3.2, Ethernet12']
23:25:34 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
IPv4 unicast VRF default:
C>* 10.1.1.0/30 is directly connected, Ethernet4, weight 1, 00:03:08
K 10.1.1.0/30 [0/0] is directly connected, Ethernet4, weight 1, 00:03:08
C>* 10.1.1.4/30 is directly connected, Ethernet8, weight 1, 00:03:02
B>* 10.1.1.8/30 [20/50] via 10.1.3.2, Ethernet12, weight 1, 00:00:11
C>* 10.1.3.0/24 is directly connected, Ethernet12, weight 1, 00:02:56
C>* 10.20.0.0/24 is directly connected, Ethernet16, weight 1, 00:02:51
K 10.20.0.0/24 [0/0] is directly connected, Ethernet16, weight 1, 00:02:51
C>* 10.20.1.0/24 is directly connected, Ethernet20, weight 1, 00:02:45
K 10.20.1.0/24 [0/0] is directly connected, Ethernet20, weight 1, 00:02:45
C>* 10.250.0.0/24 is directly connected, eth0, weight 1, 00:10:34
K 240.127.1.0/24 [0/0] is directly connected, docker0 inactive linkdown, weight 1, 00:10:34
23:25:34 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Delete neighbor route-map
node name: R-1
23:25:34 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "no neighbor 10.1.1.2 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.1.2 soft out"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:25:34 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "no neighbor 10.1.1.2 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.1.2 soft out"\n'}
expect values: []
not expect values: []
23:25:39 test_sonic.run_scenario L0244 INFO |
execute command result:
23:25:39 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:25:39 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:25:39 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Delete neighbor route-map
node name: R-3
23:25:39 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "no neighbor 10.1.3.1 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.3.1 soft out"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:25:39 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "router bgp 100" \\\n-c "no neighbor 10.1.3.1 route-map SET-MED out" \\\n-c "end" \\\n-c "clear ip bgp 10.1.3.1 soft out"\n'}
expect values: []
not expect values: []
23:25:45 test_sonic.run_scenario L0244 INFO |
execute command result:
23:25:45 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:25:45 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:25:45 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Delete route-map
node name: R-1
23:25:45 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "no route-map SET-MED permit 10" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:25:45 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "no route-map SET-MED permit 10" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:25:50 test_sonic.run_scenario L0244 INFO |
execute command result:
23:25:50 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:25:50 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:25:50 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Delete route-map
node name: R-3
23:25:50 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "config" \\\n-c "no route-map SET-MED permit 10" \\\n-c "end"\n'}]
sub scenario expect mode: and
sub scenario expect values: [[]]
sub scenario not expect values: [[]]
sub scenario retries: 5
sub scenario delay: 1
23:25:50 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "config" \\\n-c "no route-map SET-MED permit 10" \\\n-c "end"\n'}
expect values: []
not expect values: []
23:25:55 test_sonic.run_scenario L0244 INFO |
execute command result:
23:25:55 test_sonic.run_scenario L0245 INFO |
expect value in result:
[]
23:25:55 test_sonic.run_scenario L0272 INFO | The expected value is included in the printed result.
output:
23:25:55 test_sonic.run_scenario L0169 INFO |
step 1-1) sub scenario name: Verification default
node name: R-2
23:25:55 test_sonic.run_scenario L0218 INFO |
step 1-2) sub scenario actions: [{'command': 'vtysh -c "show ip bgp"'}]
sub scenario expect mode: and
sub scenario expect values: [['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']]
sub scenario not expect values: [[]]
sub scenario retries: 10
sub scenario delay: 10
23:25:55 test_sonic.run_scenario L0224 INFO |
step 1-3) act command: {'command': 'vtysh -c "show ip bgp"'}
expect values: ['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
not expect values: []
23:26:01 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:26:01 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:26:01 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((1/10 attempts)
23:26:16 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:26:16 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:26:16 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((2/10 attempts)
23:26:32 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:26:32 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:26:32 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((3/10 attempts)
23:26:47 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:26:47 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:26:47 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((4/10 attempts)
23:27:03 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:27:03 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:27:03 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((5/10 attempts)
23:27:18 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:27:18 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:27:18 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((6/10 attempts)
23:27:34 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:27:34 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:27:34 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((7/10 attempts)
23:27:49 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:27:49 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:27:49 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((8/10 attempts)
23:28:05 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:28:05 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:28:05 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((9/10 attempts)
23:28:20 test_sonic.run_scenario L0244 INFO |
execute command result:
No BGP prefixes displayed, 0 exist
23:28:20 test_sonic.run_scenario L0245 INFO |
expect value in result:
['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
23:28:20 test_sonic.run_scenario L0287 INFO | Contidion not met. Retrying in 10 seconds...((10/10 attempts)
23:28:30 test_sonic.run_scenario L0292 ERROR | Test failed after 10 retries for command: vtysh -c "show ip bgp"
23:28:30 test_sonic.run_scenario L0293 ERROR | Final output was:
No BGP prefixes displayed, 0 exist
ERROR:root:Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 1788, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 194, in pytest_pyfunc_call
result = testfunction(**testargs)
File "/data/NetAutoTestFW/tests/test_sonic/test_sonic.py", line 413, in test_scenario
run_scenario(duthosts, ubuntus, vmhost, parse_scenario, record_property, reload_config, sonicHostname, sonic_ssh_prompt, ubuntuHostname, ubuntu_ssh_prompt)
File "/data/NetAutoTestFW/tests/test_sonic/test_sonic.py", line 294, in run_scenario
assert False, error_message
AssertionError: Test failed after 10 retries for command: vtysh -c "show ip bgp"
23:28:30 __init__.pytest_runtest_call L0040 ERROR | Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 1788, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/usr/local/lib/python3.8/dist-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/usr/local/lib/python3.8/dist-packages/_pytest/python.py", line 194, in pytest_pyfunc_call
result = testfunction(**testargs)
File "/data/NetAutoTestFW/tests/test_sonic/test_sonic.py", line 413, in test_scenario
run_scenario(duthosts, ubuntus, vmhost, parse_scenario, record_property, reload_config, sonicHostname, sonic_ssh_prompt, ubuntuHostname, ubuntu_ssh_prompt)
File "/data/NetAutoTestFW/tests/test_sonic/test_sonic.py", line 294, in run_scenario
assert False, error_message
AssertionError: Test failed after 10 retries for command: vtysh -c "show ip bgp"
FAILEDINFO:SectionStartLogger:==================== test_sonic/test_sonic.py::test_scenario teardown ====================
TEARDOWN F record_property
------------------------------ live log teardown -------------------------------
23:28:30 __init__.loganalyzer L0074 INFO | Starting to analyse on all SONiC Devices
23:28:35 parallel.on_terminate L0085 INFO | process analyze_logs-- terminated with exit code None
23:28:35 parallel.on_terminate L0085 INFO | process analyze_logs-- terminated with exit code None
23:28:35 parallel.on_terminate L0085 INFO | process analyze_logs-- terminated with exit code None
23:28:36 parallel.on_terminate L0085 INFO | process analyze_logs-- terminated with exit code None
23:28:36 parallel.parallel_run L0221 INFO | Completed running processes for target "analyze_logs" in 0:00:05.342070 seconds
TEARDOWN F loganalyzer
TEARDOWN M ubuntu_paramiko_ssh
TEARDOWN M sonic_paramiko_ssh23:28:36 config_reload.config_reload L0144 INFO | reloading config_db
23:29:59 processes_utils.wait_critical_processes L0076 INFO | Wait until all critical processes are healthy in 300 sec
23:29:59 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:30:03 config_reload.config_reload L0144 INFO | reloading config_db
23:31:25 processes_utils.wait_critical_processes L0076 INFO | Wait until all critical processes are healthy in 300 sec
23:31:25 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:31:29 processes_utils.get_critical_processes_s L0035 INFO | The status of checking process in container 'snmp' is: False
23:31:29 processes_utils.get_critical_processes_s L0037 INFO | The processes not running in container 'snmp' are: '['snmp-subagent']'
23:31:49 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:31:53 config_reload.config_reload L0144 INFO | reloading config_db
23:33:14 processes_utils.wait_critical_processes L0076 INFO | Wait until all critical processes are healthy in 300 sec
23:33:14 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:33:18 processes_utils.get_critical_processes_s L0035 INFO | The status of checking process in container 'snmp' is: False
23:33:18 processes_utils.get_critical_processes_s L0037 INFO | The processes not running in container 'snmp' are: '['snmp-subagent']'
23:33:38 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:33:43 config_reload.config_reload L0144 INFO | reloading config_db
23:35:05 processes_utils.wait_critical_processes L0076 INFO | Wait until all critical processes are healthy in 300 sec
23:35:05 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
23:35:09 processes_utils.get_critical_processes_s L0035 INFO | The status of checking process in container 'snmp' is: False
23:35:09 processes_utils.get_critical_processes_s L0037 INFO | The processes not running in container 'snmp' are: '['snmp-subagent']'
23:35:29 processes_utils._all_critical_processes_ L0045 INFO | Check critical processes status
TEARDOWN M reload_config23:35:43 conftest.setup_trex_daemons L0465 INFO | [Teardown] Test finished. TRex daemon stopped: set()
TEARDOWN M setup_trex_daemons
TEARDOWN M parse_scenario23:35:43 conftest.core_dump_and_config_check L0636 INFO | Dumping Disk and Memory Space informataion after test on R-1
23:35:44 conftest.core_dump_and_config_check L0640 INFO | Collecting core dumps after test on R-1
23:35:44 conftest.core_dump_and_config_check L0658 INFO | Collecting running config after test on R-1
23:35:45 conftest.core_dump_and_config_check L0636 INFO | Dumping Disk and Memory Space informataion after test on R-2
23:35:46 conftest.core_dump_and_config_check L0640 INFO | Collecting core dumps after test on R-2
23:35:46 conftest.core_dump_and_config_check L0658 INFO | Collecting running config after test on R-2
23:35:46 conftest.core_dump_and_config_check L0636 INFO | Dumping Disk and Memory Space informataion after test on R-3
23:35:47 conftest.core_dump_and_config_check L0640 INFO | Collecting core dumps after test on R-3
23:35:48 conftest.core_dump_and_config_check L0658 INFO | Collecting running config after test on R-3
23:35:48 conftest.core_dump_and_config_check L0636 INFO | Dumping Disk and Memory Space informataion after test on R-4
23:35:49 conftest.core_dump_and_config_check L0640 INFO | Collecting core dumps after test on R-4
23:35:49 conftest.core_dump_and_config_check L0658 INFO | Collecting running config after test on R-4
23:35:50 conftest.core_dump_and_config_check L0796 INFO | Core dump and config check passed for test_sonic/test_sonic.py
TEARDOWN M core_dump_and_config_check
TEARDOWN M sanity_check
TEARDOWN S parallel_run_context
TEARDOWN S vmhost
TEARDOWN S tag_test_report
TEARDOWN S record_testsuite_property
TEARDOWN S ubuntus
TEARDOWN S pytestconfig
TEARDOWN S add_mgmt_test_mark
TEARDOWN S duthosts
TEARDOWN S ansible_adhoc
TEARDOWN S enhance_inventory
TEARDOWN S tbinfoDEBUG:tests.conftest:[log_custom_msg] item:
=================================== FAILURES ===================================
________________________________ test_scenario _________________________________
duthosts = [, , , ]
ubuntus = []
vmhost =
parse_scenario =
record_property = .append_property at 0x72c1a09b4ee0>
reload_config = None
sonic_paramiko_ssh = (['R-1', 'R-2', 'R-3', 'R-4'], ['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_6... https://sonic-net.github.io/SONiC/\r\n\r\nLast login: Mon Sep 21 23:04:21 2026 from 10.250.0.1\r\r\nadmin@R-4:~$ '])
ubuntu_paramiko_ssh = ([], [])
def test_scenario(duthosts, ubuntus, vmhost, parse_scenario, record_property, reload_config, sonic_paramiko_ssh, ubuntu_paramiko_ssh):
sonicHostname, sonic_ssh_prompt = sonic_paramiko_ssh
ubuntuHostname, ubuntu_ssh_prompt = ubuntu_paramiko_ssh
> run_scenario(duthosts, ubuntus, vmhost, parse_scenario, record_property, reload_config, sonicHostname, sonic_ssh_prompt, ubuntuHostname, ubuntu_ssh_prompt)
duthosts = [, , , ]
parse_scenario =
record_property = .append_property at 0x72c1a09b4ee0>
reload_config = None
sonicHostname = ['R-1', 'R-2', 'R-3', 'R-4']
sonic_paramiko_ssh = (['R-1', 'R-2', 'R-3', 'R-4'],
['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:16 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-1:~$ ',
'Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:18 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-2:~$ ',
'Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:20 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-3:~$ ',
'Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:21 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-4:~$ '])
sonic_ssh_prompt = ['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:16 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-1:~$ ',
'Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:18 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-2:~$ ',
'Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:20 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-3:~$ ',
'Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:21 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-4:~$ ']
ubuntuHostname = []
ubuntu_paramiko_ssh = ([], [])
ubuntu_ssh_prompt = []
ubuntus = []
vmhost =
test_sonic/test_sonic.py:413:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
duthosts = [, , , ]
ubuntus = []
vmhost =
parse_scenario =
record_property = .append_property at 0x72c1a09b4ee0>
reload_config = None, sonicHostname = ['R-1', 'R-2', 'R-3', 'R-4']
sonic_ssh_prompt = ['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64\r\nYou are on\r\n ____ ___... https://sonic-net.github.io/SONiC/\r\n\r\nLast login: Mon Sep 21 23:04:21 2026 from 10.250.0.1\r\r\nadmin@R-4:~$ ']
ubuntuHostname = [], ubuntu_ssh_prompt = []
def run_scenario(duthosts, ubuntus, vmhost, parse_scenario, record_property, reload_config, sonicHostname, sonic_ssh_prompt, ubuntuHostname, ubuntu_ssh_prompt):
duthost = duthosts
ubuntu = ubuntus
server = vmhost
logger.info('test device hostname: {}'.format(duthost.hostname))
logger.info('server hostname: {}'.format(server.hostname))
# Parsing Scenario data
scenario = parse_scenario
logger.info('step 0) scenario_data:\n{}'.format(scenario))
# This Section, parsed data save to variable for test
for keys in scenario:
scenario_name = keys['scenario_name']
logger.info('\nstep 1) scenario name:{}'.format(scenario_name))
record_property("Scenario_name","{}".format(scenario_name))
for tasks in keys['steps']:
sub_scenario_name = tasks['name']
if scenario_name == "Print Topology Image":
topo_img_path = tasks['img_path']
topo_img_name = tasks['img_name']
sum_img_path = topo_img_path + '/' + topo_img_name
start_time = datetime.now().strftime('%H:%M:%S')
assert sum_img_path, record_property("Fail", "Fail")
record_property('Action', sub_scenario_name)
record_property('Session','caller')
record_property('Time Stamp',start_time)
record_property('Pass/Fail','Pass')
record_property('Parameter',topo_img_name)
record_property('Response',sum_img_path)
elif scenario_name == "Session Check":
session_node_name = tasks['node']
logger.info('nodes: {}'.format(session_node_name))
device = sonicHostname + ubuntuHostname
ssh_prompt = sonic_ssh_prompt + ubuntu_ssh_prompt
for dev, ssh in zip(device, ssh_prompt):
if dev == session_node_name:
logger.info('step 1)\nHostname:\n{}\nnode name:\n{}'.format(dev, session_node_name))
logger.info('step 2)\nssh_prompt:\n{}'.format(ssh))
start_time = datetime.now().strftime('%H:%M:%S')
assert dev == session_node_name, record_property("Fail", "Fail")
logger.info('step 3)\n pass')
record_property("Action", sub_scenario_name)
record_property("Session","{}".format(dev))
record_property("Time Stamp",start_time)
record_property("Pass/Fail","Pass")
record_property("Parameter","None")
record_property("Response","{}".format(ssh))
elif 'source' in tasks and 'packet' in tasks:
# Duck-typing: If a step has 'source' and 'packet', it is a Traffic Generation test
logger.info('\nstep 1) Traffic Generation test detected: {}'.format(sub_scenario_name))
start_time = datetime.now().strftime('%H:%M:%S')
execute_traffic_step(tasks, duthost, ubuntu)
# If it successfully returns without assertion failure, we record PASS
record_property("Action", sub_scenario_name)
record_property("Session", tasks['source']['node'])
record_property("Time Stamp", start_time)
record_property("Pass/Fail", "Pass")
record_property("Parameter", "Snappi TRex Traffic ({} pkts)".format(tasks['packet']['tx_packets']))
record_property("Response", "Traffic validation succeeded")
record_property("Judgement", "Success")
else:
node_name = tasks['node']
logger.info('\nstep 1-1) sub scenario name: {}\nnode name: {}'.format(sub_scenario_name, node_name))
if 'template' in tasks:
import yaml
from jinja2 import Template
scenario_path = getattr(parse_scenario, 'scenario_filename', '')
if "bgp/" in scenario_path or "bgp_policy/" in scenario_path:
ip_profile = "bgp_ip"
elif "ospf_routemap_redistribute/" in scenario_path:
ip_profile = "ospf_redist_ip"
else:
ip_profile = "common_ip"
if "vlan/" in scenario_path or "lacp/" in scenario_path or "ip/" in scenario_path:
start_daemons = False
else:
start_daemons = True
try:
with open("/data/NetAutoTestFW/ansible/vsonic_vtb", "r") as f:
vtb = yaml.safe_load(f)
ip_map = vtb['all']['children']['sonic_r']['vars'].get(ip_profile, {})
target_ips = ip_map.get(node_name, [])
except Exception as e:
logger.error(f"Failed to load IP profile from vsonic_vtb: {e}")
target_ips = []
template_path = tasks['template']
with open(f"/data/NetAutoTestFW/{template_path}", "r") as f:
template_content = f.read()
rendered = Template(template_content).render(ip_list=target_ips, start_daemons=start_daemons)
cmds = [cmd.strip() for cmd in rendered.strip().split('\n') if cmd.strip() and not cmd.strip().startswith('#')]
tasks['actions'] = [{'command': cmd} for cmd in cmds]
tasks['expect'] = {'mode': 'and', 'values': [[] for _ in cmds]}
tasks['not_expect'] = {'mode': 'and', 'values': [[] for _ in cmds]}
sub_scenario_actions = tasks['actions']
sub_scenario_expect = tasks.get('expect', {'mode': 'and', 'values': []})
sub_scenario_not_expect = tasks.get('not_expect', {'mode': 'and', 'values': []})
sub_scenario_retries = tasks.get('retries', 5)
sub_scenario_delay = tasks.get('delay', 1)
sub_sce_exp_mode = sub_scenario_expect.get('mode', 'and')
sub_sce_exp_values = sub_scenario_expect.get('values', [])
sub_sce_not_exp_values = sub_scenario_not_expect.get('values', [])
logger.info('\nstep 1-2) sub scenario actions: {}\nsub scenario expect mode: {}\nsub scenario expect values: {}\nsub scenario not expect values: {}\nsub scenario retries: {}\nsub scenario delay: {}'.format(sub_scenario_actions, sub_sce_exp_mode, sub_sce_exp_values, sub_sce_not_exp_values, sub_scenario_retries, sub_scenario_delay))
# This Section, command execute to SONiC Test Device
for dut in duthost:
if node_name == dut.hostname:
for act_command, expect_values, not_expect_values in zip(sub_scenario_actions, sub_sce_exp_values, sub_sce_not_exp_values):
logger.info('\nstep 1-3) act command: {}\nexpect values: {}\nnot expect values: {}'.format(act_command, expect_values, not_expect_values))
single_command = act_command.get('command')
timestamps = datetime.now().strftime('%H:%M:%S')
contain_str = '\n'.join("contain string: {}".format(v) for v in expect_values)
not_contain_str = '\n'.join("not contain string: {}".format(n) for n in not_expect_values)
# trace success function
trace_success = False
output = ""
# This Section, repeat until the output contains the intended value.
for attempt in range(sub_scenario_retries):
execute_cmd = dut.shell(single_command, module_ignore_errors=True)
time.sleep(5)
stdout = execute_cmd.get('stdout', '')
stderr = execute_cmd.get('stderr', '')
output = stdout + '\n' + stderr
nomalized_lines = [' '.join(line.split()) for line in output.splitlines()]
logger.info('\nexecute command result:\n{}'.format(output))
logger.info('\nexpect value in result:\n{}'.format(expect_values))
import re
if 'neighbor' in single_command and 'remote-as' in single_command:
match = re.search(r'neighbor\s+([0-9\.]+)\s+remote-as', single_command)
if match:
neighbor_ip = match.group(1)
logger.info(f"[{node_name}] Auto Ping Verification to neighbor: {neighbor_ip}")
ping_result = dut.shell(f"ping {neighbor_ip} -c 3", module_ignore_errors=True)
logger.info(f"[{node_name}] Ping result:\n{ping_result.get('stdout', '')}")
if ping_result.get('rc', -1) != 0:
logger.warning(f"[{node_name}] Ping failed to {neighbor_ip}")
expect_ok = False
if not expect_values:
expect_ok = True
elif sub_sce_exp_mode == "and":
expect_ok = all(any(val in line for line in nomalized_lines) for val in expect_values)
elif sub_sce_exp_mode == "or":
expect_ok = any(any(val in line for line in nomalized_lines) for val in expect_values)
not_expect_ok = not not_expect_values or all(all(val not in line for line in nomalized_lines) for val in not_expect_values)
condition_met = expect_ok and not_expect_ok
if condition_met:
logger.info('The expected value is included in the printed result.\noutput:\n{}'.format(output))
trace_success = True
if isinstance(output, str) and output.strip():
if not_expect_values == "":
exist_only_expect_values(sub_scenario_name, node_name, timestamps, single_command, output, sub_sce_exp_mode, contain_str, record_property)
elif not_expect_values != "" and expect_values == "":
exist_only_not_expect_values(sub_scenario_name, node_name, timestamps, single_command, output, sub_sce_exp_mode, not_contain_str, record_property)
elif not_expect_values != "" and expect_values != "":
exist_not_expect_and_expect_values(sub_scenario_name, node_name, timestamps, single_command, output, sub_sce_exp_mode, contain_str, not_contain_str, record_property)
else:
empty_expect_and_not_expect_values(sub_scenario_name, node_name, timestamps, single_command, record_property)
break
else:
logger.info('Contidion not met. Retrying in {} seconds...(({}/{} attempts)'.format(sub_scenario_delay, attempt + 1, sub_scenario_retries))
time.sleep(sub_scenario_delay)
if not trace_success:
# If generated AssertionError when test failed
error_message = "Test failed after {} retries for command: {}".format(sub_scenario_retries, single_command)
logger.error(error_message)
logger.error("Final output was:\n{}".format(output))
> assert False, error_message
E AssertionError: Test failed after 10 retries for command: vtysh -c "show ip bgp"
Template =
act_command = {'command': 'vtysh -c "show ip bgp"'}
attempt = 9
cmds = ['docker exec -i bgp bash -c "/usr/lib/frr/ripd &"',
'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"',
'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"',
'sudo config interface ip add Ethernet4 10.1.4.1/24',
'sudo config interface ip add Ethernet8 10.1.3.3/24',
'sudo config interface ip add Ethernet12 10.40.0.1/24',
'sudo config interface ip add Ethernet16 10.40.1.1/24']
condition_met = False
contain_str = 'contain string: 10.1.1.1 0 0 100 i\ncontain string: 10.1.3.2 0 0 100 i'
dev = 'R-4'
device = ['R-1', 'R-2', 'R-3', 'R-4']
dut =
duthost = [, , , ]
duthosts = [, , , ]
error_message = 'Test failed after 10 retries for command: vtysh -c "show ip bgp"'
execute_cmd = {'_ansible_no_log': None,
'changed': True,
'cmd': 'vtysh -c "show ip bgp"',
'delta': '0:00:00.102505',
'end': '2026-09-21 23:28:14.326902',
'failed': False,
'invocation': {'module_args': {'_raw_params': 'vtysh -c "show ip bgp"',
'_uses_shell': True,
'argv': None,
'chdir': None,
'creates': None,
'executable': None,
'removes': None,
'stdin': None,
'stdin_add_newline': True,
'strip_empty_ends': True,
'warn': False}},
'msg': '',
'rc': 0,
'start': '2026-09-21 23:28:14.224397',
'stderr': '',
'stderr_lines': [],
'stdout': 'No BGP prefixes displayed, 0 exist',
'stdout_lines': ['No BGP prefixes displayed, 0 exist']}
expect_ok = False
expect_values = ['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']
f = <_io.TextIOWrapper name='/data/NetAutoTestFW/tests/common/templates/common_setup.j2' mode='r' encoding='UTF-8'>
ip_map = {'R-1': [{'intf': 'Ethernet4', 'ip': '10.1.1.1/30'},
{'intf': 'Ethernet8', 'ip': '10.1.1.9/30'},
{'intf': 'Ethernet12', 'ip': '10.1.1.5/30'},
{'intf': 'Ethernet16', 'ip': '10.10.1.1/24'},
{'intf': 'Ethernet20', 'ip': '10.10.2.1/24'}],
'R-2': [{'intf': 'Ethernet4', 'ip': '10.1.1.2/30'},
{'intf': 'Ethernet8', 'ip': '10.1.1.6/30'},
{'intf': 'Ethernet12', 'ip': '10.1.3.1/24'},
{'intf': 'Ethernet16', 'ip': '10.20.0.1/24'},
{'intf': 'Ethernet20', 'ip': '10.20.1.1/24'}],
'R-3': [{'intf': 'Ethernet0', 'ip': '10.1.1.10/30'},
{'intf': 'Ethernet8', 'ip': '10.1.3.2/24'},
{'intf': 'Ethernet12', 'ip': '10.30.0.1/24'},
{'intf': 'Ethernet16', 'ip': '10.30.1.1/24'}],
'R-4': [{'intf': 'Ethernet4', 'ip': '10.1.4.1/24'},
{'intf': 'Ethernet8', 'ip': '10.1.3.3/24'},
{'intf': 'Ethernet12', 'ip': '10.40.0.1/24'},
{'intf': 'Ethernet16', 'ip': '10.40.1.1/24'}],
'R-5': [{'intf': 'Ethernet0', 'ip': '10.1.4.2/24'},
{'intf': 'Ethernet8', 'ip': '10.50.0.1/24'},
{'intf': 'Ethernet12', 'ip': '10.50.1.1/24'}]}
ip_profile = 'bgp_ip'
keys = {'scenario_name': 'MED Attribute Function',
'steps': [{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map permit-all permit 10" \\\n'
'-c "exit" \\\n'
'-c "router bgp 100" \\\n'
'-c "neighbor 10.1.1.2 remote-as 200" \\\n'
'-c "neighbor 10.1.1.2 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.1.2 route-map '
'permit-all out" \\\n'
'-c "neighbor 10.1.1.10 remote-as 100" \\\n'
'-c "neighbor 10.1.1.10 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.1.10 route-map '
'permit-all out" \\\n'
'-c "network 10.1.1.8/30" \\\n'
'-c "do show running-config" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Default - Set Default',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map permit-all permit 10" \\\n'
'-c "exit" \\\n'
'-c "router bgp 200" \\\n'
'-c "neighbor 10.1.1.1 remote-as 100" \\\n'
'-c "neighbor 10.1.1.1 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.1.1 route-map '
'permit-all out" \\\n'
'-c "neighbor 10.1.3.2 remote-as 100" \\\n'
'-c "neighbor 10.1.3.2 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.3.2 route-map '
'permit-all out" \\\n'
'-c "neighbor 10.1.3.2 next-hop-self" \\\n'
'-c "neighbor 10.1.3.3 remote-as 400" \\\n'
'-c "neighbor 10.1.3.3 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.3.3 route-map '
'permit-all out" \\\n'
'-c "neighbor 10.1.3.3 next-hop-self" \\\n'
'-c "do show running-config" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Default - Set Default',
'node': 'R-2',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map permit-all permit 10" \\\n'
'-c "exit" \\\n'
'-c "router bgp 100" \\\n'
'-c "network 10.1.1.8/30" \\\n'
'-c "neighbor 10.1.1.9 remote-as 100" \\\n'
'-c "neighbor 10.1.1.9 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.1.9 route-map '
'permit-all out" \\\n'
'-c "neighbor 10.1.3.1 remote-as 200" \\\n'
'-c "neighbor 10.1.3.1 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.3.1 route-map '
'permit-all out" \\\n'
'-c "do show running-config" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Default - Set Default',
'node': 'R-3',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map permit-all permit 10" \\\n'
'-c "exit" \\\n'
'-c "router bgp 400" \\\n'
'-c "neighbor 10.1.3.1 remote-as 200" \\\n'
'-c "neighbor 10.1.3.1 route-map '
'permit-all in" \\\n'
'-c "neighbor 10.1.3.1 route-map '
'permit-all out" \\\n'
'-c "do show running-config" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Default - Set Default',
'node': 'R-4',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "show ip bgp"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['10.1.1.1 0 0 100 i',
'10.1.3.2 0 0 100 i']]},
'name': 'Verification default',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "show ip route"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['B>* 10.1.1.8/30 [20/0] via 10.1.1.1, '
'Ethernet4']]},
'name': 'Verification default',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map SET-MED permit 10" \\\n'
'-c "set metric 100" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Set route-map',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "route-map SET-MED permit 10" \\\n'
'-c "set metric 50" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Set route-map',
'node': 'R-3',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "router bgp 100" \\\n'
'-c "neighbor 10.1.1.2 route-map SET-MED '
'out" \\\n'
'-c "end" \\\n'
'-c "clear ip bgp 10.1.1.2 soft out"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Set neighbor route-map',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "router bgp 100" \\\n'
'-c "neighbor 10.1.3.1 route-map SET-MED '
'out" \\\n'
'-c "end" \\\n'
'-c "clear ip bgp 10.1.3.1 soft out"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Set neighbor route-map',
'node': 'R-3',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "show ip bgp"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['10.1.3.2 50 0 100 i',
'10.1.1.1 100 0 100 i']]},
'name': 'Verification neighbor route-map',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "show ip route"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['B>* 10.1.1.8/30 [20/50] via 10.1.3.2, '
'Ethernet12']]},
'name': 'Verification neighbor route-map',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "router bgp 100" \\\n'
'-c "no neighbor 10.1.1.2 route-map '
'SET-MED out" \\\n'
'-c "end" \\\n'
'-c "clear ip bgp 10.1.1.2 soft out"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete neighbor route-map',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "router bgp 100" \\\n'
'-c "no neighbor 10.1.3.1 route-map '
'SET-MED out" \\\n'
'-c "end" \\\n'
'-c "clear ip bgp 10.1.3.1 soft out"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete neighbor route-map',
'node': 'R-3',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "no route-map SET-MED permit 10" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete route-map',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "no route-map SET-MED permit 10" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete route-map',
'node': 'R-3',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "show ip bgp"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['10.1.1.1 0 0 100 i',
'10.1.3.2 0 0 100 i']]},
'name': 'Verification default',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "show ip route"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['B>* 10.1.1.8/30 [20/0] via 10.1.1.1, '
'Ethernet4']]},
'name': 'Verification default',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "no router bgp 100" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete Default',
'node': 'R-1',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "no router bgp 200" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete Default',
'node': 'R-2',
'not_expect': {'values': [[]]}},
{'actions': [{'command': 'vtysh -c "config" \\\n'
'-c "no router bgp 100" \\\n'
'-c "end"\n'}],
'expect': {'mode': 'and', 'values': [[]]},
'name': 'Delete Default',
'node': 'R-3',
'not_expect': {'values': [[]]}}]}
match =
neighbor_ip = '10.1.3.1'
node_name = 'R-2'
nomalized_lines = ['No BGP prefixes displayed, 0 exist']
not_contain_str = ''
not_expect_ok = True
not_expect_values = []
output = 'No BGP prefixes displayed, 0 exist\n'
parse_scenario =
ping_result = {'_ansible_no_log': None,
'changed': True,
'cmd': 'ping 10.1.3.1 -c 3',
'delta': '0:00:02.030088',
'end': '2026-09-21 23:24:48.494670',
'failed': False,
'invocation': {'module_args': {'_raw_params': 'ping 10.1.3.1 -c 3',
'_uses_shell': True,
'argv': None,
'chdir': None,
'creates': None,
'executable': None,
'removes': None,
'stdin': None,
'stdin_add_newline': True,
'strip_empty_ends': True,
'warn': False}},
'msg': '',
'rc': 0,
'start': '2026-09-21 23:24:46.464582',
'stderr': '',
'stderr_lines': [],
'stdout': 'PING 10.1.3.1 (10.1.3.1) 56(84) bytes of data.\n'
'64 bytes from 10.1.3.1: icmp_seq=1 ttl=64 time=0.892 ms\n'
'64 bytes from 10.1.3.1: icmp_seq=2 ttl=64 time=0.659 ms\n'
'64 bytes from 10.1.3.1: icmp_seq=3 ttl=64 time=0.925 ms\n'
'\n'
'--- 10.1.3.1 ping statistics ---\n'
'3 packets transmitted, 3 received, 0% packet loss, time 2023ms\n'
'rtt min/avg/max/mdev = 0.659/0.825/0.925/0.118 ms',
'stdout_lines': ['PING 10.1.3.1 (10.1.3.1) 56(84) bytes of data.',
'64 bytes from 10.1.3.1: icmp_seq=1 ttl=64 time=0.892 ms',
'64 bytes from 10.1.3.1: icmp_seq=2 ttl=64 time=0.659 ms',
'64 bytes from 10.1.3.1: icmp_seq=3 ttl=64 time=0.925 ms',
'',
'--- 10.1.3.1 ping statistics ---',
'3 packets transmitted, 3 received, 0% packet loss, time '
'2023ms',
'rtt min/avg/max/mdev = 0.659/0.825/0.925/0.118 ms']}
re =
record_property = .append_property at 0x72c1a09b4ee0>
reload_config = None
rendered = ('\n'
'# Start daemons\n'
'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"\n'
'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"\n'
'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"\n'
'\n'
'\n'
'# Set IPs\n'
'\n'
'sudo config interface ip add Ethernet4 10.1.4.1/24\n'
'\n'
'sudo config interface ip add Ethernet8 10.1.3.3/24\n'
'\n'
'sudo config interface ip add Ethernet12 10.40.0.1/24\n'
'\n'
'sudo config interface ip add Ethernet16 10.40.1.1/24\n')
scenario =
scenario_name = 'MED Attribute Function'
scenario_path = 'test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml'
server =
session_node_name = 'R-4'
single_command = 'vtysh -c "show ip bgp"'
sonicHostname = ['R-1', 'R-2', 'R-3', 'R-4']
sonic_ssh_prompt = ['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:16 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-1:~$ ',
'Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:18 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-2:~$ ',
'Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:20 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-3:~$ ',
'Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:21 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-4:~$ ']
ssh = ('Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:21 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-4:~$ ')
ssh_prompt = ['Linux R-1 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:16 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-1:~$ ',
'Linux R-2 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:18 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-2:~$ ',
'Linux R-3 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:20 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-3:~$ ',
'Linux R-4 6.1.0-29-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 '
'(2025-01-02) x86_64\r\n'
'You are on\r\n'
' ____ ___ _ _ _ ____\r\n'
' / ___| / _ \\| \\ | (_)/ ___|\r\n'
' \\___ \\| | | | \\| | | |\r\n'
' ___) | |_| | |\\ | | |___\r\n'
' |____/ \\___/|_| \\_|_|\\____|\r\n'
'\r\n'
'-- Software for Open Networking in the Cloud --\r\n'
'\r\n'
'Unauthorized access and/or use are prohibited.\r\n'
'All access and/or use are subject to monitoring.\r\n'
'\r\n'
'Help: https://sonic-net.github.io/SONiC/\r\n'
'\r\n'
'Last login: Mon Sep 21 23:04:21 2026 from 10.250.0.1\r'
'\r\n'
'admin@R-4:~$ ']
start_daemons = True
start_time = '23:21:08'
stderr = ''
stdout = 'No BGP prefixes displayed, 0 exist'
sub_sce_exp_mode = 'and'
sub_sce_exp_values = [['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']]
sub_sce_not_exp_values = [[]]
sub_scenario_actions = [{'command': 'vtysh -c "show ip bgp"'}]
sub_scenario_delay = 10
sub_scenario_expect = {'mode': 'and', 'values': [['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']]}
sub_scenario_name = 'Verification default'
sub_scenario_not_expect = {'values': [[]]}
sub_scenario_retries = 10
sum_img_path = '/data/NetAutoTestFW/tests/converter_report/topology_img/topo-L3-bgp.jpg'
target_ips = [{'intf': 'Ethernet4', 'ip': '10.1.4.1/24'},
{'intf': 'Ethernet8', 'ip': '10.1.3.3/24'},
{'intf': 'Ethernet12', 'ip': '10.40.0.1/24'},
{'intf': 'Ethernet16', 'ip': '10.40.1.1/24'}]
tasks = {'actions': [{'command': 'vtysh -c "show ip bgp"'}],
'delay': 10,
'expect': {'mode': 'and',
'values': [['10.1.1.1 0 0 100 i', '10.1.3.2 0 0 100 i']]},
'name': 'Verification default',
'node': 'R-2',
'not_expect': {'values': [[]]},
'retries': 10}
template_content = ('{% if start_daemons %}\n'
'# Start daemons\n'
'docker exec -i bgp bash -c "/usr/lib/frr/ripd &"\n'
'docker exec -i bgp bash -c "/usr/lib/frr/isisd &"\n'
'docker exec -i bgp bash -c "/usr/lib/frr/ospfd &"\n'
'{% endif %}\n'
'\n'
'# Set IPs\n'
'{% for item in ip_list %}\n'
'sudo config interface ip add {{ item.intf }} {{ item.ip }}\n'
'{% endfor %}\n')
template_path = 'tests/common/templates/common_setup.j2'
timestamps = '23:25:55'
topo_img_name = 'topo-L3-bgp.jpg'
topo_img_path = '/data/NetAutoTestFW/tests/converter_report/topology_img'
trace_success = False
ubuntu = []
ubuntuHostname = []
ubuntu_ssh_prompt = []
ubuntus = []
vmhost =
vtb = {'all': {'children': {'TGS': {'hosts': {'TG-1': {'ansible_host': '10.250.0.108',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'first_mac': '52:54:00:20:01:02',
'mac_addr': '52:54:00:20:01:01',
'second_mac': '52:54:00:20:01:03',
'type': 'kvm'}},
'vars': {'ansible_altpassword': 'YourPaSsWoRd',
'ansible_connection': 'multi_passwd_ssh',
'mgmt_subnet_mask_length': 24,
'mgmt_subnet_v6_mask_length': 64}},
'onie': {'hosts': {'dhcp-server': {'ansible_host': '10.250.0.2',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'type': 'kvm'},
'http-server': {'ansible_host': '10.250.0.3',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'type': 'kvm'}},
'vars': {'ansible_altpassword': 'YourPaSsWoRd',
'ansible_connection': 'multi_passwd_ssh',
'mgmt_subnet_mask_length': 24,
'mgmt_subnet_v6_mask_length': 64}},
'servers': {'children': {'server_1': {'children': {'TGS': None,
'onie': None,
'sonic_r': None,
'sonic_sw': None,
'ubuntu': None,
'vm_host_1': None},
'vars': {'host_var_file': 'host_vars/STR-ACS-VSERV-01.yml'}}},
'vars': {'topologies': ['etri',
'etri_bgp',
'etri_l2']}},
'sonic_r': {'hosts': {'R-1': {'ansible_host': '10.250.0.51',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:01',
'os_name': 'sonic-vs.bin',
'serial_port': 7001,
'symbolic_link': 'onie-installer-vs-1',
'type': 'kvm'},
'R-2': {'ansible_host': '10.250.0.52',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:02',
'os_name': 'sonic-vs.bin',
'serial_port': 7002,
'symbolic_link': 'onie-installer-vs-2',
'type': 'kvm'},
'R-3': {'ansible_host': '10.250.0.53',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:03',
'os_name': 'sonic-vs.bin',
'serial_port': 7003,
'symbolic_link': 'onie-installer-vs-3',
'type': 'kvm'},
'R-4': {'ansible_host': '10.250.0.54',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:04',
'os_name': 'sonic-vs.bin',
'serial_port': 7004,
'symbolic_link': 'onie-installer-vs-4',
'type': 'kvm'},
'R-5': {'ansible_host': '10.250.0.55',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:05',
'os_name': 'sonic-vs.bin',
'serial_port': 7005,
'symbolic_link': 'onie-installer-vs-5',
'type': 'kvm'},
'R-6': {'ansible_host': '10.250.0.56',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:06',
'os_name': 'sonic-vs.bin',
'serial_port': 7006,
'symbolic_link': 'onie-installer-vs-6',
'type': 'kvm'}},
'vars': {'ansible_altpassword': 'YourPaSsWoRd',
'ansible_connection': 'multi_passwd_ssh',
'bgp_ip': {'R-1': [{'intf': 'Ethernet4',
'ip': '10.1.1.1/30'},
{'intf': 'Ethernet8',
'ip': '10.1.1.9/30'},
{'intf': 'Ethernet12',
'ip': '10.1.1.5/30'},
{'intf': 'Ethernet16',
'ip': '10.10.1.1/24'},
{'intf': 'Ethernet20',
'ip': '10.10.2.1/24'}],
'R-2': [{'intf': 'Ethernet4',
'ip': '10.1.1.2/30'},
{'intf': 'Ethernet8',
'ip': '10.1.1.6/30'},
{'intf': 'Ethernet12',
'ip': '10.1.3.1/24'},
{'intf': 'Ethernet16',
'ip': '10.20.0.1/24'},
{'intf': 'Ethernet20',
'ip': '10.20.1.1/24'}],
'R-3': [{'intf': 'Ethernet0',
'ip': '10.1.1.10/30'},
{'intf': 'Ethernet8',
'ip': '10.1.3.2/24'},
{'intf': 'Ethernet12',
'ip': '10.30.0.1/24'},
{'intf': 'Ethernet16',
'ip': '10.30.1.1/24'}],
'R-4': [{'intf': 'Ethernet4',
'ip': '10.1.4.1/24'},
{'intf': 'Ethernet8',
'ip': '10.1.3.3/24'},
{'intf': 'Ethernet12',
'ip': '10.40.0.1/24'},
{'intf': 'Ethernet16',
'ip': '10.40.1.1/24'}],
'R-5': [{'intf': 'Ethernet0',
'ip': '10.1.4.2/24'},
{'intf': 'Ethernet8',
'ip': '10.50.0.1/24'},
{'intf': 'Ethernet12',
'ip': '10.50.1.1/24'}]},
'common_ip': {'R-1': [{'intf': 'Ethernet0',
'ip': '21.1.1.2/24'},
{'intf': 'Ethernet4',
'ip': '30.1.1.2/24'},
{'intf': 'Ethernet8',
'ip': '20.1.1.2/24'}],
'R-2': [{'intf': 'Ethernet0',
'ip': '22.1.1.4/24'},
{'intf': 'Ethernet4',
'ip': '30.1.1.4/24'}],
'R-3': [{'intf': 'Ethernet0',
'ip': '20.1.1.3/24'},
{'intf': 'Ethernet4',
'ip': '10.0.100.1/24'}],
'R-4': [{'intf': 'Ethernet0',
'ip': '22.1.1.11/24'},
{'intf': 'Ethernet4',
'ip': '50.1.1.2/24'}],
'R-5': [{'intf': 'Ethernet0',
'ip': '50.1.1.3/24'},
{'intf': 'Ethernet4',
'ip': '40.0.100.1/24'}],
'R-6': [{'intf': 'Ethernet0',
'ip': '21.1.1.3/24'},
{'intf': 'Ethernet4',
'ip': '10.0.100.3/24'}]},
'mgmt_subnet_mask_length': 24,
'mgmt_subnet_v6_mask_length': 64,
'ospf_redist_ip': {'R-1': [{'intf': 'Ethernet4',
'ip': '30.1.1.2/24'},
{'intf': 'Ethernet8',
'ip': '20.1.1.2/24'}],
'R-2': [{'intf': 'Ethernet4',
'ip': '30.1.1.4/24'}],
'R-3': [{'intf': 'Ethernet0',
'ip': '20.1.1.3/24'},
{'intf': 'Ethernet4',
'ip': '10.0.100.1/24'},
{'intf': 'Ethernet8',
'ip': '10.1.100.1/24'},
{'intf': 'Ethernet12',
'ip': '10.2.100.1/24'},
{'intf': 'Ethernet16',
'ip': '10.3.100.1/24'}]}}},
'sonic_sw': {'hosts': {'SW-1': {'ansible_host': '10.250.0.10',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:07',
'os_name': 'sonic-vs.bin',
'serial_port': 8001,
'symbolic_link': 'onie-installer-vs-7',
'type': 'kvm'},
'SW-2': {'ansible_host': '10.250.0.11',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:08',
'os_name': 'sonic-vs.bin',
'serial_port': 8002,
'symbolic_link': 'onie-installer-vs-8',
'type': 'kvm'},
'SW-3': {'ansible_host': '10.250.0.12',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:09',
'os_name': 'sonic-vs.bin',
'serial_port': 8003,
'symbolic_link': 'onie-installer-vs-9',
'type': 'kvm'},
'SW-4': {'ansible_host': '10.250.0.13',
'ansible_password': 'password',
'ansible_user': 'admin',
'hwsku': 'Force10-S6000',
'mgmt_mac': '52:54:00:00:00:10',
'os_name': 'sonic-vs.bin',
'serial_port': 8004,
'symbolic_link': 'onie-installer-vs-10',
'type': 'kvm'}},
'vars': {'ansible_altpassword': 'YourPaSsWoRd',
'ansible_connection': 'multi_passwd_ssh',
'mgmt_subnet_mask_length': 24,
'mgmt_subnet_v6_mask_length': 64}},
'ubuntu': {'hosts': {'H-1': {'ansible_host': '10.250.0.101',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.10/24',
'first_mac': '52:54:00:10:02:01',
'mac_addr': '52:54:00:10:01:01',
'src_ip': '10.0.100.1',
'type': 'kvm'},
'H-2': {'ansible_host': '10.250.0.102',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.11/24',
'first_mac': '52:54:00:10:02:02',
'mac_addr': '52:54:00:10:01:02',
'src_ip': '10.0.100.1',
'type': 'kvm'},
'H-3': {'ansible_host': '10.250.0.103',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.12/24',
'first_mac': '52:54:00:10:02:03',
'mac_addr': '52:54:00:10:01:03',
'src_ip': '10.0.100.1',
'type': 'kvm'},
'H-4': {'ansible_host': '10.250.0.104',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.13/24',
'first_mac': '52:54:00:10:02:04',
'mac_addr': '52:54:00:10:01:04',
'src_ip': '10.0.100.1',
'type': 'kvm'},
'H-5': {'ansible_host': '10.250.0.105',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '10.0.100.0/24',
'dp_ip': '40.0.100.105/24',
'first_mac': '52:54:00:10:02:05',
'mac_addr': '52:54:00:10:01:05',
'src_ip': '40.0.100.1',
'type': 'kvm'},
'H-6': {'ansible_host': '10.250.0.106',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.14/24',
'first_mac': '52:54:00:10:02:06',
'mac_addr': '52:54:00:10:01:06',
'src_ip': '10.0.100.1',
'type': 'kvm'},
'H-7': {'ansible_host': '10.250.0.107',
'ansible_password': 'password',
'ansible_user': 'ubuntu',
'dest_ip': '40.0.100.0/24',
'dp_ip': '10.0.100.15/24',
'first_mac': '52:54:00:10:02:07',
'mac_addr': '52:54:00:10:01:07',
'src_ip': '10.0.100.1',
'type': 'kvm'}},
'vars': {'ansible_altpassword': 'YourPaSsWoRd',
'ansible_connection': 'multi_passwd_ssh',
'mgmt_subnet_mask_length': 24,
'mgmt_subnet_v6_mask_length': 64}},
'vm_host': {'children': {'vm_host_1': {'hosts': {'STR-ACS-VSERV-01': {'ansible_host': '172.17.0.1',
'ansible_user': 'jenkins',
'vm_host_user': 'jenkins'}}}}}}}}INFO:root:Can not get Allure report URL. Please check logs
yaml =
test_sonic/test_sonic.py:294: AssertionError
---------- generated xml file: /data/NetAutoTestFW/tests/logs/tr.xml -----------
---------------------------- live log sessionfinish ----------------------------
23:35:50 __init__.pytest_terminal_summary L0067 INFO | Can not get Allure report URL. Please check logs
=========================== short test summary info ============================
FAILED test_sonic/test_sonic.py::test_scenario - AssertionError: Test failed ...
======================== 1 failed in 942.28s (0:15:42) =========================
⚠️ [WARN] Scenario failed on attempt 2/2 (exit code 1): test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
❌ [ERROR] Scenario failed after 2 attempts: test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
[INFO] Progress saved. Next run will resume from this scenario: test_sonic/bgp_policy/scenario_bgp_policy_med_attribute.yaml
|