NDN-DPDK: High-Speed Named Data Networking Forwarder
- Installation guide
- Docker container
- Forwarder activation and usage
- Traffic generator activation and usage
- File server activation and usage
- Hardware known to work
- Face creation
- Performance tuning
- Interoperability with other NDN software
- Related 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
- Ethernet-based transports via DPDK: Ethernet, VLAN, UDP, VXLAN
- 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: HTTP POST, WebSocket "graphql-transport-ws", WebSocket "graphql-ws"
- Configuration file: none
- Routing: none
- 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.
- sample: control plane samples.
- docs: documentation.
There is a
README.md file in most directories of this codebase that describes the corresponding module.