ndnd

module
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 15, 2025 License: MIT

README ΒΆ

Named Data Networking Daemon

build test Go Report Card Benchmark

release MIT license Go Reference

NDNd is a Golang implementation of the Named Data Networking (NDN) protocol stack.

See the project overview, architecture details and the tutorial for more info on NDN.

πŸ—οΈ Installation

Pre-built static binaries for all supported platforms are available on the releases page. Linux-based systems may also utilize the provided Docker images.

NDNd is written in pure Go and requires Go 1.23 or later to build from source. Once Go is installed, run make to build the ndnd executable, followed by make install to install it globally.

🌟 Usage

NDNd provides several independent modules that can be used separately or together.

You can use the ndnd CLI to list available modules and get more info on their usage. A tutorial example for running a simple NDN network can be found here.

root@0037b98ec2ac:~# ndnd
  _   _ ____  _   _     _
 | \ | |  _ \| \ | | __| |
 |  \| | | | |  \| |/ _  |
 | |\  | |_| | |\  | (_| |
 |_| \_|____/|_| \_|\____|

Named Data Networking Daemon

Usage:
  ndnd [command]

NDN Daemons
  fw          NDN Forwarding Daemon
  dv          NDN Distance Vector Daemon
  daemon      NDN Combined Daemon

Security Tools
  sec         NDN Security Utilities
  certcli     NDNCERT Certificate Client

Debug Tools
  ping        Send Interests to a ping server
  pingserver  Start a ping server under a name prefix
  cat         Retrieve object under a name prefix
  put         Publish data under a name prefix

Additional Commands:
  help        Help about any command

Flags:
  -v, --version   version for ndnd

πŸ”€ Network Forwarder

The ndnd/fw package implements YaNFD, a packet forwarder for the NDN platform. It is compatible with the management tools and protocols developed for the NFD forwarder.

To start the forwarder locally, run the following:

ndnd fw run yanfd.config.yml

A full configuration example can be found in fw/yanfd.sample.yml. Note that the default configuration may require root privileges to bind to multicast interfaces.

Once started, you can use the forwarder control tool to manage faces and routes.

πŸ“‘ Distance Vector Router

The ndnd/dv package implements ndn-dv, an NDN Distance Vector routing daemon.

To start the routing daemon bound to the local forwarder, run the following:

ndnd dv run dv.config.yml

A full configuration example can be found in dv/dv.sample.yml. Make sure the network and router name are correctly configured and the forwarder is running.

Once started, you can use the router control tool to create and destroy neighbor links.

πŸ“š Standard Library

The ndnd/std package implements go-ndn, a standard library for NDN applications.

You can use this package to build your own NDN applications. Several examples are provided in the std/examples directory.

The standard library supports the Light VerSec binary format for trust schema specification.

πŸ› οΈ Tools

The ndnd/tools package provides basic utilities for NDN networks. These can be used directly using the ndnd CLI.

  • sec: security utilities for generating keys and certificates (docs)
  • certcli: interactive NDNCERT client (docs)
  • ping/pingserver: test reachability between two NDN nodes
  • cat/put: segmented file transfer between a consumer and a producer

Contributing & License

Contributions to NDNd are greatly appreciated and can be made through GitHub pull requests and issues.

NDNd is free software distributed under the permissive MIT license.

Directories ΒΆ

Path Synopsis
cmd
dv
cmd
tlv
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
fw
cmd
defn
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
std
encoding/tests/gen_basic
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
encoding/tests/gen_composition
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
encoding/tests/gen_map
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
encoding/tests/gen_signature
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
engine/basic
Package basic gives a default implementation of the Engine interface.
Package basic gives a default implementation of the Engine interface.
examples/schema-test/chat
This example uses the old schema implemementation and does not work
This example uses the old schema implemementation and does not work
log
ndn
ndn/mgmt_2022
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
ndn/rdr_2024
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
ndn/spec_2022
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
ndn/svs/v2
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
ndn/svs/v3
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
ndn/svs_ps
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
schema/demosec
demosec gives a proof-of-concept demo of how security will be implemented in NTSchema
demosec gives a proof-of-concept demo of how security will be implemented in NTSchema
security/ndncert/tlv
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
security/trust_schema
Code generated by ndn tlv codegen DO NOT EDIT.
Code generated by ndn tlv codegen DO NOT EDIT.
types/arc
Arc is an atomically reference counted generic type.
Arc is an atomically reference counted generic type.
types/lockfree
Lock-free data structures
Lock-free data structures
types/sync_pool
sync_pool is a generic sync.Pool wrapper
sync_pool is a generic sync.Pool wrapper
dvc
sec

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL