NDN-DPDK: High-Speed Named Data Networking Forwarder
- NDN-DPDK installation guide
- NDN-DPDK Docker container
- NDN-DPDK forwarder activation and usage
- NDN-DPDK traffic generator activation and usage
- NDN-DPDK file server activation and usage
- hardware known to work with NDN-DPDK
- NDN-DPDK performance tuning
- NDN-DPDK interoperability with other NDN software
- NDN-DPDK publications and presentations
- Doxygen reference
- Go reference
If you use NDN-DPDK in your research, please cite the NDN-DPDK paper instead of this GitHub repository.
Packet encoding and decoding
- Interest and Data: v0.3 format only
- TLV evolvability: yes
- Forwarding hint: yes
- Fragmentation and reassembly: yes
- Nack: yes
- PIT token: yes
- Congestion mark: yes
- Link layer reliability: no
- DPDK-based high-speed transports: Ethernet, VLAN, UDP, VXLAN
- Ethernet adapter must be dedicated to DPDK
- Socket-based transports via kernel: UDP, TCP
- Local application transports: memif, Unix sockets
- Multi-threaded architecture
- Forwarding strategies: eBPF programs
- FIB: includes strategy choice and statistics
- PIT-CS Composite Table (PCCT): includes PIT and CS
- GraphQL endpoint: yes
- Configuration file: none
- Routing: no
- Multiverse can provide centralized routing
- ndn: NDN library in pure Go.
- mk: build helper scripts.
- csrc: C source code.
- js: TypeScript source code.
- bpf: eBPF programs, such as forwarding strategies.
- core: common shared code.
- dpdk: Go bindings for DPDK and SPDK.
- ndni: NDN packet representation for internal use.
- iface: network interfaces.
- container: data structures.
- app: application level modules, such as the forwarder data plane.
- cmd: executables.
These is a
README.md file in most directories of this codebase that explains the relevant module.