Release 2.0

Overview

ndnSIM 2.0 is a new release of NS-3 based Named Data Networking (NDN)
simulator that went through extensive refactoring and rewriting. The key
new features of the new version:

-   ndnSIM no longer re-implements basic NDN primitives and directly
    uses implementation from ndn-cxx library (NDN C++ library with
    eXperimental eXtensions).

-   All NDN forwarding and management is implemented directly using
    source code of Named Data Networking Forwarding Daemon (NFD). The
    current code is based on a22a2172611b1cb93b2e2f53d9d5da122b384f3e
    commit of NFD repository.

Note RIB Manager is not yet available in ndnSIM.

-   Packet format changed to the NDN packet format.

-   Code style changes to conform to ndn-cxx Code Style and Coding
    Guidelines This change also includes renaming of the header and
    source files: *.h -> *.hpp, *.cc -> *.cpp

-   ndnSIM now uses C++11.

New Features

-   Integration with NFD codebase:
-   A realistic behavior is added to the simulations.
-   Forwarding plane extensions can be used in both ndnSIM simulations
    and real NFD deployment.
-   Per namespace forwarding strategies for different namespaces (one
    strategy per namespace).
-   New examples:
-   ndn-load-balancer
-   ndn-grid-multiple-strategies
-   ndn-different-strategy-per-prefix
-   Basic examples using python bindings: ndn-simple.py and ndn-grid.py
-   Use of the the full-featured NDN packet format.
-   Full-featured support for Interest selectors.
-   Full-featured crypto operations can be simulated (disabled by
    default).
-   FibHelper to manage FIB entries.
-   StrategyChoiceHelper to manage per-namespace forwarding strategy
    selection.

Changes

-   HopCount tracing now includes only one way network-level hop count
    (e.g., the number of physical links traversed by a packet).
    Previously, this tracing was round-trip and included applications
    hops.
-   Python bindings have changed and, due to limitations of pybindgen,
    currently cover a smaller subset of C++ code (Task #2341).
-   LinkControlHelper now uses ErrorRate to simulate link
    failure/recovery. Previously it was relying on Up/Down flag on NDN
    level.
-   The Face abstraction of NFD is now used.

Bug fixes

-   Fix processing files with customized LossRate or Queue model in
    AnnotatedTopologyReader Bug #2354.

Removals

-   PyNDN emulation
-   (temporarily) ApiFace. Will be replaced with emulation of ndn-cxx
    ndn::Face in future releases (Issue #2370).
-   (temporarily) UdpFace, TcpFace (Issue #2371).
-   Limits, LimitsWindow, LimitsRate.
-   PIT, FIB with "replacement" policies.
-   Old deprecated packet formats.
  1. b4bd4b7 tests: Simple test to measure the number of interests that the current ndnSIM version can handle. by Spyridon Mastorakis · 10 years ago
  2. db8280f examples: Modifying examples to work with the new codebase by Spyridon Mastorakis · 10 years ago
  3. dca091a utils: Fix compilation of topology readers by Alexander Afanasyev · 10 years ago
  4. da904f2 utils: Fixes compilation of tracers by Spyridon Mastorakis · 10 years ago
  5. 89046c1 apps+helper+utils: Fixes of consumer and producer apps to work with the new codebase by Mickey Sweatt · 10 years ago
  6. 3f7dd87 helper: Redesigned link control helper by Alexander Afanasyev · 10 years ago
  7. 60f4b99 helper+model: GlobalRoutingHelper now interacts with NFD by Spyridon Mastorakis · 10 years ago
  8. 592fcba helper: StrategyChoiceHelper by Spyridon Mastorakis · 10 years ago
  9. 588fd10 helper: FibHelper to handle all Fib operations by Spyridon Mastorakis · 10 years ago
  10. 9760bd0 model+helper: Converting L3Protocol and StackHelper to use NFD codebase by Spyridon Mastorakis · 10 years ago
  11. 82d5ffe model: Enabling face operations based on NFD's face by Alexander Afanasyev · 10 years ago
  12. 1f1cd5e model: Fix original Contest Store to compile in new environment by Spyridon Mastorakis · 10 years ago
  13. e4f0d3c model: Removing more legacy code and make code to compile by Spyridon Mastorakis · 10 years ago
  14. 60c0462 build: Updated build scripts by Alexander Afanasyev · 10 years ago
  15. db31e7c build: Fixes and disabling PyNDN unless specifically requested by Alexander Afanasyev · 10 years ago
  16. adcff3d build: Honor "--disable-python" and disable PyNDN "compilation"/installation by Alexander Afanasyev · 11 years ago
  17. 0d584e3 examples: Adding an extremely basic WiFi-based ndnSIM scenario by Alexander Afanasyev · 11 years ago
  18. 9ab7d67 docs: Documentation update and returning requirement of boost 1.48 by Alexander Afanasyev · 11 years ago
  19. 3fe94dc utils/tracers: Modifying (simplifying) interface for ndnSIM tracers by Alexander Afanasyev · 11 years ago
  20. b4921ec PyNDN: adding option to install PyNDN to a custom location by Alexander Afanasyev · 11 years ago
  21. 6eba36f src: One more set of renaming: ndn-content-object.h|cc is renamed to ndn-data.h|cc by Alexander Afanasyev · 11 years ago
  22. f4e2452 plugins/ip-faces: ip-faces plugin, which implements ndn::TcpFace by Alexander Afanasyev · 11 years ago
  23. c141ec0 build: Fixing build problem with python bindings enabled, but visualizer disabled by Alexander Afanasyev · 11 years ago
  24. 0fb80b9 helper+docs+examples: New helper to simplify link failing by Alexander Afanasyev · 11 years ago
  25. 7992ab6 PyNDN: Small change and installing API by Alexander Afanasyev · 11 years ago
  26. 76b1157 PyNDN: Initial changes of PyNDN emulation in ndnSIM by Alexander Afanasyev · 11 years ago
  27. f23a7b6 model: A couple of tricks and fixes in NDN.cxx, so it will play nice with python bindings by Alexander Afanasyev · 11 years ago
  28. 9213601 model: Another major change: switching to NDN.cxx API for ndn::Name by Alexander Afanasyev · 11 years ago
  29. 7b923f3 model: Updated API for pluggable wire format by Alexander Afanasyev · 11 years ago
  30. 1043c70 model: Returning back support for CCNb wire format by Alexander Afanasyev · 11 years ago
  31. e4795ae model+ndn.cxx+apps: New application template (CallbackBasedApp) that can be used to prototype NS-3 applications in python by Alexander Afanasyev · 11 years ago
  32. 7960606 model: A basic implementation of ndn::ApiFace that can be used as an NDN handler in any "normal" NS-3 application by Alexander Afanasyev · 11 years ago
  33. 858d531 bindings: Rescan of python bindings by Alexander Afanasyev · 11 years ago
  34. faa01f9 model: Another set of refactoring/renaming to make code compile (not tested yet) by Alexander Afanasyev · 11 years ago
  35. 5bee19e model: First set of major API changes and reorganizations by Alexander Afanasyev · 11 years ago
  36. 79a5bd6 ndn.cxx: Initial work to introduce full NDN application API to ndnSIM by Alexander Afanasyev · 11 years ago
  37. c9f2e25 src: Adding LICENSE file and updating license statements in several files by Alexander Afanasyev · 11 years ago
  38. cd38c84 build: fixing bug with detection of installed boost libraries by Alexander Afanasyev · 11 years ago
  39. b66a89b build: allowing compilation with boost 1.46; removing requirement of boost-iostream library, requiring boost-graph library by Alexander Afanasyev · 11 years ago
  40. 1a62e61 build: no longer require fake `ns3' directory in NS-3's root folder by Alexander Afanasyev · 11 years ago
  41. 152660b build: Update wscript for waf-1.7.x by Alexander Afanasyev · 11 years ago
  42. d9a7f19 Issue #25 Replacing usage of TCP RTT estimator with a customized version by Alexander Afanasyev · 11 years ago
  43. 32c0756 model: Renaming ndn::NameComponents to simply ndn::Name by Alexander Afanasyev · 11 years ago
  44. 957a84a plugins+tools: Adding experimental RocketfuelMapReader and tool to convert topology from .cch format into annotated topology format by Alexander Afanasyev · 11 years ago
  45. 5931480 tracers+docs: Correcting compilation and installation of trace helpers by Alexander Afanasyev · 12 years ago
  46. 7d8127a build: Automatically adding 'mobility' dependency if topology plugin is enabled by Alexander Afanasyev · 12 years ago
  47. 1bfce32 build: Check minimum boost libraries version (1.48) by Alexander Afanasyev · 12 years ago
  48. e8dab50 general: Topology plugin is now compiled by default by Alexander Afanasyev · 12 years ago
  49. bd9c18e Solving a couple of bugs resulting from the packet format changes. Code compiles, but haven't fully tested yet by Alexander Afanasyev · 12 years ago
  50. f5c0774 limits: Introducing modularity for Interest limits by Alexander Afanasyev · 12 years ago
  51. a65ab32 build scripts: installing all ndnSIM header files under <ns3-include-path>/ndnSIM/ preserving folder hierarchy by Alexander Afanasyev · 12 years ago
  52. ed449cc Checkpoint by Alexander Afanasyev · 12 years ago
  53. 1a2df6a Small reorganization of utils/ folder contents by Alexander Afanasyev · 12 years ago
  54. ea9b3e6 Implementing base support for TCP-style window-based limiting on per-FIB-prefix and per-face granularity by Alexander Afanasyev · 12 years ago
  55. 2b4c947 Another set of refactoring by Alexander Afanasyev · 12 years ago
  56. 4aac557 First step of refactoring code (ccnx prefix => ndn prefix) by Alexander Afanasyev · 12 years ago
  57. e3d126f Start of serious reorganization by Alexander Afanasyev · 12 years ago
  58. 5662b36 python: rescanned bindings by Alexander Afanasyev · 12 years ago
  59. 11f7bb4 First step in reimplementing CcnxPit. Everything is broken as of right now by Alexander Afanasyev · 12 years ago
  60. 78057c3 Separating interface and implementation of FIB. Right now everything is by Alexander Afanasyev · 12 years ago
  61. 9a98970 Implementing new cache replacement strategies: Random and FIFO by Alexander Afanasyev · 12 years ago
  62. 4a3b2be Add dynamic dependency to 'mobile' if ndn plugin with the same name is enabled by Alexander Afanasyev · 12 years ago
  63. 4a4ea60 Renaming CcnxLocalFace to CcnxAppFace by Alexander Afanasyev · 12 years ago
  64. 57bcbc3 Renaming module to ndnSIM by Alexander Afanasyev · 12 years ago
  65. ac46d45 Adding --enable-ndn-plugins option to waf by Alexander Afanasyev · 12 years ago
  66. c1e33eb Moving helper components to the plugins/ folder. Disabling compilation of these components by Alexander Afanasyev · 12 years ago
  67. 7f3e49e For duplicate interests keep incoming face !!! Need more thinking by Alexander Afanasyev · 12 years ago
  68. 161a5c4 Small file reorganization (moving CCNx-unrelated stuff out of model/) by Alexander Afanasyev · 12 years ago
  69. a5abcd9 BGL implementation for ccnx global routing seems to work. Need more debugging by Alexander Afanasyev · 12 years ago
  70. f04d451 Adding a simple tutorial example by Alexander Afanasyev · 12 years ago
  71. 34a177c Merge remote-tracking branch 'git.irl/car2car' by Alexander Afanasyev · 12 years ago
  72. 18750bb Adding highway-mobility + CCNx scenario (vanet-ccnx.cc) by Alexander Afanasyev · 12 years ago
  73. 64b8536 Add car2car-wifi scenario by Lucas · 12 years ago
  74. 7e71c75 Adding IPv4 rate tracer by Alexander Afanasyev · 12 years ago
  75. ed78b63 New scenario to see details of reaction on congestion. Small change in AnnotatedTopologyReader API by Alexander Afanasyev · 12 years ago
  76. 812f7ab Adding one more scenario to compute shortest paths after failure by Alexander Afanasyev · 12 years ago
  77. 6c67838 Finalizing LinkFailure scenario by Alexander Afanasyev · 12 years ago
  78. 17acc11 Removing hijacker app. Hijacking is implemented now by changing face states by Alexander Afanasyev · 12 years ago
  79. e9c9d72 Change in CcnxApp API. Now callbacks also contain pointer of original by Alexander Afanasyev · 12 years ago
  80. b7ad232 One more change in Consumer API. Now there are more consumers and they by Alexander Afanasyev · 12 years ago
  81. 1067197 Merge remote-tracking branch 'git.irl/ilya' by Alexander Afanasyev · 12 years ago
  82. 2063c88 link failure and blackhole scenarios seem to work by Ilya Moiseenko · 12 years ago
  83. e4c2ece Tracing window size in CcnxConsumerWindow by Alexander Afanasyev · 12 years ago
  84. e1a065d Removing legacy examples. Moving test application to `test' folder by Alexander Afanasyev · 12 years ago
  85. f9d8fbe Combining NDN and TCP scenarios in congestion-pop.cc (to make sure by Alexander Afanasyev · 12 years ago
  86. 10db8f4 Temporarily comment out broken scenario by Alexander Afanasyev · 12 years ago
  87. 98a7cfc Merge remote-tracking branch 'git.irl/master' by Ilya Moiseenko · 12 years ago
  88. 1a3164d forgot wscript by Ilya Moiseenko · 12 years ago
  89. c4f8828 Correcting GlobalRouting lookups. Adding Ipv4SeqsAppTracer by Alexander Afanasyev · 13 years ago
  90. 36d5c2a Temp commit by Alexander Afanasyev · 13 years ago
  91. 1d2642a Congestion for Sprint-POP scenario (half-working) by Alexander Afanasyev · 13 years ago
  92. b3e4b85 Separating ccnx-tracers into separate files. by Alexander Afanasyev · 13 years ago
  93. 4975f73 Slight API change. Now there is only one CcnxAppHelper that can create all CcnxApps by Alexander Afanasyev · 13 years ago
  94. 6f5e8fa Synthetic topology by Ilya Moiseenko · 13 years ago
  95. cbe92ae All CCNx faces are now available through FaceList object attribute by Alexander Afanasyev · 13 years ago
  96. f9f4eb0 Resolve compilation issues (more accurate with headers) by Alexander Afanasyev · 13 years ago
  97. 0782718 Correcting python bindings (+ rescan) by Alexander Afanasyev · 13 years ago
  98. 09374c0 Merge remote-tracking branch 'git.irl/Ilya' by Alexander Afanasyev · 13 years ago
  99. 58d2667 Abilene and sprint topologies by Ilya Moiseenko · 13 years ago
  100. c39f0b4 Finalizing interest limits. Now everything seem to work. by Alexander Afanasyev · 13 years ago