blob: bfb47b984393147c5c6d989c38c1f6e0613d268f [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
Alexander Afanasyev186c3162014-07-29 08:59:49 -07009Release date: August 25, 2014
Alexander Afanasyev40ee3812014-07-01 00:25:21 -070010
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
Alexander Afanasyev186c3162014-07-29 08:59:49 -070033 + Enable use of new NDN naming conventions
34 (`Issue #1837 <http://redmine.named-data.net/issues/1837>`_ and
35 `#1838 <http://redmine.named-data.net/issues/1838>`_)
36
Alexander Afanasyev40ee3812014-07-01 00:25:21 -070037- **Faces**
38
39 + `WebSocket <http://tools.ietf.org/html/rfc6455>`_ Face support
40 (`Issue #1468 <http://redmine.named-data.net/issues/1468>`_)
41
42 + Fix Ethernet Face support on Linux with ``libpcap`` version >=1.5.0
43 (`Issue #1511 <http://redmine.named-data.net/issues/1511>`_)
44
45 + Fix to recognize IPv4-mapped IPv6 addresses in ``FaceUri``
46 (`Issue #1635 <http://redmine.named-data.net/issues/1635>`_)
47
48 + Fix to avoid multiple onFail events
49 (`Issue #1497 <http://redmine.named-data.net/issues/1497>`_)
50
51 + Fix broken support of multicast UDP Faces on OSX
52 (`Issue #1668 <http://redmine.named-data.net/issues/1668>`_)
53
54 + On Linux, path MTU discovery on unicast UDPv4 faces is now disabled
55 (`Issue #1651 <http://redmine.named-data.net/issues/1651>`_)
56
Alexander Afanasyev186c3162014-07-29 08:59:49 -070057 + Added link layer byte counts in FaceCounters
58 (`Issue #1729 <http://redmine.named-data.net/issues/1729>`_)
59
60 + Face IDs 0-255 are now reserved for internal NFD use
61 (`Issue #1620 <http://redmine.named-data.net/issues/1620>`_)
62
63 + Serialized StreamFace::send(Interest|Data) operations using queue
64 (`Issue #1777 <http://redmine.named-data.net/issues/1777>`_)
65
Alexander Afanasyev40ee3812014-07-01 00:25:21 -070066- **Forwarding**
67
68 + Outgoing Interest pipeline now allows strategies to request a fresh ``Nonce``
69 (e.g., when the strategy needs to re-express the Interest)
70 (`Issue #1596 <http://redmine.named-data.net/issues/1596>`_)
71
72 + Fix in the incoming Data pipeline to avoid sending packets to the incoming Face
73 (`Issue #1556 <http://redmine.named-data.net/issues/1556>`_)
74
75 + New ``RttEstimator`` class that implements the Mean-Deviation RTT estimator to be used
76 in forwarding strategies
77
Alexander Afanasyev186c3162014-07-29 08:59:49 -070078 + Fix memory leak caused by not removing PIT entry when Interest matches CS
79 (`Issue #1882 <http://redmine.named-data.net/issues/1882>`_)
80
81 + Fix spurious assertion in NCC strategy
82 (`Issue #1853 <http://redmine.named-data.net/issues/1853>`_)
83
Alexander Afanasyev40ee3812014-07-01 00:25:21 -070084- **Tables**
85
86 + Fix in ContentStore to properly adjust internal structure when ``Cs::setLimit`` is called
87 (`Issue #1646 <http://redmine.named-data.net/issues/1646>`_)
88
89 + New option in configuration file to set an upper bound on ContentStore size
90 (`Issue #1623 <http://redmine.named-data.net/issues/1623>`_)
91
92 + Fix to prevent infinite lifetime of Measurement entries
93 (`Issue #1665 <http://redmine.named-data.net/issues/1665>`_)
94
Alexander Afanasyev186c3162014-07-29 08:59:49 -070095 + Introducing capacity limit in PIT NonceList
96 (`Issue #1770 <http://redmine.named-data.net/issues/1770>`_)
97
98 + Fix memory leak in NameTree
99 (`Issue #1803 <http://redmine.named-data.net/issues/1803>`_)
100
101 + Fix segfault during Fib::removeNextHopFromAllEntries
102 (`Issue #1816 <http://redmine.named-data.net/issues/1816>`_)
103
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700104- **Management**
105
106 + RibManager now fully support ``CHILD_INHERIT`` and ``CAPTURE`` flags
107 (`Issue #1325 <http://redmine.named-data.net/issues/1325>`_)
108
109 + Fix in ``FaceManager`` to respond with canonical form of Face URI for Face creation
110 command (`Issue #1619 <http://redmine.named-data.net/issues/1619>`_)
111
112 + Fix to prevent creation of duplicate TCP/UDP Faces due to async calls
113 (`Issue #1680 <http://redmine.named-data.net/issues/1680>`_)
114
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700115 + Fix to properly handle optional ExpirationPeriod in RibRegister command
116 (`Issue #1772 <http://redmine.named-data.net/issues/1772>`_)
117
118 + Added functionality of publishing RIB status (RIB dataset) by RibManager
119 (`Issue #1662 <http://redmine.named-data.net/issues/1662>`_)
120
121 + Fix issue of not properly canceling route expiration during processing of
122 ``unregister`` command
123 (`Issue #1902 <http://redmine.named-data.net/issues/1902>`_)
124
125 + Enable periodic clean up of route entries that refer to non-existing faces
126 (`Issue #1875 <http://redmine.named-data.net/issues/1875>`_)
127
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700128- **Tools**
129
130 + Extended functionality of ``nfd-status``
131
132 * ``-x`` to output in XML format, see :ref:`nfd-status xml schema`
133 * ``-c`` to retrieve channel status information (enabled by default)
134 * ``-s`` to retrieve configured strategy choice for NDN namespaces (enabled by default)
135 * Face status now includes reporting of Face flags (``local`` and ``on-demand``)
136 * On-demand UDP Faces now report remaining lifetime (``expirationPeriod``)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700137 * ``-r`` to retrieve RIB information
138
139 + Improved ``nfd-status-http-server``
140
141 * HTTP server now presents status as XSL-formatted XML page
142 * XML dataset and formatted page now include certificate name of the corresponding NFD
143 (`Issue #1807 <http://redmine.named-data.net/issues/1807>`_)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700144
145 + Several fixes in ``ndn-autoconfig`` tool
146 (`Issue #1595 <http://redmine.named-data.net/issues/1595>`_)
147
148 + Extended options in ``nfdc``:
149
150 * ``-e`` to set expiration time for registered routes
151 * ``-o`` to specify origin for registration and unregistration commands
152
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700153 + Enable ``all-faces-prefix'' option in ``nfd-autoreg`` to register prefix for all face
154 (on-demand and non-on-demand)
155 (`Issue #1861 <http://redmine.named-data.net/issues/1861>`_)
156
157 + Enable processing auto-registration in ``nfd-autoreg`` for faces that existed
158 prior to start of the tool
159 (`Issue #1863 <http://redmine.named-data.net/issues/1863>`_)
160
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700161- **Build**
162
163 + Enable support of precompiled headers for clang and gcc to speed up compilation
164
165- `Other small fixes and extensions
166 <https://github.com/named-data/NFD/compare/NFD-0.1.0...master>`_
167
168NFD version 0.1.0
169-----------------
170
171Release date: May 7, 2014
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700172
173This is an incomplete list of features that are implemented in NFD version 0.1.0.
174
Alexander Afanasyev26181532014-05-07 23:38:51 -0700175- **Packet Format**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700176
177 + `NDN-TLV <http://named-data.net/doc/ndn-tlv/>`_
178 + LocalControlHeader, to allow apps to set outgoing face and learn incoming face.
179
Alexander Afanasyev26181532014-05-07 23:38:51 -0700180- **Faces**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700181
182 + Unix stream socket
183 + UDP unicast
184 + UDP multicast
185 + TCP
186 + Ethernet, currently without fragmentation.
187
188 .. note::
189 Ethernet support will not work properly on Linux kernels with TPACKET_V3 flexible
190 buffer implementation (>= 3.2.0) and libpcap >= 1.5.0 (e.g., Ubuntu Linux 14.04).
191 Refer to `Issue 1551 <http://redmine.named-data.net/issues/1511>`_ for more
192 detail and implementation progress.
193
Alexander Afanasyev26181532014-05-07 23:38:51 -0700194- **Management**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700195
196 + Use of signed Interests as commands, with authentication and authorization.
197 + Face management
198 + FIB management
199 + Per-namespace strategy selection
200 + NFD status publishing
201 + Notification to authorized apps of internal events, including Face creation and destruction.
202
Alexander Afanasyev26181532014-05-07 23:38:51 -0700203- **Tables and forwarding pipelines** support most Interest/Data processing, including
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700204 selectors.
205
Alexander Afanasyev26181532014-05-07 23:38:51 -0700206- **RIB Management** that runs as a separate process, ``nrd``. It supports basic prefix
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700207 registration by applications, but no flags yet.
208
Alexander Afanasyev26181532014-05-07 23:38:51 -0700209- **Strategies**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700210
211 + ``broadcast``
212 + ``best-route``
213 + ``ncc``: based on ccnx 0.7 for experimentation
214 + ``client-control``: authorized application can directly control Interest forwarding
215
Alexander Afanasyev26181532014-05-07 23:38:51 -0700216- **Name-based scoping**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700217
218 + ``/localhost``: communication only within localhost using "local" Faces
219 (UnixStreamFace, LocalTcpFace). NFD will strictly enforce this scope for Interests
220 and Data packets
221 + ``/localhop``: one-hop communication (e.g., if at least one incoming or outgoing Face
222 in PIT entry is non-local, the Interest cannot be forwarded to any non-local Face)
223
Alexander Afanasyev26181532014-05-07 23:38:51 -0700224- **Support configuration file**, which is in the Boost INFO format.
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700225
Alexander Afanasyev26181532014-05-07 23:38:51 -0700226- **Applications**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700227
228 + Tools to discover hubs on NDN testbed.
229 + peek/poke and traffic generators for testing and debugging.
230 + ``nfdc``, a command-line tool to configure NFD.
231 + ``nfd-status``, a command-line tool to query NFD status.
232 + ``nfd-status-http-server``, which reads the NFD status and publishes over HTTP.
233
234
235Planned Functions and Features for Next Releases
236------------------------------------------------
237
238- NACK
239 A packet sent back by a producer or a router to signal the unavailability of a requested
240 Data packet. The protocol specification for NACK is in progress.
241
242- New strategies
243 Additional strategies, including self-learning that populates the FIB by observing
244 Interest and Data exchange.
245
Alexander Afanasyev26181532014-05-07 23:38:51 -0700246- Hop-by-hop Interest limit mechanism
247 For congestion control
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700248
249- Face enhancements
250 Add fragmentation support for Ethernet face, may add support for new types such as
251 WiFi direct and WebSockets.
252
253- Tables
254 Experiment and evaluate different data structures and algorithms.
255
256- RIB management
257 Move to more scalable data structures and support all flags in prefix registrations.
258
259- Tunnel management
260 For hub nodes to authenticate incoming tunnel requests and maintain the tunnels.
261
262- Extensible name-based scoping
Alexander Afanasyev26181532014-05-07 23:38:51 -0700263 Configurable organization-based scoping