/* Set Label or Index value */
if (value_type == SID_LABEL) {
- TLV_LEN(exti->node_sid) = htons(SID_LABEL_SIZE);
+ TLV_LEN(exti->node_sid) =
+ htons(SID_LABEL_SIZE(EXT_SUBTLV_PREFIX_SID_SIZE));
exti->node_sid.value = htonl(SET_LABEL(value));
} else {
- TLV_LEN(exti->node_sid) = htons(SID_INDEX_SIZE);
+ TLV_LEN(exti->node_sid) =
+ htons(SID_INDEX_SIZE(EXT_SUBTLV_PREFIX_SID_SIZE));
exti->node_sid.value = htonl(value);
}
/* Adjust Length, Flags and Value depending on the type of Label */
if (value_type == SID_LABEL) {
SET_FLAG(flags, EXT_SUBTLV_LINK_ADJ_SID_VFLG);
- TLV_LEN(exti->adj_sid[index]) = htons(SID_LABEL_SIZE);
+ TLV_LEN(exti->adj_sid[index]) =
+ htons(SID_LABEL_SIZE(EXT_SUBTLV_ADJ_SID_SIZE));
exti->adj_sid[index].value = htonl(SET_LABEL(value));
} else {
UNSET_FLAG(flags, EXT_SUBTLV_LINK_ADJ_SID_VFLG);
- TLV_LEN(exti->adj_sid[index]) = htons(SID_INDEX_SIZE);
+ TLV_LEN(exti->adj_sid[index]) =
+ htons(SID_INDEX_SIZE(EXT_SUBTLV_ADJ_SID_SIZE));
exti->adj_sid[index].value = htonl(value);
}
}
/* Set Header */
- TLV_TYPE(exti->lan_sid[index]) = htons(EXT_SUBTLV_ADJ_SID);
+ TLV_TYPE(exti->lan_sid[index]) = htons(EXT_SUBTLV_LAN_ADJ_SID);
/* Only Local ADJ-SID is supported for the moment */
SET_FLAG(flags, EXT_SUBTLV_LINK_ADJ_SID_LFLG);
/* Adjust Length, Flags and Value depending on the type of Label */
if (value_type == SID_LABEL) {
SET_FLAG(flags, EXT_SUBTLV_LINK_ADJ_SID_VFLG);
- TLV_LEN(exti->lan_sid[index]) = htons(SID_LABEL_SIZE);
+ TLV_LEN(exti->lan_sid[index]) =
+ htons(SID_LABEL_SIZE(EXT_SUBTLV_PREFIX_RANGE_SIZE));
exti->lan_sid[index].value = htonl(SET_LABEL(value));
} else {
UNSET_FLAG(flags, EXT_SUBTLV_LINK_ADJ_SID_VFLG);
- TLV_LEN(exti->lan_sid[index]) = htons(SID_INDEX_SIZE);
+ TLV_LEN(exti->lan_sid[index]) =
+ htons(SID_INDEX_SIZE(EXT_SUBTLV_PREFIX_RANGE_SIZE));
exti->lan_sid[index].value = htonl(value);
}
/* Build LSA body for an Extended Link TLV with Adj. SID */
build_tlv_header(s, &exti->link.header);
stream_put(s, TLV_DATA(&exti->link.header), EXT_TLV_LINK_SIZE);
- /* then add Ajacency SubTLVs */
+ /* then add Adjacency SubTLVs */
build_tlv(s, &exti->adj_sid[1].header);
build_tlv(s, &exti->adj_sid[0].header);
/* Build LSA body for an Extended Link TLV with LAN SID */
build_tlv_header(s, &exti->link.header);
- stream_put(s, &exti->link.header, EXT_TLV_LINK_SIZE);
- /* then add LAN-Ajacency SubTLVs */
+ stream_put(s, TLV_DATA(&exti->link.header), EXT_TLV_LINK_SIZE);
+ /* then add LAN-Adjacency SubTLVs */
build_tlv(s, &exti->lan_sid[1].header);
build_tlv(s, &exti->lan_sid[0].header);
}
vty_out(vty,
" LAN-Adj-SID Sub-TLV: Length %u\n\tFlags: "
"0x%x\n\tMT-ID:0x%x\n\tWeight: 0x%x\n\tNeighbor ID: "
- "%s\n\tLabel: %u\n",
+ "%s\n\t%s: %u\n",
ntohs(top->header.length), top->flags, top->mtid, top->weight,
+ inet_ntoa(top->neighbor_id),
CHECK_FLAG(top->flags, EXT_SUBTLV_LINK_ADJ_SID_VFLG) ? "Label"
: "Index",
CHECK_FLAG(top->flags, EXT_SUBTLV_LINK_ADJ_SID_VFLG)