summaryrefslogtreecommitdiff
path: root/pceplib/pcep_msg_objects_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_objects_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_objects_encoding.c')
-rw-r--r--pceplib/pcep_msg_objects_encoding.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/pceplib/pcep_msg_objects_encoding.c b/pceplib/pcep_msg_objects_encoding.c
index 9ab96f7bce..69420f8e7a 100644
--- a/pceplib/pcep_msg_objects_encoding.c
+++ b/pceplib/pcep_msg_objects_encoding.c
@@ -1339,8 +1339,15 @@ pcep_decode_obj_vendor_info(struct pcep_object_header *hdr,
struct pcep_object_vendor_info *obj =
(struct pcep_object_vendor_info *)common_object_create(
hdr, sizeof(struct pcep_object_vendor_info));
+
obj->enterprise_number = ntohl(*((uint32_t *)(obj_buf)));
obj->enterprise_specific_info = ntohl(*((uint32_t *)(obj_buf + 4)));
+ if (obj->enterprise_number == ENTERPRISE_NUMBER_CISCO
+ && obj->enterprise_specific_info == ENTERPRISE_COLOR_CISCO)
+ obj->enterprise_specific_info1 =
+ ntohl(*((uint32_t *)(obj_buf + 8)));
+ else
+ obj->enterprise_specific_info1 = 0;
return (struct pcep_object_header *)obj;
}