[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