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.
b4bd4b7 tests: Simple test to measure the number of interests that the current ndnSIM version can handle. by Spyridon Mastorakis · 10 years ago db8280f examples: Modifying examples to work with the new codebase by Spyridon Mastorakis · 10 years ago dca091a utils: Fix compilation of topology readers by Alexander Afanasyev · 10 years ago da904f2 utils: Fixes compilation of tracers by Spyridon Mastorakis · 10 years ago 89046c1 apps+helper+utils: Fixes of consumer and producer apps to work with the new codebase by Mickey Sweatt · 10 years ago 3f7dd87 helper: Redesigned link control helper by Alexander Afanasyev · 10 years ago 60f4b99 helper+model: GlobalRoutingHelper now interacts with NFD by Spyridon Mastorakis · 10 years ago 592fcba helper: StrategyChoiceHelper by Spyridon Mastorakis · 10 years ago 588fd10 helper: FibHelper to handle all Fib operations by Spyridon Mastorakis · 10 years ago 9760bd0 model+helper: Converting L3Protocol and StackHelper to use NFD codebase by Spyridon Mastorakis · 10 years ago 82d5ffe model: Enabling face operations based on NFD's face by Alexander Afanasyev · 10 years ago 1f1cd5e model: Fix original Contest Store to compile in new environment by Spyridon Mastorakis · 10 years ago e4f0d3c model: Removing more legacy code and make code to compile by Spyridon Mastorakis · 10 years ago 60c0462 build: Updated build scripts by Alexander Afanasyev · 10 years ago db31e7c build: Fixes and disabling PyNDN unless specifically requested by Alexander Afanasyev · 10 years ago adcff3d build: Honor "--disable-python" and disable PyNDN "compilation"/installation by Alexander Afanasyev · 11 years ago 0d584e3 examples: Adding an extremely basic WiFi-based ndnSIM scenario by Alexander Afanasyev · 11 years ago 9ab7d67 docs: Documentation update and returning requirement of boost 1.48 by Alexander Afanasyev · 11 years ago 3fe94dc utils/tracers: Modifying (simplifying) interface for ndnSIM tracers by Alexander Afanasyev · 11 years ago b4921ec PyNDN: adding option to install PyNDN to a custom location by Alexander Afanasyev · 11 years ago 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 f4e2452 plugins/ip-faces: ip-faces plugin, which implements ndn::TcpFace by Alexander Afanasyev · 11 years ago c141ec0 build: Fixing build problem with python bindings enabled, but visualizer disabled by Alexander Afanasyev · 11 years ago 0fb80b9 helper+docs+examples: New helper to simplify link failing by Alexander Afanasyev · 11 years ago 7992ab6 PyNDN: Small change and installing API by Alexander Afanasyev · 11 years ago 76b1157 PyNDN: Initial changes of PyNDN emulation in ndnSIM by Alexander Afanasyev · 11 years ago 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 9213601 model: Another major change: switching to NDN.cxx API for ndn::Name by Alexander Afanasyev · 11 years ago 7b923f3 model: Updated API for pluggable wire format by Alexander Afanasyev · 11 years ago 1043c70 model: Returning back support for CCNb wire format by Alexander Afanasyev · 11 years ago 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 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 858d531 bindings: Rescan of python bindings by Alexander Afanasyev · 11 years ago faa01f9 model: Another set of refactoring/renaming to make code compile (not tested yet) by Alexander Afanasyev · 11 years ago 5bee19e model: First set of major API changes and reorganizations by Alexander Afanasyev · 11 years ago 79a5bd6 ndn.cxx: Initial work to introduce full NDN application API to ndnSIM by Alexander Afanasyev · 11 years ago c9f2e25 src: Adding LICENSE file and updating license statements in several files by Alexander Afanasyev · 11 years ago cd38c84 build: fixing bug with detection of installed boost libraries by Alexander Afanasyev · 11 years ago b66a89b build: allowing compilation with boost 1.46; removing requirement of boost-iostream library, requiring boost-graph library by Alexander Afanasyev · 11 years ago 1a62e61 build: no longer require fake `ns3' directory in NS-3's root folder by Alexander Afanasyev · 11 years ago 152660b build: Update wscript for waf-1.7.x by Alexander Afanasyev · 11 years ago d9a7f19 Issue #25 Replacing usage of TCP RTT estimator with a customized version by Alexander Afanasyev · 11 years ago 32c0756 model: Renaming ndn::NameComponents to simply ndn::Name by Alexander Afanasyev · 11 years ago 957a84a plugins+tools: Adding experimental RocketfuelMapReader and tool to convert topology from .cch format into annotated topology format by Alexander Afanasyev · 11 years ago 5931480 tracers+docs: Correcting compilation and installation of trace helpers by Alexander Afanasyev · 12 years ago 7d8127a build: Automatically adding 'mobility' dependency if topology plugin is enabled by Alexander Afanasyev · 12 years ago 1bfce32 build: Check minimum boost libraries version (1.48) by Alexander Afanasyev · 12 years ago e8dab50 general: Topology plugin is now compiled by default by Alexander Afanasyev · 12 years ago 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 f5c0774 limits: Introducing modularity for Interest limits 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 ed449cc Checkpoint by Alexander Afanasyev · 12 years ago 1a2df6a Small reorganization of utils/ folder contents 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 2b4c947 Another set of refactoring by Alexander Afanasyev · 12 years ago 4aac557 First step of refactoring code (ccnx prefix => ndn prefix) by Alexander Afanasyev · 12 years ago e3d126f Start of serious reorganization by Alexander Afanasyev · 12 years ago 5662b36 python: rescanned bindings by Alexander Afanasyev · 12 years ago 11f7bb4 First step in reimplementing CcnxPit. Everything is broken as of right now by Alexander Afanasyev · 12 years ago 78057c3 Separating interface and implementation of FIB. Right now everything is by Alexander Afanasyev · 12 years ago 9a98970 Implementing new cache replacement strategies: Random and FIFO by Alexander Afanasyev · 12 years ago 4a3b2be Add dynamic dependency to 'mobile' if ndn plugin with the same name is enabled by Alexander Afanasyev · 12 years ago 4a4ea60 Renaming CcnxLocalFace to CcnxAppFace by Alexander Afanasyev · 12 years ago 57bcbc3 Renaming module to ndnSIM by Alexander Afanasyev · 12 years ago ac46d45 Adding --enable-ndn-plugins option to waf by Alexander Afanasyev · 12 years ago c1e33eb Moving helper components to the plugins/ folder. Disabling compilation of these components by Alexander Afanasyev · 12 years ago 7f3e49e For duplicate interests keep incoming face !!! Need more thinking by Alexander Afanasyev · 12 years ago 161a5c4 Small file reorganization (moving CCNx-unrelated stuff out of model/) by Alexander Afanasyev · 12 years ago a5abcd9 BGL implementation for ccnx global routing seems to work. Need more debugging by Alexander Afanasyev · 12 years ago f04d451 Adding a simple tutorial example by Alexander Afanasyev · 12 years ago 34a177c Merge remote-tracking branch 'git.irl/car2car' by Alexander Afanasyev · 12 years ago 18750bb Adding highway-mobility + CCNx scenario (vanet-ccnx.cc) by Alexander Afanasyev · 12 years ago 64b8536 Add car2car-wifi scenario by Lucas · 12 years ago 7e71c75 Adding IPv4 rate tracer by Alexander Afanasyev · 12 years ago ed78b63 New scenario to see details of reaction on congestion. Small change in AnnotatedTopologyReader API by Alexander Afanasyev · 12 years ago 812f7ab Adding one more scenario to compute shortest paths after failure by Alexander Afanasyev · 12 years ago 6c67838 Finalizing LinkFailure scenario by Alexander Afanasyev · 12 years ago 17acc11 Removing hijacker app. Hijacking is implemented now by changing face states by Alexander Afanasyev · 12 years ago e9c9d72 Change in CcnxApp API. Now callbacks also contain pointer of original by Alexander Afanasyev · 12 years ago b7ad232 One more change in Consumer API. Now there are more consumers and they by Alexander Afanasyev · 12 years ago 1067197 Merge remote-tracking branch 'git.irl/ilya' by Alexander Afanasyev · 12 years ago 2063c88 link failure and blackhole scenarios seem to work by Ilya Moiseenko · 12 years ago e4c2ece Tracing window size in CcnxConsumerWindow by Alexander Afanasyev · 12 years ago e1a065d Removing legacy examples. Moving test application to `test' folder by Alexander Afanasyev · 12 years ago f9d8fbe Combining NDN and TCP scenarios in congestion-pop.cc (to make sure by Alexander Afanasyev · 12 years ago 10db8f4 Temporarily comment out broken scenario by Alexander Afanasyev · 12 years ago 98a7cfc Merge remote-tracking branch 'git.irl/master' by Ilya Moiseenko · 12 years ago 1a3164d forgot wscript by Ilya Moiseenko · 12 years ago c4f8828 Correcting GlobalRouting lookups. Adding Ipv4SeqsAppTracer by Alexander Afanasyev · 13 years ago 36d5c2a Temp commit by Alexander Afanasyev · 13 years ago 1d2642a Congestion for Sprint-POP scenario (half-working) by Alexander Afanasyev · 13 years ago b3e4b85 Separating ccnx-tracers into separate files. by Alexander Afanasyev · 13 years ago 4975f73 Slight API change. Now there is only one CcnxAppHelper that can create all CcnxApps by Alexander Afanasyev · 13 years ago 6f5e8fa Synthetic topology by Ilya Moiseenko · 13 years ago cbe92ae All CCNx faces are now available through FaceList object attribute by Alexander Afanasyev · 13 years ago f9f4eb0 Resolve compilation issues (more accurate with headers) by Alexander Afanasyev · 13 years ago 0782718 Correcting python bindings (+ rescan) by Alexander Afanasyev · 13 years ago 09374c0 Merge remote-tracking branch 'git.irl/Ilya' by Alexander Afanasyev · 13 years ago 58d2667 Abilene and sprint topologies by Ilya Moiseenko · 13 years ago c39f0b4 Finalizing interest limits. Now everything seem to work. by Alexander Afanasyev · 13 years ago Next »