Release Notes
=============

NLSR version 0.3.2 (changes since version 0.3.1)
++++++++++++++++++++++++++++++++++++++++++++++++

Release date: March 15, 2017

**Changes**

- NLSR constructor now accept a KeyChain argument. (:issue:`3742`)

- Fix security rule for /localhop LSA prefix (:issue:`3899`)

- Use ndn::nfd::ROUTE_ORIGIN_NLSR instead of a magic number. (:issue:`3903`)

- Handle "Face Already Exists" error (error code 409) in NFD. (:issue:`3976`)

- Enable NLSR to register localhost prefix with dispatcher before top-level prefix. (:issue:`3938`)

- Don't use ndn aliases provided by ndn-cxx/common.hpp. (:issue:`3983`)

- Remove use of deprecated code. (:issue:`3988`)

NLSR version 0.3.1 (changes since version 0.3.0)
++++++++++++++++++++++++++++++++++++++++++++++++

Release date: January 22, 2017

**Changes**

- **breaking change** Sync uses /localhop component in prefix to reduce duplicate NACKs (:issue:`3627`)

- **breaking change** LSA uses /localhop component in prefix to reduce duplicate NACKs (:issue:`3899`)

**Code Changes**:

- Fib and FaceMap use std::map instead of std::list (:issue:`2781`)

- NamePrefixTableEntries store RoutingTableEntries using a pointer (:issue:`2863`)

- Namespace closing comments are now consistent with ndn-cxx guidelines (:issue:`3735`)

- Update copyright date across all files (:issue:`3736`, `3909`, `3923`)

- Improve formatting of FaceMap and FaceMapEntry (:issue:`3737`)

- Sort NextHops on NexthopList insertion (:issue:`2721`)

**Bug fixes**:

- HR now recalculates paths after status change of a neighbor (:issue:`3874`)

- NLSR no longer sets strategies multiple times (:issue:`3743`)

- NLSR should enable use of ndn-cxx dispatcher (:issue:`3930`)

- Fix typos in the sample configuration file (:issue:`3113`)

NLSR version 0.3.0 (changes since version 0.2.2)
++++++++++++++++++++++++++++++++++++++++++++++++

Release date:  August 1, 2016

**Code changes**:

- Updated validation checker for LSA rule in the configuration file (:issue:`2965`)

- Do not advertise Adjacency LSAs when hyperbolic routing is enabled (:issue:`2402`)

- Do not distribute coordinate LSAs when using link-state routing. (:issue:`3661`)

- LSAs should be segmented before they are published (:issue:`2965`)

- Don't use DummyClientFace::sentDatas (:issue:`3383`)

- Remove disabled security files (:issue:`2960`)

- Lsa type should be argument for base class LSA constructor (:issue:`2788`)

- Use ndn-cxx/DummyClientFace (:issue:`2637`)

**Bug fixes**:

- Unit tests cases are installed with `./waf install` (:issue:`3359`)


NLSR version 0.2.2 (changes since version 0.2.1)
++++++++++++++++++++++++++++++++++++++++++++++++

Release date: January 5, 2016

**Code changes**:

- Adapt code to changes in NFD/ndn-cxx version 0.4.0 release

NLSR version 0.2.1 (changes since version 0.2.0)
++++++++++++++++++++++++++++++++++++++++++++++++

Release date: June 30, 2015

**Code changes**:

- Using a configuration file without ``prefix-update-validator`` disables runtime advertise/withdraw instead of exiting (:issue:`2814`)

**Bug fixes**:

- Prevent incomplete removal of NPT entry (:issue:`2785`)

- Correct bidirectional links with differing costs (:issue:`2801`)

- Fix non-incrementing Adjacency number in AdjLsa::writeLog (:issue:`2594`)

- Remove FaceDestroyEvent test's reliance on nlsrSeqNo.txt (:issue:`2881`)

- Test ACTIVE/INACTIVE Adjacencies in LSA construction (:issue:`2735`)

NLSR version 0.2.0 (changes since version 0.1.0)
++++++++++++++++++++++++++++++++++++++++++++++++

Release date: April 30, 2015

**Build**:

- The code now requires C++11. The minimum supported gcc version is 4.6, as earlier versions do not have proper support for C++11 features. (:issue:`1930`)

- Require OpenSSL (:issue:`2375`)

**New features**:

- Add nlsrc command-line tool (:issue:`1834`)

- Advertise/Withdraw name prefixes at runtime (:issue:`1834`)

- Assign zero cost to hyperbolic direct neighbors (:issue:`1975`)

- Only hyperbolic costs are adjusted before registering (:issue:`1974`)

- Add ability to specify different logging levels (:issue:`1935`)

- Add LSDB dataset publishers (:issue:`2280`)

- Add LSDB dataset tlv abstractions (:issue:`2280`)

- Allow zero cost neighbors for hyperbolic routing table calculation (:issue:`1982`)

- Faces are now created with canonical Face URI (:issue:`1911`)

- Add configurable router event intervals (:issue:`2071`)

- Add router-dead-interval configuration setting (:issue:`1878`)

- Add log formatting specified by log4cxx configuration file (:issue:`1950`)

- Face URIs in configuration file are checked for validity on load (:issue:`2070`)

- Configuration variables with default values are now optional (:issue:`1949`)

- Recalculate routing table after face destroy event (:issue:`2635`)

- Add Travis-CI build script

**Code changes**:

- Change adjacency status from uint32_t to enum (:issue:`1946`)

- Remove scheduler from NLSR class (:issue:`1981`)

- Change hyperbolic cost adjustment factor from 100 to 1000 (:issue:`1974`)

- Remove use of outdated namespace ``ndn::Tlv`` (:issue:`2079`)

- Remove use of deprecated ``ndn::nfd::Controller(Face&)`` constructor (:issue:`2133`)

- Routing update publishing is abstracted to SyncLogicHandler (:issue:`2289`)

- Make ConfParameter variable types consistent with min and max values (:issue:`2084`)

- Replace LSA string literals with constants (:issue:`2310`)

- Subscribe to FaceMonitor notifications using connect (:issue:`2350`)

- Log exceptions thrown in event loop

- Change ``ndn::ptr_lib::shared_ptr`` to ``std::shared_ptr`` (:issue:`2110`)

- Avoid deprecated ``ndn::Name::set`` method (:issue:`2505`)

- Update waf to version 1.8.8-dev

- Add sorting tiebreaker to NexthopList (:issue:`2715`)

- Update Jenkins-CI build scripts

**Bug fixes**:

- Fix python3 build error (:issue:`1956`)

- Fix typos in nlsr.conf security section (:issue:`1985`)

- Stop SyncLogicHandler from fetching a router’s own LSAs (:issue:`2005`)

- Fix Name LSA comparison which could cause incorrect advertised names to be removed (:issue:`2029`)

- Fix issue where more faces than max-faces-per-prefix could be applied to a prefix (:issue:`2018`)

- Stop LSDB from retrieving and out of date LSA when a new one is detected (:issue:`1987`)

- Correct mistakes in documentation

- Correct bitmask used to copy Name LSA sequence number (:issue:`2323`)

NLSR version 0.1.0 (initial release)
++++++++++++++++++++++++++++++++++++

Release date: August 25, 2014

The main design goal of NLSR is to provide a routing protocol to populate `NFD's
<http://named-data.net/doc/NFD/current/>`_ RIB.  NLSR calculates the routing table using
link-state or hyperbolic routing and produces multiple faces for each reachable name
prefix in a single authoritative domain.

**Included features**:

- Advertise availability of content through the configured router

- Use `ChronoSync <https://github.com/named-data/ChronoSync>`_ to synchronize routers' LSA sequence numbers and Interest/Data to retrieve LSAs

- Produce a list of ranked forwarding options for each name prefix to facilitate NDN's adaptive forwarding strategies

- Configure maximum number of faces per prefix in NFD’s RIB

- Set up NFD tunnels to neighbors automatically and maintain the tunnels to neighbors

- Provide two routing protocols:

  + Link State routing: calculate route cost based on link costs
  + Hyperbolic routing: calculate route cost based on hyperbolic coordinates

- Use a hierarchical trust model for routing within a single administrative domain

- Keep NFD’s RIB updated on failure and recovery
