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

Add --sanity option and fill in expectaions for Intel X710 #2

Closed
wants to merge 102 commits into from

Conversation

ol-andrewr
Copy link
Contributor

Update tests to produce sensible verdicts and take more limitations into account.

Example log:
https://ts-factory.io/bublik/v2/runs/221577

ol-andrewr and others added 30 commits October 29, 2022 11:31
Do not fail test if actual number of Tx descriptor is more than
requested, but effective number exactly matches requested.
Use verdicts to highlight the behaviour specifics.

Signed-off-by: Andrew Rybchenko <[email protected]>
Make it clear in verdicts that expected hash is zero, but obtained
value is not zero.

Signed-off-by: Andrew Rybchenko <[email protected]>
Helper API to create Rx mempool has some logic which we don't
need here. We want to fully control data room size.

Signed-off-by: Andrew Rybchenko <[email protected]>
Mapping to URL is site-specific and should live in ts-rigs if present.

Signed-off-by: Andrew Rybchenko <[email protected]>
Use new unified format for references in key values.

Signed-off-by: Andrew Rybchenko <[email protected]>
DPDK-Bugzilla-ID: 1097
Signed-off-by: Andrew Rybchenko <[email protected]>
DPDK-Bugzilla-ID: 1097
Signed-off-by: Andrew Rybchenko <[email protected]>
Doing so will help to keep RSS configuration
scheme consistent across the relevant tests.

Signed-off-by: Ivan Malov <[email protected]>
Reviewed-by: Andrew Rybchenko <[email protected]>
In the case of net/i40e, a deferred start Tx queue accepts
packets instead of rejecting them. The packets get stuck.
When the user starts the queue, the packets get sent.

Such behaviour might be a bug. Make the test classify it.

Signed-off-by: Ivan Malov <[email protected]>
Reviewed-by: Andrew Rybchenko <[email protected]>
In the case of net/i40e, RSS hash offload is enabled
unconditionally whenever MQ mode RSS is configured.

Signed-off-by: Ivan Malov <[email protected]>
Reviewed-by: Andrew Rybchenko <[email protected]>
Fixes: f407cf4 ("DPDK TS going public")
Signed-off-by: Ivan Malov <[email protected]>
Reviewed-by: Andrew Rybchenko <[email protected]>
Doing so will help to keep RSS configuration
scheme consistent across the relevant tests.

Signed-off-by: Ivan Malov <[email protected]>
Reviewed-by: Andrew Rybchenko <[email protected]>
Doing so will help to keep RSS configuration
scheme consistent across the relevant tests.

Signed-off-by: Ivan Malov <[email protected]>
Reviewed-by: Andrew Rybchenko <[email protected]>
net/ice does not support rte_flow_isolate().

Signed-off-by: Andrew Rybchenko <[email protected]>
net/ice uses helper API to prepare packet for checksum offload.
The APi requires contiguous packet headers.

Signed-off-by: Andrew Rybchenko <[email protected]>
The driver provides RSS hash even if the offload is disabled.

Signed-off-by: Andrew Rybchenko <[email protected]>
net/ice does not provide driver callback for rte_eth_dev_flow_ctrl_get().

Signed-off-by: Andrew Rybchenko <[email protected]>
Make it easier to run all tests which use RTE flow rules with
transfer attribute set.

Signed-off-by: Andrew Rybchenko <[email protected]>
net/ice does not support flow transfer rules.

Signed-off-by: Andrew Rybchenko <[email protected]>
net/ice does not support UDP port configuration for GENEVE tunnels.

Signed-off-by: Andrew Rybchenko <[email protected]>
Add missing waiting for link up on Tester side before traffic
checks.

Signed-off-by: Andrew Rybchenko <[email protected]>
Reword verdicts and expect behaviour displayed by upstream DPDK.

Signed-off-by: Ivan Malov <[email protected]>
The current code starts CSAP for the 1st time with NULL
pattern, then generates mbufs and the real pattern.
Reorder the steps so that the real pattern is used.

Fixes: f407cf4 ("DPDK TS going public")
Signed-off-by: Ivan Malov <[email protected]>
In the case of net/i40e, going for runtime Tx queue setup
causes failures on device start. Provide TRC expectations.

When the bug has been fixed, the test will fail in a
different way because of a bug in deferred Tx queue
start. Assuming the partial fix has been applied
for that bug too, provide updates for the test
which help to classify remaining regressions.

Signed-off-by: Ivan Malov <[email protected]>
Doing so will allow to update TRC for more IUT variants.

Signed-off-by: Ivan Malov <[email protected]>
Follow up changes in TE [1].

[1] 7feba7708191 ("lib/rpc_dpdk: decouple RSS types from flows")

Signed-off-by: Andrew Rybchenko <[email protected]>
PMD provides RSS hash information even when the offload is not enabled.

Signed-off-by: Andrew Rybchenko <[email protected]>
DPDK v22.11-rc1. NIC is MCX516A-CCAT.

Signed-off-by: Andrew Rybchenko <[email protected]>
DPDK v22.11-rc1. NIC is MCX516A-CCAT.

Signed-off-by: Andrew Rybchenko <[email protected]>
mlx5 changes RSS redirecation table when device is started.

Signed-off-by: Andrew Rybchenko <[email protected]>
Not all drivers support MTU change when device is started.
So, it is better to avoid and only dedicated tests should do it.

Signed-off-by: Andrew Rybchenko <[email protected]>
i40e does not provide tx_pkts and tx_octets extended statistics
used by the test. Everything else looks good.

Signed-off-by: Andrew Rybchenko <[email protected]>
When packet buffers mempool is populated data room size should
include RTE_PKTMBUF_HEADROOM since it is always subtracted when
Rx buffer size is calculated.

Signed-off-by: Andrew Rybchenko <[email protected]>
Update the test to take min_rx_bufsize into account and expect
Rx queue setup failure if requested Rx buffer size is smaller
than the minimum.

Signed-off-by: Andrew Rybchenko <[email protected]>
When device is not started yet, it is incorrect and not actually
required to wait for link up.

Fixes: f407cf4 ("DPDK TS going public")
Signed-off-by: Andrew Rybchenko <[email protected]>
i40e does not allow to change MTU when device is started.

Signed-off-by: Andrew Rybchenko <[email protected]>
i40e fails to start device if an Rx queue is not setup yet.

DPDK-Bugzilla-ID: 1110
Signed-off-by: Andrew Rybchenko <[email protected]>
There is a FW LLDP daemon on Intel X710 which generate LLDP
packets from time ot time. It breaks ransom tests due to
unexpected packet received. Disable FW LLDP daemon to avoid
unexpected packets.

Signed-off-by: Andrew Rybchenko <[email protected]>
i40e does not provide rx_pkts and rx_octets extended stats.

Signed-off-by: Andrew Rybchenko <[email protected]>
Nvidia ConnectX-5 uses bifurcated driver and network interface is
available on IUT side as well. However, it does not have disable-fw-lldp
private flag and corresponding error was incorrectly returned to the
caller.

Fixes: 05cfdcc ("prologue: fix random failures on some tests on Intel X710")
Signed-off-by: Andrew Rybchenko <[email protected]>
Enable Tx offloads explicitly to let PMD know which offloads
are required.

Signed-off-by: Andrew Rybchenko <[email protected]>
If IUT port is restarted, wait for link up on Tester side
once again to avoid random packet drops because of link down.

Fix randon test failures on Intel X710.

Signed-off-by: Andrew Rybchenko <[email protected]>
i40e does not fill in TCI's in mbuf if stripping is disabled.

Signed-off-by: Andrew Rybchenko <[email protected]>
i40e does not fill in TCI's in mbuf if stripping is disabled.

Signed-off-by: Andrew Rybchenko <[email protected]>
@ol-andrewr
Copy link
Contributor Author

QEMU virtio-net testing logs:
https://ts-factory.io/bublik/v2/runs/229087

Fixes: f407cf4 ("DPDK TS going public")
Signed-off-by: Andrew Rybchenko <[email protected]>
Nvidia ConnectX-5 uses bifurcated driver mlx5_core and network
interface is present and grabbed by Test Agent. Changing MTU
via DPDK changes network interface MTU as well. Chaning MTU
to a value smaller than IPv6 minimum MTU make IPv6 on the
interface unavailable and related IPv6 instances disappear.
Restore using history does not help since test does not change
the interface MTU via CS. Configuration restore using backup
fails since it tries to restore these IPv6 instances first.

The problem is fixed in TE making /agent/sys/net/ipv6 dependent
from /agent/interface/mtu. However, it is better to fix it
here as well since there is no point to decrease MTU smaller
than default.

OL-Redmine-Id: 12587
Signed-off-by: Andrew Rybchenko <[email protected]>
Increase default MSS when its value is not important for the
test purposes to be bigger than minimum i40e MSS which is 256.
Try to make corresponding test iterations useful for i40e.

Signed-off-by: Andrew Rybchenko <[email protected]>
Fix many header segments iterations to avoid usage of artificially
small MSS which results in many packets as well. Also too small
MSS makes the test useless for some PMDs (e.g. i40e) which have
bigger minimum MSS.

Use so-called default MSS 257 which is bigger than minimum MSS
in i40e (256). Use default payload size 1024 to avoid potential
issues with dummy TSO which is not the goal of these iterations.

Signed-off-by: Andrew Rybchenko <[email protected]>
Both i40e and ice use SW checksum helper which requires
contiguous headers.

Signed-off-by: Andrew Rybchenko <[email protected]>
Prepare to reuse the helper in another test.

Signed-off-by: Andrew Rybchenko <[email protected]>
The function to release AF_PACKET ethdev pretends to handle
-ENODEV case, but it lack required waiting for RPC failure.

Fixes: f407cf4 ("DPDK TS going public")
Signed-off-by: Andrew Rybchenko <[email protected]>
Take into account limits on a number of segment in mbuf to be sent.
If constructed mbuf violates these limits, expect Tx preapre to
reject it.

Signed-off-by: Andrew Rybchenko <[email protected]>
i40e rejects MSS smaller than 256.

Signed-off-by: Andrew Rybchenko <[email protected]>
i40e does not support outer UDP checksum offload, but reports
the offload as supported. Fill in expectations with references
to corresponding DPDK bug.

DPDK-Bugzilla-ID: 1125
Signed-off-by: Andrew Rybchenko <[email protected]>
@okt-denispr
Copy link
Contributor

I don't really understand what the result should be after adding these two commits:
cda0042
0507b9b

If I understand correctly, this functionality was added to the TE in 7029cbf5efc0cdeef11725131d89a00dfbacf839 commit.

I've added to my key2html the following lines:

# KEY_DOMAINS
amd-jira        link_to_amd_jira

It had no effect on the html log. I see that your logs look the same.
Link: https://ts-factory.io/bublik/v2/log/221577?focusId=222298&mode=treeAndinfoAndlog
Example: Key: ref://dpdk-bz/1102

However, the substitution works in trc-brief.html in my case.
For example, the key amd-jira:DPDK-154 has link specified in the key2html file.

However, in your trc-brief.html, substituting links does not work.
Link: https://ts-factory.io/logs/2022/11/24/balin-x710-p0-15/trc-brief.html
Example: ref://dpdk-bz/1102

Could you please tell me what is expected behavior?

@ol-andrewr
Copy link
Contributor Author

It is a TRC key2html. So, it has never worked for HTML logs.

It is good that substitution works for you in trc-brief.html. It is the expected behaviour.

It is expected that my logs have no substitution, unfortunately. I have no corresponding config locally. I'll fix it.

@ol-andrewr
Copy link
Contributor Author

I have one more PR waiting in a queue. I just don't want to submit it since it overlaps with this one and spoil your efforts here. Please, move forward.

@okt-denispr
Copy link
Contributor

Thanks Andrew! I've pushed your commits with proper review trailers.
I've closed this PR, as all changes are already in the repo but GitHub web interface can't rebase it and merge.

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

Successfully merging this pull request may close these issues.

3 participants