Skip to content

Latest commit

 

History

History

ndn

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

NDNgo: Named Data Networking in Go

NDNgo is a minimal Named Data Networking library compatible with the NDN-DPDK forwarder. The main purpose of this library is for implementing unit tests and management functionality of NDN-DPDK. It also serves as a demonstration on how to create a library compatible with NDN-DPDK.

NDNgo does not depend on Cgo, and can be used in external projects via Go Modules. It is intended to be cross-platform, and part of the library can be compiled for WebAssembly via TinyGo compiler. However, this is not a high performance library, and there is no API stability guarantees.

NDNgo logo

Features

Packet encoding and decoding

  • General purpose TLV codec (in package tlv)
  • Interest and Data: v0.3 format only
    • TLV evolvability: yes
    • Forwarding hint: yes
    • Signed Interest: basic support
  • NDNLPv2
    • Fragmentation and reassembly: partial
    • Nack: yes
    • PIT token: yes
    • Congestion mark: yes
    • Link layer reliability: no
  • Naming Convention: rev3 format (TLV-TYPE numbers)

Transports

KeyChain

  • Encryption: no
  • Signing algorithms
    • SHA256: yes
    • ECDSA: yes
    • RSA: yes
    • HMAC-SHA256: no
    • Ed25519: proof of concept only
    • Null: yes
  • NDN certificates: basic support
  • Persistent key and certificate storage: no
  • Trust schema: no

Application layer services

Management integration:

Getting Started

The best places to get started are:

  • Consume function in package endpoint: express an Interest and wait for response, with automatic retransmissions and Data verification.
  • Produce function in package endpoint: start a producer, with automatic Data signing.
  • l3.Face type in package l3: network layer face abstraction, for low-level programming.

Examples are in command ndndpdk-godemo.