-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
CFP: multicast support #28750
Comments
Hey! your timing is pretty coincidental. I've actually been working on the multicast feature internally for a bit now (started this before the CFP was submitted) and we are getting close to opening a OSS PR for the datapath bits. The design we have is rather close! When this PR is opened we invite you and other community members to review this PR and design. |
When do you plan to open the pr? We are looking forward to supporting multicast in cilium |
We have several questions regarding this PR your proposed:
This is a little question we have and hope to get your reply! |
Hey @lliang0947 I think your questions here stem from the fact that this PR implements just the datapath bits.
From a design perspective, I do not think this is possible. This is because only user-space can create eBPF maps. Since we are using a nested map structure, a control plane API must create the inner subscriber maps and assign them to outter keys (multicast groups). Again, this is a control plane responsibility which is not being implemented in the outlined PR. |
@ldelossa thank you for getting the intial work done! Q: Current PR seems to be supporting the sending side? (pod to pod same host, pop to pod remote host). |
@ldelossa thanks for contributing the PR 👍 I work on Robot Operating System 2 as a member of Technical Steering Committee. ROS 2 (Internally transport implementation is configurable) in default uses Data Distribution Service and that relies on UDP multicast for participant discovery protocol in the application layer. I just tried #29469, and since ROS 2 application cannot discover the participants, i believe it does not support pod to pod multicast communication just yet? no pressure and just checking the current status since i am not familiar with Cilium implementation. thanks in advance, |
Thanks for getting this #29469 done! Has this been released? I poked a bit around a few latest releases but can't find this commit. |
AFAIS, it's in main only, not merged into any release branches yet. |
Thank you @fujitatomoya |
PR to add support for managing multicast BPF maps. |
This issue has been automatically marked as stale because it has not |
@lliang0947 I think we can close this now that #29469 is merged right? |
@lliang0947 @xmulligan i already verified that multicast works with multicast group address and subscribers with Robot Operating System 2 and Data Distributing Service, see more details for https://github.com/fujitatomoya/ros_k8s/blob/master/docs/Setup_Kubernetes_Cluster.md#enable-multicast-wip. btw, to close this issue, we would want to add some docs for user manual explains how to set this up? i did not see those docs so i was looking at the source code for #31355 to figure this out? if that is good to go, i can work on the quick doc update. |
Yes, that would be great if you could add some docs on how to use it 🙏 |
@xmulligan i could use review for #32612 |
Cilium Feature Proposal
Is your proposed feature related to a problem?
Our use case involves distributing data feeds to multiple consumers running in the k8s cluster, This case requires multicast support.
Describe the feature you'd like
multicast support in cilium
(Optional) Describe your proposed solution
The container network multicast transmission technology based on eBPF focuses on solving the problem of efficient multicast transmission in the container network and provides support for multiple multicast protocols. My idea is to use the eBPF map to maintain the pod list for multicast communication, complete the addition and deletion of multicast members in the cilium agent, and use the eBPF helper function to implement directional data transmission and network forwarding.
For detailed plans, see https://docs.google.com/document/d/14ekQd1MoKK9_NX0ru9rrhIHSfOyk_WkKQF7-aTLt3I0/edit?usp=sharing
The text was updated successfully, but these errors were encountered: