aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_a_gm.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2018-01-03 19:22:38 +0100
committerPascal Quantin <pascal.quantin@gmail.com>2018-01-03 20:36:01 +0000
commit8a08237d23017644336fa895b5bbde1a3d18fe57 (patch)
tree3af14b4b4f53145c1173be44fd59fefef543b5b1 /epan/dissectors/packet-gsm_a_gm.c
parente0d04a752aebd91bc368932364c086576962c26d (diff)
3GPP NAS: upgrade dissector to v15.1.0
Change-Id: Ibfbed335d842e53eabce36e2955a9bb2790d46fb Reviewed-on: https://code.wireshark.org/review/25131 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/packet-gsm_a_gm.c')
-rw-r--r--epan/dissectors/packet-gsm_a_gm.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/epan/dissectors/packet-gsm_a_gm.c b/epan/dissectors/packet-gsm_a_gm.c
index c9fc9a2f13..69c749cc25 100644
--- a/epan/dissectors/packet-gsm_a_gm.c
+++ b/epan/dissectors/packet-gsm_a_gm.c
@@ -65,6 +65,12 @@
* Stage 3
* (3GPP TS 24.008 version 14.6.0 Release 14)
*
+ * Reference [15]
+ * Mobile radio interface Layer 3 specification;
+ * Core network protocols;
+ * Stage 3
+ * (3GPP TS 24.008 version 15.1.0 Release 15)
+ *
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
@@ -218,6 +224,7 @@ static const value_string gsm_gm_elem_strings[] = {
{ DE_PD_PRO_ADDR, "Packet Data Protocol Address" },
{ DE_QOS, "Quality Of Service" },
{ DE_RE_ATTEMPT_IND, "Re-attempt Indicator" },
+ { DE_EXT_QOS, "Extended Quality Of Service" },
{ DE_SM_CAUSE, "SM Cause" },
{ DE_SM_CAUSE_2, "SM Cause 2" },
{ DE_LINKED_TI, "Linked TI" },
@@ -523,6 +530,7 @@ static int hf_gsm_a_gmm_net_cap_up_gia6 = -1;
static int hf_gsm_a_gmm_net_cap_up_gia7 = -1;
static int hf_gsm_a_gmm_net_cap_epco_ie_ind = -1;
static int hf_gsm_a_gmm_net_cap_restrict_use_enh_cov = -1;
+static int hf_gsm_a_gmm_net_cap_dc_eutra_nr_cap = -1;
/* Generated from convert_proto_tree_add_text.pl */
static int hf_gsm_a_gm_presence = -1;
@@ -1217,6 +1225,11 @@ static const true_false_string gsm_a_gmm_net_cap_restrict_use_enh_cov_vals = {
"Mobile station does not support restriction on use of enhanced coverage"
};
+static const true_false_string gsm_a_gmm_net_cap_dc_eutra_nr_cap_vals = {
+ "Mobile station supports dual connectivity of E-UTRA with NR",
+ "Mobile station does not support dual connectivity of E-UTRA with NR"
+};
+
guint16
de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
{
@@ -1317,6 +1330,9 @@ de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 o
/* bit 2: Restriction on use of enhanced coverage capability */
proto_tree_add_item(tree, hf_gsm_a_gmm_net_cap_restrict_use_enh_cov, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
+ /* bit 1: Dual connectivity of E-UTRA with NR capability */
+ proto_tree_add_item(tree, hf_gsm_a_gmm_net_cap_dc_eutra_nr_cap, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
+
curr_offset++;
EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_gm_extraneous_data);
@@ -5318,6 +5334,21 @@ de_sm_re_attempt_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint3
}
/*
+ * [15] 10.5.6.5b Extended quality of service
+ */
+static guint16
+de_sm_ext_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
+{
+ guint32 curr_offset;
+
+ curr_offset = offset;
+
+ EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_gsm_a_gm_extraneous_data);
+
+ return len;
+}
+
+/*
* [9] 10.5.6.6 SM cause
*/
static const value_string gsm_a_sm_cause_vals[] = {
@@ -6138,6 +6169,7 @@ guint16 (*gm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
de_sm_pdp_addr, /* Packet Data Protocol Address */
de_sm_qos, /* Quality Of Service */
de_sm_re_attempt_ind, /* Re-attempt indicator */
+ de_sm_ext_qos, /* Extended quality of service */
de_sm_cause, /* SM Cause */
de_sm_cause_2, /* SM Cause 2 */
de_sm_linked_ti, /* Linked TI */
@@ -7000,6 +7032,8 @@ dtap_sm_act_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
ELEM_OPT_TLV_E(0x7B, GSM_A_PDU_TYPE_GM, DE_EXT_PRO_CONF_OPT, NULL);
+ ELEM_OPT_TLV(0x5C, GSM_A_PDU_TYPE_GM, DE_EXT_QOS, NULL);
+
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
}
@@ -7050,6 +7084,8 @@ dtap_sm_act_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
ELEM_OPT_TLV_E(0x7B, GSM_A_PDU_TYPE_GM, DE_EXT_PRO_CONF_OPT, NULL);
+ ELEM_OPT_TLV(0x5C, GSM_A_PDU_TYPE_GM, DE_EXT_QOS, NULL);
+
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
}
@@ -7123,6 +7159,8 @@ dtap_sm_act_sec_pdp_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
ELEM_OPT_TLV_E(0x7B, GSM_A_PDU_TYPE_GM, DE_EXT_PRO_CONF_OPT, NULL);
+ ELEM_OPT_TLV(0x5C, GSM_A_PDU_TYPE_GM, DE_EXT_QOS, NULL);
+
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
}
@@ -7167,6 +7205,8 @@ dtap_sm_act_sec_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
ELEM_OPT_TLV_E(0x7B, GSM_A_PDU_TYPE_GM, DE_EXT_PRO_CONF_OPT, NULL);
+ ELEM_OPT_TLV(0x5C, GSM_A_PDU_TYPE_GM, DE_EXT_QOS, NULL);
+
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
}
@@ -7307,6 +7347,8 @@ dtap_sm_mod_pdp_req_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
ELEM_OPT_TLV_E(0x7B, GSM_A_PDU_TYPE_GM, DE_EXT_PRO_CONF_OPT, NULL);
+ ELEM_OPT_TLV(0x5C, GSM_A_PDU_TYPE_GM, DE_EXT_QOS, NULL);
+
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
}
@@ -7342,6 +7384,8 @@ dtap_sm_mod_pdp_req_ms(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guin
ELEM_OPT_TLV_E(0x7B, GSM_A_PDU_TYPE_GM, DE_EXT_PRO_CONF_OPT, NULL);
+ ELEM_OPT_TLV(0x5C, GSM_A_PDU_TYPE_GM, DE_EXT_QOS, NULL);
+
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
}
@@ -7406,6 +7450,8 @@ dtap_sm_mod_pdp_acc_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
ELEM_OPT_TLV_E(0x7B, GSM_A_PDU_TYPE_GM, DE_EXT_PRO_CONF_OPT, NULL);
+ ELEM_OPT_TLV(0x5C, GSM_A_PDU_TYPE_GM, DE_EXT_QOS, NULL);
+
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
}
@@ -7539,6 +7585,8 @@ dtap_sm_req_sec_pdp_act(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
ELEM_OPT_TLV_E(0x7B, GSM_A_PDU_TYPE_GM, DE_EXT_PRO_CONF_OPT, NULL);
+ ELEM_OPT_TLV(0x5C, GSM_A_PDU_TYPE_GM, DE_EXT_QOS, NULL);
+
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
}
@@ -8716,6 +8764,11 @@ proto_register_gsm_a_gm(void)
FT_BOOLEAN, 8, TFS(&gsm_a_gmm_net_cap_restrict_use_enh_cov_vals), 0x02,
NULL, HFILL }
},
+ { &hf_gsm_a_gmm_net_cap_dc_eutra_nr_cap,
+ { "Dual connectivity of E-UTRA with NR capability", "gsm_a.gm.gmm.net_cap.dc_eutra_nr_cap",
+ FT_BOOLEAN, 8, TFS(&gsm_a_gmm_net_cap_dc_eutra_nr_cap_vals), 0x01,
+ NULL, HFILL }
+ },
{ &hf_gsm_a_sm_tmgi,
{ "Temporary Mobile Group Identity (TMGI)", "gsm_a.gm.sm.tmgi",
FT_UINT24, BASE_HEX, NULL, 0x0,