Skip to content
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

Multicast packets, received in XDP to diffrent ports (Trying achieve zoom level performance using XDP) #61

Open
atulbari-samespace opened this issue Mar 3, 2021 · 7 comments

Comments

@atulbari-samespace
Copy link

atulbari-samespace commented Mar 3, 2021

I am trying figure How zoom video call works,
establishing connection with client using QUIC protocol and take that connection in kernel space using KTLS and use XDP to forward packets

wan to achieve, Forward the packet to destinations in kernel space to save lots for processing
Question:
How can I forward, received packet to multiple clients(ports) using XDP or SKB or eBPF
example:
The packets received by socket A are forwarded to socket B and socket C ...

I tried with XDP as
code example on https://duo.com/labs/tech-notes/writing-an-xdp-network-filter-with-ebpf#section8
But not able to multicast

@atulbari-samespace atulbari-samespace changed the title Multicast packets received in XDP to multiple ports Multicast packets received in XDP to multiple ports (Trying achieve zoom level performance using XDP) Mar 3, 2021
@atulbari-samespace atulbari-samespace changed the title Multicast packets received in XDP to multiple ports (Trying achieve zoom level performance using XDP) Multicast packets received in XDP to diffrent ports (Trying achieve zoom level performance using XDP) Mar 3, 2021
@atulbari-samespace atulbari-samespace changed the title Multicast packets received in XDP to diffrent ports (Trying achieve zoom level performance using XDP) Multicast packets, received in XDP to diffrent ports (Trying achieve zoom level performance using XDP) Mar 3, 2021
@chaudron
Copy link
Contributor

chaudron commented Mar 3, 2021

XDP does not yet support multicasting to multiple interfaces, the following patch is in review:

https://lore.kernel.org/bpf/20210223125809.1376577-7-liuhangbin@gmail.com/

@atulbari-samespace
Copy link
Author

@chaudron
I was reading about sk_buff
without using patch If I move to next layer at sk_buff
can achieve this same

@tohojo
Copy link
Member

tohojo commented Mar 3, 2021 via email

@atulbari-samespace
Copy link
Author

atulbari-samespace commented Mar 3, 2021

@tohojo thanks for the reply
not just looking at traffic, wan to transmit like The packets received by socket A are forwarded to socket B and socket C ...
I want to transmit the received packet to all connected clients from kernel place, to reduce cpu proceesing (packet transmission in userspace includes more cpu cycles)
like The packets received by socket A are forwarded to socket B and socket C ...

@tohojo
Copy link
Member

tohojo commented Mar 3, 2021 via email

@atulbari-samespace
Copy link
Author

@tohojo Thanks again and I really appreciate your response.

Okay I am new to the kernel. But here is what I want to do:

  1. Client A opens QUIC socket with the server and send video packets.
  2. Server sees multiple candidates (client B and Client C) for the packet and want to forward them.
  3. but before forwarding server will inspect the packets and decide which ones to forward or drop based on desired resolution and bandwidth constraints. basically I am using SVC codec.
  4. I need to decrypt and encrypt before forwarding using KTLS and probably using hardware encryption offload

My goal is to increase the overall capacity of the one server using kernel forwarding.

Thank you!

@tohojo
Copy link
Member

tohojo commented Mar 3, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants