diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-06-01 14:36:23 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-06-01 15:15:11 +0000 |
commit | 2235c89e0cbae5669127f9900a1d18df745bd536 (patch) | |
tree | 62baba3b9103c1ee742fe62d2a5c244147a9d3d4 /epan/dissectors/packet-gsm_a_bssmap.c | |
parent | b5f36fed86c5155d383d67f0989f4a6182426af7 (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.c | 54 |
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 */ |