aboutsummaryrefslogtreecommitdiffstats
path: root/metis/ccnx/forwarder/metis/tlv/metis_TlvSkeleton.c
diff options
context:
space:
mode:
Diffstat (limited to 'metis/ccnx/forwarder/metis/tlv/metis_TlvSkeleton.c')
-rw-r--r--metis/ccnx/forwarder/metis/tlv/metis_TlvSkeleton.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/metis/ccnx/forwarder/metis/tlv/metis_TlvSkeleton.c b/metis/ccnx/forwarder/metis/tlv/metis_TlvSkeleton.c
index ce479ce5..bc201dc9 100644
--- a/metis/ccnx/forwarder/metis/tlv/metis_TlvSkeleton.c
+++ b/metis/ccnx/forwarder/metis/tlv/metis_TlvSkeleton.c
@@ -280,6 +280,33 @@ metisTlvSkeleton_UpdateHopLimit(MetisTlvSkeleton *opaque, uint8_t hoplimit)
return updated;
}
+int
+metisTlvSkeleton_GetPathLabelValue(MetisTlvSkeleton *opaque)
+{
+ _InternalSkeleton *skeleton = (_InternalSkeleton *) opaque;
+ int label = -1;
+ if (!metisTlvExtent_Equals(&skeleton->array[INDEX_PATHLABEL], &metisTlvExtent_NotFound)) {
+ if (skeleton->array[INDEX_PATHLABEL].length == 1) {
+ uint8_t *value = skeleton->packet + skeleton->array[INDEX_PATHLABEL].offset;
+ label = *value;
+ }
+ }
+ return label;
+}
+
+void
+metisTlvSkeleton_SetPathLabelValue(MetisTlvSkeleton *opaque, uint8_t pathLabel)
+{
+ _InternalSkeleton *skeleton = (_InternalSkeleton *) opaque;
+ if (!metisTlvExtent_Equals(&skeleton->array[INDEX_PATHLABEL], &metisTlvExtent_NotFound)) {
+ if (skeleton->array[INDEX_PATHLABEL].length == 1) {
+ uint8_t *value = skeleton->packet + skeleton->array[INDEX_PATHLABEL].offset;
+ *value = pathLabel;
+ }
+ }
+}
+
+
bool
metisTlvSkeleton_UpdatePathLabel(MetisTlvSkeleton *opaque, uint8_t outFace)
{