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