blob: 1b91c766e19f08ee72d70e438b78f3e6397cf494 [file] [log] [blame]
Alexander Afanasyevab933c62015-01-14 00:50:31 -05001ndnSIM Release Notes
2====================
3
4This file contains ndnSIM release notes.
5
6All of the ndnSIM documentation is accessible from the `ndnSIM website <http://ndnsim.net>`__.
7
Alexander Afanasyevfbbe13d2019-02-21 13:40:52 -05008Release 2.7
9-----------
10
11Release date: February 24, 2019
12
13Overview
14~~~~~~~~
15
16- The submodules of NFD and ndn-cxx have been upgraded to version 0.6.5.
17
18 `NFD 0.6.5 release notes <https://named-data.net/doc/NFD/0.6.5/RELEASE_NOTES.html>`__
19
20 `ndn-cxx 0.6.5 release notes <https://named-data.net/doc/ndn-cxx/0.6.5/RELEASE_NOTES.html>`__
21
22 .. note::
23 In order to retrieve the marked versions of ndn-cxx and NFD, use
24 ``--recursive`` option to the git clone command or run ``git
25 submodule update --init`` after clone, pull, or merge.
26
27- Base NS-3 was rebased to version 3.29
28
29- Following changes in NFD and ndn-cxx codebases, the build requirements have been upgraded to gcc
30 >= 5.3 or clang >= 3.6, boost >= 1.58, openssl >= 1.0.2. This effectively drops support for all
31 versions of Ubuntu older than 16.04 that use distribution-provided compilers and packages.
32
33- The compilation now uses the C++14 standard.
34
35Improvements and bug fixes
36~~~~~~~~~~~~~~~~~~~~~~~~~~
37
38- Update face metric based on simulated p2p link delay (:issue:`4733`)
39
40- Remove and replace the previously deprecated and removed in NS-3.29 ``QueueBase::MaxPackets``
41
42- Update installation instructions
43
44Deprecation
45~~~~~~~~~~~
46
47- ndnSIM 2.7 is the last release that supports the legacy content store implementation. The future versions
48 will only include content store replacement/placement policies implemented using NFD routines. Please
49 refer to the latest version of NFD Developer's Guide for more information.
50
51********************************************************************************
52
Alexander Afanasyev6d37c482018-08-06 17:38:27 -040053Release 2.6
54-----------
55
56Release date: August 7, 2018
57
58Overview
59~~~~~~~~
60
61- The submodules of NFD and ndn-cxx have been upgraded to version 0.6.2
62 (:issue:`4514`).
63
64 `NFD 0.6.2 release notes <https://named-data.net/doc/NFD/0.6.2/RELEASE_NOTES.html>`__
65
66 `ndn-cxx 0.6.2 release notes <https://named-data.net/doc/ndn-cxx/0.6.2/RELEASE_NOTES.html>`__
67
68 .. note::
69 In order to retrieve the marked versions of ndn-cxx and NFD, use
70 ``--recursive`` option to the git clone command or run ``git
71 submodule update --init`` after clone, pull, or merge.
72
73- This will be the last release that supports "old" API for content store implementations.
74 Going forward, only NFD-based implementations will be supported.
75
76Improvements and bug fixes
77~~~~~~~~~~~~~~~~~~~~~~~~~~
78
79- Add queue length congestion detection and signaling (:issue:`4578`)
80
81- Implement BIC and CUBIC congestion control in ConsumerPcon (:issue:`4672`)
82
83- Fix compilation failure on some systems with Python 3
84
85- Fix outdated and remove deprecated APIs in the examples
86
87- Updates of the ndnSIM documentation.
88
Alexander Afanasyevfbbe13d2019-02-21 13:40:52 -050089********************************************************************************
Alexander Afanasyev6d37c482018-08-06 17:38:27 -040090
Spyridon Mastorakisafad4592018-02-22 13:31:14 -080091Release 2.5
92-----------
93
94Release date: February 23, 2018
95
96Overview
97~~~~~~~~
98
99- The submodules of NFD and ndn-cxx have been upgraded to version 0.6.1
100 (:issue:`4514`).
101
102 `NFD 0.6.1 release notes <https://named-data.net/doc/NFD/0.6.1/RELEASE_NOTES.html>`__
103
104 `ndn-cxx 0.6.1 release notes <https://named-data.net/doc/ndn-cxx/0.6.1/RELEASE_NOTES.html>`__
105
106 .. note::
107 In order to retrieve the marked versions of ndn-cxx and NFD, use
108 ``--recursive`` option to the git clone command or run ``git
109 submodule update --init`` after clone, pull, or merge.
110
111Improvements and bug fixes
112~~~~~~~~~~~~~~~~~~~~~~~~~~
113
114- Fix memory leak related to canceling events scheduled via ndn-cxx's Scheduler interface
115 adapted for NS-3 (:issue:`4509`).
116
117- Fix compilation failure with boost >= 1.66 (:issue:`4471`).
118
119- Updates of the ndnSIM documentation.
120
Alexander Afanasyevfbbe13d2019-02-21 13:40:52 -0500121********************************************************************************
122
Spyridon Mastorakisafad4592018-02-22 13:31:14 -0800123Release 2.4
124-----------
Spyridon Mastorakisb3241d22017-10-16 17:12:54 -0700125
126Release date: November 1, 2017
127
128Overview
129~~~~~~~~
130
131- The submodules of NFD and ndn-cxx have been upgraded to version 0.6.0
132 (:issue:`4306`).
133
134 `NFD 0.6.0 release notes <https://named-data.net/doc/NFD/0.6.0/RELEASE_NOTES.html>`__
135
136 `ndn-cxx 0.6.0 release notes <https://named-data.net/doc/ndn-cxx/0.6.0/RELEASE_NOTES.html>`__
137
138- Upgrade the base NS-3 version to ``ns-3.27-22-g90fb309d5`` (:issue:`4311`).
139
140 .. note::
141 In order to retrieve the marked versions of ndn-cxx and NFD, use
142 ``--recursive`` option to the git clone command or run ``git
143 submodule update --init`` after clone, pull, or merge.
144
145 .. note::
146 To set the maximum size of the used queue when porting already
147 implemented scenarios to ndnSIM 2.4, the QueueBase::MaxPackets attribute
148 has to be set instead of DropTailQueue::MaxPackets.
149
150 .. note::
151 ndnSIM 2.4 requires the following minimal compiler requirements:
152 - g++-4.9 or later (Note: this is an upgraded requirement from ndnSIM 2.3)
Spyridon Mastorakisafad4592018-02-22 13:31:14 -0800153 - Apple LLVM version 7.0.2 or later
Spyridon Mastorakisb3241d22017-10-16 17:12:54 -0700154 - clang-3.3 or later.
155
156Improvements and bug fixes
157~~~~~~~~~~~~~~~~~~~~~~~~~~
158
159- Internal refactoring of dummy keychain to work with security v2 of ndn-cxx
160 (:issue:`4306`)
161
162- Updates of the ndnSIM documentation and Technical Report (:issue:`4039`, :issue:`4213`)
163
164 * Added page about community contributions to the simulator.
165 * CS tracer documentation update.
166
Alexander Afanasyevfbbe13d2019-02-21 13:40:52 -0500167********************************************************************************
168
Spyridon Mastorakisafad4592018-02-22 13:31:14 -0800169Release 2.3
170-----------
Spyridon Mastorakisb1592bc2016-12-07 14:34:30 -0800171
172Release date: December 12, 2016
173
174Overview
175~~~~~~~~
176
177- The submodules of NFD and ndn-cxx have been both upgraded to version 0.5
178 (:issue:`3875`).
179
180 Features of NFD:
181
182 * Adaptive SRTT-based Forwarding strategy has been added.
183 * Breaking change -- Configurable policy for admission of unsolicited data packets into the
184 content store have been introduced.
185 * Introduce mechanism to update properties (e.g., flags, persistency) of
186 an existing Face.
187 * Breaking change -- ForwarderStatus dataset can now be requested only
188 with /localhost/nfd/status/general interest.
189 * Breaking change -- Strategy API update. FIB entry is no longer supplied
190 to the Strategy::afterReceiveInterest method (i.e., FIB lookup is not
191 performed by the forwarding pipelines). When necessary, a strategy can
192 request FIB lookup using Strategy::lookupFib.
193 * Refactor implementation of RIB Manager to make it uniform with
194 other managers.
195
196 Features of ndn-cxx:
197
198 * New transformation API.
199 * Introduce Name::deepCopy to allow memory optimizations when working
200 with Name objects.
201 * New ndn::security::CommandInterestValidator class.
202 * New FaceUpdateCommand structure for NFD management protocols.
203 * Breaking change - Expose ControlResponse as part of
204 Controller::CommandFailCallback.
205 * Breaking change - Change security constants to corresponding strongly
206 typed enumerations.
207
208 .. note::
209 In order to retrieve the marked versions of ndn-cxx and NFD, use
210 ``--recursive`` option to the git clone command or run ``git
211 submodule update --init`` after clone, pull, or merge.
212
213- Replace NetDeviceFaceLinkService with NetDeviceTransport to add
214 full support of NDNLPv2 and, thus, network-layer NACK handling to
215 ndnSIM (:issue:`3871`).
216
217 ndnSIM now uses an implementation of nfd::face::Transport that enables the
218 full support of NDNLPv2 and the handling of network-layer NACKs generated
219 by NFD. NACKs can reach the ndnSIM applications.
220
221 .. note::
222 NACK handling by ndnSIM came at the cost of losing the NS3 related
223 packet tags. The hopCount tag is now implemented as a tag of a packet
224 directly at the NDNLPv2 layer.
225
226New features
227~~~~~~~~~~~~
228
229- Enable NACK tracing by the network layer tracers (:issue:`3872`).
230
231- NetworkRegionTable helper was added to allow the configuration
232 of the simulated nodes' NetworkRegionTable (:issue:`3806`).
233
234Improvements and bug fixes
235~~~~~~~~~~~~~~~~~~~~~~~~~~
236
237- Internal refactoring to use the ndnSIM-specific transport implementation
238 (ndn::L3Protocol, ndn::StackHelper, ndn::LinkControlHelper,
239 ndn::GlobalRoutingHelper, ndn::Consumer, ndn::Producer).
240
241- Updates of the ndnSIM documentation (:issue:`3876`)
242
243 * Added explanation about the support of NDNLPv2 and its implications.
244
Alexander Afanasyevfbbe13d2019-02-21 13:40:52 -0500245********************************************************************************
246
Spyridon Mastorakisafad4592018-02-22 13:31:14 -0800247Release 2.2
248-----------
spirosmastorakisc09bb402016-10-28 19:16:58 -0700249
250Release date: November 11, 2016
251
252Overview
253~~~~~~~~
254
255- The submodules of NFD and ndn-cxx have been both upgraded to version 0.4.1
256 (:issue:`3560`).
257
258 Features of NFD:
259
260 * Face system is refactored.
261 * Data Retrieval using full names is fixed.
262 * Allow setting CS capacity to 0.
263 * LinkService provides an "adaptation" layer to
264 translate between NDN packets and data blocks communicated through Transport.
265 * Face provides combines Transport and LinkServices, providing high-level
266 interface to work with Interest/Data/Nack packets inside NFD.
267 * Networking NACK in pipelines and best-route strategy.
268 * Refactored implementation of NFD management.
269 * Interest forwarding processes Link included in interest packets.
270
271 Features of ndn-cxx:
272
273 * LocalControlHeader for special signaling between application and NFD has
274 been replaced with NDNLPv2 signaling.
275 * NDNLPv2 Network NACK support in Face abstraction.
276 * New API in Face class to remove all pending Interests.
277
278 .. note::
279 In order to retrieve the marked versions of ndn-cxx and NFD, use
280 ``--recursive`` option to the git clone command or run ``git
281 submodule update --init`` after clone, pull, or merge.
282
283- Replace NetDeviceFace with NetDeviceFaceLinkService and AppFace with
284 AppFaceModel to match NFD's v0.4+ Face model (:issue:`3560`).
285
286 ndnSIM (for now) intentionally uses LinkService instead of Transport for
287 optimization purposes and in order to preserve ns3::Packet Tags. This
288 may be fixed in the future when there is a different mechanism to
289 propagate ns3 Tags.
290
291 .. note::
Spyridon Mastorakisb1592bc2016-12-07 14:34:30 -0800292 This version of ndnSIM does not include support for NDNLPv2 and, thus, cannot
spirosmastorakisc09bb402016-10-28 19:16:58 -0700293 yet be used to simulate network-level NACKs across the simulated nodes.
294 This will be addressed in the next release of ndnSIM.
295
296- ndnSIM no longer officially support Ubuntu Linux 12.04, as it now requires
297 a more modern compiler version and dependent libraries.
298
299New features
300~~~~~~~~~~~~
301
302- The NetDevice address is now represented as a LocalUri instance for
303 NetDevice-based Faces (:issue:`2665`).
304
305- Enable configurability of NFD's managers (:issue:`3328`).
306
307 The managers of NFD can be enabled/disabled as specified in a simulation
308 scenario.
309
310Improvements and bug fixes
311~~~~~~~~~~~~~~~~~~~~~~~~~~
312
313- Bugfix in RandomPolicy for the "old-style" ContentStore implementation.
314
315- Updates of the `ndnSIM 2 Technical Report <https://named-data.net/publications/techreports/ndn-0028-2-ndnsim-v2/>`__
316
317 Technical Report became up-to-date with the latest version of ndnSIM.
318 Please see report's change-log for more detailed information.
319
320- Updates of the ndnSIM documentation (:issue:`3835`)
321
322 * Updated out-dated statements about NFD's CS implementation (:issue:`3827`).
323 * Added explanation about the limited support of NDNLPv2 and its implications.
324 * Fixed description of the ConsumerBatches application.
325 * Added homebrew instructions for dependency installation on OS X.
326 * Added specification of ndn::CsTracer output format.
327
328********************************************************************************
329
Spyridon Mastorakisafad4592018-02-22 13:31:14 -0800330Release 2.1
331-----------
Spyridon Mastorakis5897c962015-08-31 15:37:18 -0700332
333Release date: September 4, 2015
334
335Overview
336~~~~~~~~
337
338- Integration with ndn-cxx and NFD codebases has been refactored to include ndn-cxx and
339 NFD repositories as git submodules within ndnSIM repository (:issue:`3138`).
340
341 This refactoring simplifies upgrading ndn-cxx and NFD to new versions and prevents old
342 simulation code to break because of API changes in newer versions of ndn-cxx library.
343
344 .. note::
345 In order to retrieve the marked versions of ndn-cxx and NFD, use ``--recursive``
346 option to the git clone command or run ``git submodule update --init`` after clone,
347 pull, or merge.
348
349- The official home for ndnSIM codebase has been moved to `GitHub named-data-ndnSIM
350 organization <https://github.com/named-data-ndnSIM>`__ (:issue:`3123`):
351
352 * `ndnSIM codebase <https://github.com/named-data-ndnSIM/ndnSIM>`__
353 * `Modified version of ndn-cxx <https://github.com/named-data-ndnSIM/ndn-cxx>`__
354 * `Modified version of NFD <https://github.com/named-data-ndnSIM/NFD>`__
355 * `Modified version of NS-3 <https://github.com/named-data-ndnSIM/ns-3-dev>`__
356 * `Modified version of python bindings generator <https://github.com/named-data-ndnSIM/pybindgen>`__
357
358- Modified version of NS-3 was updated to (rebased on top of) version 2.23-dev, with
359 ndnSIM codebase adjusted to reflect API changes (:issue:`3122`)
360
361- NFD and ndn-cxx has been upgraded to version 0.3.4 (:issue:`3125`)
spirosmastorakisc09bb402016-10-28 19:16:58 -0700362
Spyridon Mastorakis5897c962015-08-31 15:37:18 -0700363New features
364~~~~~~~~~~~~
365
366- ndnSIM-specific version of :ndnsim:`ndn::Face` (:issue:`2370`)
367
368 The updated version of :ndnsim:`ndn::Face` specially designed to allow writing
369 simulation applications in the same way as real applications. It is also possible to
370 directly use codebase of the existing applications to drive simulations, provided that
371 the codebase meets or can be adjusted to meet the requirements listed in
372 :doc:`guide-to-simulate-real-apps`.
373
374- Full support for NFD'S RIB manager (:issue:`2370`)
375
376 .. note::
377 RIB manager support is currently available only for applications based on ndn-cxx.
378 :ndnsim:`FibHelper::AddRoute` and :ndnsim:`FibHelper::RemoveRoute` used by
379 :ndnsim:`ndn::Producer` and :ndnsim:`ndn::GlobalRoutingHelper` are currently
380 interacting directly with NFD's FIB manager. This issue will be resolved in the next
381 release of ndnSIM (:issue:`3121`)
382
383- Tutorial and example on how to speed up simulations with MPI module of NS-3:
384 `<http://ndnsim.net/2.0/parallel-simulations.html>`__
385
386- Two new helpers to simplify writing basic simulation scenarios:
387
388 - :ndnsim:`ScenarioHelper` leverages C++11 constructs to write scenarios. Example:
389
390 .. code-block:: c++
391
392 ScenarioHelper helper;
393 helper.createTopology({
394 {"1", "2"},
395 {"2", "3"}
396 });
397
398 helper.addRoutes({
399 {"1", "2", "/prefix", 1},
400 {"2", "3", "/prefix", 1}
401 });
402
403 helper.addApps({
404 {"1", "ns3::ndn::ConsumerCbr",
405 {{"Prefix", "/prefix"}, {"Frequency", "1"}},
406 "0s", "100s"},
407 {"3", "ns3::ndn::Producer",
408 {{"Prefix", "/prefix"}, {"PayloadSize", "1024"}},
409 "0s", "100s"}
410 });
411
412
413 - :ndnsim:`FactoryCallbackApp` simplifies creation of basic apps without creating a
414 separate class that is derived from ``ns3::Applications``. Example:
415
416 .. code-block:: c++
417
418 class SomeApp
419 {
420 public:
421 SomeApp(size_t initParameter);
422 ...
423 };
424
425 FactoryCallbackApp::Install(node, [] () -> shared_ptr<void> {
426 return make_shared<SomeApp>(42);
427 })
428 .Start(Seconds(1.01));
429
430Improvements and bug fixes
431~~~~~~~~~~~~~~~~~~~~~~~~~~
432
433- Updates of ndnSIM documentation
434
435 * Updated the structure for the `ndnSIM website index page <http://ndnsim.net>`__
436 * Updated installation instructions to reflect refactoring and relocation of ndnSIM codebase
437 * API documentation (doxygen) improvements
438 * Updated list of ndnSIM research papers
439
440- The NDN stack can now be updated to handle any simulation topology changes after
441 its initial installation on a node (:issue:`2717`)
442
443- Application ID that appears in :ndnsim:`ndn::AppDelayTracer` output is now ID of the
444 application on the node, not ID of the application face that was used previously.
445
446- FibHelper has been extended to support route removals (:issue:`2358`)
447
448- ndnSIM codebase now partially covered with unit-tests (:issue:`2369`, :issue:`3059`,
449 :issue:`2783`)
450
451- Bugfixes:
452
453 * In :ndnsim:`ndn::GlobalRoutingHelper::CalculateAllPossibleRoutes` that caused crash in
454 some cases (:issue:`2535`)
455
456 * In FailLink and Uplink methods of :ndnsim:`ndn::LinkControlHelper` class that affected
457 more links than requested (:issue:`2783`)
458
459 * With hop count of data packets retrieved from the Contest Store of NFD (:issue:`2764`)
460
461 * In :ndnsim:`ndn::Producer` application that caused a wrong dummy signature to be added
462 to the constructed data packets (:issue:`2927`)
463
Spyridon Mastorakis5897c962015-08-31 15:37:18 -0700464********************************************************************************
465
Spyridon Mastorakisafad4592018-02-22 13:31:14 -0800466Release 2.0
467-----------
Spyridon Mastorakis5897c962015-08-31 15:37:18 -0700468
469Release date: January 13, 2015
Alexander Afanasyevab933c62015-01-14 00:50:31 -0500470
471Overview
472~~~~~~~~
473
474ndnSIM 2.0 is a new release of NS-3 based Named Data Networking (NDN) simulator that went through
475extensive refactoring and rewriting. The key new features of the new version:
476
477- ndnSIM no longer re-implements basic NDN primitives and directly uses implementation from
478 `ndn-cxx library (NDN C++ library with eXperimental
479 eXtensions) <http://named-data.net/doc/ndn-cxx/>`__.
480
481- All NDN forwarding and management is implemented directly using source code of `Named Data
482 Networking Forwarding Daemon (NFD) <http://named-data.net/doc/NFD/>`__. The current code is based
483 on ``a22a2172611b1cb93b2e2f53d9d5da122b384f3e`` commit of `NFD
484 repository <https://github.com/named-data/NFD/tree/a22a2172611b1cb93b2e2f53d9d5da122b384f3e>`__.
485
486Note RIB Manager is not yet available in ndnSIM.
487
488- Packet format changed to the `NDN packet format <http://named-data.net/doc/ndn-tlv/>`__.
489
490- Code style changes to conform to `ndn-cxx Code Style and Coding
491 Guidelines <http://named-data.net/doc/ndn-cxx/current/code-style.html>`__ This change also
492 includes renaming of the header and source files: ``*.h`` -> ``*.hpp``, ``*.cc`` -> ``*.cpp``
493
494- ndnSIM now uses C++11.
495
496New Features
497~~~~~~~~~~~~
498
Spyridon Mastorakis5897c962015-08-31 15:37:18 -0700499- Integration with NFD codebase.
Alexander Afanasyevab933c62015-01-14 00:50:31 -0500500- A realistic behavior is added to the simulations.
501- Forwarding plane extensions can be used in both ndnSIM simulations and real NFD deployment.
502- Per namespace forwarding strategies for different namespaces (one strategy per namespace).
503- New examples:
504- ``ndn-load-balancer``
505- ``ndn-grid-multiple-strategies``
506- ``ndn-different-strategy-per-prefix``
507- Basic examples using python bindings: ``ndn-simple.py`` and ``ndn-grid.py``
508- Use of the the full-featured NDN packet format.
509- Full-featured support for Interest selectors.
510- Full-featured crypto operations can be simulated (disabled by default).
511- FibHelper to manage FIB entries.
512- StrategyChoiceHelper to manage per-namespace forwarding strategy selection.
513
514Changes
515~~~~~~~
516
517- HopCount tracing now includes only one way network-level hop count (e.g., the number of physical
518 links traversed by a packet). Previously, this tracing was round-trip and included applications
519 hops.
520- Python bindings have changed and, due to limitations of pybindgen, currently cover a smaller
521 subset of C++ code (`Task #2341 <http://redmine.named-data.net/issues/2341>`__).
522- LinkControlHelper now uses ErrorRate to simulate link failure/recovery. Previously it was relying
523 on Up/Down flag on NDN level.
524- The Face abstraction of NFD is now used.
525
526Bug fixes
527~~~~~~~~~
528
529- Fix processing files with customized LossRate or Queue model in AnnotatedTopologyReader `Bug
530 #2354 <http://redmine.named-data.net/issues/2354>`__.
531
532Removals
533~~~~~~~~
534
535- PyNDN emulation
536- (temporarily) ApiFace. Will be replaced with emulation of ndn-cxx ``ndn::Face`` in future
537 releases (`Issue #2370 <http://redmine.named-data.net/issues/2370>`__).
538- (temporarily) UdpFace, TcpFace (`Issue #2371 <http://redmine.named-data.net/issues/2371>`__).
539- Limits, LimitsWindow, LimitsRate.
540- PIT, FIB with "replacement" policies.
541- Old deprecated packet formats.