diff options
Diffstat (limited to 'pceplib/pcep_msg_tlvs_encoding.c')
-rw-r--r-- | pceplib/pcep_msg_tlvs_encoding.c | 10 |
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); |