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