From 825de369d360cd0035c0214a89b0a057c4fb6a5f Mon Sep 17 00:00:00 2001 From: Pascal Quantin Date: Fri, 28 Dec 2018 11:45:33 +0100 Subject: 3GPP NAS: upgrade dissector to v15.5.0 Change-Id: I8cd60558ef6fb80d916f30aa79028cd87542d956 Reviewed-on: https://code.wireshark.org/review/31226 Petri-Dish: Pascal Quantin Tested-by: Petri Dish Buildbot Reviewed-by: Pascal Quantin --- epan/dissectors/packet-gsm_a_common.h | 1 + epan/dissectors/packet-gsm_a_gm.c | 59 ++++++++++++++++++++++++++++++++--- epan/dissectors/packet-nas_5gs.c | 2 +- 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 @@ -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" }, -- cgit v1.2.3