blob: 1adc65139c7a30833166cc17086def7e7d7aba0e [file] [log] [blame]
Alexander Afanasyev40ee3812014-07-01 00:25:21 -07001.. _NFD Release Notes:
Beichuan Zhang55b8ed42014-04-26 22:25:44 -07002
Alexander Afanasyev40ee3812014-07-01 00:25:21 -07003NFD Release Notes
4=================
Beichuan Zhang55b8ed42014-04-26 22:25:44 -07005
Alexander Afanasyev40ee3812014-07-01 00:25:21 -07006NFD version 0.2.0 (changes since version 0.1.0)
7-----------------------------------------------
8
9Release date: July 1, 2014
10
11- **Documentation**
12
13 + `"NFD Developer's Guide" by NFD authors
14 <http://named-data.net/wp-content/uploads/2014/07/NFD-developer-guide.pdf>`_ that
15 explains NFD's internals including the overall design, major modules, their
16 implementation, and their interactions
17
18 + New detailed instructions on how to enable auto-start of NFD using OSX ``launchd``
19 and Ubuntu's ``upstart`` (see `contrib/ folder
20 <https://github.com/named-data/NFD/tree/master/contrib>`_)
21
22- **Core**
23
24 + Add support for temporary privilege drop and elevation (`Issue #1370
25 <http://redmine.named-data.net/issues/1370>`_)
26
27 + Add support to reinitialize multicast Faces and (partially) reload config file
28 (`Issue #1584 <http://redmine.named-data.net/issues/1584>`_)
29
30 + Randomization routines are now uniform across all NFD modules
31 (`Issue #1369 <http://redmine.named-data.net/issues/1369>`_)
32
33- **Faces**
34
35 + `WebSocket <http://tools.ietf.org/html/rfc6455>`_ Face support
36 (`Issue #1468 <http://redmine.named-data.net/issues/1468>`_)
37
38 + Fix Ethernet Face support on Linux with ``libpcap`` version >=1.5.0
39 (`Issue #1511 <http://redmine.named-data.net/issues/1511>`_)
40
41 + Fix to recognize IPv4-mapped IPv6 addresses in ``FaceUri``
42 (`Issue #1635 <http://redmine.named-data.net/issues/1635>`_)
43
44 + Fix to avoid multiple onFail events
45 (`Issue #1497 <http://redmine.named-data.net/issues/1497>`_)
46
47 + Fix broken support of multicast UDP Faces on OSX
48 (`Issue #1668 <http://redmine.named-data.net/issues/1668>`_)
49
50 + On Linux, path MTU discovery on unicast UDPv4 faces is now disabled
51 (`Issue #1651 <http://redmine.named-data.net/issues/1651>`_)
52
53- **Forwarding**
54
55 + Outgoing Interest pipeline now allows strategies to request a fresh ``Nonce``
56 (e.g., when the strategy needs to re-express the Interest)
57 (`Issue #1596 <http://redmine.named-data.net/issues/1596>`_)
58
59 + Fix in the incoming Data pipeline to avoid sending packets to the incoming Face
60 (`Issue #1556 <http://redmine.named-data.net/issues/1556>`_)
61
62 + New ``RttEstimator`` class that implements the Mean-Deviation RTT estimator to be used
63 in forwarding strategies
64
65- **Tables**
66
67 + Fix in ContentStore to properly adjust internal structure when ``Cs::setLimit`` is called
68 (`Issue #1646 <http://redmine.named-data.net/issues/1646>`_)
69
70 + New option in configuration file to set an upper bound on ContentStore size
71 (`Issue #1623 <http://redmine.named-data.net/issues/1623>`_)
72
73 + Fix to prevent infinite lifetime of Measurement entries
74 (`Issue #1665 <http://redmine.named-data.net/issues/1665>`_)
75
76- **Management**
77
78 + RibManager now fully support ``CHILD_INHERIT`` and ``CAPTURE`` flags
79 (`Issue #1325 <http://redmine.named-data.net/issues/1325>`_)
80
81 + Fix in ``FaceManager`` to respond with canonical form of Face URI for Face creation
82 command (`Issue #1619 <http://redmine.named-data.net/issues/1619>`_)
83
84 + Fix to prevent creation of duplicate TCP/UDP Faces due to async calls
85 (`Issue #1680 <http://redmine.named-data.net/issues/1680>`_)
86
87- **Tools**
88
89 + Extended functionality of ``nfd-status``
90
91 * ``-x`` to output in XML format, see :ref:`nfd-status xml schema`
92 * ``-c`` to retrieve channel status information (enabled by default)
93 * ``-s`` to retrieve configured strategy choice for NDN namespaces (enabled by default)
94 * Face status now includes reporting of Face flags (``local`` and ``on-demand``)
95 * On-demand UDP Faces now report remaining lifetime (``expirationPeriod``)
96
97 + Several fixes in ``ndn-autoconfig`` tool
98 (`Issue #1595 <http://redmine.named-data.net/issues/1595>`_)
99
100 + Extended options in ``nfdc``:
101
102 * ``-e`` to set expiration time for registered routes
103 * ``-o`` to specify origin for registration and unregistration commands
104
105- **Build**
106
107 + Enable support of precompiled headers for clang and gcc to speed up compilation
108
109- `Other small fixes and extensions
110 <https://github.com/named-data/NFD/compare/NFD-0.1.0...master>`_
111
112NFD version 0.1.0
113-----------------
114
115Release date: May 7, 2014
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700116
117This is an incomplete list of features that are implemented in NFD version 0.1.0.
118
Alexander Afanasyev26181532014-05-07 23:38:51 -0700119- **Packet Format**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700120
121 + `NDN-TLV <http://named-data.net/doc/ndn-tlv/>`_
122 + LocalControlHeader, to allow apps to set outgoing face and learn incoming face.
123
Alexander Afanasyev26181532014-05-07 23:38:51 -0700124- **Faces**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700125
126 + Unix stream socket
127 + UDP unicast
128 + UDP multicast
129 + TCP
130 + Ethernet, currently without fragmentation.
131
132 .. note::
133 Ethernet support will not work properly on Linux kernels with TPACKET_V3 flexible
134 buffer implementation (>= 3.2.0) and libpcap >= 1.5.0 (e.g., Ubuntu Linux 14.04).
135 Refer to `Issue 1551 <http://redmine.named-data.net/issues/1511>`_ for more
136 detail and implementation progress.
137
Alexander Afanasyev26181532014-05-07 23:38:51 -0700138- **Management**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700139
140 + Use of signed Interests as commands, with authentication and authorization.
141 + Face management
142 + FIB management
143 + Per-namespace strategy selection
144 + NFD status publishing
145 + Notification to authorized apps of internal events, including Face creation and destruction.
146
Alexander Afanasyev26181532014-05-07 23:38:51 -0700147- **Tables and forwarding pipelines** support most Interest/Data processing, including
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700148 selectors.
149
Alexander Afanasyev26181532014-05-07 23:38:51 -0700150- **RIB Management** that runs as a separate process, ``nrd``. It supports basic prefix
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700151 registration by applications, but no flags yet.
152
Alexander Afanasyev26181532014-05-07 23:38:51 -0700153- **Strategies**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700154
155 + ``broadcast``
156 + ``best-route``
157 + ``ncc``: based on ccnx 0.7 for experimentation
158 + ``client-control``: authorized application can directly control Interest forwarding
159
Alexander Afanasyev26181532014-05-07 23:38:51 -0700160- **Name-based scoping**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700161
162 + ``/localhost``: communication only within localhost using "local" Faces
163 (UnixStreamFace, LocalTcpFace). NFD will strictly enforce this scope for Interests
164 and Data packets
165 + ``/localhop``: one-hop communication (e.g., if at least one incoming or outgoing Face
166 in PIT entry is non-local, the Interest cannot be forwarded to any non-local Face)
167
Alexander Afanasyev26181532014-05-07 23:38:51 -0700168- **Support configuration file**, which is in the Boost INFO format.
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700169
Alexander Afanasyev26181532014-05-07 23:38:51 -0700170- **Applications**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700171
172 + Tools to discover hubs on NDN testbed.
173 + peek/poke and traffic generators for testing and debugging.
174 + ``nfdc``, a command-line tool to configure NFD.
175 + ``nfd-status``, a command-line tool to query NFD status.
176 + ``nfd-status-http-server``, which reads the NFD status and publishes over HTTP.
177
178
179Planned Functions and Features for Next Releases
180------------------------------------------------
181
182- NACK
183 A packet sent back by a producer or a router to signal the unavailability of a requested
184 Data packet. The protocol specification for NACK is in progress.
185
186- New strategies
187 Additional strategies, including self-learning that populates the FIB by observing
188 Interest and Data exchange.
189
Alexander Afanasyev26181532014-05-07 23:38:51 -0700190- Hop-by-hop Interest limit mechanism
191 For congestion control
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700192
193- Face enhancements
194 Add fragmentation support for Ethernet face, may add support for new types such as
195 WiFi direct and WebSockets.
196
197- Tables
198 Experiment and evaluate different data structures and algorithms.
199
200- RIB management
201 Move to more scalable data structures and support all flags in prefix registrations.
202
203- Tunnel management
204 For hub nodes to authenticate incoming tunnel requests and maintain the tunnels.
205
206- Extensible name-based scoping
Alexander Afanasyev26181532014-05-07 23:38:51 -0700207 Configurable organization-based scoping