Project

General

Profile

LSDB DataSet » History » Version 12

Ashlesh Gawande, 04/25/2020 03: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 12 Ashlesh Gawande
LSDB datasets are published in the namespace `/$ROUTER_NAME/lsdb/` and `/localhost/lsdb`:
4
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
                        nonNegativeInteger
16
17 12 Ashlesh Gawande
ExpirationTime(Point) is the time according to the sender when the LSA will expire.
18 1 Vince Lehman
19
## Adjacency LSAs
20
21 12 Ashlesh Gawande
All Adjacency LSAs in the LSDB are published as a [[NFD:StatusDataset|Status Dataset]] at `/$ROUTER_NAME/lsdb/adjacencies`
22
and `/localhost/lsdb/adjacencies`
23 1 Vince Lehman
24
    AdjacencyLsa := ADJACENCY-LSA-TYPE TLV-LENGTH
25
                      LsaInfo
26
                      Adjacency+
27
28
    Adjacency := ADJACENCY-TYPE TLV-LENGTH
29
                   Name
30
                   Uri
31
                   Cost
32
33
## Coordinate LSAs
34
35 12 Ashlesh Gawande
All Coordinate LSAs in the LSDB are published as a [[NFD:StatusDataset|Status Dataset]] at `/$ROUTER_NAME/lsdb/coordinates`
36
and `/localhost/lsdb/coordinates`
37 1 Vince Lehman
38
    CoordinateLsa := COORDINATE-LSA-TYPE TLV-LENGTH
39
                       LsaInfo
40
                       HyperbolicRadius
41 10 Ashlesh Gawande
                       HyperbolicAngle+
42 1 Vince Lehman
43
    Double := DOUBLE-TYPE TLV-LENGTH(=8)
44
                double-precision floating-point number in binary64 format as defined in IEEE 754
45 4 Vince Lehman
46 1 Vince Lehman
47
    HyperbolicRadius := HYPERBOLIC-RADIUS-TYPE TLV-LENGTH
48
                          Double                      
49
50
    HyperbolicAngle := HYPERBOLIC-ANGLE-TYPE TLV-LENGTH
51
                         Double
52
53
## Name LSAs
54
55 12 Ashlesh Gawande
All Name LSAs in the LSDB are published as a [[NFD:StatusDataset|Status Dataset]] at `/$ROUTER_NAME/lsdb/names`
56
and `/localhost/lsdb/names`
57 1 Vince Lehman
58 6 Vince Lehman
    NameLsa := NAME-LSA-TYPE TLV-LENGTH
59 1 Vince Lehman
                 LsaInfo
60
                 Name*
61
62
## TLV-TYPE assignments
63
64
Type                                        | Assigned value    | Assigned value (hex)
65
------------------------------------------- | ----------------- | --------------------
66
LsaInfo                                     | 128               | 0x80
67
SequenceNumber                              | 130               | 0x82
68
AdjacencyLsa                                | 131               | 0x83
69
Adjacency                                   | 132               | 0x84
70
CoordinateLsa                               | 133               | 0x85
71
Double                                      | 134               | 0x86
72
HyperbolicRadius                            | 135               | 0x87
73
HyperbolicAngle                             | 136               | 0x88
74
NameLsa                                     | 137               | 0x89
75
LsdbStatus                                  | 138               | 0x8A
76 12 Ashlesh Gawande
ExpirationTime                              | 139               | 0x8B
77 1 Vince Lehman
Cost                                        | 140               | 0x8C
78 5 Vince Lehman
Uri                                         | 141               | 0x8D
79 12 Ashlesh Gawande
80
(See Routing Table Dataset for missing numbers: https://redmine.named-data.net/projects/nlsr/wiki/Routing_Table_Dataset)