aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2018-12-28 11:45:33 +0100
committerPascal Quantin <pascal.quantin@gmail.com>2018-12-28 13:48:08 +0000
commit825de369d360cd0035c0214a89b0a057c4fb6a5f (patch)
tree4d635a3b5969e260369be20c66fc8b4e092b2a01 /epan/dissectors
parent52b7c8929a27376fb9965049054b571369e2ff09 (diff)
3GPP NAS: upgrade dissector to v15.5.0
Change-Id: I8cd60558ef6fb80d916f30aa79028cd87542d956 Reviewed-on: https://code.wireshark.org/review/31226 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-gsm_a_common.h1
-rw-r--r--epan/dissectors/packet-gsm_a_gm.c59
-rw-r--r--epan/dissectors/packet-nas_5gs.c2
3 files changed, 57 insertions, 5 deletions
diff --git a/epan/dissectors/packet-gsm_a_common.h b/epan/dissectors/packet-gsm_a_common.h
index 3d8aad58b1..b2511ad386 100644
--- a/epan/dissectors/packet-gsm_a_common.h
+++ b/epan/dissectors/packet-gsm_a_common.h
@@ -836,6 +836,7 @@ extern const value_string nas_eps_emm_cause_values[];
extern const value_string nas_eps_esm_cause_vals[];
extern const value_string nas_5gs_pdu_session_id_vals[];
+extern const value_string nas_5gs_sm_cause_vals[];
typedef enum
{
diff --git a/epan/dissectors/packet-gsm_a_gm.c b/epan/dissectors/packet-gsm_a_gm.c
index 11672b1890..c7e5c93bbc 100644
--- a/epan/dissectors/packet-gsm_a_gm.c
+++ b/epan/dissectors/packet-gsm_a_gm.c
@@ -69,7 +69,7 @@
* Mobile radio interface Layer 3 specification;
* Core network protocols;
* Stage 3
- * (3GPP TS 24.008 version 15.2.0 Release 15)
+ * (3GPP TS 24.008 version 15.5.0 Release 15)
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -483,7 +483,9 @@ static int hf_gsm_a_gm_rac_ext_tsc_set_cap_support = -1;
static int hf_gsm_a_gm_rac_ext_earfcn_value_range = -1;
static int hf_gsm_a_gm_rac_ec_pch_mon_support = -1;
static int hf_gsm_a_gm_rac_ms_sync_accuracy = -1;
-static int hf_gsm_a_gm_rac_ext_ec_ul_cov_enh_support = -1;
+static int hf_gsm_a_gm_rac_ec_ul_cov_enh_support = -1;
+static int hf_gsm_a_gm_rac_mta_access_sec_support = -1;
+static int hf_gsm_a_gm_rac_ec_paging_ind_chan_mon_support = -1;
static int hf_gsm_a_sm_ti_flag = -1;
static int hf_gsm_a_sm_ext = -1;
@@ -560,6 +562,7 @@ static int hf_gsm_a_gm_sm_pco_pdu_session_address_lifetime = -1;
static int hf_gsm_a_gm_sm_pco_qos_flow_descriptions = -1;
static int hf_gsm_a_gm_sm_pco_eth_frame_payload_mtu = -1;
static int hf_gsm_a_gm_sm_pco_unstruct_link_mtu = -1;
+static int hf_gsm_a_gm_sm_pco_5gsm_cause = -1;
static int hf_gsm_a_sm_pdp_type_number = -1;
static int hf_gsm_a_sm_pdp_address = -1;
static int hf_gsm_a_gm_ti_value = -1;
@@ -3309,7 +3312,33 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
*/
bits_needed = 1;
GET_DATA;
- proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_ext_ec_ul_cov_enh_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_ec_ul_cov_enh_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset += bits_needed;
+ curr_bits_length -= bits_needed;
+ oct <<= bits_needed;
+ bits_in_oct -= bits_needed;
+
+ /*
+ * Release 15
+ */
+
+ /*
+ * MTA Access Security support
+ */
+ bits_needed = 1;
+ GET_DATA;
+ proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_mta_access_sec_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset += bits_needed;
+ curr_bits_length -= bits_needed;
+ oct <<= bits_needed;
+ bits_in_oct -= bits_needed;
+
+ /*
+ * EC paging indication channel monitoring support
+ */
+ bits_needed = 1;
+ GET_DATA;
+ proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_ec_paging_ind_chan_mon_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
bit_offset += bits_needed;
curr_bits_length -= bits_needed;
oct <<= bits_needed;
@@ -4422,6 +4451,7 @@ static const range_string gsm_a_sm_pco_ms2net_prot_vals[] = {
{ 0x001b, 0x001f, "Reserved" },
{ 0x0020, 0x0020, "Ethernet Frame Payload MTU Request" },
{ 0x0021, 0x0021, "Unstructured Link MTU Request" },
+ { 0x0022, 0x0022, "5GSM cause value" },
{ 0xff00, 0xffff, "Operator Specific Use" },
{ 0, 0, NULL }
};
@@ -4459,6 +4489,7 @@ static const range_string gsm_a_sm_pco_net2ms_prot_vals[] = {
{ 0x001f, 0x001f, "QoS flow descriptions" },
{ 0x0020, 0x0020, "Ethernet Frame Payload MTU" },
{ 0x0021, 0x0021, "Unstructured Link MTU" },
+ { 0x0022, 0x0022, "Reserved" },
{ 0xff00, 0xffff, "Operator Specific Use" },
{ 0, 0, NULL }
};
@@ -4716,6 +4747,11 @@ de_sm_pco(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, g
proto_tree_add_item(pco_tree, hf_gsm_a_gm_sm_pco_unstruct_link_mtu, tvb, curr_offset, 2, ENC_BIG_ENDIAN);
}
break;
+ case 0x0022:
+ if (link_dir == P2P_DIR_UL && e_len == 1) {
+ proto_tree_add_item(pco_tree, hf_gsm_a_gm_sm_pco_5gsm_cause, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
+ }
+ break;
default:
{
if (e_len > 0) {
@@ -9227,11 +9263,21 @@ proto_register_gsm_a_gm(void)
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
- { &hf_gsm_a_gm_rac_ext_ec_ul_cov_enh_support,
+ { &hf_gsm_a_gm_rac_ec_ul_cov_enh_support,
{ "EC uplink coverage enhancement support", "gsm_a.gm.gmm.rac.ec_ul_cov_enh_support",
FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
NULL, HFILL }
},
+ { &hf_gsm_a_gm_rac_mta_access_sec_support,
+ { "MTA Access Security support", "gsm_a.gm.gmm.rac.mta_access_sec_support",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_gsm_a_gm_rac_ec_paging_ind_chan_mon_support,
+ { "EC paging indication channel monitoring support", "gsm_a.gm.gmm.rac.ec_paging_ind_chan_mon_support",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
{ &hf_gsm_a_sm_ti_flag,
{ "TI Flag", "gsm_a.gm.sm.ti_flag",
FT_BOOLEAN, 8, TFS(&gsm_a_sm_ti_flag_vals), 0x80,
@@ -9297,6 +9343,11 @@ proto_register_gsm_a_gm(void)
FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_octet_octets, 0x0,
NULL, HFILL }
},
+ { &hf_gsm_a_gm_sm_pco_5gsm_cause,
+ { "5GSM cause", "gsm_a.gm.sm.pco.5gsm_cause",
+ FT_UINT8, BASE_DEC, VALS(nas_5gs_sm_cause_vals), 0x0,
+ NULL, HFILL }
+ },
/* Generated from convert_proto_tree_add_text.pl */
{ &hf_gsm_a_gm_presence, { "Presence", "gsm_a.gm.gmm.presence", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
{ &hf_gsm_a_gm_8psk_power_class, { "8PSK Power Class", "gsm_a.gm.8psk_power_class", FT_UINT8, BASE_DEC, VALS(gsm_a_gm_8psk_power_class_vals), 0x0, NULL, HFILL }},
diff --git a/epan/dissectors/packet-nas_5gs.c b/epan/dissectors/packet-nas_5gs.c
index 53da4c05fa..192058bc54 100644
--- a/epan/dissectors/packet-nas_5gs.c
+++ b/epan/dissectors/packet-nas_5gs.c
@@ -1747,7 +1747,7 @@ de_nas_5gs_sm_5gsm_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
* 9.11.4.2 5GSM cause
*/
-static const value_string nas_5gs_sm_cause_vals[] = {
+const value_string nas_5gs_sm_cause_vals[] = {
{ 0x1a, "Insufficient resources" },
{ 0x1b, "Missing or unknown DNN" },
{ 0x1c, "Unknown PDU session type" },