diff options
Diffstat (limited to 'metis/ccnx/forwarder/metis/tlv/metis_TlvSkeleton.c')
-rw-r--r-- | metis/ccnx/forwarder/metis/tlv/metis_TlvSkeleton.c | 27 |
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) { |