[Nfd-dev] NFD-0.1.0 release candidate 1 is released (initial release)
Alex Afanasyev
alexander.afanasyev at ucla.edu
Wed Apr 30 20:56:50 PDT 2014
Hello everybody,
We are extremely pleased to announce that our new NDN Forwarding Daemon (NFD) finally got
to the stage of the initial release (version 0.1.0, release candidate 1).
Currently, it is a source package only release and the code can be downloaded from
GitHub:
- Direct download: https://github.com/named-data/NFD/archive/NFD-0.1.0-rc1.tar.gz
- Cloning using git:
git clone https://github.com/named-data/NFD
cd NFD && git checkout -b v0.1.0-rc1 NFD-0.1.0-rc1
- General NFD introduction (NFD homepage): http://named-data.net/doc/NFD/0.1.0/
- HTML version of release notes: http://named-data.net/doc/NFD/0.1.0/RELEASE_NOTES.html
Other NFD resources:
- Installation instructions: http://named-data.net/doc/NFD/0.1.0/INSTALL.html
- Getting started Wiki: http://redmine.named-data.net/projects/nfd/wiki/Getting_Started
Feature requests and bug reports are welcome on our NDN Redmine: http://redmine.named-data.net/projects/nfd
=========================================================================================
=========================================================================================
Major Modules of NFD
--------------------
NFD has the following major modules:
- Core
Provides various common services shared between different NFD modules. These include
hash computation routines, DNS resolver, config file, face monitoring, and
several other modules.
- Faces
Implements the NDN face abstraction on top of different lower level transport
mechanisms.
- Tables
Implements the Content Store (CS), the Pending Interest Table (PIT), the Forwarding
Information Base (FIB), and other data structures to support forwarding of NDN Data
and Interest packets.
- Forwarding
Implements basic packet processing pathways, which interact with Faces, Tables,
and Strategies.
+ **Strategy Support**, a major part of the forwarding module
Implements a framework to support different forwarding strategies. It includes
StrategyChoice, Measurements, Strategies, and hooks in the forwarding pipelines. The
StrategyChoice records the choice of the strategy for a namespace, and Measurement
records are used by strategies to store past performance results for namespaces.
- Management
Implements the `NFD Management Protocol
<http://redmine.named-data.net/projects/nfd/wiki/Management>`_, which allows
applications to configure NFD and set/query NFD's internal states. Protocol interaction
is done via NDN's Interest/Data exchange between applications and NFD.
- RIB Management
Manages the routing information base (RIB). The RIB may be updated by different parties
in different ways, including various routing protocols, application's prefix
registrations, and command-line manipulation by sysadmins. The RIB management module
processes all these requests to generate a consistent forwarding table, and then syncs
it up with the NFD's FIB, which contains only the minimal information needed for
forwarding decisions. Strictly speaking RIB management is part of the NFD management
module. However, due to its importance to the overall operations and its more complex
processing, we make it a separate module.
Features in Version 0.1.0
-------------------------
This is an incomplete list of features that are implemented in NFD version 0.1.0.
- Packet Format
+ `NDN-TLV <http://named-data.net/doc/ndn-tlv/>`_
+ LocalControlHeader, to allow apps to set outgoing face and learn incoming face.
- Faces
+ Unix stream socket
+ UDP unicast
+ UDP multicast
+ TCP
+ Ethernet, currently without fragmentation.
.. note::
Ethernet support will not work properly on Linux kernels with TPACKET_V3 flexible
buffer implementation (>= 3.2.0) and libpcap >= 1.5.0 (e.g., Ubuntu Linux 14.04).
Refer to `Issue 1551 <http://redmine.named-data.net/issues/1511>`_ for more
detail and implementation progress.
- Management
+ Use of signed Interests as commands, with authentication and authorization.
+ Face management
+ FIB management
+ Per-namespace strategy selection
+ NFD status publishing
+ Notification to authorized apps of internal events, including Face creation and destruction.
- Tables and forwarding pipelines support most Interest/Data processing, including
selectors.
- RIB Management that runs as a separate process, ``nrd``. It supports basic prefix
registration by applications, but no flags yet.
- Strategies
+ ``broadcast``
+ ``best-route``
+ ``ncc``: based on ccnx 0.7 for experimentation
+ ``client-control``: authorized application can directly control Interest forwarding
- Name-based scoping
+ ``/localhost``: communication only within localhost using "local" Faces
(UnixStreamFace, LocalTcpFace). NFD will strictly enforce this scope for Interests
and Data packets
+ ``/localhop``: one-hop communication (e.g., if at least one incoming or outgoing Face
in PIT entry is non-local, the Interest cannot be forwarded to any non-local Face)
- Support configuration file, which is in the Boost INFO format.
- Applications
+ Tools to discover hubs on NDN testbed.
+ peek/poke and traffic generators for testing and debugging.
+ ``nfdc``, a command-line tool to configure NFD.
+ ``nfd-status``, a command-line tool to query NFD status.
+ ``nfd-status-http-server``, which reads the NFD status and publishes over HTTP.
Planned Functions and Features for Next Releases
------------------------------------------------
- NACK
A packet sent back by a producer or a router to signal the unavailability of a requested
Data packet. The protocol specification for NACK is in progress.
- New strategies
Additional strategies, including self-learning that populates the FIB by observing
Interest and Data exchange.
- Hop-by-hop Interest limit mechanism for congestion control.
- Face enhancements
Add fragmentation support for Ethernet face, may add support for new types such as
WiFi direct and WebSockets.
- Tables
Experiment and evaluate different data structures and algorithms.
- RIB management
Move to more scalable data structures and support all flags in prefix registrations.
- Tunnel management
For hub nodes to authenticate incoming tunnel requests and maintain the tunnels.
- Extensible name-based scoping
+ configurable organization-based scoping
---
NFD Team
More information about the Nfd-dev
mailing list