Skip to content

Tags: named-data/NLSR

Tags

NLSR-24.08

Toggle NLSR-24.08's commit message

Verified

This tag was signed with the committer’s verified signature.
cawka Alex Afanasyev
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-0.7.0

Toggle NLSR-0.7.0's commit message
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-0.6.0

Toggle NLSR-0.6.0's commit message
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-0.5.2

Toggle NLSR-0.5.2's commit message

Verified

This tag was signed with the committer’s verified signature.
agawande Ashlesh Gawande
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-0.5.1

Toggle NLSR-0.5.1's commit message
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-0.5.0

Toggle NLSR-0.5.0's commit message
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-0.4.3

Toggle NLSR-0.4.3's commit message

Verified

This tag was signed with the committer’s verified signature.
agawande Ashlesh Gawande
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-0.4.2

Toggle NLSR-0.4.2's commit message

Verified

This tag was signed with the committer’s verified signature.
agawande Ashlesh Gawande
NLSR version 0.4.2

**Bug Fixes**:

- Fix segfault in scheduled erase of lsa segment (:issue:`4520`)

NLSR-0.4.1

Toggle NLSR-0.4.1's commit message

Verified

This tag was signed with the committer’s verified signature.
cawka Alex Afanasyev
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-0.4.0

Toggle NLSR-0.4.0's commit message

Verified

This tag was signed with the committer’s verified signature.
agawande Ashlesh Gawande
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`)