-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Add L2 announcement IPv6 support #39648
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
Conversation
This pull request has been automatically marked as stale because it |
d7ce7b8
to
0cc17e9
Compare
Commit 0cc17e9 does not match "(?m)^Signed-off-by:". Please follow instructions provided in https://docs.cilium.io/en/stable/contributing/development/contributing_guide/#developer-s-certificate-of-origin |
0cc17e9
to
0c4682f
Compare
ed8bee9
to
636f517
Compare
636f517
to
23c6929
Compare
OK, ready for review. I finally could spent some more time on it. A couple of notes:
@dylandreimerink I would appreciate if you could give it a run too. |
1b26c19
to
ed4bcc3
Compare
As part of cilium#39648 review, a bug was disovered in which l2_responder counters were 0ed during reconciliation. Fix it by making sure desiredMap contains old entries with satisfied=true so that counters are not 0ed, as per suggested by Dylan. Reported-by: Joe Stringer <joe@cilium.io> Signed-off-by: Dylan Reimerink <dylan.reimerink@isovalent.com> Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
As part of cilium#39648 review, a bug was disovered in which l2_responder counters were 0ed during reconciliation. Fix it by making sure desiredMap contains old entries with satisfied=true so that counters are not 0ed, as per suggested by Dylan. Reported-by: Joe Stringer <joe@cilium.io> Signed-off-by: Dylan Reimerink <dylan.reimerink@isovalent.com> Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
61237f6
to
dc141e7
Compare
@joestringer many thanks for the thorough review 🙏
Thx
All either addressed or not applicable.
I've explained in the thread, I think we are good. I think we would have seen this already, as the L2 announce tests in E2E (indirect testing) only enable IPv4. But I could be wrong.
In agreement, but I think this is further work 😉 |
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 for my code owners. I followed up on one point from my prior review here: https://github.com/cilium/cilium/pull/39648/files#r2198302693 , but I think this is also OK to fix up after merging this.
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.
Just some minor stuff, but the changes look good to me.
MC helpers are only really used for Solicitation addresses, therefore make narrow the scope to make them more useful. Adapted tests. Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
Define v6_svc_one address required by the V6 l2_announce test. Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
This patch adds supports in bpf_host for IPv6 L2 announcements. Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
This commit adds tc_l2_announce6 unit test, to cover IPv6 support for L2 announce. Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
This commit adds mdlayher/ndp golang package to implement support for sending Gratuitous Neighbour packets. Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
This commit adds v6 L2 responder map. Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
This commit: * Renames garp cell to gneigh to be more generic. * Adds support to gneigh for sending gratuitous Neighbour Advertisement messages. Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
This commit adds support for IPv6 L2 announcements by adding the necessary logic in the l2responder/ cell using the gratuitous ND functionality now part of the gneigh cell. Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
On l2-announcements.rst: * Remove IPv6 limitation. * Adapt text to include NDP where only ARP was mentioned. Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
Prior to this commit if a gratuitous ARP/NDP was unable to be sent, the L2 announce map (v4/v6) was not populated with the entry, leading to an inconsistency. This was not a big deal as _generally_ nothing should prevent us to send these packets. Change the behaviour to Warn and continue. Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
As part of cilium#39648 review, a bug was disovered in which l2_responder counters were 0ed during reconciliation. Fix it by making sure desiredMap contains old entries with satisfied=true so that counters are not 0ed, as per suggested by Dylan. Reported-by: Joe Stringer <joe@cilium.io> Signed-off-by: Dylan Reimerink <dylan.reimerink@isovalent.com> Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
dc141e7
to
671b7ee
Compare
Rebased. All comments addressed, so I believe we are ready to merge 🚀 |
/test |
qq: will this be in the 1.18 release already? |
Nope, 1.19. |
Sad, I was really looking forward to enabling matter without relying on metallb Either way, thanks for all the effort! |
As part of cilium#39648 review, a bug was disovered in which l2_responder counters were 0ed during reconciliation. Fix it by making sure desiredMap contains old entries with satisfied=true so that counters are not 0ed, as per suggested by Dylan. Reported-by: Joe Stringer <joe@cilium.io> Signed-off-by: Dylan Reimerink <dylan.reimerink@isovalent.com> Signed-off-by: Marc Suñé <marc.sune@isovalent.com>
This patchset adds L2 announcement IPv6 support.
Patchset:
Depends on #39574 and #39579. Related/implements #34983.