Comprehensive Guide to OVS‑DPDK, Lagopus, MoonGen, FastClick, OpenFastPath, and Related High‑Performance Networking Tools
This extensive tutorial covers the principles, installation steps, configuration details, and code examples for OVS‑DPDK virtual switching, Lagopus, MoonGen packet generation, FastClick click‑based processing, OpenFastPath, Pktgen‑DPDK, MTCP, Butterfly VM networking, OpenNet, NetBricks, F‑Stack, ThunderX NFV, DPVS, Vhost‑user networking, OpenNFP, VCL, libmoon, and a practical DPDK training curriculum, providing developers with a complete reference for building high‑performance network functions.
Preface: Open source software is defined by the Open Source Initiative as software whose source code can be freely used, modified, and distributed without licensing restrictions.
1. OVS‑DPDK Virtual Switch
OVS‑DPDK combines Open vSwitch with the Data Plane Development Kit (DPDK) to accelerate packet processing in virtualized environments using a user‑space model, offering higher throughput and lower latency.
It requires building DPDK from source, installing development tools, configuring hugepages, and binding NICs to the vfio‑pci driver. Example commands include installing development groups, compiling DPDK, building OVS, creating the OVS database, and setting up bridges and dpdkvhostuser ports.
[root@backendcloud-fedora27 ~]# dnf groupinstall "Development Tools"
[root@backendcloud-fedora27 ~]# dnf install qemu
...2. Lagopus Virtual Switch
Lagopus is an open‑source high‑performance virtual switch developed by Japan's NICT, built on DPDK and OpenFlow 1.3, supporting multi‑threading, multi‑core pipelines, and integration with SDN controllers.
3. MoonGen Packet Generator
MoonGen is a Lua‑scriptable high‑speed packet generator based on DPDK, capable of generating >10 Gbit/s traffic with per‑packet Lua customization, supporting both traffic generation and reception for advanced testing.
local pkt = memory.create_packet()
pkt:fill{eth_src='00:11:22:33:44:55', eth_dst='66:77:88:99:AA:BB', ip_src='10.0.0.1', ip_dst='10.0.0.2'}4. FastClick Processing Engine
FastClick is a user‑space click‑based packet processing framework that moves packet handling out of the kernel for higher throughput, supporting multi‑threading and configurable pipelines.
<script type='application/javascript' src='/path/to/fastclick.js'></script>5. OpenFastPath Framework
OpenFastPath (OFP) provides a user‑space packet processing engine with support for multiple protocol stacks, ACLs, and virtualized deployment, originally led by the Linux Foundation.
6. Pktgen‑DPDK Traffic Generator
Pktgen‑DPDK is a DPDK‑based packet generator that can send custom packets, PCAP streams, and rate‑controlled traffic, exposing a CLI for runtime configuration.
./app/app/x86_64-native-linuxapp-gcc/pktgen -l 0-4 -n 3 -- -P -m "[11:3].0,[2:4].1" -s 0:example.pcap7. MTCP (Many‑to‑Many TCP)
MTCP is a user‑space high‑performance TCP/IP stack built on DPDK, offering low‑latency socket APIs and tools such as a packet generator and flow monitor.
8. Butterfly – VM Connectivity
Butterfly creates virtual NICs (vNICs) with VXLAN encapsulation, allowing VMs on different hosts to communicate with low latency and applying security‑group filtering via the NPF firewall.
butterfly nic add --ip 42.0.0.1 --mac 52:54:00:12:34:01 --vni 42 --id vnic_19. OpenNet Library
OpenNet is a high‑performance networking library from China Telecom Research Institute, offering reusable APIs for TCP, UDP, and HTTP with an epoll‑based event model.
10. NetBricks
NetBricks is a DPDK‑based network function framework from Stanford, using a packet‑processing pipeline model for NFV and edge computing.
11. F‑Stack
F‑Stack provides a DPDK‑accelerated TCP/IP stack with zero‑copy, multi‑core parallelism, and POSIX‑compatible socket APIs.
12. ThunderX NFV
ThunderX NFV is a Cavium ARM‑based processor platform for network function virtualization, supporting many cores, hardware accelerators, and integration with OpenStack, DPDK, and OPNFV.
13. DPVS (Direct Project Virtual Server)
DPVS is a lightweight L4 load balancer from China Telecom, using user‑space packet processing, NUMA awareness, and CPU affinity for high throughput.
14. Vhost‑user‑net
Vhost‑user‑net provides a user‑space virtual NIC interface using the vhost‑user protocol to avoid kernel‑space context switches.
15. OpenNFP
OpenNFP is an FPGA‑based NFV framework offering a programmable data plane and modular network function composition.
16. VCL (Virtual Computing Lab)
VCL is a cloud‑native virtual machine platform that enables remote education and online labs via VM access over the network.
17. libmoon
libmoon combines DPDK and LuaJIT to create high‑performance network applications and traffic generators with an event‑driven model.
18. DPDK Practical Training
The training curriculum covers DPDK fundamentals, network protocol stack implementation (ARP, ICMP, UDP, TCP, IPv4/IPv6), DPDK components (KNI, timers, BPF), classic projects (DNS, gateway, DDoS detection), storage with SPDK, security and gateway development (VPP, nff‑go), virtualization (OVS‑DPDK, DPVS), testing tools (iperf3, TRex, pktgen, fio), and performance measurement techniques.
Additional resources include a downloadable learning package, a DPDK community group, and career paths such as senior network developer, cloud engineer, SDN/NFV engineer, and performance optimizer.
Deepin Linux
Research areas: Windows & Linux platforms, C/C++ backend development, embedded systems and Linux kernel, etc.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.