blob: 1f3f2824cc9a5f5378d9062feb7223653d5fcece [file] [log] [blame]
Beichuan Zhang55b8ed42014-04-26 22:25:44 -07001.. _NFD v0.1.0 Release Notes:
2
3NFD v0.1.0 Release Notes
4========================
5
6Major Modules of NFD
7--------------------
8
9NFD has the following major modules:
10
11- Core
12 Provides various common services shared between different NFD modules. These include
13 hash computation routines, DNS resolver, config file, face monitoring, and
14 several other modules.
15
16- Faces
17 Implements the NDN face abstraction on top of different lower level transport
18 mechanisms.
19
20- Tables
21 Implements the Content Store (CS), the Pending Interest Table (PIT), the Forwarding
22 Information Base (FIB), and other data structures to support forwarding of NDN Data
23 and Interest packets.
24
25- Forwarding
26 Implements basic packet processing pathways, which interact with Faces, Tables,
27 and Strategies.
28
29 + **Strategy Support**, a major part of the forwarding module
30 Implements a framework to support different forwarding strategies. It includes
31 StrategyChoice, Measurements, Strategies, and hooks in the forwarding pipelines. The
32 StrategyChoice records the choice of the strategy for a namespace, and Measurement
33 records are used by strategies to store past performance results for namespaces.
34
35- Management
36 Implements the `NFD Management Protocol
37 <http://redmine.named-data.net/projects/nfd/wiki/Management>`_, which allows
38 applications to configure NFD and set/query NFD's internal states. Protocol interaction
39 is done via NDN's Interest/Data exchange between applications and NFD.
40
41- RIB Management
42 Manages the routing information base (RIB). The RIB may be updated by different parties
43 in different ways, including various routing protocols, application's prefix
44 registrations, and command-line manipulation by sysadmins. The RIB management module
45 processes all these requests to generate a consistent forwarding table, and then syncs
46 it up with the NFD's FIB, which contains only the minimal information needed for
47 forwarding decisions. Strictly speaking RIB management is part of the NFD management
48 module. However, due to its importance to the overall operations and its more complex
49 processing, we make it a separate module.
50
51Features in Version 0.1.0
52-------------------------
53
54This is an incomplete list of features that are implemented in NFD version 0.1.0.
55
56- Packet Format
57
58 + `NDN-TLV <http://named-data.net/doc/ndn-tlv/>`_
59 + LocalControlHeader, to allow apps to set outgoing face and learn incoming face.
60
61- Faces
62
63 + Unix stream socket
64 + UDP unicast
65 + UDP multicast
66 + TCP
67 + Ethernet, currently without fragmentation.
68
69 .. note::
70 Ethernet support will not work properly on Linux kernels with TPACKET_V3 flexible
71 buffer implementation (>= 3.2.0) and libpcap >= 1.5.0 (e.g., Ubuntu Linux 14.04).
72 Refer to `Issue 1551 <http://redmine.named-data.net/issues/1511>`_ for more
73 detail and implementation progress.
74
75- Management
76
77 + Use of signed Interests as commands, with authentication and authorization.
78 + Face management
79 + FIB management
80 + Per-namespace strategy selection
81 + NFD status publishing
82 + Notification to authorized apps of internal events, including Face creation and destruction.
83
84- Tables and forwarding pipelines support most Interest/Data processing, including
85 selectors.
86
87- RIB Management that runs as a separate process, ``nrd``. It supports basic prefix
88 registration by applications, but no flags yet.
89
90- Strategies
91
92 + ``broadcast``
93 + ``best-route``
94 + ``ncc``: based on ccnx 0.7 for experimentation
95 + ``client-control``: authorized application can directly control Interest forwarding
96
97- Name-based scoping
98
99 + ``/localhost``: communication only within localhost using "local" Faces
100 (UnixStreamFace, LocalTcpFace). NFD will strictly enforce this scope for Interests
101 and Data packets
102 + ``/localhop``: one-hop communication (e.g., if at least one incoming or outgoing Face
103 in PIT entry is non-local, the Interest cannot be forwarded to any non-local Face)
104
105- Support configuration file, which is in the Boost INFO format.
106
107- Applications
108
109 + Tools to discover hubs on NDN testbed.
110 + peek/poke and traffic generators for testing and debugging.
111 + ``nfdc``, a command-line tool to configure NFD.
112 + ``nfd-status``, a command-line tool to query NFD status.
113 + ``nfd-status-http-server``, which reads the NFD status and publishes over HTTP.
114
115
116Planned Functions and Features for Next Releases
117------------------------------------------------
118
119- NACK
120 A packet sent back by a producer or a router to signal the unavailability of a requested
121 Data packet. The protocol specification for NACK is in progress.
122
123- New strategies
124 Additional strategies, including self-learning that populates the FIB by observing
125 Interest and Data exchange.
126
127- Hop-by-hop Interest limit mechanism for congestion control.
128
129- Face enhancements
130 Add fragmentation support for Ethernet face, may add support for new types such as
131 WiFi direct and WebSockets.
132
133- Tables
134 Experiment and evaluate different data structures and algorithms.
135
136- RIB management
137 Move to more scalable data structures and support all flags in prefix registrations.
138
139- Tunnel management
140 For hub nodes to authenticate incoming tunnel requests and maintain the tunnels.
141
142- Extensible name-based scoping
143
144 + configurable organization-based scoping