Skip to content
main
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
mk
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

NDNph: Named Data Networking packet headers

GitHub Workflow status Coveralls code coverage GitHub code size

NDNph provides Named Data Networking packet encoding and more in a header-only C++11 library. It is part of esp8266ndn that supports microcontroller programming in Arduino IDE. NDNph can also work independently on Linux and other platforms.

NDNph logo

Features

Packet encoding and decoding

  • Interest and Data
    • v0.3 format only
    • TLV evolvability: yes
    • forwarding hint: yes, limited to one delegation name
  • NDNLPv2
    • fragmentation and reassembly: yes, requires in-order delivery
    • Nack: partial
    • PIT token: yes
    • congestion mark: no
    • link layer reliability: no
  • Signed Interest: v0.3 format
  • Naming Convention: 2019 format

Transports

  • UDP: unicast only
  • libmemif

KeyChain

  • Crypto: using Mbed TLS library
    • SHA256: yes
    • ECDSA: P-256 curve only
    • HMAC-SHA256: yes
    • RSA: no
    • Null: yes
  • NDN certificates: basic support
  • Persistent key and certificate storage: binary files
  • Trust schema: no

Application layer services

Installation

For Arduino, see esp8266ndn instructions.

For Linux,

  1. Install dependencies
    • C++ compiler such as GCC, install Ubuntu package build-essential
    • Meson, install pip package meson
    • Ninja build system, install Ubuntu package ninja-build
    • Mbed TLS 2.16+, install from source or Ubuntu 20.04 package libmbedtls-dev
    • Boost header-only libraries, install Ubuntu package libboost-dev
    • libmemif, install from source
    • Google Test, install from source (only needed by unit tests)
    • Note: all dependencies are optional, but omitting a dependency would necessitate extra porting work
  2. Create build directory: meson build
  3. Enter build directory and execute build: cd build && ninja
  4. Run unit test (optional): ninja test
  5. Install headers to system: sudo ninja install
  6. Add #include <NDNph-config.h> and #include <NDNph.h> in your project, and start coding.
  7. Check out the example programs for how to use.

About

Named Data Networking packet encoding and more in a header-only C++11 library

Topics

Resources

License

Languages