LSA TLV encoding for NLSR-to-NLSR and NLSR-to-NLSRC (LSDB DataSet) communication¶
LSDB datasets are published in the namespace /$ROUTER_NAME/lsdb and /localhost/lsdb.
LSAs¶
All LSAs have 3 fields in common represented by an LsaInfo block:
LsaInfo := LSA-TYPE TLV-LENGTH
             Name
             SequenceNumber
             ExpirationTime
SequenceNumber := SEQUENCE-NUMBER-TYPE TLV-LENGTH
                    NonNegativeInteger
ExpirationTime(Point) is the time according to the sender when the LSA will expire.
Additionally, all three utilize the following encoding for double-precision floating point numbers in differing fields:
Double := DOUBLE-TYPE TLV-LENGTH(=8)
            double-precision floating-point number in binary64 format as defined in IEEE 754
Adjacency LSAs¶
All Adjacency LSAs in the LSDB are published as a Status Dataset at /$ROUTER_NAME/lsdb/adjacencies and /localhost/lsdb/adjacencies.
AdjacencyLsa := ADJACENCY-LSA-TYPE TLV-LENGTH
                  LsaInfo
                  Adjacency+
Adjacency := ADJACENCY-TYPE TLV-LENGTH
               Name
               Uri
               Cost
Cost := COST-TYPE TLV-LENGTH
          Double
Coordinate LSAs¶
All Coordinate LSAs in the LSDB are published as a Status Dataset at /$ROUTER_NAME/lsdb/coordinates and /localhost/lsdb/coordinates.
CoordinateLsa := COORDINATE-LSA-TYPE TLV-LENGTH
                   LsaInfo
                   HyperbolicRadius
                   HyperbolicAngle+
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 Status Dataset at /$ROUTER_NAME/lsdb/names and /localhost/lsdb/names.
NameLsa    := NAME-LSA-TYPE TLV-LENGTH
                LsaInfo
                PrefixInfo*
PrefixInfo := PREFIX-INFO-TYPE TLV-LENGTH
                Name
                Cost
Cost := COST-TYPE TLV-LENGTH
          Double
TLV-TYPE assignments¶
| Type | Assigned value | Assigned value (hex) | 
|---|---|---|
| LsaInfo | 128 | 0x80 | 
| 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 | 139 | 0x8B | 
| Cost | 140 | 0x8C | 
| Uri | 141 | 0x8D | 
| PrefixInfo | 146 | 0x92 | 
See Routing Table Dataset for other assignments.
Updated by Alexander Lane 6 months ago · 17 revisions