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.
« Previous 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 5d79e68 model: Initial attempt to optimize Interest/Data encoding/decoding via a custom packet format by Alexander Afanasyev · 12 years ago e1b2a2d apps: Correcting behavior of ndn::ConsumerWindow. by Alexander Afanasyev · 12 years ago 042b4a7 fw+doc: Renaming and extending limit extenstion by Alexander Afanasyev · 12 years ago a8f5d88 limits: Adding ability for GlobalRoutingController to set precise BDP prefix limits using knowledge of RTT for destination by Alexander Afanasyev · 12 years ago db15acb fw: Slightly modifying events for Interest forwarding. by Alexander Afanasyev · 12 years ago a0d9489 docs: README update by Alexander Afanasyev · 12 years ago 08ab572 limits: Adding support for callback that fired every time a new slot becomes available by Alexander Afanasyev · 12 years ago 697a36a plugin-mobility: Correcting implementation to work with the latest NS-3 version (3.15-dev) by Alexander Afanasyev · 12 years ago 669cafd Fixing "batches.h" header inclusions. by Alexander Afanasyev · 12 years ago ccd5bb4 limits: Reverting back renaming of SimpleLimits strategy by Alexander Afanasyev · 12 years ago 7e4235a limits: finalizing rate-based limits by Alexander Afanasyev · 12 years ago 6f95e70 limits: one more update and small interface changes by Alexander Afanasyev · 12 years ago f5c0774 limits: Introducing modularity for Interest limits by Alexander Afanasyev · 12 years ago 0484e77 model.fw: Correcting a "slightly" broken NACKs, though still not sure if everything works as it should. by Alexander Afanasyev · 12 years ago b5e54f9 plugins.topology: Adding basic error handling by Alexander Afanasyev · 12 years ago ef94e91 utils: Adding option to obtain the value of the current limit in ndn::Limits by Alexander Afanasyev · 12 years ago 0fff1db model.fw: Template-based implementation of SimpleLimits strategy by Alexander Afanasyev · 12 years ago 15b7114 docs: Small update of Doxygen by Alexander Afanasyev · 12 years ago a28ec56 utils: ndn::Limits now uses double for the internal limits parameter and invalid when (by default) it is set to a negative value by Alexander Afanasyev · 12 years ago 6466fff fw: Adding a couple of new events. Adding more documentation for events. by Alexander Afanasyev · 12 years ago a65ab32 build scripts: installing all ndnSIM header files under <ns3-include-path>/ndnSIM/ preserving folder hierarchy by Alexander Afanasyev · 12 years ago 9bab368 Additional cleaning. Repairing tests. by Alexander Afanasyev · 12 years ago 6dbacda docs: Adding a new example of how to use AnnotatedTopologyReader, as well as a new FAQ section with a couple of commonly asked questions. by Alexander Afanasyev · 12 years ago 7099ffb docs: Adding example of how to build ndnSIM using non-root-installed boost libraries by Alexander Afanasyev · 12 years ago e1aa9b9 When interest is satisfied from the local cache, the wrong order of by Alexander Afanasyev · 12 years ago f383047 Correcting wrong assert in ndn::App. Actually, making this assert to just print an error message instead. by Alexander Afanasyev · 12 years ago 1cd79ae docs: Documentation update by Alexander Afanasyev · 12 years ago cba7392 More unrelevant files by Alexander Afanasyev · 12 years ago ed3ffc8 Removing unrelevant stuff by Alexander Afanasyev · 12 years ago 8db3cba Correcting randomized model. Treat unknown stats as 100%, call parent by Alexander Afanasyev · 12 years ago 663d63f Small extension of InterestHeader API (cheat for python bindings) by Alexander Afanasyev · 12 years ago 048c4ad Remove bug causing unnecessary limit transmission by Alexander Afanasyev · 12 years ago 1e7bcaf Adding strategy with implementation of simple face-based limits by Alexander Afanasyev · 12 years ago caeade2 Separating dynamic limits into a separate forwarding strategy enhancement by Alexander Afanasyev · 12 years ago 3cdda24 doc: Adding more descriptions of how to compile ndnSIM by Alexander Afanasyev · 12 years ago ca5f6d1 Rescanned python binding by Alexander Afanasyev · 12 years ago cdd223c Suppressing warning in debug mode by Alexander Afanasyev · 12 years ago ff22977 Add counter for interest and data packets (for performance evaluations) by Alexander Afanasyev · 12 years ago 0f83f90 Add option to enable/disable NACKs to notify about queue drops by Alexander Afanasyev · 12 years ago c771961 Checkpoint. Enabling nacks back, "reverting" count statistics on nacks by Alexander Afanasyev · 12 years ago b1ec249 Checkpoint. Basic support (and not real success) for interest limits by Alexander Afanasyev · 12 years ago aebf5cf L3Protocol::GetFace now returns face by index, not by ID as it was by Alexander Afanasyev · 12 years ago 187cba2 Checkpoint. Max bad/good ratio is 1:10. Unknown stats implies 50%. If by Alexander Afanasyev · 12 years ago c23a3e3 Now there is a semi success with nacks disabled and huge problem with nacks enabled by Alexander Afanasyev · 12 years ago 98c16e0 Checkpoint. Adding data structures to support weighted round robin by Alexander Afanasyev · 12 years ago 6f101fc Semi success with NACK enabled. Now need more NACK types and different processing by Alexander Afanasyev · 12 years ago ff03395 Semi-success with "fair" sharing without NACKs by Alexander Afanasyev · 12 years ago 08b7d9e More progress with buffers by Alexander Afanasyev · 12 years ago 67ae4b6 Small update of documentation (changing ndnSIM website URL) by Alexander Afanasyev · 12 years ago 372cbab Base per-incoming queue limit on per-Face limit (instead of a precompiled value) by Alexander Afanasyev · 12 years ago 0ffa716 One more checkpoint. Now the code seems to work in a basic scenario by Alexander Afanasyev · 12 years ago 91e1128 Another checkpoint by Alexander Afanasyev · 12 years ago 5db9217 Checkpoint. Some changes in forwarding strategy API by Alexander Afanasyev · 12 years ago 38ba9b2 Checkpoint #2 by Alexander Afanasyev · 12 years ago ed449cc Checkpoint by Alexander Afanasyev · 12 years ago ec1e395 Checkpoint by Alexander Afanasyev · 12 years ago 048ae42 Draft PitQueue implementation using virtual time concept (good thing, but most likely not be used, at least initially) by Alexander Afanasyev · 12 years ago 1a2df6a Small reorganization of utils/ folder contents by Alexander Afanasyev · 12 years ago 31cb469 One more big change: prototypes of most of the forwarding strategy functions has been changed by Alexander Afanasyev · 12 years ago ccbd834 (Re-)Implementing randomized Interest accept based on satisfaction ratio stats. by Alexander Afanasyev · 12 years ago 92b5f83 Reverting back exponential averaging for LoadStats. Disabling two long-term time granularities (affects entry lifetime). by Alexander Afanasyev · 12 years ago 70426a0 Disabling FIB-entry-limit decrease. Implementing probabilistic interest by Alexander Afanasyev · 12 years ago 6a3bb13 ForwardingStrategy removes PIT if interest wasn't propagated. Updated by Alexander Afanasyev · 12 years ago 3476edf A slightly modified FwPerFibLimits test. Modified ConsumerBatches by Alexander Afanasyev · 12 years ago 8067ff1 BUG: Default value of ns3 object system is created exactly once, not per CreateObject operation. by Alexander Afanasyev · 12 years ago ea9b3e6 Implementing base support for TCP-style window-based limiting on per-FIB-prefix and per-face granularity by Alexander Afanasyev · 12 years ago f986cde Removing support for LeakyBucket per-face limit by Alexander Afanasyev · 12 years ago 29c19b9 Content Store extension. Now it supports the same enumeration interface available for PIT and FIB by Alexander Afanasyev · 12 years ago b18ae02 Memory optimization (removing scheduled events instead of just cancelling them) by Alexander Afanasyev · 12 years ago c202fd9 Replacing boost::multi_index to std::set for OutgoingFaces in PIT entry by Alexander Afanasyev · 12 years ago 92d5be1 Regression: RTO in Consumers was not exponentially increased by Alexander Afanasyev · 12 years ago 5b054aa Small documentation update by Alexander Afanasyev · 12 years ago 424d584 Fixes #6 unordered_set buckets are increased exponentially by Alexander Afanasyev · 12 years ago f6807a5 Final updates and documentation fixes by Alexander Afanasyev · 12 years ago cf6dc92 Now everything compiles, but not everything is working yet by Alexander Afanasyev · 12 years ago 2b4c947 Another set of refactoring by Alexander Afanasyev · 12 years ago b8d14ad Documentation correction by Alexander Afanasyev · 12 years ago e77db79 Normalizing namespace usage (ndnSIM namespace is now always under ns3) by Alexander Afanasyev · 12 years ago 5feb38b Rescanned bindings for the refactored code base by Alexander Afanasyev · 12 years ago 4aac557 First step of refactoring code (ccnx prefix => ndn prefix) by Alexander Afanasyev · 12 years ago 1f288e3 Merge remote-tracking branch 'git.irl/master' by Alexander Afanasyev · 12 years ago 1cb4aad Introducing some cheats in order to make code compilable with old (<1.47) version of boost libraries by Alexander Afanasyev · 12 years ago 98d85e1 An extension for CcnxFace, allowing a non-persistent (randomized) limit checking procedure by Alexander Afanasyev · 12 years ago b1b7f5d Small corrections by Alexander Afanasyev · 12 years ago ff6e369 Adding helper checks for required number of partitions in AnnotatedTopologyReader if MPI is enabled by Alexander Afanasyev · 12 years ago ad82e25 BUGS: Solving (apparently) two subtle bugs in new PIT and ContentStore implementations by Alexander Afanasyev · 12 years ago 8a53f76 More documentation update: new names for forwarding strategies by Alexander Afanasyev · 12 years ago 508269a Major update of documentation (ns-3 color scheme, NDN and IRL logos) by Alexander Afanasyev · 12 years ago 6b51b08 BUG: time index for PIT entry was using wrong data structure (set instead of multiset), which caused extremely unexpected behavior by Alexander Afanasyev · 12 years ago 0194543 Adding partitioning support to AnnotatedTopologyReader by Alexander Afanasyev · 12 years ago 89e02c4 Enable basic support for MPI in CcnxAppHelper by Alexander Afanasyev · 12 years ago 0a0dc39 BUG: Solving the problem that was crashing the simulator by Alexander Afanasyev · 12 years ago d4c4f36 FwStats now does not track full prefixes. Instead, the last components by Alexander Afanasyev · 12 years ago 59dedfd New 'cut' method in CcnxNameComponents (similar to java API cut method) by Alexander Afanasyev · 12 years ago 33364b6 Implementing face clean up callback in forwarding strategy by Alexander Afanasyev · 12 years ago bd6f3f4 Small update of PIT. Now pit implementation is policy-templated. by Alexander Afanasyev · 12 years ago 1c0248b Adding more statistics collection (number of transmitted/received bytes by Alexander Afanasyev · 12 years ago 77495a9 FwStats: when PIT entry cannot be created (limit or unknown prefix), by Alexander Afanasyev · 12 years ago 3c5b6a7 Changed behavior: when a node receives an interest that cannot be by Alexander Afanasyev · 12 years ago Next »