Project

General

Profile

LSDB DataSet » History » Revision 4

Revision 3 (Vince Lehman, 11/13/2014 01:32 PM) → Revision 4/13 (Vince Lehman, 11/17/2014 12:42 PM)

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

 ## LSAs 

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

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

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

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

 ExpirationPeriod is the remaining lifetime of an LSA 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`. 

     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`. 

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

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


     best representation? 

     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`. 

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

 ## LSDB Status 

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

 The LSAs in the LSDB are organized and represented as an **LsdbStatus** block: 

     LsdbStatus := LSDB-STATUS-TYPE TLV-LENGTH 
                     AdjacencyLsa* 
                     CoordinateLsa* 
                     NameLsa* 



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