Skip to content

Snappi Tests for pfcwd don't enable pfcwd at global level. #18405

@vivekverma-arista

Description

@vivekverma-arista

Is it platform specific

generic

Importance or Severity

Medium

Description of the bug

A couple of snapp pfcwd tests error out as follows.

    def run_pfcwd_burst_storm_test(api,
                                   testbed_config,
                                   port_config_list,
                                   conn_data,
                                   fanout_data,
                                   duthost,
                                   dut_port,
                                   prio_list,
                                   prio_dscp_map):
        """
        Test PFC watchdog under bursty PFC storms

        Args:
            api (obj): SNAPPI session
            testbed_config (obj): testbed L1/L2/L3 configuration
            port_config_list (list): list of port configuration
            conn_data (dict): the dictionary returned by conn_graph_fact.
            fanout_data (dict): the dictionary returned by fanout_graph_fact.
            duthost (Ansible host instance): device under test
            dut_port (str): DUT port to test
            prio_list (list): priorities to generate PFC storms and data traffic
            prio_dscp_map (dict): Priority vs. DSCP map (key = priority).

        Returns:
            N/A
        """
        pytest_assert(testbed_config is not None,
                      'Fail to get L2/3 testbed config')

        start_pfcwd(duthost)
        enable_packet_aging(duthost)

        """ Get the ID of the port to test """
        port_id = get_dut_port_id(dut_hostname=duthost.hostname,
                                  dut_port=dut_port,
                                  conn_data=conn_data,
                                  fanout_data=fanout_data)

        pytest_assert(port_id is not None,
                      'Fail to get ID for port {}'.format(dut_port))

>       poll_interval_sec = get_pfcwd_poll_interval(duthost) / 1000.0
E       TypeError: unsupported operand type(s) for /: 'NoneType' and 'float'

api        = <snappi_ixnetwork.snappi_api.Api object at 0x7eff06e5a2e0>
conn_data  = {'device_bmc_info': {'qsp305': {}}, 'device_bmc_link': {'qsp305': {}}, 'device_conn': {'qsp305': {'Ethernet10': {'peer...device': 'snappi-sonic', 'peerport': 'Card1/Port5.1', 'speed': '200000'}}}, 'device_console_info': {'qsp305': {}}, ...}
dut_port   = 'Ethernet16'
duthost    = <MultiAsicSonicHost qsp305>
fanout_data = {'snappi-sonic': {'device_bmc_info': {}, 'device_bmc_link': {}, 'device_conn': {'Card1/Port5.1': {'peerdevice': 'qsp30...ard1/Port6.2': {'peerdevice': 'qsp305', 'peerport': 'Ethernet18', 'speed': '200000'}}, 'device_console_info': {}, ...}}
port_config_list = [<tests.common.snappi_tests.port.SnappiPortConfig object at 0x7eff07d65a90>, <tests.common.snappi_tests.port.SnappiPortConfig object at 0x7eff06efafd0>, <tests.common.snappi_tests.port.SnappiPortConfig object at 0x7eff07a9f220>]
port_id    = 2
prio_dscp_map = {0: [8], 1: [0, 1, 10, 11, 12, 13, ...], 2: [5], 3: [3], ...}
prio_list  = [3]
testbed_config = <snappi.snappi.Config object at 0x7eff06ceef00>

snappi_tests/pfcwd/files/pfcwd_burst_storm_helper.py:65: TypeError</failure></testcase></testsuite></testsuites>

Steps to Reproduce

Run any of the pfcwd tests after deploy-mg

  1. test_pfcwd_m2o_with_snappi.py
  2. test_pfcwd_basic_with_snappi.py
  3. test_pfcwd_a2a_with_snappi.py
  4. test_pfcwd_burst_storm_with_snappi.py

Actual Behavior and Expected Behavior

Tests should enable pfcwd through a fixture/helper rather than relying on the user to enable it explicitly.

Relevant log output

Output of show version

Attach files (if any)

No response

Metadata

Metadata

Type

No type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions