diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2019-04-03 18:07:27 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2019-05-03 16:15:24 +0200 |
commit | d7913271649efb2d62cb3a93e81269ac6916c4cd (patch) | |
tree | 4c57cfa89d5f04e22ad1d1109ec78ae8bfbbbe05 /include/osmocom/gsm | |
parent | 8212fc6a7d9cfd6c5e71f522863c3e3420262360 (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/gsm')
-rw-r--r-- | include/osmocom/gsm/gsm0808.h | 3 |
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); |