Operations 68 min read

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.

Deepin Linux
Deepin Linux
Deepin Linux
Comprehensive Guide to OVS‑DPDK, Lagopus, MoonGen, FastClick, OpenFastPath, and Related High‑Performance Networking Tools

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.pcap

7. 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_1

9. 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.

network performanceDPDKPacket GenerationVirtual Switch
Deepin Linux
Written by

Deepin Linux

Research areas: Windows & Linux platforms, C/C++ backend development, embedded systems and Linux kernel, etc.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.