All Projects → usnistgov → ndn-dpdk

usnistgov / ndn-dpdk

Licence: other
NDN-DPDK: High-Speed Named Data Networking Forwarder

Programming Languages

go
31211 projects - #10 most used programming language
c
50402 projects - #5 most used programming language
typescript
32286 projects
shell
77523 projects
Makefile
30231 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to ndn-dpdk

Nff Go
NFF-Go -Network Function Framework for GO (former YANFF)
Stars: ✭ 1,036 (+1118.82%)
Mutual labels:  dpdk
Npf
NPF: packet filter with stateful inspection, NAT, IP sets, etc.
Stars: ✭ 160 (+88.24%)
Mutual labels:  dpdk
ppa-packaging
Semi-automated script to create binary packages for (multiple versions of) Ubuntu
Stars: ✭ 15 (-82.35%)
Mutual labels:  ndn
Fastclick
FastClick - A faster version the Click Modular Router featuring batching, advanced multi-processing and improved Netmap and DPDK support (ANCS'15). Check the metron branch for Metron specificities (NSDI'18).
Stars: ✭ 100 (+17.65%)
Mutual labels:  dpdk
Ruru
Real-time TCP latency monitoring using DPDK backend and a 3D React frontend
Stars: ✭ 155 (+82.35%)
Mutual labels:  dpdk
Packet Journey
DEPRECATED - Packet-journey, userland router which uses DPDK for its fastpath switching.
Stars: ✭ 200 (+135.29%)
Mutual labels:  dpdk
Dpdk Ans
ANS(Accelerated Network Stack) on DPDK, DPDK native TCP/IP stack.
Stars: ✭ 925 (+988.24%)
Mutual labels:  dpdk
oko
Extend Open vSwitch with BPF programs at runtime
Stars: ✭ 29 (-65.88%)
Mutual labels:  dpdk
Dpvs
DPVS is a high performance Layer-4 load balancer based on DPDK.
Stars: ✭ 2,168 (+2450.59%)
Mutual labels:  dpdk
dpdk doc
dpdk中文资料及会议文档ppt
Stars: ✭ 151 (+77.65%)
Mutual labels:  dpdk
Natasha
Natasha is a fast and scalable, DPDK powered, stateless NAT44 packet processor
Stars: ✭ 111 (+30.59%)
Mutual labels:  dpdk
Lvs Dpdk
LVS on dpdk
Stars: ✭ 125 (+47.06%)
Mutual labels:  dpdk
Capsule
A framework for network function development. Written in Rust, inspired by NetBricks and built on DPDK.
Stars: ✭ 217 (+155.29%)
Mutual labels:  dpdk
Pcapplusplus
PcapPlusPlus is a multiplatform C++ library for capturing, parsing and crafting of network packets. It is designed to be efficient, powerful and easy to use. It provides C++ wrappers for the most popular packet processing engines such as libpcap, WinPcap, DPDK and PF_RING.
Stars: ✭ 1,322 (+1455.29%)
Mutual labels:  dpdk
ChronoChat
A simple but interesting demo to visualize how ChronoSync library works
Stars: ✭ 16 (-81.18%)
Mutual labels:  ndn
Fastdns
fastDNS is an authoritative only, high performance, simple and open source name server based on DPDK and NSD server
Stars: ✭ 12 (-85.88%)
Mutual labels:  dpdk
Opennetvm
A high performance container-based NFV platform from GW and UCR.
Stars: ✭ 177 (+108.24%)
Mutual labels:  dpdk
yastack
YAStack: User-space network-stack based on DPDK, FreeBSD TCP/IP Stack, EnvoyProxy
Stars: ✭ 90 (+5.88%)
Mutual labels:  dpdk
mydpdkdns
dns server with high performance, based on dpdk.
Stars: ✭ 41 (-51.76%)
Mutual labels:  dpdk
Libmoon
libmoon is a library for fast and flexible packet processing with DPDK and LuaJIT.
Stars: ✭ 250 (+194.12%)
Mutual labels:  dpdk

NDN-DPDK: High-Speed Named Data Networking Forwarder

NDN-DPDK is a set of high-speed Named Data Networking (NDN) programs developed with the Data Plane Development Kit (DPDK). Included are a network forwarder, a traffic generator, and a file server.

NDN-DPDK logo

This software is developed at the Smart Connected Systems Division of the National Institute of Standards and Technology. It is in beta stage and will continue to be updated.

Documentation

If you use NDN-DPDK in your research, please cite the NDN-DPDK paper instead of this GitHub repository.

Features

Packet encoding and decoding

  • Interest and Data: v0.3 format only
    • TLV evolvability: yes
    • Forwarding hint: yes
  • NDNLPv2
    • Fragmentation and reassembly: yes
    • Nack: yes
    • PIT token: yes
    • Congestion mark: yes
    • Link layer reliability: no

Transports

  • Ethernet-based transports via DPDK: Ethernet, VLAN, UDP, VXLAN
  • Socket-based transports via kernel: UDP, TCP
  • Local application transports: memif, Unix sockets

Forwarding plane

  • Multi-threaded architecture
  • Forwarding strategies: eBPF programs
  • FIB: includes strategy choice and statistics
  • PIT-CS Composite Table (PCCT): includes PIT and CS

Management

  • GraphQL endpoint: HTTP POST, WebSocket "graphql-transport-ws", WebSocket "graphql-ws"
  • Configuration file: none
  • Routing: none

Code Organization

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].