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