Project

General

Profile

LSDB DataSet » History » Revision 13

Revision 11 (Laqin Fan, 12/20/2017 01:52 PM) → Revision 13/13 (Ashlesh Gawande, 04/25/2020 03:54 PM)

# LSA TLV encoding for NLSR-to-NLSR and NLSR-to-NLSRC (LSDB DataSet) communication 

 LSDB DataSet 
 ======= 
 LSDB datasets are published in the namespace `/$ROUTER_NAME/lsdb/` and `/localhost/lsdb`: `/$ROUTER_NAME/lsdb/`: 

 ## LSAs 

 All LSAs have 3 fields in common represented by an **LsaInfo** block: 

     LsaInfo := LSA-TYPE TLV-LENGTH 
                  Name OriginRouter 
                  SequenceNumber 
                  ExpirationTime ExpirationPeriod? 

     OriginRouter := ORIGIN-ROUTER-TYPE TLV-LENGTH 
                       Name 

     SequenceNumber := SEQUENCE-NUMBER-TYPE TLV-LENGTH 
                         nonNegativeInteger 

 ExpirationTime(Point) ExpirationPeriod is the time according to the sender when the remaining lifetime of an LSA will expire. or omitted if it's infinity. 

 ## Adjacency LSAs 

 All Adjacency LSAs in the LSDB are published as a [[NFD:StatusDataset|Status Dataset]] at `/$ROUTER_NAME/lsdb/adjacencies` 
 and `/localhost/lsdb/adjacencies` `/$ROUTER_NAME/lsdb/adjacencies`. 

     AdjacencyLsa := ADJACENCY-LSA-TYPE TLV-LENGTH 
                       LsaInfo 
                       Adjacency+ 

     Adjacency := ADJACENCY-TYPE TLV-LENGTH 
                    Name 
                    Uri 
                    Cost 

 ## Coordinate LSAs 

 All Coordinate LSAs in the LSDB are published as a [[NFD:StatusDataset|Status Dataset]] at `/$ROUTER_NAME/lsdb/coordinates` 
 and `/localhost/lsdb/coordinates` `/$ROUTER_NAME/lsdb/coordinates`. 

     CoordinateLsa := COORDINATE-LSA-TYPE TLV-LENGTH 
                        LsaInfo 
                        HyperbolicRadius 
                        HyperbolicAngle+ 

     Double := DOUBLE-TYPE TLV-LENGTH(=8) 
                 double-precision floating-point number in binary64 format as defined in IEEE 754 


     HyperbolicRadius := HYPERBOLIC-RADIUS-TYPE TLV-LENGTH 
                           Double                       

     HyperbolicAngle := HYPERBOLIC-ANGLE-TYPE TLV-LENGTH 
                          Double 

 


 ## Name LSAs 

 All Name LSAs in the LSDB are published as a [[NFD:StatusDataset|Status Dataset]] at `/$ROUTER_NAME/lsdb/names` 
 and `/localhost/lsdb/names` `/$ROUTER_NAME/lsdb/names`. 

     NameLsa := NAME-LSA-TYPE TLV-LENGTH 
                  LsaInfo 
                  Name* 

 


 ## TLV-TYPE assignments 

 Type                                          | Assigned value      | Assigned value (hex) 
 ------------------------------------------- | ----------------- | -------------------- 
 LsaInfo                                       | 128                 | 0x80 
 OriginRouter                                  | 129                 | 0x81 
 SequenceNumber                                | 130                 | 0x82 
 AdjacencyLsa                                  | 131                 | 0x83 
 Adjacency                                     | 132                 | 0x84 
 CoordinateLsa                                 | 133                 | 0x85 
 Double                                        | 134                 | 0x86 
 HyperbolicRadius                              | 135                 | 0x87 
 HyperbolicAngle                               | 136                 | 0x88 
 NameLsa                                       | 137                 | 0x89 
 LsdbStatus                                    | 138                 | 0x8A 
 ExpirationTime                                ExpirationPeriod                              | 139                 | 0x8B 
 Cost                                          | 140                 | 0x8C 
 Uri                                           | 141                 | 0x8D 

 (See Routing Table Dataset for other assignments: https://redmine.named-data.net/projects/nlsr/wiki/Routing_Table_Dataset)