blob: 8a8f976b2bed87d37c6ec33a318da5ec4e68f8e0 [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 Afanasyev58ad5d42015-03-01 14:04:21 -08006NFD version 0.3.1 (changes since version 0.3.0)
7-----------------------------------------------
8
9Release date: March 3, 2015
10
11New features:
12^^^^^^^^^^^^^
13
14- ``nfd`` and ``nrd`` daemons are now merged into a single process using separate threads
15 (:issue:`2489`)
16
17- **Core**
18
19 - Extend ConfigFile to support passing a parsed ConfigSection (:issue:`2495`)
20
21 - Allow customization of Logger and LoggerFactory (:issue:`2433`)
22
23 - Make global io_service, scheduler, and global random generator thread-local, and logger
24 thread-safe (:issue:`2489`)
25
26- **Forwarding**
27
28 - Introduce exponential back-off interest retransmission suppression mechanism and enable
29 its use in the best-route strategy (:issue:`1913`)
30
31 - Strategies are now registered with a macro, making it simpler to introduce new strategies
32 to NFD codebase (:issue:`2410`)
33
34- **Tables**
35
36 - ContentStore now recognizes CachingPolicy-NoCache from LocalControlHeader (:issue:`2185`)
37
38Updates and bug fixes:
39^^^^^^^^^^^^^^^^^^^^^^
40
41- **Faces**
42
43 - Remove Tcp|UdpChannel::connect overloads that perform DNS resolution (:issue:`2422`)
44
45 - Properly handle error conditions in UdpChannel::newPeer (:issue:`2516`)
46
47 - Fix inconsistency of UDP face timeouts in sample `nfd.conf` and actual defaults
48 (:issue:`2473`)
49
50 - Introduce Face-specific logging macros (:issue:`2450`)
51
52 - Refactor handling of LinkType face trait and fix FaceStatus reporting: the link type was
53 not properly propagated (:issue:`2563`)
54
55 - Avoid exceptions in NDNLP PartialMessageStore (:issue:`2261`)
56
57 - Update websocketpp to version 0.5.1
58
59- **Tables**
60
61 - Reduce priority of DeadNonceList log messages from DEBUG to TRACE
62
63- **Management**
64
65 - Change register/unregister logging in RibManager to INFO level (:issue:`2547`)
66
67- **Tools**
68
69 - Change prefix for :ref:`the local hub prefix discovery <local-prefix-discovery>` to be
70 under ``/localhop/nfd`` (:issue:`2479`, :issue:`2512`)
71
72- **Tests**
73
74 - Change naming conventions for unit test files and test suite names (:issue:`2497`)
75
76 - Fix segfault in TableNameTree test suite when all test logs are enabled (:issue:`2564`)
77
78****************************************************************************
79
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -080080NFD version 0.3.0 (changes since version 0.2.0)
81-----------------------------------------------
82
83Release date: February 2, 2015
84
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -080085New features:
86^^^^^^^^^^^^^
87
88- **Build**
89
90 + The code now requires C++11. The minimum supported gcc version is 4.6, as earlier versions
91 do not have proper support for C++11 features.
92
93- **Faces**
94
95 + Enable detection of WebSocket connection failures using ping/pong messages (:issue:`1903`)
96
97 + In EthernetFace:
98
99 * Avoid putting the NIC in promiscuous mode if possible (:issue:`1278`)
100
101 * Report packets dropped by the kernel if debug is enabled (:issue:`2441`)
102
103 * Integrate NDNLP fragmentation (:issue:`1209`)
104
105- **Forwarding**
106
107 + Strategy versioning (:issue:`1893`)
108
109 + New Dead Nonce List table to supplement PIT for loop detection (:issue:`1953`)
110
111 + Abstract retransmission suppression logic (:issue:`2377`)
112
113 + New forwarding strategy for access router (:issue:`1999`)
114
115- **Management**
116
117 + Add config file-based strategy selection (:issue:`2053`)
118
119 The sample config file now includes strategy selection for ``/``, ``/localhost``,
120 ``/localhost/nfd``, and ``/ndn/broadcast`` namespaces as follows:
121
122 ::
123
124 tables
125 {
126 ...
127 strategy_choice
128 {
129 / /localhost/nfd/strategy/best-route
130 /localhost /localhost/nfd/strategy/broadcast
131 /localhost/nfd /localhost/nfd/strategy/best-route
132 /ndn/broadcast /localhost/nfd/strategy/broadcast
133 }
134 }
135
136 + Implement Query Operation in FaceManager (:issue:`1993`)
137
138 + FaceManager now responds with producer-generated NACK when query is invalid (:issue:`1993`)
139
140 + Add functionality for automatic remote prefix registration (:issue:`2056`)
141
142 + Only canonical FaceUri are allowed in faces/create commands (:issue:`1910`)
143
144- **Tables**
145
146 + StrategyInfoHost can now store multiple StrategyInfo of distinct types (:issue:`2240`)
147
148 + Enable iteration over PIT and CS entries (:issue:`2339`)
149
150 + Allow predicate to be specified in Measurements::findLongestPrefixMatch (:issue:`2314`)
151
152 + Calculate the implicit digest of Data packets in CS only when necessary (:issue:`1706`)
153
154- **Tools**
155
156 + Publish ``/localhop/ndn-autoconf/routable-prefixes`` from ``ndn-autoconfig-server``
157 (:issue:`1954`)
158
159 + Display detailed NFD software verion in ``nfd-status-http-server`` and ``nfd-status``
160 (:issue:`1916`)
161
162 + ``nfdc`` now accepts FaceUri in all commands (:issue:`1995`)
163
164 + Add daemon mode for ``ndn-autoconfig`` to re-run detection when connectivity changes
165 (:issue:`2417`)
166
167- **Core**
168
169 + New scheduler::ScopedEventId class to automatically handle scheduled event lifetime
170 (:issue:`2295`)
171
172Updates and bug fixes:
173^^^^^^^^^^^^^^^^^^^^^^
174
175- **Documentation**
176
177 + NFD Developer's guide has been updated to reflect changes in the codebase
178
179 + Installation instruction updates
180
181 + Update of config file instructions for disabling unix sockets (:issue:`2190`)
182
183- **Core**
184
185 + Use implementations moved to ndn-cxx library
186
187 + Use Signal from ndn-cxx (:issue:`2272`, :issue:`2300`)
188
189 + use ethernet::Address from ndn-cxx (:issue:`2142`)
190
191 + Use MAX_NDN_PACKET_SIZE constant from ndn-cxx (:issue:`2099`)
192
193 + Use DEFAULT_INTEREST_LIFETIME from ndn-cxx (:issue:`2202`)
194
195 + Use FaceUri from ndn-cxx (:issue:`2143`)
196
197 + Use DummyClientFace from ndn-cxx (:issue:`2186`)
198
199 + Use ndn::dns from ndn-cxx (:issue:`2207`)
200
201 + Move Network class implementation from ``tools/`` to ``core/``
202
203 + Ignore non-Ethernet ``AF_LINK`` addresses when enumerating NICs on OSX and other BSD systems
204
205 + Fix bug on not properly setting FreshnessPeriod inside SegmentPublisher (:issue:`2438`)
206
207- **Faces**
208
209 + Fix spurious assertion failure in StreamFace (:issue:`1856`)
210
211 + Update websocketpp submodule (:issue:`1903`)
212
213 + Replace FaceFlags with individual fields (:issue:`1992`)
214
215 + Drop WebSocket message if the size is larger than maximum NDN packet size (:issue:`2081`)
216
217 + Make EthernetFace more robust against errors (:issue:`1984`)
218
219 + Prevent potential infinite loop in TcpFactory and UdpFactory (:issue:`2292`)
220
221 + Prevent crashes when attempting to create a UdpFace over a half-working connection
222 (:issue:`2311`)
223
224 + Support MTU larger than 1500 in EthernetFace (for jumbo frames) (:issue:`2305`)
225
226 + Re-enable EthernetFace on OS X platform with boost >=1.57.0 (:issue:`1922`)
227
228 + Fix ``ioctl()`` calls on platforms where libpcap uses ``/dev/bpf*`` (:issue:`2327`)
229
230 + Fix overhead estimation in NDNLP slicer (:issue:`2317`)
231
232 + Replace usage of deprecated EventEmitter with Signal in Face abstractions (:issue:`2300`)
233
234 + Fix NDNLP PartialMessage cleanup scheduling (:issue:`2414`)
235
236 + Remove unnecessary use of DNS resolver in (Udp|Tcp|WebSocket)Factory (:issue:`2422`)
237
238- **Forwarding**
239
240 + Updates related to NccStrategy
241
242 * Fix to prevent remembering of suboptimal upstreams (:issue:`1961`)
243
244 * Optimizing FwNccStrategy/FavorRespondingUpstream test case (:issue:`2037`)
245
246 * Proper detection for new PIT entry (:issue:`1971`)
247
248 * Use UnitTestTimeFixture in NCC test case (:issue:`2163`)
249
250 * Fix loop back to sole downstream (:issue:`1998`)
251
252 + Updates related to BestRoute strategy
253
254 + Redesign best-route v2 strategy test case (:issue:`2126`)
255
256 + Fix clang compilation error in best-route v2 test case (:issue:`2179`)
257
258 + Use UnitTestClock in BestRouteStrategy2 test (:issue:`2160`)
259
260 + Allow strategies limited access to FaceTable (:issue:`2272`)
261
262- **Tables**
263
264 + Ensure that eviction of unsolicited Data is done in FIFO order (:issue:`2043`)
265
266 + Simplify table implementations with C++11 features (:issue:`2100`)
267
268 + Fix issue with Fib::removeNextHopFromAllEntries invalidating NameTree iterator
269 (:issue:`2177`)
270
271 + Replace deprecated EventEmitter with Signal in FaceTable (:issue:`2272`)
272
273 + Refactored implementation of ContentStore based on std::set (:issue:`2254`)
274
275- **Management**
276
277 + Allow omitted FaceId in faces/create command (:issue:`2031`)
278
279 + Avoid deprecated ``ndn::nfd::Controller(Face&)`` constructor (:issue:`2039`)
280
281 + Enable check of command length before accessing verb (:issue:`2151`)
282
283 + Rename FaceEntry to Route (:issue:`2159`)
284
285 + Insert RIB command prefixes into RIB (:issue:`2312`)
286
287- **Tools**
288
289 + Display face attribute fields instead of FaceFlags in ``nfd-status`` and
290 ``nfd-status-http-server`` output (:issue:`1991`)
291
292 + Fix ``nfd-status-http-server`` hanging when nfd-status output is >64k (:issue:`2121`)
293
294 + Ensure that ``ndn-autoconfig`` canonizes FaceUri before sending commands to NFD
295 (:issue:`2387`)
296
297 + Refactored ndn-autoconfig implementation (:issue:`2421`)
298
299 + ndn-autoconfig will now register also ``/localhop/nfd`` prefix towards the hub (:issue:`2416`)
300
301- **Tests**
302
303 + Use UnitTestClock in Forwarder persistent loop test case (:issue:`2162`)
304
305 + Use LimitedIo in FwForwarder/SimpleExchange test case (:issue:`2161`)
306
307- **Build**
308
309 + Fix build error with python3 (:issue:`1302`)
310
311 + Embed CI build and test running script
312
313 + Properly disable assertions in release builds (:issue:`2139`)
314
315 + Embed setting of ``PKG_CONFIG_PATH`` variable to commonly used values (:issue:`2178`)
316
317 + Add conditional compilation for NetworkInterface and PrivilegeHelper
318
319 + Support tools with multiple translation units (:issue:`2344`)
320
321Removals
322^^^^^^^^
323
324- Remove ``listen`` option from unix channel configuration (:issue:`2188`)
325
326- Remove usage of deprecated ``MetaInfo::TYPE_*`` constants (:issue:`2128`)
327
328- Eliminate MapValueIterator in favor of ``boost::adaptors::map_values``
329
330****************************************************************************
331
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700332NFD version 0.2.0 (changes since version 0.1.0)
333-----------------------------------------------
334
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700335Release date: August 25, 2014
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700336
337- **Documentation**
338
339 + `"NFD Developer's Guide" by NFD authors
340 <http://named-data.net/wp-content/uploads/2014/07/NFD-developer-guide.pdf>`_ that
341 explains NFD's internals including the overall design, major modules, their
342 implementation, and their interactions
343
344 + New detailed instructions on how to enable auto-start of NFD using OSX ``launchd``
345 and Ubuntu's ``upstart`` (see `contrib/ folder
346 <https://github.com/named-data/NFD/tree/master/contrib>`_)
347
348- **Core**
349
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800350 + Add support for temporary privilege drop and elevation (:issue:`1370`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700351
352 + Add support to reinitialize multicast Faces and (partially) reload config file
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800353 (:issue:`1584`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700354
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800355 + Randomization routines are now uniform across all NFD modules (:issue:`1369`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700356
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800357 + Enable use of new NDN naming conventions (:issue:`1837` and :issue:`1838`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700358
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700359- **Faces**
360
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800361 + `WebSocket <http://tools.ietf.org/html/rfc6455>`_ Face support (:issue:`1468`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700362
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800363 + Fix Ethernet Face support on Linux with ``libpcap`` version >=1.5.0 (:issue:`1511`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700364
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800365 + Fix to recognize IPv4-mapped IPv6 addresses in ``FaceUri`` (:issue:`1635`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700366
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800367 + Fix to avoid multiple onFail events (:issue:`1497`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700368
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800369 + Fix broken support of multicast UDP Faces on OSX (:issue:`1668`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700370
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800371 + On Linux, path MTU discovery on unicast UDPv4 faces is now disabled (:issue:`1651`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700372
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800373 + Added link layer byte counts in FaceCounters (:issue:`1729`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700374
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800375 + Face IDs 0-255 are now reserved for internal NFD use (:issue:`1620`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700376
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800377 + Serialized StreamFace::send(Interest|Data) operations using queue (:issue:`1777`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700378
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700379- **Forwarding**
380
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800381 + Outgoing Interest pipeline now allows strategies to request a fresh ``Nonce`` (e.g., when
382 the strategy needs to re-express the Interest) (:issue:`1596`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700383
384 + Fix in the incoming Data pipeline to avoid sending packets to the incoming Face
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800385 (:issue:`1556`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700386
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800387 + New ``RttEstimator`` class that implements the Mean-Deviation RTT estimator to be used in
388 forwarding strategies
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700389
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800390 + Fix memory leak caused by not removing PIT entry when Interest matches CS (:issue:`1882`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700391
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800392 + Fix spurious assertion in NCC strategy (:issue:`1853`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700393
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700394- **Tables**
395
396 + Fix in ContentStore to properly adjust internal structure when ``Cs::setLimit`` is called
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800397 (:issue:`1646`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700398
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800399 + New option in configuration file to set an upper bound on ContentStore size (:issue:`1623`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700400
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800401 + Fix to prevent infinite lifetime of Measurement entries (:issue:`1665`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700402
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800403 + Introducing capacity limit in PIT NonceList (:issue:`1770`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700404
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800405 + Fix memory leak in NameTree (:issue:`1803`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700406
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800407 + Fix segfault during Fib::removeNextHopFromAllEntries (:issue:`1816`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700408
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700409- **Management**
410
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800411 + RibManager now fully support ``CHILD_INHERIT`` and ``CAPTURE`` flags (:issue:`1325`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700412
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800413 + Fix in ``FaceManager`` to respond with canonical form of Face URI for Face creation command
414 (:issue:`1619`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700415
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800416 + Fix to prevent creation of duplicate TCP/UDP Faces due to async calls (:issue:`1680`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700417
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800418 + Fix to properly handle optional ExpirationPeriod in RibRegister command (:issue:`1772`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700419
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800420 + Added functionality of publishing RIB status (RIB dataset) by RibManager (:issue:`1662`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700421
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800422 + Fix issue of not properly canceling route expiration during processing of ``unregister``
423 command (:issue:`1902`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700424
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800425 + Enable periodic clean up of route entries that refer to non-existing faces (:issue:`1875`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700426
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700427- **Tools**
428
429 + Extended functionality of ``nfd-status``
430
431 * ``-x`` to output in XML format, see :ref:`nfd-status xml schema`
432 * ``-c`` to retrieve channel status information (enabled by default)
433 * ``-s`` to retrieve configured strategy choice for NDN namespaces (enabled by default)
434 * Face status now includes reporting of Face flags (``local`` and ``on-demand``)
435 * On-demand UDP Faces now report remaining lifetime (``expirationPeriod``)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700436 * ``-r`` to retrieve RIB information
437
438 + Improved ``nfd-status-http-server``
439
440 * HTTP server now presents status as XSL-formatted XML page
441 * XML dataset and formatted page now include certificate name of the corresponding NFD
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800442 (:issue:`1807`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700443
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800444 + Several fixes in ``ndn-autoconfig`` tool (:issue:`1595`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700445
446 + Extended options in ``nfdc``:
447
448 * ``-e`` to set expiration time for registered routes
449 * ``-o`` to specify origin for registration and unregistration commands
450
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700451 + Enable ``all-faces-prefix'' option in ``nfd-autoreg`` to register prefix for all face
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800452 (on-demand and non-on-demand) (:issue:`1861`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700453
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800454 + Enable processing auto-registration in ``nfd-autoreg`` for faces that existed prior to
455 start of the tool (:issue:`1863`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700456
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700457- **Build**
458
459 + Enable support of precompiled headers for clang and gcc to speed up compilation
460
461- `Other small fixes and extensions
462 <https://github.com/named-data/NFD/compare/NFD-0.1.0...master>`_
463
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800464****************************************************************************
465
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700466NFD version 0.1.0
467-----------------
468
469Release date: May 7, 2014
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700470
471This is an incomplete list of features that are implemented in NFD version 0.1.0.
472
Alexander Afanasyev26181532014-05-07 23:38:51 -0700473- **Packet Format**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700474
475 + `NDN-TLV <http://named-data.net/doc/ndn-tlv/>`_
476 + LocalControlHeader, to allow apps to set outgoing face and learn incoming face.
477
Alexander Afanasyev26181532014-05-07 23:38:51 -0700478- **Faces**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700479
480 + Unix stream socket
481 + UDP unicast
482 + UDP multicast
483 + TCP
484 + Ethernet, currently without fragmentation.
485
486 .. note::
487 Ethernet support will not work properly on Linux kernels with TPACKET_V3 flexible
488 buffer implementation (>= 3.2.0) and libpcap >= 1.5.0 (e.g., Ubuntu Linux 14.04).
489 Refer to `Issue 1551 <http://redmine.named-data.net/issues/1511>`_ for more
490 detail and implementation progress.
491
Alexander Afanasyev26181532014-05-07 23:38:51 -0700492- **Management**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700493
494 + Use of signed Interests as commands, with authentication and authorization.
495 + Face management
496 + FIB management
497 + Per-namespace strategy selection
498 + NFD status publishing
499 + Notification to authorized apps of internal events, including Face creation and destruction.
500
Alexander Afanasyev26181532014-05-07 23:38:51 -0700501- **Tables and forwarding pipelines** support most Interest/Data processing, including
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700502 selectors.
503
Alexander Afanasyev26181532014-05-07 23:38:51 -0700504- **RIB Management** that runs as a separate process, ``nrd``. It supports basic prefix
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700505 registration by applications, but no flags yet.
506
Alexander Afanasyev26181532014-05-07 23:38:51 -0700507- **Strategies**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700508
509 + ``broadcast``
510 + ``best-route``
511 + ``ncc``: based on ccnx 0.7 for experimentation
512 + ``client-control``: authorized application can directly control Interest forwarding
513
Alexander Afanasyev26181532014-05-07 23:38:51 -0700514- **Name-based scoping**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700515
516 + ``/localhost``: communication only within localhost using "local" Faces
517 (UnixStreamFace, LocalTcpFace). NFD will strictly enforce this scope for Interests
518 and Data packets
519 + ``/localhop``: one-hop communication (e.g., if at least one incoming or outgoing Face
520 in PIT entry is non-local, the Interest cannot be forwarded to any non-local Face)
521
Alexander Afanasyev26181532014-05-07 23:38:51 -0700522- **Support configuration file**, which is in the Boost INFO format.
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700523
Alexander Afanasyev26181532014-05-07 23:38:51 -0700524- **Applications**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700525
526 + Tools to discover hubs on NDN testbed.
527 + peek/poke and traffic generators for testing and debugging.
528 + ``nfdc``, a command-line tool to configure NFD.
529 + ``nfd-status``, a command-line tool to query NFD status.
530 + ``nfd-status-http-server``, which reads the NFD status and publishes over HTTP.
531
532
533Planned Functions and Features for Next Releases
534------------------------------------------------
535
536- NACK
537 A packet sent back by a producer or a router to signal the unavailability of a requested
538 Data packet. The protocol specification for NACK is in progress.
539
540- New strategies
541 Additional strategies, including self-learning that populates the FIB by observing
542 Interest and Data exchange.
543
Alexander Afanasyev26181532014-05-07 23:38:51 -0700544- Hop-by-hop Interest limit mechanism
545 For congestion control
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700546
547- Face enhancements
Junxiao Shie8f42462015-04-06 21:37:28 -0700548 Add faces for new underlying protocols such as WiFi direct.
549 Introduce the concept of "permanent faces" that can survive socket errors.
550 Design a new hop-by-hop header that supports fragmentation, reliability improvement, etc.
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700551
552- Tables
553 Experiment and evaluate different data structures and algorithms.
554
555- RIB management
556 Move to more scalable data structures and support all flags in prefix registrations.
557
558- Tunnel management
559 For hub nodes to authenticate incoming tunnel requests and maintain the tunnels.
560
561- Extensible name-based scoping
Alexander Afanasyev26181532014-05-07 23:38:51 -0700562 Configurable organization-based scoping