aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_rlcmac.h
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-07-07 19:57:28 +0200
committerAnders Broman <a.broman58@gmail.com>2020-07-18 04:02:45 +0000
commitb15ebdf0ab423c2f1fdd233e02d4498baa94096e (patch)
tree7db905a2a9e14829f35d2d966803a917b6fc4aab /epan/dissectors/packet-gsm_rlcmac.h
parente1df757c46a08358b5c589ad1f96b1ddb45fe693 (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.h18
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;