yoursunny / NDNph

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

Home Page:https://esp8266ndn.ndn.today

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 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: rev3 format

Transports

  • UDP: IPv4 and IPv6, unicast only
  • shared memory packet interface (memif)

KeyChain

  • Crypto: using Mbed TLS library
    • SHA256: yes
    • ECDSA: P-256 curve only
    • HMAC-SHA256: yes
    • RSA: no
    • Ed25519: 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 4.0, install from VPP 22.06 source
    • Note: all dependencies are optional, but omitting a dependency may necessitate extra porting work
  2. Create build directory: meson setup build
  3. Enter build directory and execute build: meson compile -C build
  4. Run unit test (optional): meson test -C build
  5. Install headers to system: sudo meson install -C build
  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.

To use as a Meson subproject, copy and modify the sample Wrap file.

About

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

https://esp8266ndn.ndn.today

License:ISC License


Languages

Language:C++ 97.7%Language:NASL 0.8%Language:Meson 0.7%Language:C 0.6%Language:Shell 0.3%