diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-07-07 19:57:28 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2020-07-18 04:02:45 +0000 |
commit | b15ebdf0ab423c2f1fdd233e02d4498baa94096e (patch) | |
tree | 7db905a2a9e14829f35d2d966803a917b6fc4aab /epan/dissectors/packet-gsm_rlcmac.h | |
parent | e1df757c46a08358b5c589ad1f96b1ddb45fe693 (diff) |
rlcmac: Decode properly Pkt Ul ACK/NACK R99 Additions
First, remove the unnecessary M_UNION there, and handle Fixed Allocation
Parameters are per older version of spec TS 44.060 with usual presence
bit + struct. The coding of the struct is left unimplemented as an
exercise for someone needing it in the future (since it's not supposed
to be used by current specs anyway).
Once this is cleared up, the rest of the message (Release 99 Additions)
are parsed fine.
Tested with a pcap trace containing a Pkt Ul ACK/NACK with R99 additions
and TBF_EST inside it.
CSN.1 Reference: 3GPP TS 44.060 Table 11.2.28.1
Change-Id: Ie22e99abdbc2bb3988e7a1930d459ba810a348ac
Reviewed-on: https://code.wireshark.org/review/37776
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Vadim Yanitskiy <vyanitskiy@sysmocom.de>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-gsm_rlcmac.h')
-rw-r--r-- | epan/dissectors/packet-gsm_rlcmac.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/epan/dissectors/packet-gsm_rlcmac.h b/epan/dissectors/packet-gsm_rlcmac.h index 2b50c9c9f7..da91f3fed6 100644 --- a/epan/dissectors/packet-gsm_rlcmac.h +++ b/epan/dissectors/packet-gsm_rlcmac.h @@ -1876,22 +1876,26 @@ typedef struct guint8 TBF_EST; } PU_AckNack_GPRS_AdditionsR99_t; +/* Table 11.2.28.1: PACKET UPLINK ACK/NACK information elements */ +typedef struct +{ + guint8 Error; + /* Fixed Allocation Parameters was removed from specs. + * TODO: implement for old versions of spec. + */ +} Fixed_Allocation_Parameters_t; + typedef struct { guint8 CHANNEL_CODING_COMMAND; Ack_Nack_Description_t Ack_Nack_Description; - guint8 UnionType; - union - { - guint8 FixedAllocationDummy; - guint8 Error; - } u; + gboolean Exist_Fixed_Allocation_Parameters; + Fixed_Allocation_Parameters_t Fixed_Allocation_Parameters; gboolean Exist_AdditionsR99; PU_AckNack_GPRS_AdditionsR99_t AdditionsR99; - Common_Uplink_Ack_Nack_Data_t Common_Uplink_Ack_Nack_Data; } PU_AckNack_GPRS_t; |