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. 963621b docs: Add release notes and final documentation corrections by Alexander Afanasyev · 9 years ago ndnSIM-2.0
  2. 47a6092 docs: Correction of name spelling by Spyridon Mastorakis · 9 years ago
  3. a149775 docs: Extend list of research papers that use ndnSIM by Alexander Afanasyev · 9 years ago
  4. 460f57c docs: Documentation update by Spyridon Mastorakis · 10 years ago
  5. b4bd4b7 tests: Simple test to measure the number of interests that the current ndnSIM version can handle. by Spyridon Mastorakis · 10 years ago
  6. dc6fae8 model+utils: Enable SatisfiedInterests and TimedOutInterests trace sources in L3Protocol by Alexander Afanasyev · 9 years ago
  7. 9bcf39e NFD: Extend forwarding pipelines with beforeSatisfyInterest and beforeExpirePendingInterest signals by Alexander Afanasyev · 9 years ago
  8. afe47fe examples: Restoring old examples that can be restored and fixing existing ones by Alexander Afanasyev · 10 years ago
  9. 66ae18b utils: Fix AnnotatedTopologyReader to process customized LossRate or Queue models by Alexander Afanasyev · 10 years ago
  10. e316ab2 examples: Add python-based scenario examples by Alexander Afanasyev · 10 years ago
  11. 5713e7a bindings: Manually adding some python bindings by Alexander Afanasyev · 10 years ago
  12. 6b2a3c0 model: Add method that is necessary for python bindings by Alexander Afanasyev · 10 years ago
  13. dde1e81 model+helper+examples: Enable configurability of NFD parameters using StackHelper by Alexander Afanasyev · 10 years ago
  14. 542a623 NFD: Extending ConfigFile to support passing of a parsed ConfigSection instead of raw config file by Alexander Afanasyev · 10 years ago
  15. 60a7b62 docs: Updating copyright notices in files by Alexander Afanasyev · 10 years ago
  16. 4909d0a examples: ndn-different-strategy-per-prefix: New example. by Spyridon Mastorakis · 10 years ago
  17. 41fbfe1 examples: New example to show how to select multiple strategies for different prefixes by Spyridon Mastorakis · 10 years ago
  18. 77b6366 examples: New example with custom strategy "random-load-balancer-strategy" by Spyridon Mastorakis · 10 years ago
  19. db8280f examples: Modifying examples to work with the new codebase by Spyridon Mastorakis · 10 years ago
  20. dca091a utils: Fix compilation of topology readers by Alexander Afanasyev · 10 years ago
  21. da904f2 utils: Fixes compilation of tracers by Spyridon Mastorakis · 10 years ago
  22. 89046c1 apps+helper+utils: Fixes of consumer and producer apps to work with the new codebase by Mickey Sweatt · 10 years ago
  23. de1f773 NFD: Keep both the CS of NFD and ndnSIM by Spyridon Mastorakis · 10 years ago
  24. 3f7dd87 helper: Redesigned link control helper by Alexander Afanasyev · 10 years ago
  25. 60f4b99 helper+model: GlobalRoutingHelper now interacts with NFD by Spyridon Mastorakis · 10 years ago
  26. 592fcba helper: StrategyChoiceHelper by Spyridon Mastorakis · 10 years ago
  27. 588fd10 helper: FibHelper to handle all Fib operations by Spyridon Mastorakis · 10 years ago
  28. 9760bd0 model+helper: Converting L3Protocol and StackHelper to use NFD codebase by Spyridon Mastorakis · 10 years ago
  29. 86edf6f utils: Enable use of the simulation time in NFD by Spyridon Mastorakis · 10 years ago
  30. 34e13f3 utils: Enable use of DummyKeychain to avoid crypto overhead by Alexander Afanasyev · 10 years ago
  31. 82d5ffe model: Enabling face operations based on NFD's face by Alexander Afanasyev · 10 years ago
  32. eb7d530 bindings: Removing all automatically generated bindings by Alexander Afanasyev · 10 years ago
  33. dbc7794 NFD: Replace NFD logger with NS3 logging facility by Alexander Afanasyev · 10 years ago
  34. 1de5da6 NFD: Redirecting nfd::scheduler to ns3::Simulator and getting rid of GlobalIo by Alexander Afanasyev · 10 years ago
  35. 0fb253e NFD: Enable metric parameter on a face by Alexander Afanasyev · 10 years ago
  36. dc88971 NFD: Disabling all "standard" face types in Face manager by Alexander Afanasyev · 10 years ago
  37. 7245d5d NFD: Adding readme and auto-generated headers by Alexander Afanasyev · 10 years ago
  38. e98f2e8 NFD: Removing parts irrelevant for the simulator by Alexander Afanasyev · 10 years ago
  39. d9b58ac Add 'NFD/' from commit 'a22a2172611b1cb93b2e2f53d9d5da122b384f3e' by Alexander Afanasyev · 10 years ago
  40. a22a217 face: fix overhead estimation in NDNLP slicer by Junxiao Shi · 10 years ago
  41. c91ebfa table: Allow iteration over CS entries by Alexander Afanasyev · 10 years ago
  42. 8934c42 table: Ensure that Cs::erase removes the item from the cleanup index by Alexander Afanasyev · 10 years ago
  43. 750fa1c table: Allow iteration over PIT entries by Alexander Afanasyev · 10 years ago
  44. 09fc3d9 table: Ensure Fib::const_iterator is default and copy constructible by Alexander Afanasyev · 10 years ago
  45. eae4f80 face: Limit exposure of EthernetFace implementation by Alexander Afanasyev · 10 years ago
  46. 39ef261 table: StrategyInfoHost stores multiple StrategyInfo of distinct types by Junxiao Shi · 10 years ago
  47. ded1aa6 model: PacketHeader<T> and interface with NS-3 by Spyridon Mastorakis · 10 years ago
  48. 158f73f docs: Update config file instructions for disabling unix sockets by Steve DiBenedetto · 10 years ago
  49. 0717901 model+utils: Replace boost::tuple with std::tuple in trie implementation by Alexander Afanasyev · 10 years ago
  50. 1f1cd5e model: Fix original Contest Store to compile in new environment by Spyridon Mastorakis · 10 years ago
  51. e4f0d3c model: Removing more legacy code and make code to compile by Spyridon Mastorakis · 10 years ago
  52. 53e922f ndnSIM-v2: Initial implementation by Spyridon Mastorakis · 10 years ago
  53. 0b0942b src: Reorganization by Alexander Afanasyev · 10 years ago
  54. be55cf6 src: Updating code style to conform (more or less) to ndn-cxx style by Alexander Afanasyev · 10 years ago
  55. 0c39537 build: Fixing of includes by Alexander Afanasyev · 10 years ago
  56. 60c0462 build: Updated build scripts by Alexander Afanasyev · 10 years ago
  57. 76f8f65 src: Renaming files according to ndn-cxx naming convention by Alexander Afanasyev · 10 years ago
  58. 012760b ndnSIM-v2: Removing old and legacy code by Alexander Afanasyev · 10 years ago
  59. 3cb4fc6 fw: use UnitTestTimeFixture in NCC test case by Junxiao Shi · 10 years ago
  60. f8b41eb face: Fix ioctl() calls on platforms where libpcap uses /dev/bpf* by Davide Pesavento · 10 years ago
  61. 4147c00 build: disable EthernetFace only with boost 1.56.0, not later versions. by Davide Pesavento · 10 years ago
  62. 8eb9957 face: Support MTU larger than 1500 in EthernetFace (for jumbo frames) by Davide Pesavento · 10 years ago
  63. c5173de face: Don't crash when attempting to create UdpFace over a half-working connection by Alexander Afanasyev · 10 years ago
  64. b9d439d rib: remote prefix registration by Yanbiao Li · 10 years ago
  65. b94af7c mgmt: Allow only canonical FaceUri in faces/create command by Chengyu Fan · 10 years ago
  66. 508411e docs: Installation instruction updates by Alexander Afanasyev · 10 years ago
  67. e5e1e25 docs: list pkg-config as a compilation dependency by Junxiao Shi · 10 years ago
  68. 27533da core: scheduler::ScopedEventId by Junxiao Shi · 10 years ago
  69. 7e14816 core: Add a warning comment for listNetworkInterfaces() function by Alexander Afanasyev · 10 years ago
  70. 49e11e7 fw: give strategy access to FaceTable by Junxiao Shi · 10 years ago
  71. 1e06417 fw: use Signal in FaceTable by Junxiao Shi · 10 years ago
  72. cd4ee5f mgmt,rib: check command length before accessing verb by Steve DiBenedetto · 10 years ago
  73. ac7b437 table/face: fix unused variable warnings in NameTree and NDNLP Slicer by Junxiao Shi · 10 years ago
  74. 584a569 fw: use UnitTestClock in BestRouteStrategy2 test by Junxiao Shi · 10 years ago
  75. 70aaf8a face: Prevent infinite loop in TcpFactory and UdpFactory by Alexander Afanasyev · 10 years ago
  76. 6077b39 build+ci: Fixing compilation and CI scripts by Alexander Afanasyev · 10 years ago
  77. 27be0b0 tools: nfdc accepts FaceUri in all commands by Chengyu Fan · 10 years ago
  78. 1c93cae fw: add override specifier to Strategy triggers by Junxiao Shi · 10 years ago
  79. 66df974 face: implement NDNLP fragmentation in EthernetFace by Matteo Sammarco · 10 years ago
  80. e368d99 table: simplify Measurements with C++11 features by Junxiao Shi · 10 years ago
  81. 2ef9957 tools: display nfd software verion in nfd-status-http-server and nfd-status by Hila Ben Abraham · 10 years ago
  82. afbd74d core: eliminate MapValueIterator in favor of boost::adaptors::map_values by Junxiao Shi · 10 years ago
  83. 5ccd0c2 table: use boost::iterator_range in NameTree by Junxiao Shi · 10 years ago
  84. 4b2e6cb table: fix Fib::removeNextHopFromAllEntries invalidating NameTree iterator by Junxiao Shi · 10 years ago
  85. 7726ae5 face: make EthernetFace more robust against errors. by Davide Pesavento · 10 years ago
  86. 75ab6b7 fw: use LimitedIo in FwForwarder/SimpleExchange test case by Junxiao Shi · 10 years ago
  87. 6db058c build: Embed setting of PKG_CONFIG_PATH variable to commonly used values by Alexander Afanasyev · 10 years ago
  88. 60607c7 table: make NameTree enumeration usable with range-based for by Junxiao Shi · 10 years ago
  89. 2bf8d2a table: pit::FaceRecord uses DEFAULT_INTEREST_LIFETIME from ndn-cxx by Junxiao Shi · 10 years ago
  90. 455581d fw: use UnitTestClock in Forwarder persistent loop test case by Junxiao Shi · 10 years ago
  91. 759f706 build: disable assertions in release builds by Junxiao Shi · 10 years ago
  92. 2e0db68 cs-smoketest: data.wireEncode() before CS insert by Junxiao Shi · 10 years ago
  93. c17de83 rib: remote prefix registration by Yanbiao Li · 10 years ago
  94. 10783f2 EthernetFace: avoid putting the NIC in promiscuous mode if possible. by Davide Pesavento · 10 years ago
  95. b499a60 core: ignore non-Ethernet AF_LINK addresses when enumerating NICs. by Davide Pesavento · 10 years ago
  96. 2b73ca3 table: make NameTree::findAllMatches usable with range-based for by Junxiao Shi · 10 years ago
  97. 376f737 tests: use DummyClientFace from ndn-cxx by Junxiao Shi · 10 years ago
  98. ab205c2 mgmt: respond Nack when query is invalid by Chengyu Fan · 10 years ago
  99. ec3e4fc tests: Removing usage of deprecated MetaInfo::TYPE_* constants by Alexander Afanasyev · 10 years ago
  100. dbcb1a1 mgmt: remove listen option from unix channel configuration by Steve DiBenedetto · 10 years ago