aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2011-07-20 22:07:31 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2011-07-20 22:07:31 +0000
commit3eef460d37b8f0324ddd65052cb4a442d8418c27 (patch)
tree1a61ddbaccdda88b94fd096dae5fe91dd1374ade /epan/dissectors
parentf6ee31a5305029696678143b63d6decd5c50893f (diff)
From Lei Chen:
patch to support "Additional MS Radio Access Capability" and "Packet Pause" in packet-gsm_rlcmac.c https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6133 git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@38136 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-gsm_rlcmac.c84
-rw-r--r--epan/dissectors/packet-gsm_rlcmac.h42
2 files changed, 124 insertions, 2 deletions
diff --git a/epan/dissectors/packet-gsm_rlcmac.c b/epan/dissectors/packet-gsm_rlcmac.c
index 58d0276aa5..9155c759b0 100644
--- a/epan/dissectors/packet-gsm_rlcmac.c
+++ b/epan/dissectors/packet-gsm_rlcmac.c
@@ -994,6 +994,17 @@ static int hf_packet_physicalinformation_pagemode;
static int hf_packet_physicalinformation_timingadvance;
/*< End Packet Physical Information > */
+
+/* < Additinal MS Radio Access Capability */
+static int hf_additionalmsradcap_tlli;
+/* < End Additinal MS Radio Access Capability */
+
+
+/* < Packet Pause > */
+static int hf_packet_pause_message_type;
+static int hf_packet_pause_tlli;
+/* < End Packet Pause > */
+
static int hf_si1_restoctet_nch_position;
static int hf_si1_restoctet_bandindicator;
static int hf_selection_parameters_cbq;
@@ -1020,6 +1031,7 @@ static int hf_si6_restoctet_rac;
static int hf_si6_restoctet_max_lapdm;
static int hf_si6_restoctet_bandindicator;
+
/* Payload type as defined in TS 44.060 / 10.4.7 */
#define PAYLOAD_TYPE_DATA 0
#define PAYLOAD_TYPE_CTRL_NO_OPT_OCTET 1
@@ -4572,6 +4584,51 @@ CSN_DESCR_END (Packet_PhysicalInformation_t)
/*< End Packet Physical Information > */
+/*< ADDITIONAL MS RADIO ACCESS CAPABILITIES content > */
+static const
+CSN_ChoiceElement_t AdditionalMsRadAccessCapID[] =
+{
+ {1, 0, M_TYPE(AdditionalMsRadAccessCapID_t, u.Global_TFI, Global_TFI_t)},
+ {1, 0x01, M_UINT(AdditionalMsRadAccessCapID_t, u.TLLI, 32, &hf_additionalmsradcap_tlli)},
+};
+
+static const
+CSN_DESCR_BEGIN(AdditionalMsRadAccessCapID_t)
+ M_CHOICE (AdditionalMsRadAccessCapID_t, UnionType, AdditionalMsRadAccessCapID, ElementsOf(AdditionalMsRadAccessCapID)),
+CSN_DESCR_END (AdditionalMsRadAccessCapID_t)
+
+
+static const
+CSN_DESCR_BEGIN (Additional_MS_Rad_Access_Cap_t)
+ /* Mac header */
+ M_UINT (Additional_MS_Rad_Access_Cap_t, PayloadType, 2, &hf_packet_resource_request_payloadtype),
+ M_UINT (Additional_MS_Rad_Access_Cap_t, spare, 5, &hf_packet_resource_request_spare),
+ M_UINT (Additional_MS_Rad_Access_Cap_t, R, 1, &hf_packet_resource_request_r),
+ M_UINT (Additional_MS_Rad_Access_Cap_t, MESSAGE_TYPE, 6, &hf_packet_resource_request_message_type),
+ /* Mac header */
+
+ M_TYPE (Additional_MS_Rad_Access_Cap_t, ID, AdditionalMsRadAccessCapID_t),
+ M_TYPE (Additional_MS_Rad_Access_Cap_t, MS_Radio_Access_capability, MS_Radio_Access_capability_t),
+CSN_DESCR_END (Additional_MS_Rad_Access_Cap_t)
+
+
+/*< End ADDITIONAL MS RADIO ACCESS CAPABILITIES > */
+
+
+/*< Packet Pause content > */
+
+static const
+CSN_DESCR_BEGIN (Packet_Pause_t)
+ M_UINT (Packet_Pause_t, MESSAGE_TYPE, 2, &hf_packet_pause_message_type),
+ M_UINT (Packet_Pause_t, TLLI, 32, &hf_packet_pause_tlli),
+ M_BITMAP (Packet_Pause_t, RAI, 48),
+CSN_DESCR_END (Packet_Pause_t)
+
+
+/*< End Packet Pause > */
+
+
+
typedef char* MT_Strings_t;
static const MT_Strings_t szMT_Downlink[] = {
@@ -4858,7 +4915,7 @@ dissect_gsm_rlcmac_uplink(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
}
case MT_PACKET_PAUSE:
{
- ret = -1;
+ ret = csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Packet_Pause_t), tvb, &data->u.Packet_Pause, ett_gsm_rlcmac);
break;
}
case MT_PACKET_ENHANCED_MEASUREMENT_REPORT:
@@ -4868,7 +4925,7 @@ dissect_gsm_rlcmac_uplink(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tre
}
case MT_ADDITIONAL_MS_RAC:
{
- ret = -1;
+ ret = csnStreamDissector(rlcmac_tree, &ar, CSNDESCR(Additional_MS_Rad_Access_Cap_t), tvb, &data->u.Additional_MS_Rad_Access_Cap, ett_gsm_rlcmac);
break;
}
case MT_PACKET_CELL_CHANGE_NOTIFICATION:
@@ -10480,6 +10537,29 @@ proto_register_gsm_rlcmac(void)
NULL, HFILL
}
},
+/*< Additional MS Radio Access Capability message content > */
+ { &hf_additionalmsradcap_tlli,
+ { "TLLI", "gsm_rlcmac_ul.arac_tlli",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL
+ }
+ },
+/*< End Additional MS Radio Access Capability> */
+
+/*< Packet Pause message content > */
+ { &hf_packet_pause_message_type,
+ { "MessageType", "gsm_rlcmac_dl.packet_pause_messagetype",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL
+ }
+ },
+ { &hf_packet_pause_tlli,
+ { "TLLI", "gsm_rlcmac_ul.packet_pause_tlli",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL
+ }
+ },
+/*< End Packet Pause> */
};
diff --git a/epan/dissectors/packet-gsm_rlcmac.h b/epan/dissectors/packet-gsm_rlcmac.h
index 9fd444f3cb..b5aef48057 100644
--- a/epan/dissectors/packet-gsm_rlcmac.h
+++ b/epan/dissectors/packet-gsm_rlcmac.h
@@ -4100,6 +4100,46 @@ typedef struct
/* End Packet Physical Information */
+
+/* ADDITIONAL MS RADIO ACCESS CAPABILITIES -----------------*/
+typedef struct
+{
+ guint8 UnionType;
+ union
+ {
+ Global_TFI_t Global_TFI;
+ guint32 TLLI;
+ } u;
+} AdditionalMsRadAccessCapID_t;
+
+
+typedef struct
+{
+ guint8 MESSAGE_TYPE;
+ guint8 PayloadType;
+ guint8 spare;
+ guint8 R;
+
+ AdditionalMsRadAccessCapID_t ID;
+ MS_Radio_Access_capability_t MS_Radio_Access_capability;
+} Additional_MS_Rad_Access_Cap_t;
+
+/* End ADDITIONAL MS RADIO ACCESS CAPABILITIES */
+
+
+/* Packet Pause -----------------*/
+
+typedef struct
+{
+ guint8 MESSAGE_TYPE;
+
+ guint32 TLLI;
+ guint8 RAI[48/8];
+} Packet_Pause_t;
+
+/* End Packet Pause */
+
+
/*
< NC Measurement Parameters struct > ::=
< NETWORK_CONTROL_ORDER : bit (2) >
@@ -4246,6 +4286,8 @@ typedef struct
Packet_Enh_Measurement_Report_t Packet_Enh_Measurement_Report;
Packet_Cell_Change_Notification_t Packet_Cell_Change_Notification;
Packet_SI_Status_t Packet_SI_Status;
+ Additional_MS_Rad_Access_Cap_t Additional_MS_Rad_Access_Cap;
+ Packet_Pause_t Packet_Pause;
} u;
gint16 NrOfBits;
} RlcMacUplink_t;