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