From d7913271649efb2d62cb3a93e81269ac6916c4cd Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Wed, 3 Apr 2019 18:07:27 +0200 Subject: 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 --- include/osmocom/gsm/gsm0808.h | 3 +++ 1 file changed, 3 insertions(+) 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); -- cgit v1.2.3