Project

General

Profile

Wiki » History » Revision 5

Revision 4 (A K M Mahmudul Hoque, 04/03/2014 11:21 AM) → Revision 5/30 (Lan Wang, 04/04/2014 01:11 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 is available 
 * class diagram 
 * use case diagram at [**NLSR-UML**](http://irl.cs.ucla.edu/~cawka/nlsr/) 


 ## 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