NDNLP is a link protocol for delivering CCNx messages over a local one-hop link.
NDNLP provides the following two features:
- Fragmentation and Reassembly
- Acknowledgement and Retransmission
ndnld is an implementation of NDNLP.
Read NDN Technical Report NDN-0006 for more details.
ndnld has been tested with CCNx 0.6.2.
ndnld has been tested with Ubuntu 12.04.
- CUnit is required to run unit tests.
ndnld has been tested with FreeBSD 9.
- Unit tests do not compile on FreeBSD.
- UDP lower-layer with IPv6 addresses is always available.
- UDP lower-layer with IPv4 addresses is available when
ipv6_ipv4mapping="YES"
is specified in /etc/rc.conf. - Ethernet lower-layer is not supported due to lack of AF_PACKET.
ndnld compiles on Mac OS X 10.6.8, but its functionality is not fully tested.
make
sudo make install
On FreeBSD if you plan to use UDP lower-layer with IPv4 addresses, add ipv6_ipv4mapping="YES"
to /etc/rc.conf, and reboot the machine.
ccndstart
ndnld
The program will daemonize itself.
killall ndnld
sudo make uninstall
ndnldc is a command-line utility to configure ndnld.
ndnldc should be called after starting ndnld. Configuration does not persist after ndnld is restarted.
Commands to create a UDP connection between r1 (192.0.2.1) and r2 (192.0.2.2):
ndn@r1:~$ ndnldc -c -p udp -h 192.0.2.2
ndn@r2:~$ ndnldc -c -p udp -h 192.0.2.1
FaceID will be echoed back.
Commands to create a Ethernet connection between r1 (eth1, 08:00:27:01:01:01) and r2 (eth2, 08:00:27:01:01:02):
ndn@r1:~$ ndnldc -c -p ether -h 08:00:27:01:01:02 -i eth1
ndn@r2:~$ ndnldc -c -p ether -h 08:00:27:01:01:01 -i eth2
FaceID will be echoed back.
Commands to register a prefix on FaceID 11:
ndn@r1:~$ ndnldc -r -f 11 -n ccnx:/example
Please read section 3.4 of technical report.