blob: fb459029a9665f87cab3a3fe37026a0724740f00 [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 Afanasyev2fc649b2015-08-30 23:20:27 -07006NFD version 0.3.4 (changes since version 0.3.3)
7+++++++++++++++++++++++++++++++++++++++++++++++
8
9Release date: August 31, 2015
10
11New features:
12^^^^^^^^^^^^^
13
14- Boolean Face property IsOnDemand has been replaced with multistate FacePersistency
15 property (:issue:`2989`, :issue:`3018`): persistent (Face exists as long as there are no
16 system or socket errors), on-demand (Face is removed after inactivity period), and
17 permanent (Face exists unless explicitly destroyed by the management).
18
19 Currently, only UDP faces are allowed to be permanent. However, management interface to
20 create UDP permanent faces or switch UDP to permanent state will be available in the
21 next release (:issue:`2991`).
22
23- Least Recently Used policy for Content Store (:issue:`2219`)
24
25 Currently, changing the policy requires a minor change in NFD source code.
26 Configuration interface is coming in the next release (:issue:`3148`)
27
28
29Updates and bug fixes:
30^^^^^^^^^^^^^^^^^^^^^^
31
32- Update of NDN Essential Tools to version 0.2 `<https://github.com/named-data/ndn-tools>`__
33 with code improvements and the following new tools:
34
35 * PIB service to manage the public information of keys and publish certificates
36 (:issue:`3018`)
37 * A Wireshark dissector for NDN packets (:issue:`3092`)
38
39- RibManager constructor now accepts KeyChain as a parameter, preparing it for simplifying
40 implementation with the new ``ndn::Dispatcher`` class (:issue:`2390`)
41
42- Fix HTML rendering of nfd-status-http-server output in some browsers (:issue:`3019`)
43
44- Enable automatic re-creation of multicast faces when network connectivity changes
45 (:issue:`2460`)
46
47- Enhance exception throwing with Boost Exception library (:issue:`2541`)
48
49Deprecated:
50^^^^^^^^^^^
51
52- BroadcastStrategy (``/localhost/nfd/strategy/broadcast``) renamed as MulticastStrategy
53 (``/localhost/nfd/strategy/multicast``) (:issue:`3011`)
54
55Upcoming features (partially finished in development branches):
56^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
57
58- NDNLPv2 (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2, :issue:`2520`,
59 :issue:`2879`, :issue:`2763`, :issue:`2883`, :issue:`2841`, :issue:`2866`)
60
61- Refactored implementation of NFD management (:issue:`2200`, :issue:`2107`)
62
63****************************************************************************
64
Alexander Afanasyev26664732015-06-26 15:53:46 -070065NFD version 0.3.3 (changes since version 0.3.2)
66+++++++++++++++++++++++++++++++++++++++++++++++
67
68Release date: July 1, 2015
69
70New features:
71^^^^^^^^^^^^^
72
73- Content Store replacement policy interface (:issue:`1207`)
74
75- Add unit file and instructions for systemd (:issue:`1586`)
76
77- NDN Essential Tools version 0.1 `<https://github.com/named-data/ndn-tools>`__ featuring:
78
79 * ``ndnpeek``, ``ndnpoke``: a pair of programs to request and make available for retrieval of
80 a single Data packet
81 * ``ndnping``, ``ndnpingserver``: reachability testing tools for Named Data Networking
82 * ``ndndump``: a traffic analysis tool that captures Interest and Data packets on the wire
83 * ``ndn-dissect``: an NDN packet format inspector. It reads zero or more NDN packets from
84 either an input file or the standard input, and displays the Type-Length-Value (TLV)
85 structure of those packets on the standard output.
86
87Updates and bug fixes:
88^^^^^^^^^^^^^^^^^^^^^^
89
90- Avoid loopback new Interest in AccessStrategy (:issue:`2831`)
91
92- Simplified implementation of ``nfd-status`` using SegmentFetcher utility class (:issue:`2456`)
93
94Deprecated:
95^^^^^^^^^^^
96
97- ``ndn-tlv-peek`` and ``ndn-tlv-poke`` command-line tools: use ``ndnpeek`` and ``ndnpoke``
98 programs from NDN Essential Tools repository `<https://github.com/named-data/ndn-tools>`__.
99
100Upcoming features:
101^^^^^^^^^^^^^^^^^^
102
103- NDNLPv2 (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2, :issue:`2520`,
104 :issue:`2879`, :issue:`2763`, :issue:`2883`, :issue:`2841`, :issue:`2866`)
105
106- Refactored implementation of NFD management (:issue:`2200`, :issue:`2107`)
107
108****************************************************************************
109
Alexander Afanasyeved808ab2015-05-11 14:35:05 -0700110NFD version 0.3.2 (changes since version 0.3.1)
111+++++++++++++++++++++++++++++++++++++++++++++++
112
113Release date: May 12, 2015
114
115New features:
116^^^^^^^^^^^^^
117
118- **Tables**
119
120 * Change lookup API to allow async implementations of ContentStore (:issue:`2411`)
121
122- **Management**
123
124 * Perform FIB updates before modifying RIB (:issue:`1941`)
125
126Updates and bug fixes:
127^^^^^^^^^^^^^^^^^^^^^^
128
129- **Documentation**
130
131 * Update planned Features: face enhancements (:issue:`2617`)
132
133 * Updated NFD's developer guide to reflect new changes and adding a new section on
134 NFD/ndn-cxx unit testing
135
136- **Face**
137
138 * Refactor channel acceptors to avoid use of shared pointers (:issue:`2613`)
139
140 * Refactor code to avoid deprecated `Block::fromBuffer` overloads (:issue:`2553`)
141
142 * Refactor code to use move semantics for sockets where possible (:issue:`2613`)
143
144 * Switch to non-throwing version of websocketpp APIs (:issue:`2630`)
145
146- **Forwarding**
147
148 * Extend measurements lifetime in AccessStrategy (:issue:`2452`)
149
150- **Management**
151
152 * Stop removed namespace from inheriting ancestor route (:issue:`2757`)
153
154 * Fix TestFibUpdates/EraseFace on Ubuntu 14.04 32-bit (:issue:`2697`)
155
156- **Tools**
157
158 * Fix hanging of `nfdc` on wrong input (:issue:`2690`)
159
160- **Build**
161
162 * Make build scripts compatible with Python 3 (:issue:`2625`)
163
164 * Get rid of the last use of ndn::dns in NFD (:issue:`2422`)
165
166 * Update waf build system to version 1.8.9 (:issue:`2209`, :issue:`2657`, :issue:`2792`)
167
168 * Tweak default pkg-config search paths (:issue:`2711`)
169
170 * Use C version of snprintf (:issue:`2299`)
171
172 * Emulate `std::to_string` when it is missing (:issue:`2299`)
173
174 * Fix several "defined but not used" warnings with gcc-5 (:issue:`2767`)
175
Alexander Afanasyev2d1b6402015-05-12 21:13:41 -0700176 * Disable precompiled headers on OS X with clang < 6.1.0 (:issue:`2804`)
177
Alexander Afanasyeved808ab2015-05-11 14:35:05 -0700178****************************************************************************
179
Alexander Afanasyev58ad5d42015-03-01 14:04:21 -0800180NFD version 0.3.1 (changes since version 0.3.0)
181-----------------------------------------------
182
183Release date: March 3, 2015
184
185New features:
186^^^^^^^^^^^^^
187
188- ``nfd`` and ``nrd`` daemons are now merged into a single process using separate threads
189 (:issue:`2489`)
190
191- **Core**
192
193 - Extend ConfigFile to support passing a parsed ConfigSection (:issue:`2495`)
194
195 - Allow customization of Logger and LoggerFactory (:issue:`2433`)
196
197 - Make global io_service, scheduler, and global random generator thread-local, and logger
198 thread-safe (:issue:`2489`)
199
200- **Forwarding**
201
202 - Introduce exponential back-off interest retransmission suppression mechanism and enable
203 its use in the best-route strategy (:issue:`1913`)
204
205 - Strategies are now registered with a macro, making it simpler to introduce new strategies
206 to NFD codebase (:issue:`2410`)
207
208- **Tables**
209
210 - ContentStore now recognizes CachingPolicy-NoCache from LocalControlHeader (:issue:`2185`)
211
212Updates and bug fixes:
213^^^^^^^^^^^^^^^^^^^^^^
214
215- **Faces**
216
217 - Remove Tcp|UdpChannel::connect overloads that perform DNS resolution (:issue:`2422`)
218
219 - Properly handle error conditions in UdpChannel::newPeer (:issue:`2516`)
220
221 - Fix inconsistency of UDP face timeouts in sample `nfd.conf` and actual defaults
222 (:issue:`2473`)
223
224 - Introduce Face-specific logging macros (:issue:`2450`)
225
226 - Refactor handling of LinkType face trait and fix FaceStatus reporting: the link type was
227 not properly propagated (:issue:`2563`)
228
229 - Avoid exceptions in NDNLP PartialMessageStore (:issue:`2261`)
230
231 - Update websocketpp to version 0.5.1
232
233- **Tables**
234
235 - Reduce priority of DeadNonceList log messages from DEBUG to TRACE
236
237- **Management**
238
239 - Change register/unregister logging in RibManager to INFO level (:issue:`2547`)
240
241- **Tools**
242
243 - Change prefix for :ref:`the local hub prefix discovery <local-prefix-discovery>` to be
244 under ``/localhop/nfd`` (:issue:`2479`, :issue:`2512`)
245
246- **Tests**
247
248 - Change naming conventions for unit test files and test suite names (:issue:`2497`)
249
250 - Fix segfault in TableNameTree test suite when all test logs are enabled (:issue:`2564`)
251
252****************************************************************************
253
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800254NFD version 0.3.0 (changes since version 0.2.0)
255-----------------------------------------------
256
257Release date: February 2, 2015
258
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800259New features:
260^^^^^^^^^^^^^
261
262- **Build**
263
264 + The code now requires C++11. The minimum supported gcc version is 4.6, as earlier versions
265 do not have proper support for C++11 features.
266
267- **Faces**
268
269 + Enable detection of WebSocket connection failures using ping/pong messages (:issue:`1903`)
270
271 + In EthernetFace:
272
273 * Avoid putting the NIC in promiscuous mode if possible (:issue:`1278`)
274
275 * Report packets dropped by the kernel if debug is enabled (:issue:`2441`)
276
277 * Integrate NDNLP fragmentation (:issue:`1209`)
278
279- **Forwarding**
280
281 + Strategy versioning (:issue:`1893`)
282
283 + New Dead Nonce List table to supplement PIT for loop detection (:issue:`1953`)
284
285 + Abstract retransmission suppression logic (:issue:`2377`)
286
287 + New forwarding strategy for access router (:issue:`1999`)
288
289- **Management**
290
291 + Add config file-based strategy selection (:issue:`2053`)
292
293 The sample config file now includes strategy selection for ``/``, ``/localhost``,
294 ``/localhost/nfd``, and ``/ndn/broadcast`` namespaces as follows:
295
296 ::
297
298 tables
299 {
300 ...
301 strategy_choice
302 {
303 / /localhost/nfd/strategy/best-route
304 /localhost /localhost/nfd/strategy/broadcast
305 /localhost/nfd /localhost/nfd/strategy/best-route
306 /ndn/broadcast /localhost/nfd/strategy/broadcast
307 }
308 }
309
310 + Implement Query Operation in FaceManager (:issue:`1993`)
311
312 + FaceManager now responds with producer-generated NACK when query is invalid (:issue:`1993`)
313
314 + Add functionality for automatic remote prefix registration (:issue:`2056`)
315
316 + Only canonical FaceUri are allowed in faces/create commands (:issue:`1910`)
317
318- **Tables**
319
320 + StrategyInfoHost can now store multiple StrategyInfo of distinct types (:issue:`2240`)
321
322 + Enable iteration over PIT and CS entries (:issue:`2339`)
323
324 + Allow predicate to be specified in Measurements::findLongestPrefixMatch (:issue:`2314`)
325
326 + Calculate the implicit digest of Data packets in CS only when necessary (:issue:`1706`)
327
328- **Tools**
329
330 + Publish ``/localhop/ndn-autoconf/routable-prefixes`` from ``ndn-autoconfig-server``
331 (:issue:`1954`)
332
333 + Display detailed NFD software verion in ``nfd-status-http-server`` and ``nfd-status``
334 (:issue:`1916`)
335
336 + ``nfdc`` now accepts FaceUri in all commands (:issue:`1995`)
337
338 + Add daemon mode for ``ndn-autoconfig`` to re-run detection when connectivity changes
339 (:issue:`2417`)
340
341- **Core**
342
343 + New scheduler::ScopedEventId class to automatically handle scheduled event lifetime
344 (:issue:`2295`)
345
346Updates and bug fixes:
347^^^^^^^^^^^^^^^^^^^^^^
348
349- **Documentation**
350
351 + NFD Developer's guide has been updated to reflect changes in the codebase
352
353 + Installation instruction updates
354
355 + Update of config file instructions for disabling unix sockets (:issue:`2190`)
356
357- **Core**
358
359 + Use implementations moved to ndn-cxx library
360
361 + Use Signal from ndn-cxx (:issue:`2272`, :issue:`2300`)
362
363 + use ethernet::Address from ndn-cxx (:issue:`2142`)
364
365 + Use MAX_NDN_PACKET_SIZE constant from ndn-cxx (:issue:`2099`)
366
367 + Use DEFAULT_INTEREST_LIFETIME from ndn-cxx (:issue:`2202`)
368
369 + Use FaceUri from ndn-cxx (:issue:`2143`)
370
371 + Use DummyClientFace from ndn-cxx (:issue:`2186`)
372
373 + Use ndn::dns from ndn-cxx (:issue:`2207`)
374
375 + Move Network class implementation from ``tools/`` to ``core/``
376
377 + Ignore non-Ethernet ``AF_LINK`` addresses when enumerating NICs on OSX and other BSD systems
378
379 + Fix bug on not properly setting FreshnessPeriod inside SegmentPublisher (:issue:`2438`)
380
381- **Faces**
382
383 + Fix spurious assertion failure in StreamFace (:issue:`1856`)
384
385 + Update websocketpp submodule (:issue:`1903`)
386
387 + Replace FaceFlags with individual fields (:issue:`1992`)
388
389 + Drop WebSocket message if the size is larger than maximum NDN packet size (:issue:`2081`)
390
391 + Make EthernetFace more robust against errors (:issue:`1984`)
392
393 + Prevent potential infinite loop in TcpFactory and UdpFactory (:issue:`2292`)
394
395 + Prevent crashes when attempting to create a UdpFace over a half-working connection
396 (:issue:`2311`)
397
398 + Support MTU larger than 1500 in EthernetFace (for jumbo frames) (:issue:`2305`)
399
400 + Re-enable EthernetFace on OS X platform with boost >=1.57.0 (:issue:`1922`)
401
402 + Fix ``ioctl()`` calls on platforms where libpcap uses ``/dev/bpf*`` (:issue:`2327`)
403
404 + Fix overhead estimation in NDNLP slicer (:issue:`2317`)
405
406 + Replace usage of deprecated EventEmitter with Signal in Face abstractions (:issue:`2300`)
407
408 + Fix NDNLP PartialMessage cleanup scheduling (:issue:`2414`)
409
410 + Remove unnecessary use of DNS resolver in (Udp|Tcp|WebSocket)Factory (:issue:`2422`)
411
412- **Forwarding**
413
414 + Updates related to NccStrategy
415
416 * Fix to prevent remembering of suboptimal upstreams (:issue:`1961`)
417
418 * Optimizing FwNccStrategy/FavorRespondingUpstream test case (:issue:`2037`)
419
420 * Proper detection for new PIT entry (:issue:`1971`)
421
422 * Use UnitTestTimeFixture in NCC test case (:issue:`2163`)
423
424 * Fix loop back to sole downstream (:issue:`1998`)
425
426 + Updates related to BestRoute strategy
427
428 + Redesign best-route v2 strategy test case (:issue:`2126`)
429
430 + Fix clang compilation error in best-route v2 test case (:issue:`2179`)
431
432 + Use UnitTestClock in BestRouteStrategy2 test (:issue:`2160`)
433
434 + Allow strategies limited access to FaceTable (:issue:`2272`)
435
436- **Tables**
437
438 + Ensure that eviction of unsolicited Data is done in FIFO order (:issue:`2043`)
439
440 + Simplify table implementations with C++11 features (:issue:`2100`)
441
442 + Fix issue with Fib::removeNextHopFromAllEntries invalidating NameTree iterator
443 (:issue:`2177`)
444
445 + Replace deprecated EventEmitter with Signal in FaceTable (:issue:`2272`)
446
447 + Refactored implementation of ContentStore based on std::set (:issue:`2254`)
448
449- **Management**
450
451 + Allow omitted FaceId in faces/create command (:issue:`2031`)
452
453 + Avoid deprecated ``ndn::nfd::Controller(Face&)`` constructor (:issue:`2039`)
454
455 + Enable check of command length before accessing verb (:issue:`2151`)
456
457 + Rename FaceEntry to Route (:issue:`2159`)
458
459 + Insert RIB command prefixes into RIB (:issue:`2312`)
460
461- **Tools**
462
463 + Display face attribute fields instead of FaceFlags in ``nfd-status`` and
464 ``nfd-status-http-server`` output (:issue:`1991`)
465
466 + Fix ``nfd-status-http-server`` hanging when nfd-status output is >64k (:issue:`2121`)
467
468 + Ensure that ``ndn-autoconfig`` canonizes FaceUri before sending commands to NFD
469 (:issue:`2387`)
470
471 + Refactored ndn-autoconfig implementation (:issue:`2421`)
472
473 + ndn-autoconfig will now register also ``/localhop/nfd`` prefix towards the hub (:issue:`2416`)
474
475- **Tests**
476
477 + Use UnitTestClock in Forwarder persistent loop test case (:issue:`2162`)
478
479 + Use LimitedIo in FwForwarder/SimpleExchange test case (:issue:`2161`)
480
481- **Build**
482
483 + Fix build error with python3 (:issue:`1302`)
484
485 + Embed CI build and test running script
486
487 + Properly disable assertions in release builds (:issue:`2139`)
488
489 + Embed setting of ``PKG_CONFIG_PATH`` variable to commonly used values (:issue:`2178`)
490
491 + Add conditional compilation for NetworkInterface and PrivilegeHelper
492
493 + Support tools with multiple translation units (:issue:`2344`)
494
495Removals
496^^^^^^^^
497
498- Remove ``listen`` option from unix channel configuration (:issue:`2188`)
499
500- Remove usage of deprecated ``MetaInfo::TYPE_*`` constants (:issue:`2128`)
501
502- Eliminate MapValueIterator in favor of ``boost::adaptors::map_values``
503
504****************************************************************************
505
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700506NFD version 0.2.0 (changes since version 0.1.0)
507-----------------------------------------------
508
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700509Release date: August 25, 2014
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700510
511- **Documentation**
512
513 + `"NFD Developer's Guide" by NFD authors
514 <http://named-data.net/wp-content/uploads/2014/07/NFD-developer-guide.pdf>`_ that
515 explains NFD's internals including the overall design, major modules, their
516 implementation, and their interactions
517
518 + New detailed instructions on how to enable auto-start of NFD using OSX ``launchd``
519 and Ubuntu's ``upstart`` (see `contrib/ folder
520 <https://github.com/named-data/NFD/tree/master/contrib>`_)
521
522- **Core**
523
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800524 + Add support for temporary privilege drop and elevation (:issue:`1370`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700525
526 + Add support to reinitialize multicast Faces and (partially) reload config file
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800527 (:issue:`1584`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700528
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800529 + Randomization routines are now uniform across all NFD modules (:issue:`1369`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700530
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800531 + Enable use of new NDN naming conventions (:issue:`1837` and :issue:`1838`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700532
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700533- **Faces**
534
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800535 + `WebSocket <http://tools.ietf.org/html/rfc6455>`_ Face support (:issue:`1468`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700536
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800537 + Fix Ethernet Face support on Linux with ``libpcap`` version >=1.5.0 (:issue:`1511`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700538
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800539 + Fix to recognize IPv4-mapped IPv6 addresses in ``FaceUri`` (:issue:`1635`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700540
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800541 + Fix to avoid multiple onFail events (:issue:`1497`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700542
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800543 + Fix broken support of multicast UDP Faces on OSX (:issue:`1668`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700544
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800545 + On Linux, path MTU discovery on unicast UDPv4 faces is now disabled (:issue:`1651`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700546
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800547 + Added link layer byte counts in FaceCounters (:issue:`1729`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700548
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800549 + Face IDs 0-255 are now reserved for internal NFD use (:issue:`1620`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700550
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800551 + Serialized StreamFace::send(Interest|Data) operations using queue (:issue:`1777`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700552
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700553- **Forwarding**
554
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800555 + Outgoing Interest pipeline now allows strategies to request a fresh ``Nonce`` (e.g., when
556 the strategy needs to re-express the Interest) (:issue:`1596`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700557
558 + Fix in the incoming Data pipeline to avoid sending packets to the incoming Face
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800559 (:issue:`1556`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700560
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800561 + New ``RttEstimator`` class that implements the Mean-Deviation RTT estimator to be used in
562 forwarding strategies
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700563
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800564 + Fix memory leak caused by not removing PIT entry when Interest matches CS (:issue:`1882`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700565
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800566 + Fix spurious assertion in NCC strategy (:issue:`1853`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700567
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700568- **Tables**
569
570 + Fix in ContentStore to properly adjust internal structure when ``Cs::setLimit`` is called
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800571 (:issue:`1646`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700572
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800573 + New option in configuration file to set an upper bound on ContentStore size (:issue:`1623`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700574
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800575 + Fix to prevent infinite lifetime of Measurement entries (:issue:`1665`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700576
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800577 + Introducing capacity limit in PIT NonceList (:issue:`1770`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700578
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800579 + Fix memory leak in NameTree (:issue:`1803`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700580
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800581 + Fix segfault during Fib::removeNextHopFromAllEntries (:issue:`1816`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700582
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700583- **Management**
584
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800585 + RibManager now fully support ``CHILD_INHERIT`` and ``CAPTURE`` flags (:issue:`1325`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700586
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800587 + Fix in ``FaceManager`` to respond with canonical form of Face URI for Face creation command
588 (:issue:`1619`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700589
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800590 + Fix to prevent creation of duplicate TCP/UDP Faces due to async calls (:issue:`1680`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700591
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800592 + Fix to properly handle optional ExpirationPeriod in RibRegister command (:issue:`1772`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700593
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800594 + Added functionality of publishing RIB status (RIB dataset) by RibManager (:issue:`1662`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700595
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800596 + Fix issue of not properly canceling route expiration during processing of ``unregister``
597 command (:issue:`1902`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700598
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800599 + Enable periodic clean up of route entries that refer to non-existing faces (:issue:`1875`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700600
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700601- **Tools**
602
603 + Extended functionality of ``nfd-status``
604
605 * ``-x`` to output in XML format, see :ref:`nfd-status xml schema`
606 * ``-c`` to retrieve channel status information (enabled by default)
607 * ``-s`` to retrieve configured strategy choice for NDN namespaces (enabled by default)
608 * Face status now includes reporting of Face flags (``local`` and ``on-demand``)
609 * On-demand UDP Faces now report remaining lifetime (``expirationPeriod``)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700610 * ``-r`` to retrieve RIB information
611
612 + Improved ``nfd-status-http-server``
613
614 * HTTP server now presents status as XSL-formatted XML page
615 * XML dataset and formatted page now include certificate name of the corresponding NFD
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800616 (:issue:`1807`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700617
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800618 + Several fixes in ``ndn-autoconfig`` tool (:issue:`1595`)
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700619
620 + Extended options in ``nfdc``:
621
622 * ``-e`` to set expiration time for registered routes
623 * ``-o`` to specify origin for registration and unregistration commands
624
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700625 + Enable ``all-faces-prefix'' option in ``nfd-autoreg`` to register prefix for all face
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800626 (on-demand and non-on-demand) (:issue:`1861`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700627
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800628 + Enable processing auto-registration in ``nfd-autoreg`` for faces that existed prior to
629 start of the tool (:issue:`1863`)
Alexander Afanasyev186c3162014-07-29 08:59:49 -0700630
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700631- **Build**
632
633 + Enable support of precompiled headers for clang and gcc to speed up compilation
634
635- `Other small fixes and extensions
636 <https://github.com/named-data/NFD/compare/NFD-0.1.0...master>`_
637
Alexander Afanasyev7c10b3b2015-01-20 12:24:27 -0800638****************************************************************************
639
Alexander Afanasyev40ee3812014-07-01 00:25:21 -0700640NFD version 0.1.0
641-----------------
642
643Release date: May 7, 2014
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700644
645This is an incomplete list of features that are implemented in NFD version 0.1.0.
646
Alexander Afanasyev26181532014-05-07 23:38:51 -0700647- **Packet Format**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700648
649 + `NDN-TLV <http://named-data.net/doc/ndn-tlv/>`_
650 + LocalControlHeader, to allow apps to set outgoing face and learn incoming face.
651
Alexander Afanasyev26181532014-05-07 23:38:51 -0700652- **Faces**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700653
654 + Unix stream socket
655 + UDP unicast
656 + UDP multicast
657 + TCP
658 + Ethernet, currently without fragmentation.
659
660 .. note::
661 Ethernet support will not work properly on Linux kernels with TPACKET_V3 flexible
662 buffer implementation (>= 3.2.0) and libpcap >= 1.5.0 (e.g., Ubuntu Linux 14.04).
663 Refer to `Issue 1551 <http://redmine.named-data.net/issues/1511>`_ for more
664 detail and implementation progress.
665
Alexander Afanasyev26181532014-05-07 23:38:51 -0700666- **Management**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700667
668 + Use of signed Interests as commands, with authentication and authorization.
669 + Face management
670 + FIB management
671 + Per-namespace strategy selection
672 + NFD status publishing
673 + Notification to authorized apps of internal events, including Face creation and destruction.
674
Alexander Afanasyev26181532014-05-07 23:38:51 -0700675- **Tables and forwarding pipelines** support most Interest/Data processing, including
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700676 selectors.
677
Alexander Afanasyev26181532014-05-07 23:38:51 -0700678- **RIB Management** that runs as a separate process, ``nrd``. It supports basic prefix
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700679 registration by applications, but no flags yet.
680
Alexander Afanasyev26181532014-05-07 23:38:51 -0700681- **Strategies**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700682
683 + ``broadcast``
684 + ``best-route``
685 + ``ncc``: based on ccnx 0.7 for experimentation
686 + ``client-control``: authorized application can directly control Interest forwarding
687
Alexander Afanasyev26181532014-05-07 23:38:51 -0700688- **Name-based scoping**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700689
690 + ``/localhost``: communication only within localhost using "local" Faces
691 (UnixStreamFace, LocalTcpFace). NFD will strictly enforce this scope for Interests
692 and Data packets
693 + ``/localhop``: one-hop communication (e.g., if at least one incoming or outgoing Face
694 in PIT entry is non-local, the Interest cannot be forwarded to any non-local Face)
695
Alexander Afanasyev26181532014-05-07 23:38:51 -0700696- **Support configuration file**, which is in the Boost INFO format.
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700697
Alexander Afanasyev26181532014-05-07 23:38:51 -0700698- **Applications**
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700699
700 + Tools to discover hubs on NDN testbed.
701 + peek/poke and traffic generators for testing and debugging.
702 + ``nfdc``, a command-line tool to configure NFD.
703 + ``nfd-status``, a command-line tool to query NFD status.
704 + ``nfd-status-http-server``, which reads the NFD status and publishes over HTTP.
705
706
707Planned Functions and Features for Next Releases
708------------------------------------------------
709
710- NACK
711 A packet sent back by a producer or a router to signal the unavailability of a requested
712 Data packet. The protocol specification for NACK is in progress.
713
714- New strategies
715 Additional strategies, including self-learning that populates the FIB by observing
716 Interest and Data exchange.
717
Alexander Afanasyev26181532014-05-07 23:38:51 -0700718- Hop-by-hop Interest limit mechanism
719 For congestion control
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700720
721- Face enhancements
Junxiao Shie8f42462015-04-06 21:37:28 -0700722 Add faces for new underlying protocols such as WiFi direct.
723 Introduce the concept of "permanent faces" that can survive socket errors.
724 Design a new hop-by-hop header that supports fragmentation, reliability improvement, etc.
Beichuan Zhang55b8ed42014-04-26 22:25:44 -0700725
726- Tables
727 Experiment and evaluate different data structures and algorithms.
728
729- RIB management
730 Move to more scalable data structures and support all flags in prefix registrations.
731
732- Tunnel management
733 For hub nodes to authenticate incoming tunnel requests and maintain the tunnels.
734
735- Extensible name-based scoping
Alexander Afanasyev26181532014-05-07 23:38:51 -0700736 Configurable organization-based scoping