-
Notifications
You must be signed in to change notification settings - Fork 58
tests/ocp/sriov: fix Mellanox CX6-DX switchdev and netdev-to-vfiopci test failures #1302
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
base: main
Are you sure you want to change the base?
Changes from 4 commits
6f8e366
054e4e1
b498490
7a0e1fe
1b54f2a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -304,9 +304,22 @@ | |
| "Failed to add server mac address in client pod mac table. Output: %s", outputbuf.String())) | ||
|
|
||
| By("ICMP check between client and server pods") | ||
| Eventually(func() error { | ||
| return sriovocpenv.ICMPConnectivityCheck(cPod, []string{tsparams.ServerIPv4IPAddress}, "net1") | ||
| }, 1*time.Minute, 2*time.Second).Should(HaveOccurred(), "ICMP fail scenario could not be executed") | ||
|
|
||
| // Derive the expected ICMP outcome from the device type that defineMetricsPolicy() actually | ||
| // configured on the server policy, rather than re-checking the vendor ID here. | ||
| // With true vfio-pci (Intel), the VF is exclusively owned by DPDK and ICMP fails. | ||
| // With netdevice+RDMA (Mellanox "vfiopci" mode), the kernel network stack remains active | ||
| // on the VF and ICMP succeeds. | ||
| if serverResources.sriovPolicy.Definition.Spec.DeviceType == "vfio-pci" { | ||
|
Check failure on line 313 in tests/ocp/sriov/tests/metricsExporter.go
|
||
| Eventually(func() error { | ||
| return sriovocpenv.ICMPConnectivityCheck(cPod, []string{tsparams.ServerIPv4IPAddress}, "net1") | ||
| }, 1*time.Minute, 2*time.Second).Should(HaveOccurred(), "ICMP fail scenario could not be executed") | ||
| } else { | ||
| Eventually(func() error { | ||
| return sriovocpenv.ICMPConnectivityCheck(cPod, []string{tsparams.ServerIPv4IPAddress}, "net1") | ||
| }, 1*time.Minute, 2*time.Second).ShouldNot(HaveOccurred(), | ||
| "ICMP connectivity check failed for netdevice+RDMA server") | ||
| } | ||
|
Comment on lines
+307
to
+322
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I recommend against skipping the traffic test for the Intel device. We should ensure compatibility across both vendors; the defineMetricsPolicy() function should be responsible for generating the correct policy for each. |
||
|
|
||
| checkMetricsWithPromQL() | ||
| } | ||
|
|
@@ -472,16 +485,22 @@ | |
| } | ||
|
|
||
| func createMetricsTestResources(cRes, sRes metricsTestResource) *pod.Builder { | ||
| // Create all policies first so the SR-IOV daemon sees them in the same reconcile generation. | ||
| // Creating policies sequentially with network/NAD waits in between introduces a gap that | ||
| // causes the daemon to process them in separate generations, leading to premature | ||
| // WaitForSriovStable returns before all device plugin resources are registered. | ||
| for _, res := range []metricsTestResource{cRes, sRes} { | ||
| By("Create SriovNetworkNodePolicy") | ||
| By(fmt.Sprintf("Create SriovNetworkNodePolicy %s", res.policy.Definition.Name)) | ||
|
|
||
| _, err := res.policy.Create() | ||
| Expect(err).ToNot(HaveOccurred(), | ||
| fmt.Sprintf("Failed to Create SriovNetworkNodePolicy %s", res.policy.Definition.Name)) | ||
| } | ||
|
|
||
| By("Create SriovNetwork") | ||
| for _, res := range []metricsTestResource{cRes, sRes} { | ||
| By(fmt.Sprintf("Create SriovNetwork %s", res.network.Definition.Name)) | ||
|
|
||
| _, err = res.network.Create() | ||
| _, err := res.network.Create() | ||
| Expect(err).ToNot(HaveOccurred(), | ||
| fmt.Sprintf("Failed to create SriovNetwork %s", res.network.Definition.Name)) | ||
|
|
||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.