summaryrefslogtreecommitdiffstats
path: root/pceplib/pcep_msg_tlvs_encoding.c
diff options
context:
space:
mode:
Diffstat (limited to 'pceplib/pcep_msg_tlvs_encoding.c')
-rw-r--r--pceplib/pcep_msg_tlvs_encoding.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/pceplib/pcep_msg_tlvs_encoding.c b/pceplib/pcep_msg_tlvs_encoding.c
index 37f3353f7..d59c97c9d 100644
--- a/pceplib/pcep_msg_tlvs_encoding.c
+++ b/pceplib/pcep_msg_tlvs_encoding.c
@@ -838,7 +838,15 @@ struct pcep_object_tlv_header *pcep_decode_tlv(const uint8_t *tlv_buf)
return NULL;
}
- tlv_decoder_funcptr tlv_decoder = tlv_decoders[tlv_hdr.type];
+ tlv_decoder_funcptr tlv_decoder = NULL;
+ if (tlv_hdr.type == PCEP_OBJ_TYPE_CISCO_BSID) {
+ pcep_log(LOG_INFO,
+ "%s: Cisco BSID TLV decoder found for TLV type [%d]",
+ __func__, tlv_hdr.type);
+ tlv_decoder = tlv_decoders[PCEP_OBJ_TLV_TYPE_ARBITRARY];
+ } else {
+ tlv_decoder = tlv_decoders[tlv_hdr.type];
+ }
if (tlv_decoder == NULL) {
pcep_log(LOG_INFO, "%s: No TLV decoder found for TLV type [%d]",
__func__, tlv_hdr.type);