LSDB DataSet » History » Version 17
Alexander Lane, 05/19/2025 02:53 PM
1 | 12 | Ashlesh Gawande | # LSA TLV encoding for NLSR-to-NLSR and NLSR-to-NLSRC (LSDB DataSet) communication |
---|---|---|---|
2 | 1 | Vince Lehman | |
3 | 16 | Davide Pesavento | LSDB datasets are published in the namespace `/$ROUTER_NAME/lsdb` and `/localhost/lsdb`. |
4 | 12 | Ashlesh Gawande | |
5 | 1 | Vince Lehman | ## LSAs |
6 | 2 | Vince Lehman | |
7 | All LSAs have 3 fields in common represented by an **LsaInfo** block: |
||
8 | 1 | Vince Lehman | |
9 | LsaInfo := LSA-TYPE TLV-LENGTH |
||
10 | 12 | Ashlesh Gawande | Name |
11 | 1 | Vince Lehman | SequenceNumber |
12 | 12 | Ashlesh Gawande | ExpirationTime |
13 | 1 | Vince Lehman | |
14 | SequenceNumber := SEQUENCE-NUMBER-TYPE TLV-LENGTH |
||
15 | 16 | Davide Pesavento | NonNegativeInteger |
16 | 1 | Vince Lehman | |
17 | 12 | Ashlesh Gawande | ExpirationTime(Point) is the time according to the sender when the LSA will expire. |
18 | 1 | Vince Lehman | |
19 | 17 | Alexander Lane | Additionally, all three utilize the following encoding for double-precision floating point numbers in differing fields: |
20 | |||
21 | Double := DOUBLE-TYPE TLV-LENGTH(=8) |
||
22 | double-precision floating-point number in binary64 format as defined in IEEE 754 |
||
23 | |||
24 | 1 | Vince Lehman | ## Adjacency LSAs |
25 | 12 | Ashlesh Gawande | |
26 | 16 | Davide Pesavento | All Adjacency LSAs in the LSDB are published as a [[NFD:StatusDataset|Status Dataset]] at `/$ROUTER_NAME/lsdb/adjacencies` and `/localhost/lsdb/adjacencies`. |
27 | 1 | Vince Lehman | |
28 | AdjacencyLsa := ADJACENCY-LSA-TYPE TLV-LENGTH |
||
29 | LsaInfo |
||
30 | Adjacency+ |
||
31 | |||
32 | Adjacency := ADJACENCY-TYPE TLV-LENGTH |
||
33 | Name |
||
34 | Uri |
||
35 | Cost |
||
36 | |||
37 | 17 | Alexander Lane | Cost := COST-TYPE TLV-LENGTH |
38 | Double |
||
39 | |||
40 | 1 | Vince Lehman | ## Coordinate LSAs |
41 | |||
42 | All Coordinate LSAs in the LSDB are published as a [[NFD:StatusDataset|Status Dataset]] at `/$ROUTER_NAME/lsdb/coordinates` and `/localhost/lsdb/coordinates`. |
||
43 | 10 | Ashlesh Gawande | |
44 | 1 | Vince Lehman | CoordinateLsa := COORDINATE-LSA-TYPE TLV-LENGTH |
45 | LsaInfo |
||
46 | HyperbolicRadius |
||
47 | 4 | Vince Lehman | HyperbolicAngle+ |
48 | 1 | Vince Lehman | |
49 | HyperbolicRadius := HYPERBOLIC-RADIUS-TYPE TLV-LENGTH |
||
50 | Double |
||
51 | |||
52 | HyperbolicAngle := HYPERBOLIC-ANGLE-TYPE TLV-LENGTH |
||
53 | Double |
||
54 | |||
55 | ## Name LSAs |
||
56 | 12 | Ashlesh Gawande | |
57 | 16 | Davide Pesavento | All Name LSAs in the LSDB are published as a [[NFD:StatusDataset|Status Dataset]] at `/$ROUTER_NAME/lsdb/names` and `/localhost/lsdb/names`. |
58 | 1 | Vince Lehman | |
59 | 16 | Davide Pesavento | NameLsa := NAME-LSA-TYPE TLV-LENGTH |
60 | LsaInfo |
||
61 | PrefixInfo* |
||
62 | 1 | Vince Lehman | |
63 | PrefixInfo := PREFIX-INFO-TYPE TLV-LENGTH |
||
64 | Name |
||
65 | Cost |
||
66 | 17 | Alexander Lane | |
67 | Cost := COST-TYPE TLV-LENGTH |
||
68 | Double |
||
69 | 15 | Alexander Lane | |
70 | 1 | Vince Lehman | ## TLV-TYPE assignments |
71 | |||
72 | Type | Assigned value | Assigned value (hex) |
||
73 | ------------------------------------------- | ----------------- | -------------------- |
||
74 | LsaInfo | 128 | 0x80 |
||
75 | SequenceNumber | 130 | 0x82 |
||
76 | AdjacencyLsa | 131 | 0x83 |
||
77 | Adjacency | 132 | 0x84 |
||
78 | CoordinateLsa | 133 | 0x85 |
||
79 | Double | 134 | 0x86 |
||
80 | HyperbolicRadius | 135 | 0x87 |
||
81 | HyperbolicAngle | 136 | 0x88 |
||
82 | NameLsa | 137 | 0x89 |
||
83 | LsdbStatus | 138 | 0x8A |
||
84 | 12 | Ashlesh Gawande | ExpirationTime | 139 | 0x8B |
85 | 1 | Vince Lehman | Cost | 140 | 0x8C |
86 | Uri | 141 | 0x8D |
||
87 | 14 | Alexander Lane | PrefixInfo | 146 | 0x92 |
88 | 12 | Ashlesh Gawande | |
89 | 16 | Davide Pesavento | See [[Routing_Table_Dataset|Routing Table Dataset]] for other assignments. |