Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

qos/test_buffer expects hardcoded vendor specific QoS settings #7016

Open
antonptashnik opened this issue Dec 12, 2022 · 5 comments
Open

qos/test_buffer expects hardcoded vendor specific QoS settings #7016

antonptashnik opened this issue Dec 12, 2022 · 5 comments

Comments

@antonptashnik
Copy link
Contributor

Description
qos/test_buffer.py::test_buffer_deployment test has many expectations regarding QoS buffer profile settings like:

  • egress profile on 0-2 port queues to be "egress_lossy_profile"
  • buffer profiles to be assigned on 5-6 egress queues
  • other buffer profile assignments on a given pgs/queues

The issue is that aforementioned assignments are not static and may vary for different vendors. As result tests can pass for one platform but fail for another with message like below:

        if use_assert:
>           pytest_assert(condition, message)
E           Failed: The profile of BUFFER_QUEUE_TABLE:Ethernet184:0-2 isn't the expected (egress_lossy_profile)

Looking on test body or origin PR it is not clear what test expectations are based on and why the test expects a given buffer profile to be assigned on a given pg/queue.

Steps to reproduce the issue:

  1. Setup t1-lag topo
  2. Run test qos/test_buffer.py::test_buffer_deployment

Describe the results you received:

        if use_assert:
>           pytest_assert(condition, message)
E           Failed: The profile of BUFFER_QUEUE_TABLE:Ethernet184:0-2 isn't the expected (egress_lossy_profile)

Describe the results you expected:
Test pass or fail providing clear message on expected result and possible required per-vendor adaptation.

Additional information you deem important:

**Output of `show version`:**

```
SONiC:
date: Wed Nov 23 18:10:56 UTC 2022
commit: faef4c69e
version: SONiC.master.178866-dirty-20221123.180536
```

**Attach debug file `sudo generate_dump`:**

```
(paste your output here)
```
@antonptashnik
Copy link
Contributor Author

@stephenxs take a look please

@stephenxs
Copy link
Contributor

@stephenxs take a look please

Hi
Can you share the dump or configuration on the dut ?
thanks

@antonptashnik
Copy link
Contributor Author

@stephenxs take a look please

Hi Can you share the dump or configuration on the dut ? thanks

please clarify what DUT configuration you need

@stephenxs
Copy link
Contributor

@stephenxs take a look please

Hi Can you share the dump or configuration on the dut ? thanks

please clarify what DUT configuration you need

BUFFER_QUEUE, BUFFER_PG, BUFFER_POOL, BUFFER_PROFILE tables.
better to have sonic dump which can be collected using cmd like show techsupport --since 1-hour-ago

@antonptashnik
Copy link
Contributor Author

config from t1 setup...

"BUFFER_PROFILE": {
        "egress_lossless_profile": {
            "dynamic_th": "7",
            "pool": "egress_lossless_pool",
            "size": "0"
        },
        "egress_lossy_profile": {
            "dynamic_th": "3",
            "pool": "egress_lossy_pool",
            "size": "4096"
        },
        "ingress_lossy_profile": {
            "dynamic_th": "3",
            "pool": "ingress_lossy_pool",
            "size": "4096"
        },
        "pg_lossless_25000_40m_profile": {
            "dynamic_th": "7",
            "pool": "ingress_lossless_pool",
            "size": "39936",
            "xoff": "21504",
            "xon": "18432"
        },
        "pg_lossless_25000_300m_profile": {
            "dynamic_th": "7",
            "pool": "ingress_lossless_pool",
            "size": "71680",
            "xoff": "53248",
            "xon": "18432"
        },
        "pg_lossless_100000_40m_profile": {
            "dynamic_th": "7",
            "pool": "ingress_lossless_pool",
            "size": "54272",
            "xoff": "35840",
            "xon": "18432"
        },
        "q_lossy_profile": {
            "dynamic_th": "3",
            "pool": "egress_lossy_pool",
            "size": "4096"
        }
    },

Here I shorten a list to show interfaces with unique configs

"BUFFER_PG": {
        "Ethernet0|0": {
            "profile": "ingress_lossy_profile"
        },
        "Ethernet0|3-4": {
            "profile": "pg_lossless_25000_300m_profile"
        },
        "Ethernet2|0": {
            "profile": "ingress_lossy_profile"
        },
        "Ethernet2|3-4": {
            "profile": "pg_lossless_25000_300m_profile"
        },
        "Ethernet8|0": {
            "profile": "ingress_lossy_profile"
        },
        "Ethernet8|3-4": {
            "profile": "pg_lossless_25000_300m_profile"
        },
        ...
        "Ethernet136|0": {
            "profile": "ingress_lossy_profile"
        },
        "Ethernet136|3-4": {
            "profile": "pg_lossless_25000_40m_profile"
        },
        "Ethernet138|0": {
            "profile": "ingress_lossy_profile"
        },
        "Ethernet138|3-4": {
            "profile": "pg_lossless_25000_40m_profile"
        },
        "Ethernet152|0": {
            "profile": "ingress_lossy_profile"
        },
        "Ethernet152|3-4": {
            "profile": "pg_lossless_25000_40m_profile"
        },
        ...
        "Ethernet184|0": {
            "profile": "ingress_lossy_profile"
        },
        "Ethernet184|3-4": {
            "profile": "pg_lossless_100000_40m_profile"
        },
        "Ethernet192|0": {
            "profile": "ingress_lossy_profile"
        },
        "Ethernet192|3-4": {
            "profile": "pg_lossless_100000_40m_profile"
        },
        "Ethernet200|0": {
            "profile": "ingress_lossy_profile"
        },
        "Ethernet200|3-4": {
            "profile": "pg_lossless_100000_40m_profile"
        },
"BUFFER_QUEUE": {
        "Ethernet0|0-2": {
            "profile": "q_lossy_profile"
        },
        "Ethernet0|3-4": {
            "profile": "egress_lossless_profile"
        },
        "Ethernet2|0-2": {
            "profile": "q_lossy_profile"
        },
        "Ethernet2|3-4": {
            "profile": "egress_lossless_profile"
        },
        ...
        "Ethernet136|0-2": {
            "profile": "q_lossy_profile"
        },
        "Ethernet136|3-4": {
            "profile": "egress_lossless_profile"
        },
        "Ethernet138|0-2": {
            "profile": "q_lossy_profile"
        },
        "Ethernet138|3-4": {
            "profile": "egress_lossless_profile"
        },
        "Ethernet152|0-2": {
            "profile": "q_lossy_profile"
        },
        "Ethernet152|3-4": {
            "profile": "egress_lossless_profile"
        },
        ...
        "Ethernet184|0-2": {
            "profile": "q_lossy_profile"
        },
        "Ethernet184|3-4": {
            "profile": "egress_lossless_profile"
        },
        "Ethernet192|0-2": {
            "profile": "q_lossy_profile"
        },
        "Ethernet192|3-4": {
            "profile": "egress_lossless_profile"
        },
        "Ethernet200|0-2": {
            "profile": "q_lossy_profile"
        },
        "Ethernet200|3-4": {
            "profile": "egress_lossless_profile"
        },

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants