OpenSDN-io / community

Community Planning and Coordination
Apache License 2.0
2 stars 1 forks source link

XDP and DPDK support for containers #1

Open randybias opened 3 months ago

randybias commented 3 months ago

PLEASE PROVIDE MORE DETAILS ON THIS

xujingjing0320 commented 3 months ago

Given that DPDK now supports the AF_XDP PMD (poll mode driver) driver (see https://doc.dpdk.org/guides/nics/af_xdp.html), it becomes feasible to enhance the vRouter DPDK by introducing an AF_XDP port. This enhancement could significantly boost network performance in containerized environments.

randybias commented 2 months ago

@xujingjing0320 unfortunately this isn't enough actionable details. We really need to understand:

Who has the most experience with DPDK in the existing community? We need someone who can actually take a run at doing a proof of concept of this and giving us feedback if it has value. Maybe Joseph Gasparakis? I'll have @lungdear reach out to him.

xujingjing0320 commented 2 months ago

@randybias My colleague and I have completed the coding work, including upgrading DPDK to 22.11.4 and adding the AF_XDP interface. However, the traffic has not yet been fully established, and we are still working on it. I plan to conduct performance testing once everything is fully completed.

randybias commented 2 months ago

Any updates on this @xujingjing0320 ?

PloyTammareeNimitnon commented 1 month ago

Pls update on this @xujingjing0320

xujingjing0320 commented 1 month ago

@randybias @PloyTammareeNimitnon "I apologize for not updating in a timely manner. I have completed the encoding work for integrating af_xdp into the vrouter DPDK, and traffic is now flowing through. However, performance testing is not yet satisfactory, and I am still debugging as much as possible. I hope someone experienced in this area can provide some advice.

xujingjing0320 commented 1 month ago

I also need to clarify that my work is based on DPDK, and DPDK has done a good job in integrating af_xdp, so relatively speaking, this part of the encoding is relatively easy.

xujingjing0320 commented 1 month ago

According to Juniper's documentation(https://www.juniper.net/documentation/us/en/software/cn-cloud-native23.3/cn-cloud-native-feature-guide/cn-cloud-native-network-feature/topics/concept/cn-cloud-native-ebpf.html), when they introduced eBPF, they refactored the forwarding plane, which was the vrouter. The workload associated with this task is incomparable to the scope of my current work.

randybias commented 1 month ago

Please clarify. Is your work larger or smaller? I assume it's smaller. If I read this web page right this was the new "CN2" vrouter, based off of eBPF/XDP. Did the code for this ever see the light? I'm fairly certain it wasn't merged into TF.

xujingjing0320 commented 1 month ago

@randybias mine is smaller. Yes, Juniper has made numerous updates in CN2, and the code should only be visible to large buyers who have purchased the commercial version. I believe that OpenSDN can take inspiration from some of Juniper's approaches for its own evolution.

randybias commented 2 weeks ago

Status updates?