-
Notifications
You must be signed in to change notification settings - Fork 148
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
Send IPv4 GARP and IPv6 Unsolicited NA in "cmdAdd" #216
Send IPv4 GARP and IPv6 Unsolicited NA in "cmdAdd" #216
Conversation
@adrianchiris @martinkennelly @zshi-redhat @bn222 @Eoghan1232 @s1061123 @SchSeba : When you have an opportunity it would be much appreciated if you reviewed these changes in my PR. |
b3da09b
to
274b033
Compare
I believe there was an intermittent problem with checking out some golang libraries. I hope that is what caused the kubernetes ci to fail. Could someone help with reruning the workflow? |
Pull Request Test Coverage Report for Build 3010912126Warning: This coverage report may be inaccurate.This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Details
💛 - Coveralls |
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.
The PR looks good thanks for the contribution!
I have a general question if we change the sys/net file and then change the nic to up the kernel should send the request for us no?
base on (https://sysctl-explorer.net/net/ipv6/ndisc_notify/)
274b033
to
fcfbcb6
Compare
@SchSeba To your question, yes that is correct. This is the method that Zenghui was first prototyping. However after some debugging and testing. We found some issues:
Constructing the packets manually and sending them seemed like the correct path to go. |
2d8259b
to
7450a17
Compare
@adrianchiris @zshi-redhat @bn222 @s1061123 @SchSeba : Please review again at your convenience. I would like to have this feature in soon. Thanks! |
7450a17
to
d5f81ce
Compare
d5f81ce
to
caabb16
Compare
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.
Thanks for working on this @wizhaoredhat !
apologies for the late review.
caabb16
to
fb811b7
Compare
The commit has become quite large. Would it be possible to split it up a bit? |
Hi All, |
For the CI issue I have an open PR for it |
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.
Overall looks good, once @SchSeba comments are addressed and PR rebased im LGTM
ec3a420
to
17c092e
Compare
In "cmdAdd", SRIOV-CNI would construct and send IPv4 Gratuitous ARP and/or Unsolicited Neighbor Advertisement depending on the IP addresses configured by IPAM. The reason why this change is needed is for the scenario when an IP address is reused by IPAM with different interfaces (with different link-layer addresses). This can occur when pods are deleted and created. For performance reasons, sending of GARP and/or Unsolicited NA would update invalid ARP/Neighbor caches in other neighbors/nodes. Also we set IPv4 ARP Notify and IPv6 Neighbor Discovery Notify in sysfs for each interface. This will send GARP and/or Unsolicited NA when the interface is either brought up or the link-layer address changes. This is useful in cases where an application reenables the interface or the MAC address configuration is changed. Some new packages were added, thus go.mod and go.sum were modified accordingly. Mocked PciUtils for sriov tests since sriov.go would call PciUtils to set IPv4 ARP Notify and IPv6 Neighbor Discovery. Fixes k8snetworkplumbingwg#177 Signed-off-by: William Zhao <wizhao@redhat.com>
17c092e
to
c241dcb
Compare
/retest |
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.
lets wait for CI to pass, otherwise LGTM
thanks for addressing my comments !
/retest @adrianchiris could you kick off ci again ? |
I am not sure why the Mellanox CI is failing when we only changed the test file and mocks... Any idea @adrianchiris ? |
/retest |
it should run properly now |
@adrianchiris |
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.
lgtm
/lgtm |
Merging now. |
In "cmdAdd", SRIOV-CNI would construct and send IPv4 Gratuitous ARP
and/or Unsolicited Neighbor Advertisement depending on the IP
addresses configured by IPAM. The reason why this change is needed
is for the scenario when an IP address is reused by IPAM with
different interfaces (with different link-layer addresses). This can
occur when pods are deleted and created. For performance reasons,
sending of GARP and/or Unsolicited NA would update invalid ARP/Neighbor
caches in other neighbors/nodes.
Also we set IPv4 ARP Notify and IPv6 Neighbor Discovery Notify in sysfs
for each interface. This will send GARP and/or Unsolicited NA when the
interface is either brought up or the link-layer address changes. This
is useful in cases where an application reenables the interface or the
MAC address configuration is changed.
Some new packages were added, thus go.mod and go.sum were modified
accordingly.
Mocked PciUtils for sriov tests since sriov.go would call PciUtils to
set IPv4 ARP Notify and IPv6 Neighbor Discovery.
Fixes #177
Signed-off-by: William Zhao wizhao@redhat.com