summaryrefslogtreecommitdiff
path: root/pceplib/pcep_msg_tlvs_encoding.c
diff options
context:
space:
mode:
authorJavier Garcia <javier.garcia@voltanet.io>2021-05-21 09:07:41 +0200
committerJavier Garcia <javier.garcia@voltanet.io>2021-06-22 12:04:03 +0200
commit5fe7f5b4798c548dbbc62865c08ee4be4d67e119 (patch)
treea7f28be3392d84f141f92b60f0e579a8a107bc55 /pceplib/pcep_msg_tlvs_encoding.c
parentcd551a0fd5430791ce4e650ccca9b312f02b9701 (diff)
pceplib: Extract fields needed for PcInitiated with Cisco pce. (1/4)
1.- Unknown/non-standard tlv where cisco sends BSID. 2.- Non-standard Vendor Info object where cisco sends color. Co-authored-by: Javier Garcia <javier.garcia@voltanet.io> Signed-off-by: Sebastien Merle <sebastien@netdef.org> Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
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 37f3353f76..d59c97c9da 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);