summaryrefslogtreecommitdiffstats
path: root/src/shared/libosmocore/src/tlv_parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/libosmocore/src/tlv_parser.c')
-rw-r--r--src/shared/libosmocore/src/tlv_parser.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/shared/libosmocore/src/tlv_parser.c b/src/shared/libosmocore/src/tlv_parser.c
index 407e57aa..bbef7a9a 100644
--- a/src/shared/libosmocore/src/tlv_parser.c
+++ b/src/shared/libosmocore/src/tlv_parser.c
@@ -36,6 +36,14 @@ int tlv_parse_one(uint8_t *o_tag, uint16_t *o_len, const uint8_t **o_val,
tag = *buf;
*o_tag = tag;
+ /* single octet TV IE */
+ if (def->def[tag & 0xf0].type == TLV_TYPE_SINGLE_TV) {
+ *o_tag = tag & 0xf0;
+ *o_val = buf;
+ *o_len = 1;
+ return 1;
+ }
+
/* FIXME: use tables for knwon IEI */
switch (def->def[tag].type) {
case TLV_TYPE_T: