-
Notifications
You must be signed in to change notification settings - Fork 29
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
OCPBUGS-21831: [release-4.14] Set MAC address after renaming the interface #92
Conversation
Setting the MAC address at the end of SetupVF reduces the chances of race conditions with tools that set MAC address asynchronously (i.e. iavf). This commit solve an issue with i40e driver where calling `SetVFEffectiveMAC` after `SetVFHardwareMAC` may produce a VF with no connectivity even if the last configuration step didn't produce any error: ``` + ip link set dev ens1f0 vf 0 mac 20:04:0f:f1:88:A1 # No error + ip link set dev temp_71 address 20:04:0f:f1:88:A1 # Transient error RTNETLINK answers: Resource temporarily unavailable + ip link set dev temp_71 address 20:04:0f:f1:88:A1 # No error ``` Note: this seems to be a kernel driver regression introduced near torvalds/linux@c34743d Signed-off-by: Andrea Panattoni <[email protected]>
/jira cherrypick OCPBUGS-19536 |
@zeeke: Jira Issue OCPBUGS-19536 has been cloned as Jira Issue OCPBUGS-21831. Will retitle bug to link to clone. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@zeeke: This pull request references Jira Issue OCPBUGS-21831, which is valid. The bug has been moved to the POST state. 6 validation(s) were run on this bug
Requesting review from QA contact: The bug has been updated to refer to the pull request using the external bug tracker. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@zeeke: all tests passed! Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
// Error is ignored here because enabling this feature is only a performance enhancement. | ||
_ = s.utils.EnableArpAndNdiscNotify(podifName) | ||
|
||
// 6. Set MAC address |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh I did not catch this in U/S sriov-cni. But setting the MAC address after we send out GARPs may be an issue. Since ARPs require that the MAC address is setup properly.
You are moving SetVFEffectiveMAC
down to solve a race condition, is that correct? So moving it before EnableArpAndNdiscNotify
shouldn't be any different (although solving race conditions this way really is a toss of the coin).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh I did not catch this in U/S sriov-cni. But setting the MAC address after we send out GARPs may be an issue. Since ARPs require that the MAC address is setup properly.
Does the GARP go out before setting up the interface? That happens on step 7
You are moving SetVFEffectiveMAC down to solve a race condition, is that correct? So moving it before EnableArpAndNdiscNotify shouldn't be any different (although solving race conditions this way really is a toss of the coin).
I agree, that's the best we could do from the CNI side while the investigation on the kernel side is still ongoing.
As the root cause is not yet clear, moving that statement can make a difference. At least, we should run an extensive test suite as we did with these changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I forgot that it is also done after IPAM. Then this is lgtm.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It actually doesn't happen at step 7 but after IPAM is setup.
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: wizhaoredhat, zeeke The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@bn222 @wizhaoredhat Can you also help with |
/label backport-risk-assessed |
/label staff-eng-approved |
/label cherry-pick-approved |
@knobunc: Can not set label cherry-pick-approved: Must be member in one of these teams: [] In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/label cherry-pick-approved |
@zeeke: Jira Issue OCPBUGS-21831: All pull requests linked via external trackers have merged: Jira Issue OCPBUGS-21831 has been moved to the MODIFIED state. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/cherrypick release-4.13 |
@zeeke: #92 failed to apply on top of branch "release-4.13":
In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
[ART PR BUILD NOTIFIER] This PR has been included in build sriov-cni-container-v4.14.0-202311210908.p0.gf73cb4b.assembly.stream for distgit sriov-cni. |
backport of: