OSPF Opaque-LSAs may need to support leaf specific to different attributes Linktype,LinkID, LocIfAdr, RemIfAdr etc
Hello,
On running gnmic with opaque-lsa/tlvs, we could see gnmic returns same path with different/multiple values. On looking at the cli output in the router, we see opaque-lsa may contain different attributes like Linktype,LinkID, LocIfAdr, RemIfAdr TEMetric, MaxBW, MaxRsvBW, UnRsvBW, , LinkLocalRemoteIdentifier etc.
gnmic response is confusing as we dont know which opaque-lsa/attribute returns the value as there is no key/leaf defined, can we introduce or add a value as part of sensor path so that the user can identify attributes under opaque-lsa.
Sensor sample with length field under opaque-lsa - This applies to type and value under same sensor path.
existing:
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 1
}
proposal:
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv[tlv-type-name=Linktype]/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv[tlv-type-name=Linktype]/unknown-subtlv/state/length": 1
}
complete response from gnmic
++++++++++++++++++++++++
"prefix": "openconfig:network-instances/network-instance[name=DEFAULT]/protocols/protocol[identifier=OSPF][name=DEFAULT]/ospfv2/areas/area[identifier=0.0.0.0]/lsdb/lsa-types/lsa-type[type=OSPFV2_AREA_SCOPE_OPAQUE_LSA]/lsas/lsa[link-state-id=1.0.0.100]",
"updates": [
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 1
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 8
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
}
Cli
OSPF database, Area 0.0.0.0
Type ID Adv Rtr Seq Age Opt Cksum Len
OpaqArea*1.0.0.100 1.1.1.1 0x80000011 609 0x22 0x389f 136
Opaque LSA
Link (2), length 112:
Linktype (1), length 1:
1
LinkID (2), length 4:
197.0.0.25
LocIfAdr (3), length 4:
99.1.1.49
RemIfAdr (4), length 4:
99.1.1.48
TEMetric (5), length 4:
1
MaxBW (6), length 4:
100Gbps
MaxRsvBW (7), length 4:
100Gbps
UnRsvBW (8), length 32:
Priority 0, 100Gbps
Priority 1, 100Gbps
Priority 2, 100Gbps
Priority 3, 100Gbps
Priority 4, 100Gbps
Priority 5, 100Gbps
Priority 6, 100Gbps
Priority 7, 100Gbps
LinkLocalRemoteIdentifier (11), length 8:
Local 1088, Remote 0
Color (9), length 4:
0
Thanks,
Abdul
OSPF Opaque-LSAs may need to support leaf specific to different attributes Linktype,LinkID, LocIfAdr, RemIfAdr etc
Hello,
On running gnmic with opaque-lsa/tlvs, we could see gnmic returns same path with different/multiple values. On looking at the cli output in the router, we see opaque-lsa may contain different attributes like Linktype,LinkID, LocIfAdr, RemIfAdr TEMetric, MaxBW, MaxRsvBW, UnRsvBW, , LinkLocalRemoteIdentifier etc.
gnmic response is confusing as we dont know which opaque-lsa/attribute returns the value as there is no key/leaf defined, can we introduce or add a value as part of sensor path so that the user can identify attributes under opaque-lsa.
Sensor sample with length field under opaque-lsa - This applies to type and value under same sensor path.
existing:
proposal:
complete response from gnmic
++++++++++++++++++++++++
"prefix": "openconfig:network-instances/network-instance[name=DEFAULT]/protocols/protocol[identifier=OSPF][name=DEFAULT]/ospfv2/areas/area[identifier=0.0.0.0]/lsdb/lsa-types/lsa-type[type=OSPFV2_AREA_SCOPE_OPAQUE_LSA]/lsas/lsa[link-state-id=1.0.0.100]",
"updates": [
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 1
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 8
}
},
{
"Path": "opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length",
"values": {
"opaque-lsa/traffic-engineering/tlvs/tlv/link/sub-tlvs/sub-tlv/unknown-subtlv/state/length": 4
}
}
Cli
OSPF database, Area 0.0.0.0
Type ID Adv Rtr Seq Age Opt Cksum Len
OpaqArea*1.0.0.100 1.1.1.1 0x80000011 609 0x22 0x389f 136
Opaque LSA
Link (2), length 112:
Linktype (1), length 1:
1
LinkID (2), length 4:
197.0.0.25
LocIfAdr (3), length 4:
99.1.1.49
RemIfAdr (4), length 4:
99.1.1.48
TEMetric (5), length 4:
1
MaxBW (6), length 4:
100Gbps
MaxRsvBW (7), length 4:
100Gbps
UnRsvBW (8), length 32:
Priority 0, 100Gbps
Priority 1, 100Gbps
Priority 2, 100Gbps
Priority 3, 100Gbps
Priority 4, 100Gbps
Priority 5, 100Gbps
Priority 6, 100Gbps
Priority 7, 100Gbps
LinkLocalRemoteIdentifier (11), length 8:
Local 1088, Remote 0
Color (9), length 4:
0
Thanks,
Abdul