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