Data plane Capacity Test test cases#1
Merged
vikumarks merged 1 commit intopr-AI-snappifrom Nov 20, 2024
Merged
Conversation
Objective: track switch power usage, temperature, queue watermark and traffic load.
vikumarks
pushed a commit
that referenced
this pull request
Sep 29, 2025
sonic-net#18886) Description of PR Summary: Fixes # (issue)sonic-net#13769 Type of change Bug fix Testbed and Framework(new/improvement) New Test case Skipped for non-supported platforms Test case improvement Back port request 202205 202305 202311 202405 202411 202505 Approach What is the motivation for this PR? To support infra changes in snappi tests introduced by this Pull Request - sonic-net#15069 How did you do it? We don't need the setup_ports_and_dut now and we can simply call the snappi_testbed_config in the test itself and iterate through the available ports. How did you verify/test it? Any platform specific information? Supported testbed topology if it's a new test case? Documentation OUTPUT snappi_tests/pfc/test_pfc_pause_lossy_with_snappi.py::test_pfc_pause_single_lossy_prio[multidut_port_info0-sonic-s6100-dut1|0-400.0-single_linecard_single_asic] ----------------------------------------------------------------------------------------------------------------------------------------- live log setup ------------------------------------------------------------------------------------------------------------------------------------------ 16:01:24 init.set_default L0053 INFO | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic 16:01:24 init.check_test_completeness L0151 INFO | Test has no defined levels. Continue without test completeness checks 16:01:24 conftest.enhance_inventory L0313 INFO | Inventory file: ['../ansible/snappi-sonic'] 16:01:27 ptfhost_utils.run_icmp_responder_session L0310 INFO | Skip running icmp_responder at session level, it is only for dualtor testbed with active-active mux ports. 16:01:27 init._sanity_check L0431 INFO | Skip sanity check according to command line argument 16:01:27 conftest.collect_before_test L2695 INFO | Dumping Disk and Memory Space information before test on sonic-s6100-dut1 16:01:28 conftest.collect_before_test L2699 INFO | Collecting core dumps before test on sonic-s6100-dut1 16:01:28 conftest.collect_before_test L2708 INFO | Collecting running config before test on sonic-s6100-dut1 16:01:30 conftest.temporarily_disable_route_check L2974 INFO | Skipping temporarily_disable_route_check fixture 16:01:30 conftest.generate_params_dut_hostname L1498 INFO | Using DUTs ['sonic-s6100-dut1'] in testbed 'vms-snappi-sonic' 16:01:30 conftest.set_rand_one_dut_hostname L0647 INFO | Randomly select dut sonic-s6100-dut1 for testing 16:01:30 init._fixture_generator_decorator L0081 INFO | -------------------- fixture enable_packet_aging_after_test setup starts -------------------- 16:01:30 init._fixture_generator_decorator L0085 INFO | -------------------- fixture enable_packet_aging_after_test setup ends -------------------- 16:01:30 init._fixture_generator_decorator L0081 INFO | -------------------- fixture rand_lossless_prio setup starts -------------------- 16:01:30 init._fixture_generator_decorator L0085 INFO | -------------------- fixture rand_lossless_prio setup ends -------------------- 16:01:30 init._fixture_generator_decorator L0081 INFO | -------------------- fixture rand_lossy_prio setup starts -------------------- 16:01:30 init._fixture_generator_decorator L0085 INFO | -------------------- fixture rand_lossy_prio setup ends -------------------- 16:01:30 init._fixture_generator_decorator L0081 INFO | -------------------- fixture start_pfcwd_after_test setup starts -------------------- 16:01:30 init._fixture_generator_decorator L0085 INFO | -------------------- fixture start_pfcwd_after_test setup ends -------------------- 16:01:30 init._fixture_generator_decorator L0081 INFO | -------------------- fixture disable_voq_watchdog setup starts -------------------- 16:01:30 init._fixture_generator_decorator L0085 INFO | -------------------- fixture disable_voq_watchdog setup ends -------------------- 16:01:30 init._fixture_generator_decorator L0081 INFO | -------------------- fixture number_of_tx_rx_ports setup starts -------------------- 16:01:30 init._fixture_generator_decorator L0085 INFO | -------------------- fixture number_of_tx_rx_ports setup ends -------------------- 16:01:30 init._fixture_func_decorator L0069 INFO | -------------------- fixture snappi_api_serv_ip setup starts -------------------- 16:01:30 init._fixture_func_decorator L0076 INFO | -------------------- fixture snappi_api_serv_ip setup ends -------------------- 16:01:30 init._fixture_func_decorator L0069 INFO | -------------------- fixture snappi_api_serv_port setup starts -------------------- 16:01:30 init._fixture_func_decorator L0076 INFO | -------------------- fixture snappi_api_serv_port setup ends -------------------- 16:01:30 init._fixture_generator_decorator L0081 INFO | -------------------- fixture snappi_api setup starts -------------------- 16:01:30 init._fixture_generator_decorator L0085 INFO | -------------------- fixture snappi_api setup ends -------------------- 16:01:31 conftest.rand_one_dut_front_end_hostname L0683 INFO | Randomly select dut sonic-s6100-dut1 for testing 16:01:31 init._fixture_func_decorator L0069 INFO | -------------------- fixture prio_dscp_map setup starts -------------------- 16:01:32 init._fixture_func_decorator L0076 INFO | -------------------- fixture prio_dscp_map setup ends -------------------- 16:01:32 init._fixture_func_decorator L0069 INFO | -------------------- fixture all_prio_list setup starts -------------------- 16:01:32 init._fixture_func_decorator L0076 INFO | -------------------- fixture all_prio_list setup ends -------------------- 16:01:32 init._fixture_func_decorator L0069 INFO | -------------------- fixture lossless_prio_list setup starts -------------------- 16:01:33 init._fixture_func_decorator L0076 INFO | -------------------- fixture lossless_prio_list setup ends -------------------- 16:01:33 init._fixture_func_decorator L0069 INFO | -------------------- fixture lossy_prio_list setup starts -------------------- 16:01:33 init._fixture_func_decorator L0076 INFO | -------------------- fixture lossy_prio_list setup ends -------------------- 16:01:33 init._fixture_func_decorator L0069 INFO | -------------------- fixture get_snappi_ports setup starts -------------------- 16:01:34 conftest.generate_port_lists L1590 INFO | Generate dut_port_map: {'sonic-s6100-dut1': ['sonic-s6100-dut1|Ethernet0', 'sonic-s6100-dut1|Ethernet8', 'sonic-s6100-dut1|Ethernet16', 'sonic-s6100-dut1|Ethernet24']} 16:01:34 conftest.generate_port_lists L1613 INFO | Generate port_list: ['sonic-s6100-dut1|Ethernet0', 'sonic-s6100-dut1|Ethernet8', 'sonic-s6100-dut1|Ethernet16', 'sonic-s6100-dut1|Ethernet24'] 16:01:34 init._fixture_func_decorator L0069 INFO | -------------------- fixture get_snappi_ports_single_dut setup starts -------------------- 16:01:34 init._fixture_func_decorator L0076 INFO | -------------------- fixture get_snappi_ports_single_dut setup ends -------------------- 16:01:34 init._fixture_func_decorator L0076 INFO | -------------------- fixture get_snappi_ports setup ends -------------------- 16:01:34 init._fixture_func_decorator L0069 INFO | -------------------- fixture snappi_port_selection setup starts -------------------- 16:01:34 init._fixture_func_decorator L0076 INFO | -------------------- fixture snappi_port_selection setup ends -------------------- 16:01:34 init.loganalyzer L0074 INFO | Log analyzer is disabled 16:01:34 init.memory_utilization L0125 INFO | Hostname: sonic-s6100-dut1, Hwsku: Accton-AS9716-32D, Platform: x86_64-accton_as9716_32d-r0 16:01:34 memory_utilization.register_command L0023 INFO | Registering command: name=monit, cmd=sudo monit status, memory_params={'memory_usage': {'memory_increase_threshold': {'type': 'value', 'value': 10}, 'memory_high_threshold': {'type': 'value', 'value': 70}}}, memory_check=<function parse_monit_status_output at 0x7f9baa8983a0> 16:01:34 memory_utilization.register_command L0023 INFO | Registering command: name=top, cmd=top -b -n 1, memory_params={'bgpd': {'memory_increase_threshold': {'type': 'value', 'value': 128}, 'memory_high_threshold': None}, 'zebra': {'memory_increase_threshold': {'type': 'value', 'value': 64}, 'memory_high_threshold': None}}, memory_check=<function parse_top_output at 0x7f9baa88cd30> 16:01:34 memory_utilization.register_command L0023 INFO | Registering command: name=free, cmd=free -m, memory_params={'used': {'memory_increase_threshold': {'type': 'percentage', 'value': '20%'}, 'memory_high_threshold': None}}, memory_check=<function parse_free_output at 0x7f9baa898310> 16:01:34 memory_utilization.register_command L0023 INFO | Registering command: name=docker, cmd=docker stats --no-stream, memory_params={'snmp': {'memory_increase_threshold': {'type': 'value', 'value': 2}, 'memory_high_threshold': {'type': 'value', 'value': 4}}, 'pmon': {'memory_increase_threshold': {'type': 'value', 'value': 2}, 'memory_high_threshold': {'type': 'value', 'value': 8}}, 'lldp': {'memory_increase_threshold': {'type': 'value', 'value': 2}, 'memory_high_threshold': {'type': 'value', 'value': 4}}, 'gnmi': {'memory_increase_threshold': {'type': 'value', 'value': 2}, 'memory_high_threshold': {'type': 'value', 'value': 6}}, 'radv': {'memory_increase_threshold': {'type': 'value', 'value': 2}, 'memory_high_threshold': {'type': 'value', 'value': 3}}, 'syncd': {'memory_increase_threshold': {'type': 'value', 'value': 5}, 'memory_high_threshold': {'type': 'value', 'value': 18}}, 'bgp': {'memory_increase_threshold': {'type': 'value', 'value': 4}, 'memory_high_threshold': {'type': 'value', 'value': 14}}, 'teamd': {'memory_increase_threshold': {'type': 'value', 'value': 2}, 'memory_high_threshold': {'type': 'value', 'value': 5}}, 'swss': {'memory_increase_threshold': {'type': 'value', 'value': 3}, 'memory_high_threshold': {'type': 'value', 'value': 8}}, 'database': {'memory_increase_threshold': {'type': 'value', 'value': 2}, 'memory_high_threshold': {'type': 'value', 'value': 6}}}, memory_check=<function parse_docker_stats_output at 0x7f9baa898430> 16:01:34 memory_utilization.register_command L0023 INFO | Registering command: name=frr_bgp, cmd=vtysh -c "show memory bgp", memory_params={'used': {'memory_increase_threshold': [{'type': 'percentage', 'value': '50%'}, {'type': 'value', 'value': 32}], 'memory_high_threshold': {'type': 'value', 'value': 128}}}, memory_check=<function parse_frr_memory_output at 0x7f9baa8984c0> 16:01:34 memory_utilization.register_command L0023 INFO | Registering command: name=frr_zebra, cmd=vtysh -c "show memory zebra", memory_params={'used': {'memory_increase_threshold': [{'type': 'percentage', 'value': '50%'}, {'type': 'value', 'value': 16}], 'memory_high_threshold': {'type': 'value', 'value': 128}}}, memory_check=<function parse_frr_memory_output at 0x7f9baa8984c0> 16:01:34 init._fixture_generator_decorator L0081 INFO | -------------------- fixture multidut_port_info setup starts -------------------- 16:01:34 init._fixture_generator_decorator L0085 INFO | -------------------- fixture multidut_port_info setup ends -------------------- 16:01:34 init._fixture_generator_decorator L0081 INFO | -------------------- fixture setup_ports_and_dut setup starts -------------------- 16:01:34 helper.setup_ports_and_dut L0152 INFO | Running test for testbed subtype: single-dut-single-asic 16:01:34 init._fixture_generator_decorator L0085 INFO | -------------------- fixture setup_ports_and_dut setup ends -------------------- 16:01:34 init._fixture_func_decorator L0069 INFO | -------------------- fixture tgen_port_info setup starts -------------------- 16:01:35 init._fixture_func_decorator L0076 INFO | -------------------- fixture tgen_port_info setup ends -------------------- 16:01:40 memory_utilization.execute_command L0039 WARNING| Command 'vtysh -c "show memory bgp"' returned no output 16:01:40 memory_utilization.parse_frr_memory_outp L0481 WARNING| Empty output for FRR memory command, returning empty values 16:01:41 memory_utilization.execute_command L0039 WARNING| Command 'vtysh -c "show memory zebra"' returned no output 16:01:41 memory_utilization.parse_frr_memory_outp L0481 WARNING| Empty output for FRR memory command, returning empty values 16:01:41 init.pytest_runtest_setup L0061 INFO | Before test: collected memory_values {'before_test': {'sonic-s6100-dut1': {'monit': {'memory_usage': 7.8}, 'top': {}, 'free': {'used': 1988}, 'docker': {'radv': '0.24', 'syncd': '3.76', 'teamd': '0.26', 'swss': '0.60', 'pmon': '0.76', 'database': '0.88', 'bgp': '0.03', 'lldp': '0.10'}, 'frr_bgp': {}, 'frr_zebra': {}}}, 'after_test': {'sonic-s6100-dut1': {}}} ------------------------------------------------------------------------------------------------------------------------------------------ live log call ------------------------------------------------------------------------------------------------------------------------------------------ 16:01:54 connection._warn L0336 WARNING| Verification of certificates is disabled 16:01:54 connection._info L0333 INFO | Determining the platform and rest_port using the 10.36.79.8 address... 16:01:54 connection._warn L0336 WARNING| Unable to connect to http://10.36.79.8:443. 16:01:55 connection._info L0333 INFO | Connection established to https://10.36.79.8:443 on linux 16:02:14 connection._info L0333 INFO | Using IxNetwork api server version 10.25.2406.6 16:02:14 connection._info L0333 INFO | User info IxNetwork/ixnetworkweb/admin-162-10063 16:02:16 snappi_api.info L1488 INFO | snappi-1.31.1 16:02:16 snappi_api.info L1488 INFO | snappi_ixnetwork-1.31.2 16:02:16 snappi_api.info L1488 INFO | ixnetwork_restpy-1.7.0 16:02:16 snappi_api.info L1488 INFO | Config validation 0.020s 16:02:19 snappi_api.info L1488 INFO | Ports configuration 1.715s 16:02:19 snappi_api.info L1488 INFO | Captures configuration 0.200s 16:02:22 snappi_api.info L1488 INFO | Add location hosts [10.36.79.8] 2.336s 16:02:24 snappi_api.info L1488 INFO | Location hosts ready [10.36.79.8] 2.482s 16:02:25 snappi_api.info L1488 INFO | Speed conversion is not require for (port.name, speed) : [('Port 0', 'aresOneOneByFourHundredGigNonFanOut'), ('Port 1', 'aresOneOneByFourHundredGigNonFanOut')] 16:02:25 snappi_api.info L1488 INFO | Aggregation mode speed change 0.412s 16:02:25 snappi_api.info L1488 INFO | Location preemption [10.36.79.8/3, 10.36.79.8/1] 0.143s 16:02:42 snappi_api.info L1488 INFO | Location connect [Port 0, Port 1] 16.540s 16:02:42 snappi_api.info L1488 INFO | Location state check [Port 0, Port 1] 0.363s 16:02:42 snappi_api.info L1488 INFO | Location configuration 23.254s 16:02:46 snappi_api.info L1488 INFO | Layer1 configuration 3.795s 16:02:46 snappi_api.info L1488 INFO | Lag Configuration 0.157s 16:02:47 snappi_api.info L1488 INFO | Convert device config : 0.325s 16:02:47 snappi_api.info L1488 INFO | Create IxNetwork device config : 0.000s 16:02:48 snappi_api.info L1488 INFO | Push IxNetwork device config : 0.963s 16:02:48 snappi_api.info L1488 INFO | Devices configuration 1.391s 16:02:56 snappi_api.info L1488 INFO | Flows configuration 8.034s 16:03:03 snappi_api.info L1488 INFO | Start interfaces 7.636s 16:03:04 snappi_api.info L1488 INFO | IxNet - The Traffic Item was modified. Please perform a Traffic Generate to update the associated traffic Flow Groups 16:03:04 traffic_generation.run_traffic L0433 INFO | Wait for Arp to Resolve ... 16:03:10 traffic_generation.run_traffic L0456 INFO | Starting transmit on all flows ... 16:03:14 snappi_api.info L1488 INFO | Flows generate/apply 3.528s 16:03:27 snappi_api.info L1488 INFO | Flows clear statistics 12.289s 16:03:27 snappi_api.info L1488 INFO | Captures start 0.000s 16:03:30 snappi_api.info L1488 INFO | Flows start 2.733s 16:03:30 traffic_generation.run_traffic L0472 INFO | Polling DUT for traffic statistics for 23 seconds ... 16:03:57 traffic_generation.run_traffic L0491 INFO | Polling TGEN for in-flight traffic statistics... 16:03:59 traffic_generation.run_traffic L0496 INFO | In-flight traffic statistics for flows: ['Test Flow Prio 0', 'Background Flow Prio 1', 'Background Flow Prio 3', 'Background Flow Prio 4', 'Background Flow Prio 5', 'Background Flow Prio 6', 'Background Flow Prio 2'] 16:03:59 traffic_generation.run_traffic L0497 INFO | In-flight TX frames: [409482758, 63697318, 63697318, 63697318, 63697318, 63697318, 63697318] 16:03:59 traffic_generation.run_traffic L0498 INFO | In-flight RX frames: [409482758, 63697318, 63697318, 63697318, 63697318, 63697318, 63697318] 16:04:16 traffic_generation.run_traffic L0499 INFO | DUT polling complete 16:04:16 traffic_generation.run_traffic L0510 INFO | Checking if all flows have stopped. Attempt #1 16:04:18 traffic_generation.run_traffic L0517 INFO | All test and background traffic flows stopped 16:04:20 traffic_generation.run_traffic L0540 INFO | Dumping per-flow statistics 16:04:21 traffic_generation.run_traffic L0542 INFO | Stopping transmit on all remaining flows 16:04:26 snappi_api.info L1488 INFO | Flows stop 5.387s PASSED
vikumarks
pushed a commit
that referenced
this pull request
Nov 27, 2025
What is the motivation for this PR? The current telemetry framework has many serious problems: Hard to import, because it is outside of the tests folder No implementation, hard to try out Hard to use and extend, because the interface is too primitive No tests and can break easily How did you do it? This PR add a few things to improve the current telemetry framework: Add new design doc with example code provided in the doc. Implement both TS (timeseries) and DB (database) reporter, so we can try the feature easily. How did you verify/test it? Run all tests locally and passed. Any platform specific information? N/A. Fix TS reporters. Fix TSRepoter. Fix TS reporter. minor fix. Fix example. Reverse relationship of metrics and reporter to support more types of metrics in future. Remove bydesign not working test. Fix example. Update tests. Update TS reporter and DB repoter. Update minor things. Remove no required code. Revert unexpected change. Rename and update doc. * Get os version and job id (#1) Get os version and elastictest job id from correct place. * Revert OS version change. * Remove duplicated mock reporter fixture. --------- Co-authored-by: Yutong Zhang <90831468+yutongzhang-microsoft@users.noreply.github.com>
vikumarks
pushed a commit
that referenced
this pull request
Dec 1, 2025
What is the motivation for this PR? The current telemetry framework has many serious problems: Hard to import, because it is outside of the tests folder No implementation, hard to try out Hard to use and extend, because the interface is too primitive No tests and can break easily How did you do it? This PR add a few things to improve the current telemetry framework: Add new design doc with example code provided in the doc. Implement both TS (timeseries) and DB (database) reporter, so we can try the feature easily. How did you verify/test it? Run all tests locally and passed. Any platform specific information? N/A. Fix TS reporters. Fix TSRepoter. Fix TS reporter. minor fix. Fix example. Reverse relationship of metrics and reporter to support more types of metrics in future. Remove bydesign not working test. Fix example. Update tests. Update TS reporter and DB repoter. Update minor things. Remove no required code. Revert unexpected change. Rename and update doc. * Get os version and job id (#1) Get os version and elastictest job id from correct place. * Revert OS version change. * Remove duplicated mock reporter fixture. --------- Co-authored-by: Yutong Zhang <90831468+yutongzhang-microsoft@users.noreply.github.com> Signed-off-by: vikumarks <vikumar7ks@gmail.com>
vikumarks
pushed a commit
that referenced
this pull request
Mar 11, 2026
…nter and global_pause test-script (sonic-net#22490) Description of PR Added support for tgen_port_info in: tests/snappi_tests/pfc/test_global_pause_with_snappi.py tests/snappi_tests/pfc/test_tx_drop_counter_with_snappi.py Summary: Fixes # (issue) Type of change Bug fix Testbed and Framework(new/improvement) New Test case Skipped for non-supported platforms Test case improvement Back port request 202205 202305 202311 202405 202411 202505 202511 Approach What is the motivation for this PR? The tgen_port_info was added as part of Snappi test infra improvement, which enabled users to select between static (from variables.override.yml) and dynamic (select 100 and 400Gbps ports) ports. This was NOT included in test_tx_drop_counter and test_global_pause test-scripts under snappi_tests/pfc section. How did you do it? Imported the tgen_port_info from snappi_fixtures.py and removed any reference to old setup_dut_port function for both test-scripts. How did you verify/test it? Verification on 202511 is present in pull-request sonic-net#22380. Verification steps for master: azureuser@7e081020c2c7:/data/tests$ date;python3 -m pytest --inventory ../ansible/ixia-sonic --host-pattern ixre-egl-board73,ixre-egl-board74 --testbed ixre-chassis17-t2 --testbed_file ../ansible/testbed.csv --show-capture=stdout --log-cli-level info --showlocals -ra --allow_recover --junit-xml=/tmp/y.xml --skip_sanity --log-file=/tmp/y.log --topology multidut-tgen -cache-clear --disable_loganalyzer snappi_tests/pfc/test_global_pause_with_snappi.py --pdb Fri Feb 20 00:07:16 UTC 2026 ====================================================================================================================== test session starts ======================================================================================================================= platform linux -- Python 3.8.10, pytest-7.4.0, pluggy-1.5.0 ---- curtailed output ---- INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Config validation 0.014s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Ports configuration 1.261s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Captures configuration 0.116s ---- curtailed output ---- INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:837 DUT polling complete INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:850 Checking if all flows have stopped. Attempt #1 INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:856 All test and background traffic flows stopped INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:894 Dumping per-flow statistics INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:899 Stopping transmit on all remaining flows INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Flows stop 5.353s PASSED [ 50%] ---- curtailed output ---- INFO tests.common.plugins.memory_utilization:__init__.py:64 Before test: collected memory_values {'before_test': {}, 'after_test': {}} ------------------------------------------------------------------------------------------------------------------------- live log call -------------------------------------------------------------------------------------------------------------------------- INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Config validation 0.014s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Ports configuration 1.059s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Captures configuration 0.110s ---- curtailed output ---- INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:837 DUT polling complete INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:850 Checking if all flows have stopped. Attempt #1 INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:856 All test and background traffic flows stopped INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:894 Dumping per-flow statistics INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:899 Stopping transmit on all remaining flows INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Flows stop 5.514s PASSED [100%] ---- curtailed output ---- ----------------------------------------------------------------------------------------------------------------- generated xml file: /tmp/y.xml ----------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------- live log sessionfinish --------------------------------------------------------------------------------------------------------------------- INFO root:__init__.py:67 Can not get Allure report URL. Please check logs =========================================================================================================== 2 passed, 9 warnings in 789.04s (0:13:09) ============================================================================================================ INFO:root:Can not get Allure report URL. Please check logs azureuser@7e081020c2c7:/data/tests$ date;python3 -m pytest --inventory ../ansible/ixia-sonic --host-pattern ixre-egl-board73,ixre-egl-board74 --testbed ixre-chassis17-t2 --testbed_file ../ansible/testbed.csv --show-capture=stdout --log-cli-level info --showlocals -ra --allow_recover --junit-xml=/tmp/y.xml --skip_sanity --log-file=/tmp/y.log --topology multidut-tgen -cache-clear --disable_loganalyzer snappi_tests/pfc/test_tx_drop_counter_with_snappi.py --pdb Fri Feb 20 00:21:03 UTC 2026 ---- curtailed output ---- INFO ixnetwork_restpy.connection:connection.py:329 User info IxNetwork/tgen-ixia-03/admin-112-3670867 INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 snappi-1.27.1 INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 snappi_ixnetwork-1.27.2 INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 ixnetwork_restpy-1.6.1 INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Config validation 0.000s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Ports configuration 0.213s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Captures configuration 0.122s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Aggregation mode speed change 0.000s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Location configuration 0.288s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Layer1 configuration 0.000s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Lag Configuration 0.061s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Convert device config : 0.155s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Create IxNetwork device config : 0.000s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Push IxNetwork device config : 0.093s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Devices configuration 0.299s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Flows configuration 0.120s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Start interfaces 0.155s INFO root:__init__.py:76 -------------------- fixture tgen_port_info setup ends -------------------- INFO root:__init__.py:81 -------------------- fixture disable_pfcwd setup starts -------------------- INFO root:__init__.py:85 -------------------- fixture disable_pfcwd setup ends -------------------- INFO root:conftest.py:3818 skip setup dualtor mux cables on non-dualtor testbed ---- curtailed output ---- INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Config validation 0.012s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Ports configuration 1.265s INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Captures configuration 0.112s ---- curtailed output ---- INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:837 DUT polling complete INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:850 Checking if all flows have stopped. Attempt #1 INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:856 All test and background traffic flows stopped INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:894 Dumping per-flow statistics INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:899 Stopping transmit on all remaining flows ---- curtailed output ---- INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:837 DUT polling complete INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:850 Checking if all flows have stopped. Attempt #1 INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:856 All test and background traffic flows stopped INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:894 Dumping per-flow statistics INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:899 Stopping transmit on all remaining flows INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Link State operation 0.052s INFO tests.snappi_tests.pfc.files.helper:helper.py:452 Snappi port Port 0 is set to DOWN INFO tests.snappi_tests.pfc.files.helper:helper.py:457 Sleeping for 90 seconds INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Link State operation 0.058s INFO tests.snappi_tests.pfc.files.helper:helper.py:469 Snappi port Port 0 is set to UP ---- curtailed output ---- INFO root:__init__.py:67 Can not get Allure report URL. Please check logs =========================================================================================================== 2 passed, 9 warnings in 906.71s (0:15:06) ============================================================================================================ INFO:root:Can not get Allure report URL. Please check logs Signed-off-by: amitpawa <amit.2.pawar@nokia.com> * snappi: issue-22363 removed multidut-port-info import from pfc tx_drop_counter testcase Signed-off-by: amitpawa <amit.2.pawar@nokia.com> --------- Signed-off-by: amitpawa <amit.2.pawar@nokia.com>
vikumarks
pushed a commit
that referenced
this pull request
Mar 11, 2026
…ion (sonic-net#22504) Description of PR The tgen_port_info infra function in common/snappi_tests/snappi_fixtures.py is used to select port (dynamically or statically) for the test. During static port selection, the variables.override.yml file is used to select Rx and Tx port for the test. However, after the test, there was no explicit test clean_up code. This PR addresses it. Summary: Fixes sonic-net#20993 Type of change Bug fix Testbed and Framework(new/improvement) New Test case Skipped for non-supported platforms Test case improvement Back port request 202205 202305 202311 202405 202411 202505 202511 Approach What is the motivation for this PR? The tgen_port_info is used to select the Rx and Tx port for the test. In case of static port selection, the function returned snappi_dut_base_config(duthosts, snappi_ports, snappi_api, setup=True), and there was no explicit cleanup after the test. How did you do it? If the 'is_override' flag is true, the static port selection code is used to select Rx and Tx ports from variables.override.yml file. Instead of returning with function 'snappi_dut_base_config', 'yield' is called to ensure that clean-up is called at the end of the test. Once yield returns back to the test, then 'setup_dut_ports' is called with setup=False to ensure that clean-up happens after the test. How did you verify/test it? For verification of this changes on 202511 branch, please refer to PR sonic-net#22441 Verification of the PR on master with multi-dut setup: azureuser@7e081020c2c7:/data/tests$ date;python3 -m pytest --inventory ../ansible/ixia-sonic --host-pattern ixre-egl-board73,ixre-egl-board74 --testbed ixre-chassis17-t2 --testbed_file ../ansible/testbed.csv --show-capture=stdout --log-cli-level info --showlocals -ra --allow_recover --junit-xml=/tmp/y.xml --skip_sanity --log-file=/tmp/y.log --topology multidut-tgen -cache-clear --disable_loganalyzer snappi_tests/pfc/test_pfc_pause_lossless_with_snappi.py -k test_pfc_pause_multi_lossless_prio --pdb Fri Feb 20 14:26:57 UTC 2026 ================================================================================================= test session starts ================================================================================================= platform linux -- Python 3.8.10, pytest-7.4.0, pluggy-1.5.0 ----------- curtailed output ---------- INFO tests.conftest:conftest.py:691 Randomly select dut ixre-egl-board73 for testing INFO root:__init__.py:81 -------------------- fixture enable_packet_aging_after_test setup starts -------------------- INFO root:__init__.py:85 -------------------- fixture enable_packet_aging_after_test setup ends -------------------- INFO root:__init__.py:81 -------------------- fixture rand_lossless_prio setup starts -------------------- INFO root:__init__.py:85 -------------------- fixture rand_lossless_prio setup ends -------------------- INFO root:__init__.py:81 -------------------- fixture rand_lossy_prio setup starts -------------------- INFO root:__init__.py:85 -------------------- fixture rand_lossy_prio setup ends -------------------- INFO root:__init__.py:81 -------------------- fixture start_pfcwd_after_test setup starts -------------------- INFO root:__init__.py:85 -------------------- fixture start_pfcwd_after_test setup ends -------------------- INFO root:__init__.py:81 -------------------- fixture disable_voq_watchdog setup starts -------------------- INFO root:__init__.py:85 -------------------- fixture disable_voq_watchdog setup ends -------------------- INFO root:__init__.py:81 -------------------- fixture number_of_tx_rx_ports setup starts -------------------- INFO root:__init__.py:85 -------------------- fixture number_of_tx_rx_ports setup ends -------------------- INFO root:__init__.py:69 -------------------- fixture snappi_api_serv_ip setup starts -------------------- INFO root:__init__.py:76 -------------------- fixture snappi_api_serv_ip setup ends -------------------- INFO root:__init__.py:69 -------------------- fixture snappi_api_serv_port setup starts -------------------- INFO root:__init__.py:76 -------------------- fixture snappi_api_serv_port setup ends -------------------- INFO root:__init__.py:81 -------------------- fixture snappi_api setup starts -------------------- INFO root:__init__.py:85 -------------------- fixture snappi_api setup ends -------------------- INFO tests.conftest:conftest.py:727 Randomly select dut ixre-egl-board74 for testing INFO root:__init__.py:69 -------------------- fixture prio_dscp_map setup starts -------------------- INFO root:__init__.py:76 -------------------- fixture prio_dscp_map setup ends -------------------- INFO root:__init__.py:69 -------------------- fixture all_prio_list setup starts -------------------- INFO root:__init__.py:76 -------------------- fixture all_prio_list setup ends -------------------- INFO root:__init__.py:69 -------------------- fixture lossless_prio_list setup starts -------------------- INFO root:__init__.py:76 -------------------- fixture lossless_prio_list setup ends -------------------- INFO root:__init__.py:69 -------------------- fixture lossy_prio_list setup starts -------------------- INFO root:__init__.py:76 -------------------- fixture lossy_prio_list setup ends -------------------- INFO root:__init__.py:69 -------------------- fixture get_snappi_ports setup starts -------------------- INFO root:__init__.py:69 -------------------- fixture get_snappi_ports_multi_dut setup starts -------------------- INFO root:__init__.py:76 -------------------- fixture get_snappi_ports_multi_dut setup ends -------------------- INFO root:__init__.py:76 -------------------- fixture get_snappi_ports setup ends -------------------- INFO root:__init__.py:69 -------------------- fixture snappi_port_selection setup starts -------------------- INFO root:__init__.py:76 -------------------- fixture snappi_port_selection setup ends -------------------- INFO root:__init__.py:77 Log analyzer is disabled INFO root:__init__.py:81 -------------------- fixture disable_pfcwd setup starts -------------------- INFO root:__init__.py:85 -------------------- fixture disable_pfcwd setup ends -------------------- INFO root:__init__.py:81 -------------------- fixture tgen_port_info setup starts -------------------- ----------- curtailed output ---------- INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Start interfaces 0.164s INFO tests.common.snappi_tests.snappi_fixtures:snappi_fixtures.py:906 Found relevant portchannel interfaces INFO root:__init__.py:85 -------------------- fixture tgen_port_info setup ends -------------------- INFO root:conftest.py:3819 skip setup dualtor mux cables on non-dualtor testbed INFO tests.common.plugins.memory_utilization:__init__.py:64 Before test: collected memory_values {'before_test': {}, 'after_test': {}} ----------- curtailed output ---------- INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:784 Polling DUT for traffic statistics for 23 seconds ... INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:803 Polling TGEN for in-flight traffic statistics... INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:824 In-flight traffic statistics for flows: ['Test Flow Prio 3', 'Test Flow Prio 4', 'Background Flow Prio 1', 'Background Flow Prio 5', 'Background Flow Prio 6', 'Background Flow Prio 2', 'Background Flow Prio 0'] INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:825 In-flight TX frames: [68216, 68215, 81896551, 81896551, 81896551, 81896551, 81896551] INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:826 In-flight RX frames: [0, 0, 81896551, 81896551, 81896551, 81896551, 81896551] INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:832 In-flight traffic statistics for flows: ----------- curtailed output ---------- INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:837 DUT polling complete INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:850 Checking if all flows have stopped. Attempt #1 INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:856 All test and background traffic flows stopped INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:894 Dumping per-flow statistics INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:899 Stopping transmit on all remaining flows INFO snappi_ixnetwork.snappi_api:snappi_api.py:1419 Flows stop 6.608s PASSED [ 50%] ----------- curtailed output ---------- INFO root:__init__.py:81 -------------------- fixture disable_pfcwd setup starts -------------------- INFO root:__init__.py:85 -------------------- fixture disable_pfcwd setup ends -------------------- INFO root:__init__.py:81 -------------------- fixture tgen_port_info setup starts -------------------- INFO tests.common.snappi_tests.snappi_fixtures:snappi_fixtures.py:906 Found relevant portchannel interfaces INFO root:__init__.py:85 -------------------- fixture tgen_port_info setup ends -------------------- INFO root:conftest.py:3819 skip setup dualtor mux cables on non-dualtor testbed ----------- curtailed output ---------- INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:784 Polling DUT for traffic statistics for 27 seconds ... INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:803 Polling TGEN for in-flight traffic statistics... INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:824 In-flight traffic statistics for flows: ['Test Flow Prio 3', 'Test Flow Prio 4', 'Background Flow Prio 1', 'Background Flow Prio 5', 'Background Flow Prio 6', 'Background Flow Prio 2', 'Background Flow Prio 0'] INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:825 In-flight TX frames: [68221, 68222, 99137931, 99137931, 99137931, 99137931, 99137931] INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:826 In-flight RX frames: [0, 0, 99137931, 99137931, 99137931, 99137931, 99137931] INFO tests.common.snappi_tests.traffic_generation:traffic_generation.py:832 In-flight traffic statistics for flows: ----------- curtailed output ---------- INFO tests.conftest:conftest.py:3097 Dumping Disk and Memory Space information after test on ixre-egl-board73 INFO tests.conftest:conftest.py:3097 Dumping Disk and Memory Space information after test on ixre-egl-board74 INFO tests.conftest:conftest.py:3101 Collecting core dumps after test on ixre-egl-board74 INFO tests.conftest:conftest.py:3101 Collecting core dumps after test on ixre-egl-board73 INFO tests.conftest:conftest.py:3112 Collecting running config after test on ixre-egl-board74 INFO tests.conftest:conftest.py:3112 Collecting running config after test on ixre-egl-board73 INFO tests.conftest:conftest.py:3259 Core dump and config check passed for test_pfc_pause_lossless_with_snappi.py ----------- curtailed output ---------- ----------------------------------------------------------------------------------------------- live log sessionfinish ------------------------------------------------------------------------------------------------ INFO root:__init__.py:67 Can not get Allure report URL. Please check logs ============================================================================== 2 passed, 14 deselected, 10 warnings in 808.66s (0:13:28) ============================================================================== INFO:root:Can not get Allure report URL. Please check logs Signed-off-by: amitpawa <amit.2.pawar@nokia.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Objective: track switch power usage, temperature, queue watermark and traffic load.
Description of PR
Summary:
Fixes # (issue)
Type of change
Back port request
Approach
What is the motivation for this PR?
How did you do it?
How did you verify/test it?
Any platform specific information?
Supported testbed topology if it's a new test case?
Documentation