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