aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_a_bssmap.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-06-01 14:36:23 +0200
committerAnders Broman <a.broman58@gmail.com>2018-06-01 15:15:11 +0000
commit2235c89e0cbae5669127f9900a1d18df745bd536 (patch)
tree62baba3b9103c1ee742fe62d2a5c244147a9d3d4 /epan/dissectors/packet-gsm_a_bssmap.c
parentb5f36fed86c5155d383d67f0989f4a6182426af7 (diff)
gsm_a_bssmap: Add LCLS specific PDU dissection
LCLS information element decoding had been added to the gsm_a_bssmap dissector before. Hoewver, they were only parsed in the existing PDU types such as ASSIGNMENT REQ / COMPLETE. LCLS introduced the three new LCLS specific PDUs, which we must also handle from the dissector. Let's do that. Change-Id: I6a57b1eaf326fa12438639418f1255b733c10d36 Signed-off-by: Harald Welte <laforge@gnumonks.org> Reviewed-on: https://code.wireshark.org/review/27941 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-gsm_a_bssmap.c')
-rw-r--r--epan/dissectors/packet-gsm_a_bssmap.c54
1 files changed, 46 insertions, 8 deletions
diff --git a/epan/dissectors/packet-gsm_a_bssmap.c b/epan/dissectors/packet-gsm_a_bssmap.c
index d0a3d9cd8b..a85d57c574 100644
--- a/epan/dissectors/packet-gsm_a_bssmap.c
+++ b/epan/dissectors/packet-gsm_a_bssmap.c
@@ -6956,31 +6956,69 @@ bssmap_reroute_complete(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_bssmap_extraneous_data);
}
-#if 0
/*
* 3.2.1.91 LCLS-CONNECT-CONTROL
*/
+static void
+bssmap_lcls_conn_ctrl(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
+{
+ guint32 curr_offset;
+ guint32 consumed;
+ guint curr_len;
+
+ curr_offset = offset;
+ curr_len = len;
+
/* LCLS-Configuration 3.2.2.116 MSC-BSS O (note1) 2 */
- /* ELEM_OPT_TV(BE_LCLS_CONF, GSM_A_PDU_TYPE_BSSMAP, BE_LCLS_CONF, NULL); */
+ ELEM_OPT_TV(BE_LCLS_CONF, GSM_A_PDU_TYPE_BSSMAP, BE_LCLS_CONF, NULL);
/* LCLS-Connection-Status-Control 3.2.2.117 MSC-BSS O (note1) 2 */
- /* ELEM_OPT_TV(BE_LCLS_CON_STATUS_CONTROL, GSM_A_PDU_TYPE_BSSMAP, BE_LCLS_CON_STATUS_CONTROL, NULL); */
+ ELEM_OPT_TV(BE_LCLS_CON_STATUS_CONTROL, GSM_A_PDU_TYPE_BSSMAP, BE_LCLS_CON_STATUS_CONTROL, NULL);
+
+ EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_bssmap_extraneous_data);
+}
/*
* 3.2.1.92 LCLS-CONNECT-CONTROL-ACK
*/
+static void
+bssmap_lcls_conn_ctrl_ack(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
+{
+ guint32 curr_offset;
+ guint32 consumed;
+ guint curr_len;
- /* LCLS-BSS-Status 3.2.2.119 BSS-MSC M 2 */
+ curr_offset = offset;
+ curr_len = len;
+ /* LCLS-BSS-Status 3.2.2.119 BSS-MSC M 2 */
+ ELEM_OPT_TV(BE_LCLS_BSS_STATUS, GSM_A_PDU_TYPE_BSSMAP, BE_LCLS_BSS_STATUS, NULL);
+ EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_bssmap_extraneous_data);
+}
/*
+ *
* 3.2.1.93 LCLS-NOTIFICATION
*/
+static void
+bssmap_lcls_notif(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len)
+{
+ guint32 curr_offset;
+ guint32 consumed;
+ guint curr_len;
+
+ curr_offset = offset;
+ curr_len = len;
/* LCLS-BSS-Status 3.2.2.119 BSS-MSC O (note 1) 2 */
- /* ELEM_OPT_TV(BE_LCLS_BSS_STATUS, GSM_A_PDU_TYPE_BSSMAP, BE_LCLS_BSS_STATUS, NULL);*/
+ ELEM_OPT_TV(BE_LCLS_BSS_STATUS, GSM_A_PDU_TYPE_BSSMAP, BE_LCLS_BSS_STATUS, NULL);
/* LCLS-Break-Request 3.2.2.120 BSS-MSC O (note 1) 1 */
+ ELEM_OPT_T(BE_LCLS_BREAK_REQ, GSM_A_PDU_TYPE_BSSMAP, BE_LCLS_BREAK_REQ, NULL);
+ EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_bssmap_extraneous_data);
+}
+
+#if 0
/*
* 3.2.1.94 MS REGISTRATION ENQUIRY
*/
@@ -7120,9 +7158,9 @@ static void (*bssmap_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
bssmap_int_ho_cmd, /* 0x72 Internal Handover Command */
bssmap_int_ho_enq, /* 0x73 Internal Handover Enquiry */
- NULL, /* 0x74 LCLS-Connect-Control */
- NULL, /* 0x75 LCLS-Connect-Control-Ack */
- NULL, /* 0x76 LCLS-Notification */
+ bssmap_lcls_conn_ctrl, /* 0x74 LCLS-Connect-Control */
+ bssmap_lcls_conn_ctrl_ack, /* 0x75 LCLS-Connect-Control-Ack */
+ bssmap_lcls_notif, /* 0x76 LCLS-Notification */
NULL, /* 0x77 Unallocated */
bssmap_reroute_cmd, /* 0x78 Reroute Command */
bssmap_reroute_complete, /* 0x79 Reroute Complete */