Anuket Project
Internship 2022 - Benchmarking eBPF based solutions
Project Name: XDP performance studies for cloud-native NFV Usecases
Mentor: Sridhar Rao Al Morton
Mentee: Shivank Chaudhary
Tenure: 6 Months (Start- 9 June 2022)
Tasks and Progress:
S. No | Task | Week | Related LInks | Outcomes | Status |
---|---|---|---|---|---|
1 | Setup VPP(Vector Packet Processing) and run Trex Traffic Gen to benchmark it. | week 1 & 2 | https://medium.com/@shivank1128/vpp-benchmark-with-trex-traffic-generator-6cfcecb931a9 | Learned the following: 1) How to attach and De-attach NIC from DPDK. 2) How to benchmark with Trex Traffic gen. | Completed |
3 | Setup Open Virtual Switch and create a loopback between interfaces, benchmarking it with Trex. | Week 3 | http://solomon.ipv6.club.tw/Course/SDN/howto_install_ovs_on_centos7.html | 1) Installed OVS on Node4. 2) Created loopback interface. | Completed |
4 | Upgrade Node4 from Centos 7 to Fedora 36. or any suitable Operating System to Run eBPF programs. | Week 4 & 5 | https://getfedora.org/en/workstation/download/ | 1) Removed Centos 7 from Node 4 POD12. 2) Tried to install fedora 36 via Redirect ISO (Failed: due to some issue in Jviewer) 3) Got POD 18 (Ubuntu 20) for testing eBPF programs. | Completed |
5 | Attach an eBPF program to Kernel and Benchmark it with Trex. | Week 6 & 7 | https://github.com/Nat-Lab/xdp-router (Solution XDP Bridge) https://github.com/xdp-project/xdp-tutorial https://github.com/torvalds/linux/tree/master/samples/bpf https://docs.cilium.io/en/latest/bpf/ https://github.com/dpino/xdp_ipv6_filter | 1) Tested 3 XDP bridges but rejected them due to many bugs and errors. 2) Compiled and Attached the XDP router to the interface. 3) testing the program (Whether fulfilling the requirements or not). (In Progress) | Completed |
6 | Waiting for Pod12 Node4 to get ready, depends on infra team! | Week 8 & 9 | Completed | ||
7 | Automate setting up eBPF programs for Baremetal usecases- similar to OVS-DPDK/VPP. | Week 10 | ViNePerf Nile Release Planning | Completed |
Due to some VPN connectivity issues to POD12.
Proceeding with the following tasks first.
Source Code For Following Tasks: https://github.com/Alt-Shivam/Benchmarking-eBPF-XDP
Status | ||
---|---|---|
eBPF Based Bridge | Complete lifecycle; including automation Install, start, configure (add interfaces, add forwarding rules) | Completed |
Tgen: PROX | Complete Lifecycle: Install, Start, start-test, analyse results | Completed |
Tgen: T-REX | Complete Lifecycle: Install, Start, start-test, analyse results | Completed |
FWD: DPDK-Apps (l2fwd, L3fwd, ..) | Complete Lifecycle: Install, Start, collect metrics | Completed https://github.com/Alt-Shivam/Benchmarking-eBPF-XDP/tree/main/FWD:%20DPDK-Apps(L2%2CL3) |
FWD: PROX FWD: VPP | Complete Lifecycle: Install, Start, collect metrics | Completed |
CNI: Cilium | Complete lifecycle; including automation Install, start, configure (add interfaces, add forwarding rules) | Completed https://github.com/Alt-Shivam/Benchmarking-eBPF-XDP/tree/main/CNI:%20Cilium |
CNI: eBPF-Calico (if time permits) | Complete lifecycle; including automation Install, start, configure (add interfaces, add forwarding rules) | Completed |
K8S Reference Definitions: | (a) https://github.com/opnfv/vineperf/tree/master/tools/k8s/reference-definitions/pod-defs (b) https://github.com/opnfv/vineperf/tree/master/tools/k8s/reference-definitions/network-attachments | Completed |