path: root/include/osmocom
diff options
authorNeels Hofmeyr <neels@hofmeyr.de>2019-04-03 18:07:27 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2019-05-03 16:15:24 +0200
commitd7913271649efb2d62cb3a93e81269ac6916c4cd (patch)
tree4c57cfa89d5f04e22ad1d1109ec78ae8bfbbbe05 /include/osmocom
parent8212fc6a7d9cfd6c5e71f522863c3e3420262360 (diff)
add osmo_bssap_tlv_parse2() for multiple identical T
In BSSMAP messages, at least the Cell Identifier IE can appear more than once. We have tlv_parse2() which allows decoding into an array of tlv_parsed to cleanly handle multiple occurences. Hence add osmo_bssap_tlv_parse2() which supports multiple occurences. An alternative would be to directly call tlv_parse2() with gsm0808_att_tlvdef() when multiple T occurences are needed, and I'm not really sure why osmo_bssap_tlv_parse() exists in the first place. But because it does, add a similar definition that is capable of handling multiple IEs with identical Tag discriminator. Change-Id: Ib9a2095f7498dc2cda2a57154b2dbe4621df72f8
Diffstat (limited to 'include/osmocom')
1 files changed, 3 insertions, 0 deletions
diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h
index 2f194663..5b05dbc8 100644
--- a/include/osmocom/gsm/gsm0808.h
+++ b/include/osmocom/gsm/gsm0808.h
@@ -282,6 +282,9 @@ const struct tlv_definition *gsm0808_att_tlvdef(void);
/*! Parse BSSAP TLV structure using \ref tlv_parse */
#define osmo_bssap_tlv_parse(dec, buf, len) tlv_parse(dec, gsm0808_att_tlvdef(), buf, len, 0, 0)
+/*! Parse BSSAP TLV structure using \ref tlv_parse2 */
+#define osmo_bssap_tlv_parse2(dec, dec_multiples, buf, len) \
+ tlv_parse2(dec, dec_multiples, gsm0808_att_tlvdef(), buf, len, 0, 0)
const char *gsm0808_bssmap_name(uint8_t msg_type);
const char *gsm0808_bssap_name(uint8_t msg_type);