Skip to content

Latest commit

 

History

History
69 lines (54 loc) · 3.48 KB

README.md

File metadata and controls

69 lines (54 loc) · 3.48 KB

NDN Arduino library for ESP8266 and more

GitHub Workflow status GitHub code size

esp8266ndn library enables Named Data Networking application development in Arduino environment. It supports ESP8266, ESP32, ESP32-S2, ESP32-C3, and Adafruit nRF52 microcontrollers.

esp8266ndn 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

  • Ethernet: unicast and multicast on ESP8266 and ESP32
  • UDP/IPv4: unicast and multicast on ESP8266 and ESP32
  • UDP/IPv6: unicast on ESP8266
  • Bluetooth Low Energy: server/peripheral only on ESP32 and nRF52

KeyChain

  • Crypto
    • SHA256: yes (using BearSSL on ESP8266, Mbed TLS on ESP32, Cryptosuite on nRF52)
    • ECDSA: P-256 curve only (using Mbed TLS on ESP32, micro-ecc on ESP8266 and nRF52)
    • HMAC-SHA256: yes (using BearSSL on ESP8266, Mbed TLS on ESP32, Cryptosuite on nRF52)
    • RSA: no
    • Ed25519: no
    • Null: yes
  • NDN certificates: basic support
  • Persistent key and certificate storage: binary files
    • ESP8266: using LittleFS
    • ESP32: using FFat (in Arduino Tools menu select "Partition Scheme: with FAT")
    • nRF52: using InternalFileSystem
  • Trust schema: no

Application layer services

  • ndnping server and client
  • segmented object producer and consumer
  • Realtime Data Retrieval (RDR) metadata producer and consumer
  • NDNCERT server and client
    • ESP32 only
    • supported challenges: "nop" and "possession"
  • NDN-FCH client for connecting to the global NDN testbed and other connected networks
    • ESP8266 and ESP32 only
  • UnixTime client for time synchronization

Installation

  1. Clone NDNph and this repository under $HOME/Arduino/libraries directory.
  2. Add #include <esp8266ndn.h> to your sketch.
  3. Check out the examples for how to use.