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

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
