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. 70db992 core: simplify Logger with C++11 features by Junxiao Shi · 10 years ago
  2. b2bcbcd table: simplify PIT with C++11 features by Junxiao Shi · 10 years ago
  3. a1937bf core: use FaceUri from ndn-cxx by Junxiao Shi · 10 years ago
  4. 913806d fw: fix clang compilation error in best-route v2 test case by Junxiao Shi · 10 years ago
  5. 320d233 mgmt: Implement Query Operation in FaceManager by Chengyu Fan · 10 years ago
  6. cd55cde tools/tests: fix compilation errors caused by bind and placeholders by Junxiao Shi · 10 years ago
  7. 21303af common.hpp: delete boost::scoped_ptr by Junxiao Shi · 10 years ago
  8. 8e273ca rib+tools: avoid deprecated ndn::nfd::Controller(Face&) constructor by Junxiao Shi · 10 years ago
  9. 3651fd7 tests: Marking some cs test cases with expected failures by Alexander Afanasyev · 10 years ago
  10. 689f0e9 tools+core: Moving Network class implementation to core by Alexander Afanasyev · 10 years ago
  11. 838c4f1 table: simplify StrategyChoice with C++11 features by Junxiao Shi · 10 years ago
  12. 7c7c136 fw: fix best-route v2 strategy test case by Junxiao Shi · 10 years ago
  13. 3a8b1b5 table: simplify dead nonce list with C++11 features by Junxiao Shi · 10 years ago
  14. 56a21bf table: simplify FIB with C++11 features by Junxiao Shi · 10 years ago
  15. 39cd633 face: use MAX_NDN_PACKET_SIZE constant from ndn-cxx by Junxiao Shi · 10 years ago
  16. 3ffe66d core: use ethernet::Address from ndn-cxx by Junxiao Shi · 10 years ago
  17. 6990e4c face: drop WebSocket message if the size is larger than maximum NDN packet size by Wentao Shang · 10 years ago
  18. 1f30aac fw: redesign best-route v2 strategy test case by Junxiao Shi · 10 years ago
  19. c0640f5 mgmt: add config file-based strategy selection by Steve DiBenedetto · 10 years ago
  20. b4bac92 tools: Fix status-http-server hanging when nfd-status output is >64k by Alexander Afanasyev · 10 years ago
  21. 4e88e07 ci: Make sure we build NFD with tests and precompiled headers by Alexander Afanasyev · 10 years ago
  22. cf1e6e7 core: use EventEmitter from ndn-cxx by Junxiao Shi · 10 years ago
  23. 306df5e build: compile websocketpp in C++11 by Wentao Shang · 10 years ago
  24. ab1e8f2 build: Always build in C++11 mode. by Davide Pesavento · 10 years ago
  25. 35eefdf INSTALL.md: Uppercase by Felix Rabe · 10 years ago
  26. 4d4e725 ci: Embedding CI build and test running script by Alexander Afanasyev · 10 years ago
  27. 4cf4170 table: Evict unsolicited Data in FIFO order by Alexander Afanasyev · 10 years ago
  28. 67f11ac all: avoid usage of deprecated namespace ndn::Tlv by Junxiao Shi · 10 years ago
  29. a110f26 fw: use dead Nonce list in pipelines by Junxiao Shi · 10 years ago
  30. dae2530 nfdc: ensure FaceUri is in canonical form by Chengyu Fan · 10 years ago
  31. 9942cea tools, tests: replace FaceFlags with individual fields by Chengyu Fan · 10 years ago
  32. 27d570a tools: Display face attribute fields instead of FaceFlags by Chengyu Fan · 10 years ago
  33. 6687aab mgmt: allow omitted FaceId in faces/create command by Tai-Lin Chu · 10 years ago
  34. 8bfd56d fw: NccStrategy proper detection for new PIT entry by Junxiao Shi · 10 years ago
  35. 1553910 fw: optimize FwNccStrategy/FavorRespondingUpstream test case by Junxiao Shi · 10 years ago
  36. f9c2bb1 mgmt: replace FaceFlags with individual fields by Chengyu Fan · 10 years ago
  37. 77c8751 mgmt: update strategy-choice/set to return a versioned strategy name by Steve DiBenedetto · 10 years ago
  38. b4336c2 test: move general config section test to tests/daemon/mgmt by Steve DiBenedetto · 10 years ago
  39. 0e42c57 table: dead Nonce list by Junxiao Shi · 10 years ago
  40. 9873314 face: detect websocket connection failure using ping/pong messages. by Wentao Shang · 10 years ago
  41. b1c1a83 face: update websocketpp submodule to version 0.3.0 by Wentao Shang · 10 years ago
  42. 60d0638 table: Remove operator== for Exclude, which is now a part of the library by Alexander Afanasyev · 10 years ago
  43. e93d6a3 table: allow strategy versioning by Junxiao Shi · 10 years ago
  44. 82e7f58 fw: NccStrategy remembers only best face by Junxiao Shi · 10 years ago
  45. 3b21fa3 build: Fix build error with python3 by Alexander Afanasyev · 10 years ago
  46. c2642ca tools: Small formatting correction in plain text output of nfd-status by Alexander Afanasyev · 10 years ago
  47. 7b0e9cf tools: Publish /localhop/ndn-autoconf/routable-prefixes from ndn-autoconfig-server by Yingdi Yu · 10 years ago
  48. 3f5655f face: Fix spurious assertion failure in StreamFace by Davide Pesavento · 10 years ago
  49. 86bc91a face: Allow trailing slash for UDP and TCP FaceUri's by Alexander Afanasyev · 10 years ago
  50. 2075788 docs: Update to generate proper google analytics code by Alexander Afanasyev · 10 years ago
  51. 62a9394 doc: streamline NFD homepage and README documentation by Steve DiBenedetto · 10 years ago
  52. 186c316 docs: Updated release notes by Alexander Afanasyev · 10 years ago
  53. e918621 build: Disable Ethernet face support on OSX with Boost 1.56 by Alexander Afanasyev · 10 years ago
  54. 48f5a3c build: Enable detailed version information when built from shallow clone or tarball by Alexander Afanasyev · 10 years ago
  55. 986b849 fw: Best Route Strategy version 2 by Junxiao Shi · 10 years ago
  56. 26b215c rib: Add periodic invalid face clean up by Vince Lehman · 10 years ago
  57. 281ded7 rib: Cancel expiration on unregistration by Vince Lehman · 10 years ago
  58. 1c630ba tools: display RIB flags by name in nfd-status page by Chengyu Fan · 10 years ago
  59. ad3f1cb fw: when Interest matches CS, set straggler timer on PIT entry by Junxiao Shi · 10 years ago
  60. bc05b76 rib: Log individual FIB updates by Vince Lehman · 10 years ago
  61. 6717964 tools: display face flags and expiration in nfd-status page by Chengyu Fan · 10 years ago
  62. 6a75b76 build: Do not warn about C99 extensions by Alexander Afanasyev · 10 years ago
  63. f056c11 tools: Process auto-registration for faces that existed prior to start of nfd-autoreg by Alexander Afanasyev · 10 years ago
  64. 81c1a2a tools: Enable "all-faces-prefix" option to register prefix for all face (on-demand and non-on-demand) by Alexander Afanasyev · 10 years ago
  65. a55663d tools: fixing bug of misleading lifetime and plural time unit for RIB in HTTP status page by Chengyu Fan · 10 years ago
  66. 4c1a078 face: increment link layer byte counters in EthernetFace by Davide Pesavento · 10 years ago
  67. 483efd1 rib: Disable FaceId check for self-registrations by Alexander Afanasyev · 10 years ago
  68. cbb490a fw: NccStrategy always sets pitEntryEntry->maxInterval by Junxiao Shi · 10 years ago
  69. 585e5a6 rib+tools: Make use of ndn::nfd::FaceMonitor from the ndn-cxx library by Alexander Afanasyev · 10 years ago
  70. 15b12e7 core: use markers in StatusDataset and NotificationStream by Junxiao Shi · 10 years ago
  71. b303324 table: Fix segfault during Fib::removeNextHopFromAllEntries by Alexander Afanasyev · 10 years ago
  72. cd613c5 rib: Verify face before route registration by Vince Lehman · 10 years ago
  73. e612e2f face: increment link layer byte counters in WebSocketFace by Wentao Shang · 10 years ago
  74. 8a53caf tools: include the key name in keylocator as the NFD id in nfd-status by Chengyu Fan · 10 years ago
  75. 68bc1e0 Merge remote-tracking branch 'named-data/master' into release-0.2.0 by Alexander Afanasyev · 10 years ago
  76. 3331cfa tools: Visualize per-face link-layer byte counts in nfd-status by Chengyu Fan · 10 years ago
  77. 2fdbe86 build: Fix bug in instructions to get websocketpp library by Alexander Afanasyev · 10 years ago
  78. ee5a444 table: erase NameTree entry when FIB/Measurements/StrategyChoice entry is erased by Junxiao Shi · 10 years ago
  79. 5dd26c3 face: increment link layer byte counters in StreamFace and DatagramFace by Junxiao Shi · 10 years ago
  80. 30aa207 tools: visualize RIB dataset in nfd-status by Chengyu Fan · 10 years ago
  81. 4e9a98f core: Force SegmentPublisher to publish at least one Data packet, which could have empty content by Alexander Afanasyev · 10 years ago
  82. cd16c83 rib: Add RIB dataset publisher by Vince Lehman · 10 years ago
  83. 5144f82 mgmt+core: Moving SegmentPublisher to core/ and removing KeyChain from nfd::AppFace by Vince Lehman · 10 years ago
  84. e5966b7 face: Serializing StreamFace::send(Interest|Data) operations using queue by Alexander Afanasyev · 10 years ago
  85. 632a620 mgmt: expose link layer counters in Face Dataset by Junxiao Shi · 10 years ago
  86. 7b984c6 face: reserved FaceIds and NullFace by Junxiao Shi · 10 years ago
  87. 97a9c2c rib: Create response Data as shared_ptr to avoid copy inside Face::put by Alexander Afanasyev · 10 years ago
  88. 651b75e table: capacity limit in PIT NonceList by Junxiao Shi · 10 years ago
  89. 33152f1 face: link layer byte counts in FaceCounters by Junxiao Shi · 10 years ago
  90. b609f00 rib: Fixing bug with RibUnregister when route origin is not specified by Alexander Afanasyev · 10 years ago
  91. 56356b2 rib: Fixing bug with RibUnregister when route origin is not specified by Alexander Afanasyev · 10 years ago
  92. f67cf08 rib: Update to properly handle optional ExpirationPeriod in RibRegister command by Alexander Afanasyev · 10 years ago
  93. 8a09376 tools: Corrections and visual improvements for nfd-status-http-server by Alexander Afanasyev · 10 years ago
  94. fb1c808 rib: Fix to correctly set default expiration for self-registrations by Alexander Afanasyev · 10 years ago
  95. 45d1a76 tools: nfd-status-http-server: serve XML by Chengyu Fan · 10 years ago
  96. a57f8b4 fw: set unsatisfy timer in incoming Interest pipeline by Alexander Afanasyev · 10 years ago
  97. 28d586a table: Store shared_ptr<Interest> instead of just Interest to avoid extra copy by Alexander Afanasyev · 10 years ago
  98. 7bbe80c mgmt: Change InternalFace::processEvents to accept shared_ptr, instead of weak_ptr by Alexander Afanasyev · 10 years ago
  99. 38c215d ndn.cxx: Fixing small bug in name::Component::toUri() by Alexander Afanasyev · 10 years ago ndnSIM-1.0 v0.6
  100. 72446ec rib: Unit tests for RibManager by Vince Lehman · 10 years ago