Tags: named-data/NLSR
Tags
NLSR version 24.08
Release date: August 12, 2024
Notable changes
- We have moved over to the CalVer versioning scheme to maintain
consistency with NFD going forward: 24.08 is the successor to 0.7.0
- The minimum build requirements have been increased as follows:
- GCC >= 9.3 or Clang >= 7.0 are strongly recommended on Linux; GCC
8.x is also known to work but is not officially supported
- Xcode 13 or later is recommended on macOS; older versions may still
work but are not officially supported
- Boost >= 1.71.0 and ndn-cxx >= 0.9.0 are required on all platforms
- Added Dockerfile for NLSR. A prebuilt image for linux/amd64 and
linux/arm64 platforms is available on the GitHub container registry
Improvements
- Defined equality operator for LSA classes and simplified LSA-related
code in NamePrefixList (4094)
- Standardized on operator<< in LSA classes for printing rather than
toString (5308)
- Introduced use of Boost bimap and multi_array classes to simplify
implementation of NameMap and link-state calculations for RoutingTable
respectively (5308)
- Removed forward dependency on ConfParameter in SyncLogicHandler (4208)
- Split routing calculator code from main class to separate files with
shared header to allow for transparent changes to routing code
- Additional miscellaneous refactoring
- Update waf build system to version 2.0.27
- Fix building the documentation with Python 3.12 (5298)
- Various miscellaneous improvements to build and CI scripts
Bug fixes
- Prevent crashes if received segment lacks KeyLocator when LSDB is
trying to fetch a certificate
- Prevent issues from dereferencing empty optional when link state
calculator was passed a non-existent source node (5308)
- Hello data freshness has been dropped to 0 seconds; this prevents
issues where Hellos can be cached and cause delays in detecting link
failures in certain cases (5265)
- Removed dead links to tarballs in docs
- Various adjustments to match ndn-cxx namespace changes
NLSR version 0.7.0
------------------
Release date: August 18, 2023
New features
^^^^^^^^^^^^
- Add experimental support for State Vector Sync (SVS) (:issue:`5248`)
- ``nlsrc``: Add an option to query the status from remote routers (:issue:`4544`)
Notable changes and improvements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- **Deprecate ChronoSync support**: ChronoSync support is now optional and excluded from the
default build; it remains available mainly for testing purposes (:issue:`5147`)
- Switched to the C++17 standard
- The minimum build requirements have been increased as follows:
- Either GCC >= 7.4.0 or Clang >= 6.0 is required on Linux
- On macOS, Xcode 11.3 or later is recommended; older versions may still work but are not
officially supported
- Boost >= 1.65.1 and ndn-cxx >= 0.8.1 are required on all platforms
- Sphinx 4.0 or later is required to build the documentation
- Refactor LSDB for readability and add signals to notify of modifications (:issue:`4127`)
- Retrieve LSA from the face that triggered the notification of LSA changes
- Accommodate certificate name in ``KeyLocator`` (:issue:`5195`)
- Change ``sig-type`` to ``ecdsa-sha256`` in ``nlsr.conf`` as ndn-cxx now has strict checking for it
- Improve error handling and reporting
- Stop using the ``gold`` linker on Linux; prefer instead linking with ``lld`` if installed
- Update waf build system to version 2.0.24
- Various test suite and documentation improvements
Bug fixes
^^^^^^^^^
- lsdb: Fix for issues involving incorrect retransmission behavior in segment fetcher
- Prevent NLSR from unregistering route during update for router that advertised it initially
(:issue:`5179`)
- NameLsa: fix LSDB update bug by sorting the NPLs before difference
- Fix recurring sync prefix registration on every hello data (:issue:`5157`)
- Return the appropriate exit codes when executing ``nlsrc`` advertise/withdraw commands
(:issue:`5271`)
NLSR version 0.6.0 ++++++++++++++++++ **Improvements and Bug Fixes** - **breaking change** Major changes in the TLV structure and classes. Reduced codebase size and improved compilation times. LSA de/serialize functions are replaced by wireEncode/Decode. Updated LSA wire formats and TLV assignments. Updated nlsrc to print using the new encoding. (:issue:`4787`, :issue:`5116`) - LSDB refactor: switch to ``boost::multi_index`` to replace 3 LSA lists (:issue:`4127`) - Fix wrong reaction on hello Interest timeout (:issue:`5139`)
NLSR version 0.5.2 ++++++++++++++++++ **Breaking Changes** The following breaking changes makes this release incompatible with the previous version. - Use latest PSync version 0.2.0, sync data compression enabled in full sync by default (:issue:`5061`, :issue:`4917`) - Use the double encoding/decoding functions for hyperbolic coordinates (:issue:`4615`) **New Features** - Handle zero cost links in Link State Routing (:issue:`4978`) **Improvements and Bug Fixes**: - Remove support for old combined seq no file (:issue:`4143`) - Sync common test infrastructure with ndn-cxx - Refactor Certificate Storage class (:issue:`5075`) - Avoid crashing NLSR if identity cannot be created - Change init order to register sync routes after hello data has been verified (:issue:`5009`) - Fix empty file creation if conf file is same as dynamic (:issue:`5071`) - On face event notification, only proceed if face id was zero or updated (:issue:`4394`)
NLSR version 0.5.1 ++++++++++++++++++ **Changes** - Set best-route strategy for certificate prefixes (:issue:`4881`) - Use ndn-cxx InMemoryStorage for LsaSegmentStorage (:issue:`4788`) - Switch from ndn::EventId to ndn::scheduler::EventId (:issue:`4883`) - Add FreshnessPeriod where MustBeFresh is used (:issue:`4913`) **Bug Fixes** - Fix canonization by resetting io service after each neighbor (:issue:`4872`) - Disable network interest in while fetching NLSR certificate (:issue:`4879`)
NLSR version 0.5.0 ++++++++++++++++++ **New Features** - Set CanBePrefix to false on Hello Interest (:issue:`4581`) - Optionally write prefixes to a copy of config file via nlsrc advertise (:issue:`4303`) - Use SegmentPublisher utility from PSync to publish LSA data (:issue:`4760`) - Add PSync as a dependency and switch it as default in conf file. (:issue:`4082`) **Changes** - Decouple classes from Nlsr object for easier unit testing (:issue:`1952`) - Set sequence number file in SequencingManager constructor. (:issue:`4288`) - Read conf file in test prefix update processor instead of static string (:issue:`3960`) - Canonize FaceUri in conf file processor (:issue:`4817`) - Remove redundant function "calculateHypDryRoutingTable" (:issue:`4811`) - In dry run mode, print HR and LS routing table in nlsrc separately (:issue:`4452`) - Fix ASan memory leaks in unit tests (:issue:`4682`) - Systemd service files dependency corrections for Ubuntu 18.04 (:issue:`4594`) **Bug Fixes** - Fix processing of interest w/ segments for segmented LSA data (:issue:`4784`) - Fib: don't refresh neighbor router's FIB entry (:issue:`4799`) - Disable Interest filter loopback where ever not needed (:issue:`4768`) - Avoid crash when ndn-cxx is compiled with tests by setting canBePrefix (:issue:`4691`) - Make sure NLSR is not using any deprecated API (:issue:`4679`) - Fix crash in equals operator of adjacency-list (:issue:`4705`) - Fix error handling and normalize exit codes **Miscellaneous** - Improving documentation for NLSR - A beginners' guide to installing and testing on Fedora
NLSR version 0.4.3 **Changes**: - **breaking change** Change NLSR to nlsr for various prefixes (:issue:`4543`) **Bug Fixes**: - Fix dry-run mode not working (:issue:`4394`) - Fix convergence w/o content store (:issue:`4430`) - Register router prefix to fix remote requests (:issue:`4543`) - Fix build with clang-5.0 (:issue:`4547`) - Avoid misaligned memory access (:issue:`4609`)
NLSR version 0.4.2 **Bug Fixes**: - Fix segfault in scheduled erase of lsa segment (:issue:`4520`)
NLSR version 0.4.1 **New features**: - The routing table dataset publisher (Issue 3630) - Use ndn-cxx logging facility, remove log4cxx dependency (Issue 3949) - Automatic serving of other routers' certificates (Issue 4448) **Bug Fixes**: - Hard-code a fixed session name for ChronoSync sockets (Issue 4513) - Fix encoding bug in the routing table publisher (Issue 4453) - Fix NLSR not converging without content store (Issue 4430) **Miscellaneous Changes**: - Make ChronoSync's sync interest lifetime configurable (Issue 4490) - Print labels on adjacency matrix when logging (Issue 2045)
NLSR version 0.4.0 ++++++++++++++++++ **New features**: - **breaking change** Discover Faces from NFD (:issue:`2954`) - **breaking change** Accommodate n-Dimensional HR coordinates (:issue:`3751`) **Changes**: - **breaking change** Make chronosync a dependency (:issue:`2400`) - **breaking change** Use separate name prefix and sequence number for each LSA type (:issue:`3964`) - **breaking change** Convert to ``v2::security`` and adapt to ndn-cxx changes (:issue:`3964`) - Use unix timestamp as default (:issue:`4187`) **Bug Fixes**: - Add support for sources to NamePrefixList (:issue:`4177`) - Fix incorrect error on face-dataset-fetch-interval valid values (:issue:`4211`) - Fix prefix advertise runtime error (:issue:`4215`) - Fix heap buffer overflow error (:issue:`4217`) **Code Changes**: - LSA getData() now uses ostream instead of manually building the string (:issue:`2346`) - Refresh FIB entries independently of routing table calculation (:issue:`2778`) - Change configuration parameter output level to info (:issue:`2850`) - Updates to name prefixes are more efficient (:issue:`2864`) - Implement statistics collector/recorder (:issue:`2956`) - Implement ``NameLsa::isEqualContent`` (:issue:`2962`) - Refactor ``Fib::removeOldNextHopsFromFibEntryAndNfd()`` for simplicity, readability. (:issue:`3820`) - Improve logging throughout lsdb.cpp and others (:issue:`3934`) - Enable dispatcher for LOCALHOST_PREFIX (:issue:`3938`) - Don't use ndn aliases provided by ndn-cxx/common.hpp (:issue:`3983`) - Canonize Adjacent FaceURIs on startup (:issue:`4063`) - Refactor AdjacencyList to use iterators instead of bare ptrs (:issue:`4068`) - Merge redundant functions (:issue:`4105`) - Remove writeLog in NamePrefixList (:issue:`4131`) - Check for self in ChronoSync updates (:issue:`4134`) - Install nlsr.conf as sample in the system (:issue:`4197`) - Enable AddressSanitizer and LeakSanitizer for unit tests (:issue:`4206`) - Resolve all ASan errors in unit tests (:issue:`4230`) - Simplified LSDB dataset interest handler. (:issue:`4235`) - Made map more container-agnostic (:issue:`4239`) - Improved routing map data structure. (:issue:`4240`) - Increased independence of SyncLogicHandler (:issue:`4264`) - Use unique_ptr for signal container (:issue:`4268`) - Use network name in sync prefix to avoid sync leaks from other networks (:issue:`4101`)
PreviousNext