blob: 932589f9cf48ce47373bc135e62a8820c46a260b [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 Afanasyev26664732015-06-26 15:53:46 -07006NFD version 0.3.3 (changes since version 0.3.2)
7+++++++++++++++++++++++++++++++++++++++++++++++
8
9Release date: July 1, 2015
10
11New features:
12^^^^^^^^^^^^^
13
14- Content Store replacement policy interface (:issue:`1207`)
15
16- Add unit file and instructions for systemd (:issue:`1586`)
17
18- NDN Essential Tools version 0.1 `<https://github.com/named-data/ndn-tools>`__ featuring:
19
20 * ``ndnpeek``, ``ndnpoke``: a pair of programs to request and make available for retrieval of
21 a single Data packet
22 * ``ndnping``, ``ndnpingserver``: reachability testing tools for Named Data Networking
23 * ``ndndump``: a traffic analysis tool that captures Interest and Data packets on the wire
24 * ``ndn-dissect``: an NDN packet format inspector. It reads zero or more NDN packets from
25 either an input file or the standard input, and displays the Type-Length-Value (TLV)
26 structure of those packets on the standard output.
27
28Updates and bug fixes:
29^^^^^^^^^^^^^^^^^^^^^^
30
31- Avoid loopback new Interest in AccessStrategy (:issue:`2831`)
32
33- Simplified implementation of ``nfd-status`` using SegmentFetcher utility class (:issue:`2456`)
34
35Deprecated:
36^^^^^^^^^^^
37
38- ``ndn-tlv-peek`` and ``ndn-tlv-poke`` command-line tools: use ``ndnpeek`` and ``ndnpoke``
39 programs from NDN Essential Tools repository `<https://github.com/named-data/ndn-tools>`__.
40
41Upcoming features:
42^^^^^^^^^^^^^^^^^^
43
44- NDNLPv2 (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2, :issue:`2520`,
45 :issue:`2879`, :issue:`2763`, :issue:`2883`, :issue:`2841`, :issue:`2866`)
46
47- Refactored implementation of NFD management (:issue:`2200`, :issue:`2107`)
48
49****************************************************************************
50
Alexander Afanasyeved808ab2015-05-11 14:35:05 -070051NFD version 0.3.2 (changes since version 0.3.1)
52+++++++++++++++++++++++++++++++++++++++++++++++
53
54Release date: May 12, 2015
55
56New features:
57^^^^^^^^^^^^^
58
59- **Tables**
60
61 * Change lookup API to allow async implementations of ContentStore (:issue:`2411`)
62
63- **Management**
64
65 * Perform FIB updates before modifying RIB (:issue:`1941`)
66
67Updates and bug fixes:
68^^^^^^^^^^^^^^^^^^^^^^
69
70- **Documentation**
71
72 * Update planned Features: face enhancements (:issue:`2617`)
73
74 * Updated NFD's developer guide to reflect new changes and adding a new section on
75 NFD/ndn-cxx unit testing
76
77- **Face**
78
79 * Refactor channel acceptors to avoid use of shared pointers (:issue:`2613`)
80
81 * Refactor code to avoid deprecated `Block::fromBuffer` overloads (:issue:`2553`)
82
83 * Refactor code to use move semantics for sockets where possible (:issue:`2613`)
84
85 * Switch to non-throwing version of websocketpp APIs (:issue:`2630`)
86
87- **Forwarding**
88
89 * Extend measurements lifetime in AccessStrategy (:issue:`2452`)
90
91- **Management**
92
93 * Stop removed namespace from inheriting ancestor route (:issue:`2757`)
94
95 * Fix TestFibUpdates/EraseFace on Ubuntu 14.04 32-bit (:issue:`2697`)
96
97- **Tools**
98
99 * Fix hanging of `nfdc` on wrong input (:issue:`2690`)
100
101- **Build**
102
103 * Make build scripts compatible with Python 3 (:issue:`2625`)
104
105 * Get rid of the last use of ndn::dns in NFD (:issue:`2422`)
106
107 * Update waf build system to version 1.8.9 (:issue:`2209`, :issue:`2657`, :issue:`2792`)
108
109 * Tweak default pkg-config search paths (:issue:`2711`)
110
111 * Use C version of snprintf (:issue:`2299`)
112
113 * Emulate `std::to_string` when it is missing (:issue:`2299`)
114
115 * Fix several "defined but not used" warnings with gcc-5 (:issue:`2767`)
116
Alexander Afanasyev2d1b6402015-05-12 21:13:41 -0700117 * Disable precompiled headers on OS X with clang < 6.1.0 (:issue:`2804`)
118
Alexander Afanasyeved808ab2015-05-11 14:35:05 -0700119****************************************************************************
120
Alexander Afanasyev58ad5d42015-03-01 14:04:21 -0800121NFD version 0.3.1 (changes since version 0.3.0)
122-----------------------------------------------
123
124Release date: March 3, 2015
125
126New features:
127^^^^^^^^^^^^^
128
129- ``nfd`` and ``nrd`` daemons are now merged into a single process using separate threads
130 (:issue:`2489`)
131
132- **Core**
133
134 - Extend ConfigFile to support passing a parsed ConfigSection (:issue:`2495`)
135
136 - Allow customization of Logger and LoggerFactory (:issue:`2433`)
137
138 - Make global io_service, scheduler, and global random generator thread-local, and logger
139 thread-safe (:issue:`2489`)
140
141- **Forwarding**
142
143 - Introduce exponential back-off interest retransmission suppression mechanism and enable
144 its use in the best-route strategy (:issue:`1913`)
145
146 - Strategies are now registered with a macro, making it simpler to introduce new strategies
147 to NFD codebase (:issue:`2410`)
148
149- **Tables**
150
151 - ContentStore now recognizes CachingPolicy-NoCache from LocalControlHeader (:issue:`2185`)
152
153Updates and bug fixes:
154^^^^^^^^^^^^^^^^^^^^^^
155
156- **Faces**
157
158 - Remove Tcp|UdpChannel::connect overloads that perform DNS resolution (:issue:`2422`)
159
160 - Properly handle error conditions in UdpChannel::newPeer (:issue:`2516`)
161
162 - Fix inconsistency of UDP face timeouts in sample `nfd.conf` and actual defaults
163 (:issue:`2473`)
164
165 - Introduce Face-specific logging macros (:issue:`2450`)
166
167 - Refactor handling of LinkType face trait and fix FaceStatus reporting: the link type was
168 not properly propagated (:issue:`2563`)
169
170 - Avoid exceptions in NDNLP PartialMessageStore (:issue:`2261`)
171
172 - Update websocketpp to version 0.5.1
173
174- **Tables**
175
176 - Reduce priority of DeadNonceList log messages from DEBUG to TRACE
177
178- **Management**
179
180 - Change register/unregister logging in RibManager to INFO level (:issue:`2547`)
181
182- **Tools**
183
184 - Change prefix for :ref:`the local hub prefix discovery <local-prefix-discovery>` to be
185 under ``/localhop/nfd`` (:issue:`2479`, :issue:`2512`)
186
187- **Tests**
188
189 - Change naming conventions for unit test files and test suite names (:issue:`2497`)
190
191 - Fix segfault in TableNameTree test suite when all test logs are enabled (:issue:`2564`)
192
193****************************************************************************
194
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800195NFD version 0.3.0 (changes since version 0.2.0)
196-----------------------------------------------
197
198Release date: February 2, 2015
199
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800200New features:
201^^^^^^^^^^^^^
202
203- **Build**
204
205 + The code now requires C++11. The minimum supported gcc version is 4.6, as earlier versions
206 do not have proper support for C++11 features.
207
208- **Faces**
209
210 + Enable detection of WebSocket connection failures using ping/pong messages (:issue:`1903`)
211
212 + In EthernetFace:
213
214 * Avoid putting the NIC in promiscuous mode if possible (:issue:`1278`)
215
216 * Report packets dropped by the kernel if debug is enabled (:issue:`2441`)
217
218 * Integrate NDNLP fragmentation (:issue:`1209`)
219
220- **Forwarding**
221
222 + Strategy versioning (:issue:`1893`)
223
224 + New Dead Nonce List table to supplement PIT for loop detection (:issue:`1953`)
225
226 + Abstract retransmission suppression logic (:issue:`2377`)
227
228 + New forwarding strategy for access router (:issue:`1999`)
229
230- **Management**
231
232 + Add config file-based strategy selection (:issue:`2053`)
233
234 The sample config file now includes strategy selection for ``/``, ``/localhost``,
235 ``/localhost/nfd``, and ``/ndn/broadcast`` namespaces as follows:
236
237 ::
238
239 tables
240 {
241 ...
242 strategy_choice
243 {
244 / /localhost/nfd/strategy/best-route
245 /localhost /localhost/nfd/strategy/broadcast
246 /localhost/nfd /localhost/nfd/strategy/best-route
247 /ndn/broadcast /localhost/nfd/strategy/broadcast
248 }
249 }
250
251 + Implement Query Operation in FaceManager (:issue:`1993`)
252
253 + FaceManager now responds with producer-generated NACK when query is invalid (:issue:`1993`)
254
255 + Add functionality for automatic remote prefix registration (:issue:`2056`)
256
257 + Only canonical FaceUri are allowed in faces/create commands (:issue:`1910`)
258
259- **Tables**
260
261 + StrategyInfoHost can now store multiple StrategyInfo of distinct types (:issue:`2240`)
262
263 + Enable iteration over PIT and CS entries (:issue:`2339`)
264
265 + Allow predicate to be specified in Measurements::findLongestPrefixMatch (:issue:`2314`)
266
267 + Calculate the implicit digest of Data packets in CS only when necessary (:issue:`1706`)
268
269- **Tools**
270
271 + Publish ``/localhop/ndn-autoconf/routable-prefixes`` from ``ndn-autoconfig-server``
272 (:issue:`1954`)
273
274 + Display detailed NFD software verion in ``nfd-status-http-server`` and ``nfd-status``
275 (:issue:`1916`)
276
277 + ``nfdc`` now accepts FaceUri in all commands (:issue:`1995`)
278
279 + Add daemon mode for ``ndn-autoconfig`` to re-run detection when connectivity changes
280 (:issue:`2417`)
281
282- **Core**
283
284 + New scheduler::ScopedEventId class to automatically handle scheduled event lifetime
285 (:issue:`2295`)
286
287Updates and bug fixes:
288^^^^^^^^^^^^^^^^^^^^^^
289
290- **Documentation**
291
292 + NFD Developer's guide has been updated to reflect changes in the codebase
293
294 + Installation instruction updates
295
296 + Update of config file instructions for disabling unix sockets (:issue:`2190`)
297
298- **Core**
299
300 + Use implementations moved to ndn-cxx library
301
302 + Use Signal from ndn-cxx (:issue:`2272`, :issue:`2300`)
303
304 + use ethernet::Address from ndn-cxx (:issue:`2142`)
305
306 + Use MAX_NDN_PACKET_SIZE constant from ndn-cxx (:issue:`2099`)
307
308 + Use DEFAULT_INTEREST_LIFETIME from ndn-cxx (:issue:`2202`)
309
310 + Use FaceUri from ndn-cxx (:issue:`2143`)
311
312 + Use DummyClientFace from ndn-cxx (:issue:`2186`)
313
314 + Use ndn::dns from ndn-cxx (:issue:`2207`)
315
316 + Move Network class implementation from ``tools/`` to ``core/``
317
318 + Ignore non-Ethernet ``AF_LINK`` addresses when enumerating NICs on OSX and other BSD systems
319
320 + Fix bug on not properly setting FreshnessPeriod inside SegmentPublisher (:issue:`2438`)
321
322- **Faces**
323
324 + Fix spurious assertion failure in StreamFace (:issue:`1856`)
325
326 + Update websocketpp submodule (:issue:`1903`)
327
328 + Replace FaceFlags with individual fields (:issue:`1992`)
329
330 + Drop WebSocket message if the size is larger than maximum NDN packet size (:issue:`2081`)
331
332 + Make EthernetFace more robust against errors (:issue:`1984`)
333
334 + Prevent potential infinite loop in TcpFactory and UdpFactory (:issue:`2292`)
335
336 + Prevent crashes when attempting to create a UdpFace over a half-working connection
337 (:issue:`2311`)
338
339 + Support MTU larger than 1500 in EthernetFace (for jumbo frames) (:issue:`2305`)
340
341 + Re-enable EthernetFace on OS X platform with boost >=1.57.0 (:issue:`1922`)
342
343 + Fix ``ioctl()`` calls on platforms where libpcap uses ``/dev/bpf*`` (:issue:`2327`)
344
345 + Fix overhead estimation in NDNLP slicer (:issue:`2317`)
346
347 + Replace usage of deprecated EventEmitter with Signal in Face abstractions (:issue:`2300`)
348
349 + Fix NDNLP PartialMessage cleanup scheduling (:issue:`2414`)
350
351 + Remove unnecessary use of DNS resolver in (Udp|Tcp|WebSocket)Factory (:issue:`2422`)
352
353- **Forwarding**
354
355 + Updates related to NccStrategy
356
357 * Fix to prevent remembering of suboptimal upstreams (:issue:`1961`)
358
359 * Optimizing FwNccStrategy/FavorRespondingUpstream test case (:issue:`2037`)
360
361 * Proper detection for new PIT entry (:issue:`1971`)
362
363 * Use UnitTestTimeFixture in NCC test case (:issue:`2163`)
364
365 * Fix loop back to sole downstream (:issue:`1998`)
366
367 + Updates related to BestRoute strategy
368
369 + Redesign best-route v2 strategy test case (:issue:`2126`)
370
371 + Fix clang compilation error in best-route v2 test case (:issue:`2179`)
372
373 + Use UnitTestClock in BestRouteStrategy2 test (:issue:`2160`)
374
375 + Allow strategies limited access to FaceTable (:issue:`2272`)
376
377- **Tables**
378
379 + Ensure that eviction of unsolicited Data is done in FIFO order (:issue:`2043`)
380
381 + Simplify table implementations with C++11 features (:issue:`2100`)
382
383 + Fix issue with Fib::removeNextHopFromAllEntries invalidating NameTree iterator
384 (:issue:`2177`)
385
386 + Replace deprecated EventEmitter with Signal in FaceTable (:issue:`2272`)
387
388 + Refactored implementation of ContentStore based on std::set (:issue:`2254`)
389
390- **Management**
391
392 + Allow omitted FaceId in faces/create command (:issue:`2031`)
393
394 + Avoid deprecated ``ndn::nfd::Controller(Face&)`` constructor (:issue:`2039`)
395
396 + Enable check of command length before accessing verb (:issue:`2151`)
397
398 + Rename FaceEntry to Route (:issue:`2159`)
399
400 + Insert RIB command prefixes into RIB (:issue:`2312`)
401
402- **Tools**
403
404 + Display face attribute fields instead of FaceFlags in ``nfd-status`` and
405 ``nfd-status-http-server`` output (:issue:`1991`)
406
407 + Fix ``nfd-status-http-server`` hanging when nfd-status output is >64k (:issue:`2121`)
408
409 + Ensure that ``ndn-autoconfig`` canonizes FaceUri before sending commands to NFD
410 (:issue:`2387`)
411
412 + Refactored ndn-autoconfig implementation (:issue:`2421`)
413
414 + ndn-autoconfig will now register also ``/localhop/nfd`` prefix towards the hub (:issue:`2416`)
415
416- **Tests**
417
418 + Use UnitTestClock in Forwarder persistent loop test case (:issue:`2162`)
419
420 + Use LimitedIo in FwForwarder/SimpleExchange test case (:issue:`2161`)
421
422- **Build**
423
424 + Fix build error with python3 (:issue:`1302`)
425
426 + Embed CI build and test running script
427
428 + Properly disable assertions in release builds (:issue:`2139`)
429
430 + Embed setting of ``PKG_CONFIG_PATH`` variable to commonly used values (:issue:`2178`)
431
432 + Add conditional compilation for NetworkInterface and PrivilegeHelper
433
434 + Support tools with multiple translation units (:issue:`2344`)
435
436Removals
437^^^^^^^^
438
439- Remove ``listen`` option from unix channel configuration (:issue:`2188`)
440
441- Remove usage of deprecated ``MetaInfo::TYPE_*`` constants (:issue:`2128`)
442
443- Eliminate MapValueIterator in favor of ``boost::adaptors::map_values``
444
445****************************************************************************
446
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700447NFD version 0.2.0 (changes since version 0.1.0)
448-----------------------------------------------
449
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700450Release date: August 25, 2014
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700451
452- **Documentation**
453
454 + `"NFD Developer's Guide" by NFD authors
455 <http://named-data.net/wp-content/uploads/2014/07/NFD-developer-guide.pdf>`_ that
456 explains NFD's internals including the overall design, major modules, their
457 implementation, and their interactions
458
459 + New detailed instructions on how to enable auto-start of NFD using OSX ``launchd``
460 and Ubuntu's ``upstart`` (see `contrib/ folder
461 <https://github.com/named-data/NFD/tree/master/contrib>`_)
462
463- **Core**
464
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800465 + Add support for temporary privilege drop and elevation (:issue:`1370`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700466
467 + Add support to reinitialize multicast Faces and (partially) reload config file
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800468 (:issue:`1584`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700469
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800470 + Randomization routines are now uniform across all NFD modules (:issue:`1369`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700471
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800472 + Enable use of new NDN naming conventions (:issue:`1837` and :issue:`1838`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700473
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700474- **Faces**
475
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800476 + `WebSocket <http://tools.ietf.org/html/rfc6455>`_ Face support (:issue:`1468`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700477
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800478 + Fix Ethernet Face support on Linux with ``libpcap`` version >=1.5.0 (:issue:`1511`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700479
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800480 + Fix to recognize IPv4-mapped IPv6 addresses in ``FaceUri`` (:issue:`1635`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700481
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800482 + Fix to avoid multiple onFail events (:issue:`1497`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700483
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800484 + Fix broken support of multicast UDP Faces on OSX (:issue:`1668`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700485
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800486 + On Linux, path MTU discovery on unicast UDPv4 faces is now disabled (:issue:`1651`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700487
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800488 + Added link layer byte counts in FaceCounters (:issue:`1729`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700489
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800490 + Face IDs 0-255 are now reserved for internal NFD use (:issue:`1620`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700491
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800492 + Serialized StreamFace::send(Interest|Data) operations using queue (:issue:`1777`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700493
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700494- **Forwarding**
495
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800496 + Outgoing Interest pipeline now allows strategies to request a fresh ``Nonce`` (e.g., when
497 the strategy needs to re-express the Interest) (:issue:`1596`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700498
499 + Fix in the incoming Data pipeline to avoid sending packets to the incoming Face
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800500 (:issue:`1556`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700501
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800502 + New ``RttEstimator`` class that implements the Mean-Deviation RTT estimator to be used in
503 forwarding strategies
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700504
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800505 + Fix memory leak caused by not removing PIT entry when Interest matches CS (:issue:`1882`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700506
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800507 + Fix spurious assertion in NCC strategy (:issue:`1853`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700508
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700509- **Tables**
510
511 + Fix in ContentStore to properly adjust internal structure when ``Cs::setLimit`` is called
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800512 (:issue:`1646`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700513
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800514 + New option in configuration file to set an upper bound on ContentStore size (:issue:`1623`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700515
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800516 + Fix to prevent infinite lifetime of Measurement entries (:issue:`1665`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700517
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800518 + Introducing capacity limit in PIT NonceList (:issue:`1770`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700519
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800520 + Fix memory leak in NameTree (:issue:`1803`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700521
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800522 + Fix segfault during Fib::removeNextHopFromAllEntries (:issue:`1816`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700523
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700524- **Management**
525
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800526 + RibManager now fully support ``CHILD_INHERIT`` and ``CAPTURE`` flags (:issue:`1325`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700527
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800528 + Fix in ``FaceManager`` to respond with canonical form of Face URI for Face creation command
529 (:issue:`1619`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700530
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800531 + Fix to prevent creation of duplicate TCP/UDP Faces due to async calls (:issue:`1680`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700532
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800533 + Fix to properly handle optional ExpirationPeriod in RibRegister command (:issue:`1772`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700534
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800535 + Added functionality of publishing RIB status (RIB dataset) by RibManager (:issue:`1662`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700536
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800537 + Fix issue of not properly canceling route expiration during processing of ``unregister``
538 command (:issue:`1902`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700539
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800540 + Enable periodic clean up of route entries that refer to non-existing faces (:issue:`1875`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700541
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700542- **Tools**
543
544 + Extended functionality of ``nfd-status``
545
546 * ``-x`` to output in XML format, see :ref:`nfd-status xml schema`
547 * ``-c`` to retrieve channel status information (enabled by default)
548 * ``-s`` to retrieve configured strategy choice for NDN namespaces (enabled by default)
549 * Face status now includes reporting of Face flags (``local`` and ``on-demand``)
550 * On-demand UDP Faces now report remaining lifetime (``expirationPeriod``)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700551 * ``-r`` to retrieve RIB information
552
553 + Improved ``nfd-status-http-server``
554
555 * HTTP server now presents status as XSL-formatted XML page
556 * XML dataset and formatted page now include certificate name of the corresponding NFD
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800557 (:issue:`1807`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700558
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800559 + Several fixes in ``ndn-autoconfig`` tool (:issue:`1595`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700560
561 + Extended options in ``nfdc``:
562
563 * ``-e`` to set expiration time for registered routes
564 * ``-o`` to specify origin for registration and unregistration commands
565
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700566 + Enable ``all-faces-prefix'' option in ``nfd-autoreg`` to register prefix for all face
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800567 (on-demand and non-on-demand) (:issue:`1861`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700568
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800569 + Enable processing auto-registration in ``nfd-autoreg`` for faces that existed prior to
570 start of the tool (:issue:`1863`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700571
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700572- **Build**
573
574 + Enable support of precompiled headers for clang and gcc to speed up compilation
575
576- `Other small fixes and extensions
577 <https://github.com/named-data/NFD/compare/NFD-0.1.0...master>`_
578
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800579****************************************************************************
580
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700581NFD version 0.1.0
582-----------------
583
584Release date: May 7, 2014
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700585
586This is an incomplete list of features that are implemented in NFD version 0.1.0.
587
Alexander Afanasyev26181532014-05-07 23:38:51 -0700588- **Packet Format**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700589
590 + `NDN-TLV <http://named-data.net/doc/ndn-tlv/>`_
591 + LocalControlHeader, to allow apps to set outgoing face and learn incoming face.
592
Alexander Afanasyev26181532014-05-07 23:38:51 -0700593- **Faces**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700594
595 + Unix stream socket
596 + UDP unicast
597 + UDP multicast
598 + TCP
599 + Ethernet, currently without fragmentation.
600
601 .. note::
602 Ethernet support will not work properly on Linux kernels with TPACKET_V3 flexible
603 buffer implementation (>= 3.2.0) and libpcap >= 1.5.0 (e.g., Ubuntu Linux 14.04).
604 Refer to `Issue 1551 <http://redmine.named-data.net/issues/1511>`_ for more
605 detail and implementation progress.
606
Alexander Afanasyev26181532014-05-07 23:38:51 -0700607- **Management**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700608
609 + Use of signed Interests as commands, with authentication and authorization.
610 + Face management
611 + FIB management
612 + Per-namespace strategy selection
613 + NFD status publishing
614 + Notification to authorized apps of internal events, including Face creation and destruction.
615
Alexander Afanasyev26181532014-05-07 23:38:51 -0700616- **Tables and forwarding pipelines** support most Interest/Data processing, including
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700617 selectors.
618
Alexander Afanasyev26181532014-05-07 23:38:51 -0700619- **RIB Management** that runs as a separate process, ``nrd``. It supports basic prefix
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700620 registration by applications, but no flags yet.
621
Alexander Afanasyev26181532014-05-07 23:38:51 -0700622- **Strategies**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700623
624 + ``broadcast``
625 + ``best-route``
626 + ``ncc``: based on ccnx 0.7 for experimentation
627 + ``client-control``: authorized application can directly control Interest forwarding
628
Alexander Afanasyev26181532014-05-07 23:38:51 -0700629- **Name-based scoping**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700630
631 + ``/localhost``: communication only within localhost using "local" Faces
632 (UnixStreamFace, LocalTcpFace). NFD will strictly enforce this scope for Interests
633 and Data packets
634 + ``/localhop``: one-hop communication (e.g., if at least one incoming or outgoing Face
635 in PIT entry is non-local, the Interest cannot be forwarded to any non-local Face)
636
Alexander Afanasyev26181532014-05-07 23:38:51 -0700637- **Support configuration file**, which is in the Boost INFO format.
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700638
Alexander Afanasyev26181532014-05-07 23:38:51 -0700639- **Applications**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700640
641 + Tools to discover hubs on NDN testbed.
642 + peek/poke and traffic generators for testing and debugging.
643 + ``nfdc``, a command-line tool to configure NFD.
644 + ``nfd-status``, a command-line tool to query NFD status.
645 + ``nfd-status-http-server``, which reads the NFD status and publishes over HTTP.
646
647
648Planned Functions and Features for Next Releases
649------------------------------------------------
650
651- NACK
652 A packet sent back by a producer or a router to signal the unavailability of a requested
653 Data packet. The protocol specification for NACK is in progress.
654
655- New strategies
656 Additional strategies, including self-learning that populates the FIB by observing
657 Interest and Data exchange.
658
Alexander Afanasyev26181532014-05-07 23:38:51 -0700659- Hop-by-hop Interest limit mechanism
660 For congestion control
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700661
662- Face enhancements
Junxiao Shie8f42462015-04-06 21:37:28 -0700663 Add faces for new underlying protocols such as WiFi direct.
664 Introduce the concept of "permanent faces" that can survive socket errors.
665 Design a new hop-by-hop header that supports fragmentation, reliability improvement, etc.
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700666
667- Tables
668 Experiment and evaluate different data structures and algorithms.
669
670- RIB management
671 Move to more scalable data structures and support all flags in prefix registrations.
672
673- Tunnel management
674 For hub nodes to authenticate incoming tunnel requests and maintain the tunnels.
675
676- Extensible name-based scoping
Alexander Afanasyev26181532014-05-07 23:38:51 -0700677 Configurable organization-based scoping