Wiki » History » Revision 7
Revision 6 (Lan Wang, 04/04/2014 01:14 PM) → Revision 7/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)
### NLSR design documents
* 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