Wiki » History » Revision 6
Revision 5 (Lan Wang, 04/04/2014 01:11 PM) → Revision 6/30 (Lan Wang, 04/04/2014 01:14 PM)
# Named-data Link State Routing(NLSR) **Named-data Link State Routing (NLSR)** is routing for NDN under development. NLSR's development is going on top of * [**ndn-cpp-dev**](https://github.com/named-data/ndn-cpp-dev) * [**NFD**](http://redmine.named-data.net/projects/nfd/wiki) * [**ChronoSync**](https://github.com/bruinfish/ChronoSync) ### UML of NLSR design documents is available * class diagram * use case diagram * [[module description]] ## NLSR's design Conceptually NLSR is divided into four modules 1. Core 2. Communication 3. Routing 4. Security ### 1. Core Module - Read and parse configuration file - Stores all configurable parameter values - Stores Adjacent in Adjacency list - Stores advertising names in name prefix list - Stores Link State Advertisement (LSA) in Link State Database (LSDB) ### 2. Communication Module - Handles synchronization logic of NLSR's LSDB updates - Publish LSDB updates in router name - Upon update notification send interest for LSAs - Publish certificates updates - Send interest to fetch certificates - Processes all inbound/outbound interest/data of NLSR ### 3. Routing Module - Calculate routing table ( depending configuration use link - state routing calculator or Hyperbolic routing calculator) - Stores routing table - Creates and store Name prefix table ( Name prefix table entry is Name Prefix with nexthops list to reach that name) ### 4. Security Module ( This module will no longer be available later when NLSR will use NFD's rule based validator) - Fetch, validate and stores certificate in Certificate Store - If some certificate is fetched but waiting to be validated is recorded in waiting list - After validation it is added in the certificate store otherwise discarded - Validate each piece of data received by NLSR - Sign data using router process keys before sending out