aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorAndersBroman <anders.broman@ericsson.com>2018-06-12 12:31:28 +0200
committerAnders Broman <a.broman58@gmail.com>2018-06-12 14:51:33 +0000
commit16b04f59edd046bf9a9757813d2564186cbcd591 (patch)
treeb32b1f6e059e5e32413e7c3213f508333e5c3fc2 /epan/dissectors
parent6825f47bd1c984d9378a7a1884a2659683aaa832 (diff)
NAS-5GS: Update towards spec 2.0.0
Change-Id: I31b1dda0f06bf1b719dc949dfd1a44c151f452b9 Reviewed-on: https://code.wireshark.org/review/28217 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')
-rw-r--r--epan/dissectors/packet-gsm_a_common.c9
-rw-r--r--epan/dissectors/packet-gsm_a_common.h105
-rw-r--r--epan/dissectors/packet-gsm_a_gm.c2
-rw-r--r--epan/dissectors/packet-nas_5gs.c1888
-rw-r--r--epan/dissectors/packet-nas_eps.c2
5 files changed, 1103 insertions, 903 deletions
diff --git a/epan/dissectors/packet-gsm_a_common.c b/epan/dissectors/packet-gsm_a_common.c
index a90bfef093..83bb11a2d6 100644
--- a/epan/dissectors/packet-gsm_a_common.c
+++ b/epan/dissectors/packet-gsm_a_common.c
@@ -1187,6 +1187,15 @@ const char* get_gsm_a_msg_string(int pdu_type, int idx)
case GMR1_IE_RR:
msg_string = val_to_str_ext(idx, &gmr1_ie_rr_strings_ext, "GMR1_IE_RR (%u)");
break;
+ case NAS_5GS_PDU_TYPE_COMMON:
+ msg_string = val_to_str_ext(idx, &nas_5gs_common_elem_strings_ext, "NAS_5GS_PDU_TYPE_COMMON (%u)");
+ break;
+ case NAS_5GS_PDU_TYPE_MM:
+ msg_string = val_to_str_ext(idx, &nas_5gs_mm_elem_strings_ext, "NAS_5GS_PDU_TYPE_MM (%u)");
+ break;
+ case NAS_5GS_PDU_TYPE_SM:
+ msg_string = val_to_str_ext(idx, &nas_5gs_sm_elem_strings_ext, "NAS_5GS_PDU_TYPE_SM (%u)");
+ break;
default:
DISSECTOR_ASSERT_NOT_REACHED();
}
diff --git a/epan/dissectors/packet-gsm_a_common.h b/epan/dissectors/packet-gsm_a_common.h
index 3c1c35a3f9..f28cf89825 100644
--- a/epan/dissectors/packet-gsm_a_common.h
+++ b/epan/dissectors/packet-gsm_a_common.h
@@ -782,7 +782,7 @@ guint16 de_emm_sec_par_to_eutra(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
guint16 de_esm_qos(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
void nas_esm_pdn_con_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len);
-guint16 de_nas_5gs_mm_s_nssai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
+guint16 de_nas_5gs_cmn_s_nssai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
guint16 de_nas_5gs_sm_qos_rules(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
guint16 de_nas_5gs_sm_session_ambr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_);
@@ -1593,59 +1593,64 @@ sgsap_elem_idx_t;
typedef enum
{
- DE_NAS_5GS_MM_5GMM_CAP, /* 9.8.3.1 5GMM capability*/
- DE_NAS_5GS_MM_5GMM_CAUSE, /* 9.8.3.2 5GMM cause*/
- DE_NAS_5GS_MM_5GS_MOBILE_ID, /* 9.8.3.3 5GS mobile identity*/
- DE_NAS_5GS_MM_5GS_NW_FEAT_SUP, /* 9.8.3.4 5GS network feature support*/
- DE_NAS_5GS_MM_5GS_REG_RES, /* 9.8.3.5 5GS registration result*/
- DE_NAS_5GS_MM_5GS_REG_TYPE, /* 9.8.3.6 5GS registration type*/
- DE_NAS_5GS_MM_ALLOW_PDU_SES_STS, /* 9.8.3.7 Allowed PDU session status*/
- DE_NAS_5GS_MM_AUT_PAR_AUTN, /* 9.8.3.8 Authentication parameter AUTN*/
- DE_NAS_5GS_MM_AUT_PAR_RAND, /* 9.8.3.9 Authentication parameter RAND*/
- DE_NAS_5GS_MM_CONF_UPD_IND, /* 9.8.3.10 Configuration update indication*/
- DE_NAS_5GS_MM_DLGT_SAVING_TIME, /* 9.8.3.11 Daylight saving time*/
- DE_NAS_5GS_MM_DE_REG_TYPE, /* 9.8.3.12 De-registration type*/
- DE_NAS_5GS_MM_DNN, /* 9.8.3.13 DNN*/
- DE_NAS_5GS_MM_EAP_MSG, /* 9.8.3.14 EAP message*/
- DE_NAS_5GS_MM_EPS_NAS_MSG_CONT, /* 9.8.3.15 EPS NAS message container*/
- DE_NAS_5GS_MM_GPRS_TIMER_2, /* 9.8.3.16 GPRS timer 2*/
- DE_NAS_5GS_MM_HASHAMF, /* 9.8.3.17 HashAMF*/
- DE_NAS_5GS_MM_IMEISV_REQ, /* 9.8.3.18 IMEISV request*/
- DE_NAS_5GS_MM_LADN_INF, /* 9.8.3.19 LADN information*/
- DE_NAS_5GS_MM_MSG_AUTH_CODE, /* 9.8.3.20 Message authentication code*/
- DE_NAS_5GS_MM_MICO_IND, /* 9.8.3.21 MICO indication*/
- DE_NAS_5GS_MM_NAS_KEY_SET_ID, /* 9.8.3.22 NAS key set identifier*/
- DE_NAS_5GS_MM_NAS_MSG_CONT, /* 9.8.3.23 NAS message container*/
- DE_NAS_5GS_MM_NAS_SEC_ALGO, /* 9.8.3.24 NAS security algorithms*/
- DE_NAS_5GS_MM_NAS_SEC_PAR_NG_RAN, /* 9.8.3.25 NAS security parameters to NG-RAN*/
- DE_NAS_5GS_MM_NW_NAME, /* 9.8.3.26 Network name*/
- DE_NAS_5GS_MM_NONCE, /* 9.8.3.27 Nonce*/
- DE_NAS_5GS_MM_NSSAI, /* 9.8.3.28 NSSAI*/
- DE_NAS_5GS_MM_NSSAI_INF_FOR_PDU_SES, /* 9.8.3.29 NSSAI info for PDU sessions*/
- DE_NAS_5GS_MM_PLD_CONT, /* 9.8.3.30 Payload container*/
- DE_NAS_5GS_MM_PLD_CONT_TYPE, /* 9.8.3.31 Payload container type*/
- DE_NAS_5GS_MM_PDU_SES_REACT_RES, /* 9.8.3.32 PDU session reactivation result*/
- DE_NAS_5GS_MM_PLMN_LIST, /* 9.8.3.33 PLMN list*/
- DE_NAS_5GS_MM_OLD_PDU_SES_ID, /* 9.8.3.34 Old PDU session identity*/
- DE_NAS_5GS_MM_REJ_NSSAI, /* 9.8.3.35 Rejected NSSAI*/
- DE_NAS_5GS_MM_S1_UE_NW_CAP, /* 9.8.3.36 S1 UE network capability*/
- DE_NAS_5GS_MM_S_NSSAI, /* 9.8.3.37 S-NSSAI*/
- DE_NAS_5GS_MM_SEQ_NO, /* 9.8.3.38 Sequence number*/
- DE_NAS_5GS_MM_SAL, /* 9.8.3.39 Service area list*/
- DE_NAS_5GS_MM_SMS_ALL, /* 9.8.3.40 SMS allowed*/
- DE_NAS_5GS_MM_SMS_REQ, /* 9.8.3.41 SMS requested*/
- DE_NAS_5GS_MM_REQ_TYPE, /* 9.8.3.42 Request type*/
- DE_NAS_5GS_MM_SERV_TYPE, /* 9.8.3.43 Service type*/
- DE_NAS_5GS_MM_TAI_ID, /* 9.8.3.44 Tracking area identity*/
- DE_NAS_5GS_MM_TAI_ID_LIST, /* 9.8.3.45 Tracking area identity list*/
- DE_NAS_5GS_MM_TZ, /* 9.8.3.46 Time zone*/
- DE_NAS_5GS_MM_TZ_AND_T, /* 9.8.3.47 Time zone and time*/
- DE_NAS_5GS_MM_UE_SEC_CAP, /* 9.8.3.48 UE security capability*/
- DE_NAS_5GS_MM_UE_STS, /* 9.8.3.49 UE status*/
+ DE_NAS_5GS_MM_5GMM_CAP, /* 9.10.3.1 5GMM capability*/
+ DE_NAS_5GS_MM_5GMM_CAUSE, /* 9.10.3.2 5GMM cause*/
+ DE_NAS_5GS_MM_5GS_IDENTITY_TYPE, /* 9.10.3.3 5GS identity type*/
+ DE_NAS_5GS_MM_5GS_MOBILE_ID, /* 9.10.3.4 5GS mobile identity*/
+ DE_NAS_5GS_MM_5GS_NW_FEAT_SUP, /* 9.10.3.5 5GS network feature support*/
+ DE_NAS_5GS_MM_5GS_REG_RES, /* 9.10.3.6 5GS registration result*/
+ DE_NAS_5GS_MM_5GS_REG_TYPE, /* 9.10.3.7 5GS registration type*/
+ DE_NAS_5GS_MM_5GS_TA_ID, /* 9.10.3.8 5GS tracking area identity */
+ DE_NAS_5GS_MM_5GS_TA_ID_LIST, /* 9.10.3.9 5GS tracking area identity list */
+ DE_NAS_5GS_MM_ACCESS_TYPE, /* 9.10.3.10 Access type */
+ DE_NAS_5GS_MM_ALLOW_PDU_SES_STS, /* 9.10.3.11 Allowed PDU session status*/
+ DE_NAS_5GS_MM_AUT_FAIL_PAR, /* 9.10.3.12 Authentication failure parameter */
+ DE_NAS_5GS_MM_AUT_PAR_AUTN, /* 9.10.3.13 Authentication parameter AUTN*/
+ DE_NAS_5GS_MM_AUT_PAR_RAND, /* 9.10.3.14 Authentication parameter RAND*/
+ DE_NAS_5GS_MM_AUT_RESP_PAR, /* 9.10.3.15 Authentication response parameter */
+ DE_NAS_5GS_MM_CONF_UPD_IND, /* 9.10.3.16 Configuration update indication*/
+ DE_NAS_5GS_MM_DLGT_SAVING_TIME, /* 9.10.3.17 Daylight saving time*/
+ DE_NAS_5GS_MM_DE_REG_TYPE, /* 9.10.3.18 De-registration type*/
+ DE_NAS_5GS_MM_DNN, /* 9.10.3.19 DNN*/
+ DE_NAS_5GS_MM_DRX_PAR, /* 9.10.3.20 DRX parameters */
+ DE_NAS_5GS_MM_EMRG_NR_LIST, /* 9.10.3.21 Emergency number list */
+ DE_NAS_5GS_MM_EPS_NAS_MSG_CONT, /* 9.10.3.22 EPS NAS message container */
+ DE_NAS_5GS_MM_EPS_NAS_SEC_ALGO, /* 9.10.3.23 EPS NAS security algorithms */
+ DE_NAS_5GS_MM_EXT_EMERG_NUM_LIST, /* 9.10.3.24 Extended emergency number list */
+ DE_NAS_5GS_MM_HASHAMF, /* 9.10.3.25 HashAMF*/
+ DE_NAS_5GS_MM_IMEISV_REQ, /* 9.10.3.26 IMEISV request*/
+ DE_NAS_5GS_MM_LADN_INF, /* 9.10.3.27 LADN information*/
+ DE_NAS_5GS_MM_MICO_IND, /* 9.10.3.28 MICO indication*/
+ DE_NAS_5GS_MM_NAS_KEY_SET_ID, /* 9.10.3.29 NAS key set identifier*/
+ DE_NAS_5GS_MM_NAS_MSG, /* 9.10.3.30 NAS message */
+ DE_NAS_5GS_MM_NAS_MSG_CONT, /* 9.10.3.31 NAS message container*/
+ DE_NAS_5GS_MM_NAS_SEC_ALGO, /* 9.10.3.32 NAS security algorithms*/
+ DE_NAS_5GS_MM_NW_NAME, /* 9.10.3.33 Network name*/
+ DE_NAS_5GS_MM_NSSAI, /* 9.10.3.34 NSSAI*/
+ DE_NAS_5GS_MM_PLD_CONT, /* 9.10.3.35 Payload container*/
+ DE_NAS_5GS_MM_PLD_CONT_TYPE, /* 9.10.3.36 Payload container type*/
+ DE_NAS_5GS_MM_PDU_SES_ID_2, /* 9.10.3.37 PDU session identity 2 */
+ DE_NAS_5GS_MM_PDU_SES_REACT_RES, /* 9.10.3.38 PDU session reactivation result*/
+ DE_NAS_5GS_MM_PDU_SES_REACT_RES_ERR_C, /* 9.10.3.39 PDU session reactivation result error cause */
+ DE_NAS_5GS_MM_PDU_SES_STATUS, /* 9.10.3.40 PDU session status */
+ DE_NAS_5GS_MM_PLMN_LIST, /* 9.10.3.41 PLMN list*/
+ DE_NAS_5GS_MM_REJ_NSSAI, /* 9.10.3.42 Rejected NSSAI*/
+ DE_NAS_5GS_MM_REQ_TYPE, /* 9.10.3.43 Request type */
+ DE_NAS_5GS_MM_S1_UE_NW_CAP, /* 9.10.3.44 S1 UE network capability*/
+ DE_NAS_5GS_MM_SAL, /* 9.10.3.45 Service area list*/
+ DE_NAS_5GS_MM_SERV_TYPE, /* 9.10.3.46 Service type*/
+ DE_NAS_5GS_MM_TZ, /* 9.10.3.47 Time zone*/
+ DE_NAS_5GS_MM_TZ_AND_T, /* 9.10.3.48 Time zone and time*/
+ DE_NAS_5GS_MM_TRANSP_CONT, /* 9.10.3.49 Transparent container */
+ DE_NAS_5GS_MM_UE_SEC_CAP, /* 9.10.3.50 UE security capability*/
+ DE_NAS_5GS_MM_UE_USAGE_SET, /* 9.10.3.51 UE's usage setting */
+ DE_NAS_5GS_MM_UE_STATUS, /* 9.10.3.52 UE status */
+ DE_NAS_5GS_MM_UL_DATA_STATUS, /* 9.10.3.53 Uplink data status */
DE_NAS_5GS_MM_NONE /* NONE */
}
nas_5gs_mm_elem_idx_t;
+
#endif /* __PACKET_GSM_A_COMMON_H__ */
/*
diff --git a/epan/dissectors/packet-gsm_a_gm.c b/epan/dissectors/packet-gsm_a_gm.c
index f6480385cc..de7baf84d8 100644
--- a/epan/dissectors/packet-gsm_a_gm.c
+++ b/epan/dissectors/packet-gsm_a_gm.c
@@ -4665,7 +4665,7 @@ de_sm_pco(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, g
break;
case 0x001b:
if (link_dir == P2P_DIR_DL && e_len >= 4) {
- de_nas_5gs_mm_s_nssai(tvb, pco_tree, pinfo, curr_offset, e_len - 3, NULL, 0);
+ de_nas_5gs_cmn_s_nssai(tvb, pco_tree, pinfo, curr_offset, e_len - 3, NULL, 0);
dissect_e212_mcc_mnc(tvb, pinfo, pco_tree, curr_offset + e_len - 3, E212_NONE, TRUE);
}
break;
diff --git a/epan/dissectors/packet-nas_5gs.c b/epan/dissectors/packet-nas_5gs.c
index 2110c797e2..3b72643979 100644
--- a/epan/dissectors/packet-nas_5gs.c
+++ b/epan/dissectors/packet-nas_5gs.c
@@ -9,7 +9,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * References: 3GPP TS 24.501 0.4.0
+ * References: 3GPP TS 24.501 2.0.0
*/
#include "config.h"
@@ -73,16 +73,12 @@ static int hf_nas_5gs_mm_conf_upd_ind_ack_b0 = -1;
static int hf_nas_5gs_mm_conf_upd_ind_red_b1 = -1;
static int hf_nas_5gs_mm_nas_sec_algo_enc = -1;
static int hf_nas_5gs_mm_nas_sec_algo_ip = -1;
-static int hf_nas_5gs_mm_nonceamf = -1;
static int hf_nas_5gs_mm_s1_mode_b0 = -1;
+static int hf_nas_5gs_mm_ho_attach_b1 = -1;
static int hf_nas_5gs_mm_type_id = -1;
static int hf_nas_5gs_mm_odd_even = -1;
static int hf_nas_5gs_mm_length = -1;
-static int hf_nas_5gs_mm_pdu_ses_id = -1;
-static int hf_nas_5gs_mm_old_pdu_ses_id = -1;
static int hf_nas_5gs_mm_pld_cont = -1;
-static int hf_nas_5gs_mm_all_acc_b1b0 = -1;
-static int hf_nas_5gs_mm_sup_acc_b1b0 = -1;
static int hf_nas_5gs_mm_req_type = -1;
static int hf_nas_5gs_mm_serv_type = -1;
static int hf_nas_5gs_mm_5g_ea0 = -1;
@@ -177,11 +173,23 @@ static int nas_5gs_sm_unit_for_session_ambr_dl = -1;
static int hf_nas_5gs_sm_session_ambr_dl = -1;
static int nas_5gs_sm_unit_for_session_ambr_ul = -1;
static int hf_nas_5gs_sm_session_ambr_ul = -1;
+static int hf_nas_5gs_sm_all_ssc_mode_b0 = -1;
+static int hf_nas_5gs_sm_all_ssc_mode_b1 = -1;
+static int hf_nas_5gs_sm_all_ssc_mode_b2 = -1;
static int ett_nas_5gs = -1;
static int ett_nas_5gs_mm_nssai = -1;
static int ett_nas_5gs_mm_pdu_ses_id = -1;
static int ett_nas_5gs_sm_qos_rules = -1;
+static int hf_nas_5gs_mm_suci = -1;
+static int hf_nas_5gs_mm_imei = -1;
+static int hf_nas_5gs_mm_imeisv = -1;
+static int hf_nas_5gs_mm_reg_res_sms_allowed = -1;
+static int hf_nas_5gs_mm_reg_res_res = -1;
+static int hf_nas_5gs_amf_region_id = -1;
+static int hf_nas_5gs_amf_set_id = -1;
+static int hf_nas_5gs_amf_pointer = -1;
+static int hf_nas_5gs_5g_tmsi = -1;
static expert_field ei_nas_5gs_extraneous_data = EI_INIT;
static expert_field ei_nas_5gs_unknown_pd = EI_INIT;
@@ -232,133 +240,13 @@ static const value_string nas_5gs_epd_vals[] = {
};
-/*
- * 9.8.2 Common information elements
- */
- /*
- * 9.8.2.1 Additional information
- */
-static guint16
-de_nas_5gs_cmn_add_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
- guint32 offset, guint len,
- gchar *add_string _U_, int string_len _U_)
-{
- proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
-
- return len;
-}
-
-/*
- * 9.8.2.2 PDU session status
- */
-
-static true_false_string tfs_nas_5gs_pdu_ses_sts_psi = {
- "Not PDU SESSION INACTIVE",
- "PDU SESSION INACTIVE"
-};
-
-
-
-static guint16
-de_nas_5gs_pdu_ses_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
- guint32 offset, guint len,
- gchar *add_string _U_, int string_len _U_)
-{
- int curr_offset;
-
- static const int * psi_0_7_flags[] = {
- &hf_nas_5gs_pdu_ses_sts_psi_7_b7,
- &hf_nas_5gs_pdu_ses_sts_psi_6_b6,
- &hf_nas_5gs_pdu_ses_sts_psi_5_b5,
- &hf_nas_5gs_pdu_ses_sts_psi_4_b4,
- &hf_nas_5gs_pdu_ses_sts_psi_3_b3,
- &hf_nas_5gs_pdu_ses_sts_psi_2_b2,
- &hf_nas_5gs_pdu_ses_sts_psi_1_b1,
- &hf_nas_5gs_pdu_ses_sts_psi_0_b0,
- NULL
- };
-
- static const int * psi_8_15_flags[] = {
- &hf_nas_5gs_pdu_ses_sts_psi_15_b7,
- &hf_nas_5gs_pdu_ses_sts_psi_14_b6,
- &hf_nas_5gs_pdu_ses_sts_psi_13_b5,
- &hf_nas_5gs_pdu_ses_sts_psi_12_b4,
- &hf_nas_5gs_pdu_ses_sts_psi_11_b3,
- &hf_nas_5gs_pdu_ses_sts_psi_10_b2,
- &hf_nas_5gs_pdu_ses_sts_psi_9_b1,
- &hf_nas_5gs_pdu_ses_sts_psi_8_b0,
- NULL
- };
-
- curr_offset = offset;
- proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_0_7_flags, ENC_BIG_ENDIAN);
- curr_offset++;
-
- proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_8_15_flags, ENC_BIG_ENDIAN);
-
- EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_nas_5gs_extraneous_data);
-
- return (curr_offset - offset);
-
-}
/*
- * 9.8.2.3 Uplink data status
- */
-static true_false_string tfs_nas_5gs_ul_data_sts_psi = {
- "uplink data are pending ",
- "no uplink data are pending"
-};
-
-static guint16
-de_nas_5gs_ul_data_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
- guint32 offset, guint len,
- gchar *add_string _U_, int string_len _U_)
-{
- int curr_offset;
-
- static const int * psi_0_7_flags[] = {
- &hf_nas_5gs_ul_data_sts_psi_7_b7,
- &hf_nas_5gs_ul_data_sts_psi_6_b6,
- &hf_nas_5gs_ul_data_sts_psi_5_b5,
- &hf_nas_5gs_ul_data_sts_psi_4_b4,
- &hf_nas_5gs_ul_data_sts_psi_3_b3,
- &hf_nas_5gs_ul_data_sts_psi_2_b2,
- &hf_nas_5gs_ul_data_sts_psi_1_b1,
- &hf_nas_5gs_ul_data_sts_psi_0_b0,
- NULL
- };
-
- static const int * psi_8_15_flags[] = {
- &hf_nas_5gs_ul_data_sts_psi_15_b7,
- &hf_nas_5gs_ul_data_sts_psi_14_b6,
- &hf_nas_5gs_ul_data_sts_psi_13_b5,
- &hf_nas_5gs_ul_data_sts_psi_12_b4,
- &hf_nas_5gs_ul_data_sts_psi_11_b3,
- &hf_nas_5gs_ul_data_sts_psi_10_b2,
- &hf_nas_5gs_ul_data_sts_psi_9_b1,
- &hf_nas_5gs_ul_data_sts_psi_8_b0,
- NULL
- };
-
- curr_offset = offset;
- proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_0_7_flags, ENC_BIG_ENDIAN);
- curr_offset++;
-
- proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_8_15_flags, ENC_BIG_ENDIAN);
-
- EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_nas_5gs_extraneous_data);
-
- return (curr_offset - offset);
-}
-
-
-/*
- * 9.8.3 5GS mobility management (5GMM) information elements
+ * 9.10.3 5GS mobility management (5GMM) information elements
*/
/*
- * 9.8.3.1 5GMM capability
+ * 9.10.3.1 5GMM capability
*/
static guint16
de_nas_5gs_mm_5gmm_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
@@ -372,7 +260,7 @@ de_nas_5gs_mm_5gmm_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
&hf_nas_5gs_spare_b4,
&hf_nas_5gs_spare_b3,
&hf_nas_5gs_spare_b2,
- &hf_nas_5gs_spare_b1,
+ &hf_nas_5gs_mm_ho_attach_b1,
&hf_nas_5gs_mm_s1_mode_b0,
NULL
};
@@ -383,7 +271,7 @@ de_nas_5gs_mm_5gmm_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
/*
- * 9.8.3.2 5GMM cause
+ * 9.10.3.2 5GMM cause
*/
static const value_string nas_5gs_mm_cause_vals[] = {
@@ -397,6 +285,11 @@ static const value_string nas_5gs_mm_cause_vals[] = {
{ 0x0e, "Roaming not allowed in this tracking area" },
{ 0x15, "Synch failure" },
{ 0x1b, "N1 mode not allowed" },
+ { 0x1c, "Restricted service area" },
+ { 0x2b, "LADN not available" },
+ { 0x43, "Insufficient resources for specific slice and DNN" },
+ { 0x45, "Insufficient resources for specific slice" },
+ { 0x5a, "Payload was not forwarded" },
{ 0x5f, "Semantically incorrect message" },
{ 0x60, "Invalid mandatory information" },
{ 0x61, "Message type non-existent or not implemented" },
@@ -425,12 +318,28 @@ de_nas_5gs_mm_5gmm_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
/*
- * 9.8.3.3 5GS mobile identity
+ * 9.10.3.3 5GS identity type
+ */
+static guint16
+de_nas_5gs_mm_5gs_identity_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
+ guint32 offset, guint len _U_,
+ gchar *add_string _U_, int string_len _U_)
+{
+
+ proto_tree_add_item(tree, hf_nas_5gs_mm_type_id, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+ return 1;
+}
+
+/*
+ * 9.10.3.4 5GS mobile identity
*/
static const value_string nas_5gs_mm_type_id_vals[] = {
+ { 0x0, "No identity" },
{ 0x1, "SUCI" },
{ 0x3, "IMEI" },
- { 0x4, "5G-TMSI" },
+ { 0x4, "5G-S-TMSI" },
+ { 0x5, "IMEISV" },
{ 0x6, "5G-GUTI" },
{ 0, NULL }
};
@@ -445,20 +354,69 @@ de_nas_5gs_mm_5gs_mobile_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
- /*guint32 type_id;*/
+ guint32 type_id;
+ tvbuff_t * new_tvb;
+ const char *digit_str;
- /*proto_tree_add_item_ret_uint(tree, hf_nas_5gs_mm_type_id, tvb, offset, 1, ENC_BIG_ENDIAN, &type_id);*/
- proto_tree_add_item(tree, hf_nas_5gs_mm_type_id, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_nas_5gs_mm_odd_even, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item_ret_uint(tree, hf_nas_5gs_mm_type_id, tvb, offset, 1, ENC_BIG_ENDIAN, &type_id);
offset++;
+ len--;
+ switch (type_id) {
+ case 1:
+ /* SUCI */
+ new_tvb = tvb_new_subset_length(tvb, offset, len);
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(new_tvb, 0, len, NULL, TRUE);
+ proto_tree_add_string(tree, hf_nas_5gs_mm_suci, new_tvb, 0, -1, digit_str);
+ break;
+ case 3:
+ /* IMEI */
+ new_tvb = tvb_new_subset_length(tvb, offset, len);
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(new_tvb, 0, len, NULL, TRUE);
+ proto_tree_add_string(tree, hf_nas_5gs_mm_imei, new_tvb, 0, -1, digit_str);
+ break;
+ case 4:
+ /*5G-S-TMSI*/
+ /* AMF Set ID AMF Pointer */
+ proto_tree_add_item(tree, hf_nas_5gs_amf_set_id, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_nas_5gs_amf_pointer, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(tree, hf_nas_5gs_5g_tmsi, tvb, offset, 4, ENC_BIG_ENDIAN);
+ break;
+ case 5:
+ /* IMEISV */
+ new_tvb = tvb_new_subset_length(tvb, offset, len);
+ digit_str = tvb_bcd_dig_to_wmem_packet_str(new_tvb, 0, len, NULL, TRUE);
+ proto_tree_add_string(tree, hf_nas_5gs_mm_imeisv, new_tvb, 0, -1, digit_str);
+ break;
+ case 6:
+ /* MCC digit 2 MCC digit 1
+ * MNC digit 3 MCC digit 3
+ * MNC digit 2 MNC digit 1
+ */
+ offset = dissect_e212_mcc_mnc(tvb, pinfo, tree, offset, E212_NONE, TRUE);
+ /* AMF Region ID
+ * AMF Region ID (continued)
+ */
+ proto_tree_add_item(tree, hf_nas_5gs_amf_region_id, tvb, offset, 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ /* AMF Set ID AMF Pointer */
+ proto_tree_add_item(tree, hf_nas_5gs_amf_set_id, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_nas_5gs_amf_pointer, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ proto_tree_add_item(tree, hf_nas_5gs_5g_tmsi, tvb, offset, 4, ENC_BIG_ENDIAN);
+ break;
- proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len -1);
+ default:
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_unknown_value, tvb, offset, len);
+ break;
+ }
- return len;
+ return len+1;
}
/*
- * 9.8.3.4 5GS network feature support
+ * 9.10.3.5 5GS network feature support
*/
static guint16
de_nas_5gs_mm_5gs_nw_feat_sup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
@@ -472,21 +430,31 @@ de_nas_5gs_mm_5gs_nw_feat_sup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
}
/*
- * 9.8.3.5 5GS registration result
+ * 9.10.3.6 5GS registration result
*/
+
+static const value_string nas_5gs_mm_reg_res_values[] = {
+ { 0x1, "3GPP access" },
+ { 0x2, "Non-3GPP access" },
+ { 0x3, "3GPP access and non-3GPP access" },
+{ 0, NULL }
+};
+
+
static guint16
-de_nas_5gs_mm_5gs_reg_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+de_nas_5gs_mm_5gs_reg_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
guint32 offset, guint len _U_,
gchar *add_string _U_, int string_len _U_)
{
- /* The definition of 5GS registration result is FFS. Use lemgth = 1*/
- proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, 1);
+ /* 0 Spare 0 Spare 0 Spare 0 Spare SMS allowed 5GS registration result value */
+ proto_tree_add_item(tree, hf_nas_5gs_mm_reg_res_sms_allowed, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_nas_5gs_mm_reg_res_res, tvb, offset, 1, ENC_BIG_ENDIAN);
return 1;
}
/*
- * 9.8.3.6 5GS registration type
+ * 9.10.3.7 5GS registration type
*/
static const value_string nas_5gs_registration_type_values[] = {
@@ -518,7 +486,46 @@ de_nas_5gs_mm_5gs_reg_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
}
/*
- * 9.8.3.7 Allowed PDU session status
+ * 9.10.3.8 5GS tracking area identity
+ */
+static guint16
+de_nas_5gs_mm_5gs_ta_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
+
+ return len;
+}
+
+/*
+ * 9.10.3.9 5GS tracking area identity list
+ */
+static guint16
+de_nas_5gs_mm_5gs_ta_id_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
+
+ return len;
+}
+
+/*
+ * 9.10.3.10 Access type
+ */
+static guint16
+de_nas_5gs_mm_access_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
+
+ return len;
+}
+
+/*
+ * 9.10.3.11 Allowed PDU session status
*/
static guint16
de_nas_5gs_mm_allow_pdu_ses_sts(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
@@ -531,18 +538,27 @@ de_nas_5gs_mm_allow_pdu_ses_sts(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
}
/*
- * 9.8.3.8 Authentication parameter AUTN
+ * 9.10.3.12 Authentication failure parameter
+ */
+/* See subclause 10.5.3.2.2 in 3GPP TS 24.008 */
+/*
+ * 9.10.3.13 Authentication parameter AUTN
*/
/* See subclause 10.5.3.1 in 3GPP TS 24.008 [8].*/
/*
- * 9.8.3.9 Authentication parameter RAND
+ * 9.10.3.14 Authentication parameter RAND
*/
/* See subclause 10.5.3.1 in 3GPP TS 24.008 [8]. */
/*
- * 9.8.3.10 Configuration update indication
+ * 9.10.3.15 Authentication response parameter
+ */
+/* See subclause 9.9.3.4 in 3GPP TS 24.301 [15].*/
+
+/*
+ * 9.10.3.16 Configuration update indication
*/
static guint16
de_nas_5gs_mm_conf_upd_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
@@ -565,12 +581,12 @@ de_nas_5gs_mm_conf_upd_ind(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
}
/*
- * 9.8.3.11 Daylight saving time
+ * 9.10.3.17 Daylight saving time
*/
/* See subclause 10.5.3.12 in 3GPP TS 24.008 */
/*
- * 9.8.3.12 De-registration type
+ * 9.10.3.18 De-registration type
*/
static const true_false_string nas_5gs_mm_switch_off_tfs = {
"Switch off",
@@ -590,7 +606,7 @@ static const value_string nas_5gs_mm_acc_type_vals[] = {
};
static guint16
-de_nas_5gs_mm_de_reg_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+de_nas_5gs_mm_de_reg_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
guint32 offset, guint len _U_,
gchar *add_string _U_, int string_len _U_)
{
@@ -599,13 +615,11 @@ de_nas_5gs_mm_de_reg_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
proto_tree_add_item(tree, hf_nas_5gs_mm_re_reg_req, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tree, hf_nas_5gs_mm_acc_type, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, 1);
-
return 1;
}
/*
- * 9.8.3.13 DNN
+ * 9.10.3.19 DNN
*/
static guint16
de_nas_5gs_mm_dnn(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
@@ -644,25 +658,22 @@ de_nas_5gs_mm_dnn(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
/*
- * 9.8.3.14 EAP message
+ * 9.10.3.20 DRX parameters
*/
+
static guint16
-de_nas_5gs_mm_eap_msg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+de_nas_5gs_mm_drx_par(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
- /* EAP message as specified in IETF RFC 3748 */
- if (eap_handle) {
- col_append_str(pinfo->cinfo, COL_PROTOCOL, "/");
- col_set_fence(pinfo->cinfo, COL_PROTOCOL);
- call_dissector(eap_handle, tvb_new_subset_length(tvb, offset, len), pinfo, tree);
- }
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
return len;
}
+
/*
- * 9.8.3.15 EPS NAS message container
+ * 9.10.3.22 EPS NAS message container
*/
static guint16
de_nas_5gs_mm_eps_nas_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
@@ -680,12 +691,16 @@ de_nas_5gs_mm_eps_nas_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
}
/*
- * 9.8.3.16 GPRS timer 2
+ * 9.10.3.23 EPS NAS security algorithms
*/
-/* See subclause 10.5.7.4 in 3GPP TS 24.008 */
+/* See subclause 9.9.3.23 in 3GPP TS 24.301 */
/*
- * 9.8.3.17 HashAMF
+ * 9.10.3.24 Extended emergency number list
+ */
+/* See subclause 9.9.3.37A in 3GPP TS 24.301 */
+/*
+ * 9.10.3.25 HashAMF
*/
static guint16
de_nas_5gs_mm_hashamf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
@@ -707,12 +722,12 @@ de_nas_5gs_mm_hashamf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
/*
- * 9.8.3.18 IMEISV request
+ * 9.10.3.26 IMEISV request
*/
/* See subclause 10.5.5.10 in 3GPP TS 24.008 */
/*
- * 9.8.3.19 LADN information
+ * 9.10.3.27 LADN information
*/
static guint16
@@ -726,20 +741,7 @@ de_nas_5gs_mm_ladn_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
/*
- * 9.8.3.20 Message authentication code
- */
-static guint16
-de_nas_5gs_mm_msg_auth_code(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
- guint32 offset, guint len,
- gchar *add_string _U_, int string_len _U_)
-{
- proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
-
- return len;
-}
-
-/*
- * 9.8.3.21 MICO indication
+ * 9.10.3.28 MICO indication
*/
static const true_false_string tfs_nas_5gs_raai = {
"all PLMN registration area allocated",
@@ -771,7 +773,7 @@ static const true_false_string nas_5gs_mm_tsc_tfs = {
};
/*
- * 9.8.3.22 NAS key set identifier
+ * 9.10.3.29 NAS key set identifier
*/
static guint16
de_nas_5gs_mm_nas_key_set_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
@@ -787,7 +789,20 @@ de_nas_5gs_mm_nas_key_set_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
}
/*
- * 9.8.3.23 NAS message container
+ * 9.10.3.30 NAS message
+ */
+static guint16
+de_nas_5gs_mm_nas_msg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
+
+ return len;
+}
+
+/*
+ * 9.10.3.31 NAS message container
*/
static guint16
de_nas_5gs_mm_nas_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
@@ -805,7 +820,7 @@ de_nas_5gs_mm_nas_msg_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
/*
- * 9.8.3.24 NAS security algorithms
+ * 9.10.3.32 NAS security algorithms
*/
static const value_string nas_5gs_mm_type_of_ip_algo_vals[] = {
@@ -844,52 +859,15 @@ de_nas_5gs_mm_nas_sec_algo(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
return 1;
}
-/*
- * 9.8.3.25 NAS security parameters to NG-RAN
- */
-static guint16
-de_nas_5gs_mm_nas_sec_par_ng_ran(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;
- /* NonceAMF value (octet 2 to 5)
- * This field is coded as the nonce value in the Nonce information element (see subclause 9.8.3.27).
- */
- proto_tree_add_item(tree, hf_nas_5gs_mm_nonceamf, tvb, offset, 4, ENC_BIG_ENDIAN);
- offset += 4;
-
- /* Type of ciphering algorithm Type of integrity protection algorithm*/
- proto_tree_add_item(tree, hf_nas_5gs_mm_nas_sec_algo_enc, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_nas_5gs_mm_nas_sec_algo_ip, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
-
- /* 0 0 0 0 TSC NAS key set identifier */
- proto_tree_add_item(tree, hf_nas_5gs_mm_tsc, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(tree, hf_nas_5gs_mm_nas_key_set_id, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset += 1;
-
- curr_offset += len;
-
- EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_nas_5gs_extraneous_data);
-
- return len;
-}
/*
- * 9.8.3.26 Network name
+ * 9.10.3.33 Network name
*/
/* See subclause 10.5.3.5a in 3GPP TS 24.008 */
-/*
- * 9.8.3.27 Nonce
- */
-/* See subclause 9.9.3.25 in 3GPP TS 24.301 [10].*/
/*
- * 9.8.3.28 NSSAI
+ * 9.10.3.34 NSSAI
*/
static guint16
de_nas_5gs_mm_nssai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
@@ -910,7 +888,7 @@ de_nas_5gs_mm_nssai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
proto_tree_add_item_ret_int(sub_tree, hf_nas_5gs_mm_length, tvb, curr_offset, 1, ENC_BIG_ENDIAN, &length);
- curr_offset += de_nas_5gs_mm_s_nssai(tvb, sub_tree, pinfo, curr_offset, length, NULL, 0);
+ curr_offset += de_nas_5gs_cmn_s_nssai(tvb, sub_tree, pinfo, curr_offset, length, NULL, 0);
proto_item_set_len(item, length + 1);
i++;
@@ -919,43 +897,9 @@ de_nas_5gs_mm_nssai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
return len;
}
-/*
- * 9.8.3.29 NSSAI info for PDU sessions
- */
-static guint16
-de_nas_5gs_mm_nssai_inf_for_pdu_ses(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
- guint32 offset, guint len,
- gchar *add_string _U_, int string_len _U_)
-{
- proto_tree *sub_tree, *sub_tree2;
- proto_item *item;
- int i = 1;
- gint32 length;
- guint32 curr_offset;
-
- curr_offset = offset;
-
- while ((curr_offset - offset) < len) {
-
- sub_tree2 = proto_tree_add_subtree_format(tree, tvb, curr_offset, -1, ett_nas_5gs_mm_pdu_ses_id, NULL, "PDU session identity %u", i);
- proto_tree_add_item(sub_tree2, hf_nas_5gs_mm_pdu_ses_id, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
- curr_offset++;
-
- sub_tree = proto_tree_add_subtree_format(tree, tvb, curr_offset, -1, ett_nas_5gs_mm_nssai, &item, "S-NSSAI %u", i);
-
- proto_tree_add_item_ret_int(sub_tree, hf_nas_5gs_mm_length, tvb, curr_offset, 1, ENC_BIG_ENDIAN, &length);
-
- curr_offset += de_nas_5gs_mm_s_nssai(tvb, sub_tree, pinfo, curr_offset, length, NULL, 0);
- proto_item_set_len(item, length + 1);
- i++;
-
- }
-
- return len;
-}
/*
- * 9.8.3.30 Payload container
+ * 9.10.3.35 Payload container
*/
static guint16
de_nas_5gs_mm_pld_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
@@ -968,7 +912,7 @@ de_nas_5gs_mm_pld_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
/*
- * 9.8.3.31 Payload container type
+ * 9.10.3.36 Payload container type
*/
static const value_string nas_5gs_mm_pld_cont_type_vals[] = {
{ 0x01, "N1 SM information" },
@@ -987,10 +931,10 @@ de_nas_5gs_mm_pld_cont_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
}
/*
- * 9.8.3.32 PDU session reactivation result
+ * 9.10.3.37 PDU session identity 2
*/
static guint16
-de_nas_5gs_mm_pdu_ses_react_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+de_nas_5gs_mm_pdu_ses_id_2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
@@ -1000,28 +944,23 @@ de_nas_5gs_mm_pdu_ses_react_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
}
/*
- * 9.8.3.33 PLMN list
- */
-/* See subclause 10.5.1.13 in 3GPP TS 24.008 */
-
-/*
- * 9.8.3.34 Old PDU session identity
+ * 9.10.3.38 PDU session reactivation result
*/
static guint16
-de_nas_5gs_mm_old_pdu_ses_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
- guint32 offset, guint len _U_,
+de_nas_5gs_mm_pdu_ses_react_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
- proto_tree_add_item(tree, hf_nas_5gs_mm_old_pdu_ses_id, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
- return 1;
+ return len;
}
/*
- * 9.8.3.35 Rejected NSSAI
+ * 9.10.3.39 PDU session reactivation result error cause
*/
static guint16
-de_nas_5gs_mm_rej_nssai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+de_nas_5gs_mm_pdu_ses_react_res_err_c(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
@@ -1031,64 +970,68 @@ de_nas_5gs_mm_rej_nssai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
/*
- * 9.8.3.36 S1 UE network capability
- */
-/* See subclause 9.9.3.34 in 3GPP TS 24.301 */
+* 9.10.3.40 PDU session status
+*/
-/*
- * 9.8.3.37 S-NSSAI
- */
-guint16
-de_nas_5gs_mm_s_nssai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
+static true_false_string tfs_nas_5gs_pdu_ses_sts_psi = {
+ "Not PDU SESSION INACTIVE",
+ "PDU SESSION INACTIVE"
+};
+
+static guint16
+de_nas_5gs_mm_pdu_ses_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
- /* SST octet 3
- * This field contains the 8 bit SST value. The coding of the SST value part is defined in 3GPP TS 23.003
- */
- proto_tree_add_item(tree, hf_nas_5gs_mm_sst, tvb, offset, 1, ENC_BIG_ENDIAN);
- if (len == 1) {
- return len;
- }
- offset += 1;
- /* SD octet 4 - octet 6* */
- proto_tree_add_item(tree, hf_nas_5gs_mm_sd, tvb, offset, 3, ENC_BIG_ENDIAN);
- if (len == 4) {
- return len;
- }
- offset += 3;
- /* Mapped configured SST octet 7* */
- proto_tree_add_item(tree, hf_nas_5gs_mm_mapped_conf_sst, tvb, offset, 1, ENC_BIG_ENDIAN);
- if (len == 5) {
- return len;
- }
- offset += 1;
- /* Mapped configured SD octet 8 - octet 10* */
- proto_tree_add_item(tree, hf_nas_5gs_mm_mapped_conf_ssd, tvb, offset, 3, ENC_BIG_ENDIAN);
+ int curr_offset;
- return len;
-}
+ static const int * psi_0_7_flags[] = {
+ &hf_nas_5gs_pdu_ses_sts_psi_7_b7,
+ &hf_nas_5gs_pdu_ses_sts_psi_6_b6,
+ &hf_nas_5gs_pdu_ses_sts_psi_5_b5,
+ &hf_nas_5gs_pdu_ses_sts_psi_4_b4,
+ &hf_nas_5gs_pdu_ses_sts_psi_3_b3,
+ &hf_nas_5gs_pdu_ses_sts_psi_2_b2,
+ &hf_nas_5gs_pdu_ses_sts_psi_1_b1,
+ &hf_nas_5gs_pdu_ses_sts_psi_0_b0,
+ NULL
+ };
-/*
- * 9.8.3.38 Sequence number
- */
+ static const int * psi_8_15_flags[] = {
+ &hf_nas_5gs_pdu_ses_sts_psi_15_b7,
+ &hf_nas_5gs_pdu_ses_sts_psi_14_b6,
+ &hf_nas_5gs_pdu_ses_sts_psi_13_b5,
+ &hf_nas_5gs_pdu_ses_sts_psi_12_b4,
+ &hf_nas_5gs_pdu_ses_sts_psi_11_b3,
+ &hf_nas_5gs_pdu_ses_sts_psi_10_b2,
+ &hf_nas_5gs_pdu_ses_sts_psi_9_b1,
+ &hf_nas_5gs_pdu_ses_sts_psi_8_b0,
+ NULL
+ };
-static guint16
-de_nas_5gs_mm_seq_no(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
- guint32 offset, guint len,
- gchar *add_string _U_, int string_len _U_)
-{
- proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
+ curr_offset = offset;
+ proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_0_7_flags, ENC_BIG_ENDIAN);
+ curr_offset++;
+
+ proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_8_15_flags, ENC_BIG_ENDIAN);
+
+ EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_nas_5gs_extraneous_data);
+
+ return (curr_offset - offset);
- return len;
}
+
/*
- * 9.8.3.39 Service area list
+ * 9.10.3.41 PLMN list
*/
+/* See subclause 10.5.1.13 in 3GPP TS 24.008 */
+/*
+ * 9.10.3.42 Rejected NSSAI
+ */
static guint16
-de_nas_5gs_mm_sal(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+de_nas_5gs_mm_rej_nssai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
@@ -1098,89 +1041,51 @@ de_nas_5gs_mm_sal(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
/*
- * 9.8.3.40 SMS allowed
- */
-
-static const value_string nas_5gs_mm_all_acc_vals[] = {
- { 0x00, "SMS over NAS not allowed" },
- { 0x01, "SMS over NAS allowed via 3GPP access only" },
- { 0x02, "SMS over NAS allowed via both 3GPP access and non-3GPP access" },
- { 0x03, "reserved" },
- { 0, NULL } };
+* 9.10.3.43 Request type
+*/
+static const value_string nas_5gs_mm_req_type_vals[] = {
+ { 0x01, "Initial request" },
+ { 0x02, "Existing PDU session" },
+ { 0x03, "Initial emergency request" },
+ { 0x04, "Existing emergency PDU session" },
+ { 0, NULL } };
static guint16
-de_nas_5gs_mm_sms_all(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
+de_nas_5gs_mm_req_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
guint32 offset, guint len _U_,
gchar *add_string _U_, int string_len _U_)
{
- static const int * flags[] = {
- &hf_nas_5gs_spare_b3,
- &hf_nas_5gs_spare_b2,
- &hf_nas_5gs_mm_all_acc_b1b0,
- NULL
- };
-
-
- proto_tree_add_bitmask_list(tree, tvb, offset, 1, flags, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_nas_5gs_mm_req_type, tvb, offset, 1, ENC_BIG_ENDIAN);
return 1;
}
+
/*
- * 9.8.3.41 SMS requested
+ * 9.10.3.44 S1 UE network capability
*/
-
-static const value_string nas_5gs_mm_sup_acc_vals[] = {
- { 0x00, "SMS over NAS not supported" },
- { 0x01, "SMS over NAS supported via 3GPP access only" },
- { 0x02, "SMS over NAS supported via both 3GPP access and non-3GPP access" },
- { 0x03, "Reserved" },
- { 0, NULL } };
-
-static guint16
-de_nas_5gs_mm_sms_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
- guint32 offset, guint len _U_,
- gchar *add_string _U_, int string_len _U_)
-{
-
- static const int * flags[] = {
- &hf_nas_5gs_spare_b3,
- &hf_nas_5gs_spare_b2,
- &hf_nas_5gs_mm_sup_acc_b1b0,
- NULL
- };
-
-
- proto_tree_add_bitmask_list(tree, tvb, offset, 1, flags, ENC_BIG_ENDIAN);
-
- return 1;
-}
+/* See subclause 9.9.3.34 in 3GPP TS 24.301 */
/*
- * 9.8.3.42 Request type
+ * 9.10.3.45 Service area list
*/
-static const value_string nas_5gs_mm_req_type_vals[] = {
- { 0x01, "Initial request" },
- { 0x02, "Existing PDU session" },
- { 0x03, "Initial emergency request" },
- { 0x04, "Existing emergency PDU session" },
- { 0, NULL } };
static guint16
-de_nas_5gs_mm_req_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
- guint32 offset, guint len _U_,
+de_nas_5gs_mm_sal(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
- proto_tree_add_item(tree, hf_nas_5gs_mm_req_type, tvb, offset, 3, ENC_BIG_ENDIAN);
-
- return 1;
+ return len;
}
+
+
/*
- * 9.8.3.43 Service type
+ * 9.10.3.46 Service type
*/
static const value_string nas_5gs_mm_serv_type_vals[] = {
@@ -1208,28 +1113,31 @@ de_nas_5gs_mm_serv_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
return 1;
}
-/*
- * 9.8.3.44 Tracking area identity
- */
-/* See subclause 9.9.3.32 in 3GPP TS 24.301 */
/*
- * 9.8.3.45 Tracking area identity list
+ * 9.10.3.47 Time zone
*/
-/* See subclause 9.9.3.33 in 3GPP TS 24.301 */
+/* See subclause 10.5.3.8 in 3GPP TS 24.008 */
/*
- * 9.8.3.46 Time zone
+ * 9.10.3.48 Time zone and time
*/
-/* See subclause 10.5.3.8 in 3GPP TS 24.008 */
+/* See subclause 10.5.3.9 in 3GPP TS 24.00*/
/*
- * 9.8.3.47 Time zone and time
+ * 9.10.3.49 Transparent container
*/
-/* See subclause 10.5.3.9 in 3GPP TS 24.00*/
+static guint16
+de_nas_5gs_mm_transp_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
+ return len;
+}
/*
- * 9.8.3.48 UE security capability
+ * 9.10.3.50 UE security capability
*/
static guint16
@@ -1298,7 +1206,7 @@ de_nas_5gs_mm_ue_sec_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, oct4_flags, ENC_NA);
curr_offset++;
- if (len == 4) {
+ if (len == 2) {
return len;
}
@@ -1314,7 +1222,20 @@ de_nas_5gs_mm_ue_sec_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
}
/*
- * 9.8.3.49 UE status
+ * 9.10.3.51 UE's usage setting
+ */
+static guint16
+de_nas_5gs_mm_ue_usage_set(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
+
+ return len;
+}
+
+/*
+ * 9.10.3.52 UE status
*/
static true_false_string tfs_nas_5gs_mm_n1_mod = {
@@ -1330,7 +1251,7 @@ static true_false_string tfs_nas_5gs_mm_s1_mod = {
static guint16
-de_nas_5gs_mm_ue_sts(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
+de_nas_5gs_mm_ue_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
guint32 offset, guint len _U_,
gchar *add_string _U_, int string_len _U_)
{
@@ -1354,21 +1275,109 @@ de_nas_5gs_mm_ue_sts(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
/*
- * 9.8.4 5GS session management (5GSM) information elements
+ * 9.10.3.53 Uplink data status
*/
+static true_false_string tfs_nas_5gs_ul_data_sts_psi = {
+ "uplink data are pending ",
+ "no uplink data are pending"
+};
+
+static guint16
+de_nas_5gs_mm_ul_data_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ int curr_offset;
+
+ static const int * psi_0_7_flags[] = {
+ &hf_nas_5gs_ul_data_sts_psi_7_b7,
+ &hf_nas_5gs_ul_data_sts_psi_6_b6,
+ &hf_nas_5gs_ul_data_sts_psi_5_b5,
+ &hf_nas_5gs_ul_data_sts_psi_4_b4,
+ &hf_nas_5gs_ul_data_sts_psi_3_b3,
+ &hf_nas_5gs_ul_data_sts_psi_2_b2,
+ &hf_nas_5gs_ul_data_sts_psi_1_b1,
+ &hf_nas_5gs_ul_data_sts_psi_0_b0,
+ NULL
+ };
+
+ static const int * psi_8_15_flags[] = {
+ &hf_nas_5gs_ul_data_sts_psi_15_b7,
+ &hf_nas_5gs_ul_data_sts_psi_14_b6,
+ &hf_nas_5gs_ul_data_sts_psi_13_b5,
+ &hf_nas_5gs_ul_data_sts_psi_12_b4,
+ &hf_nas_5gs_ul_data_sts_psi_11_b3,
+ &hf_nas_5gs_ul_data_sts_psi_10_b2,
+ &hf_nas_5gs_ul_data_sts_psi_9_b1,
+ &hf_nas_5gs_ul_data_sts_psi_8_b0,
+ NULL
+ };
+
+ curr_offset = offset;
+ proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_0_7_flags, ENC_BIG_ENDIAN);
+ curr_offset++;
+
+ proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, psi_8_15_flags, ENC_BIG_ENDIAN);
+
+ EXTRANEOUS_DATA_CHECK(len, curr_offset - offset, pinfo, &ei_nas_5gs_extraneous_data);
+
+ return (curr_offset - offset);
+}
+
/*
- * 9.8.4.1 5GSM cause
+ * 9.10.4 5GS session management (5GSM) information elements
+ */
+
+ /*
+ * 9.10.4.1 5GSM capability
+ */
+
+static guint16
+de_nas_5gs_sm_5gsm_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
+ guint32 offset, guint len _U_,
+ gchar *add_string _U_, int string_len _U_)
+{
+
+ static const int * flags[] = {
+ &hf_nas_5gs_spare_b7,
+ &hf_nas_5gs_spare_b6,
+ &hf_nas_5gs_spare_b5,
+ &hf_nas_5gs_spare_b4,
+ &hf_nas_5gs_spare_b3,
+ &hf_nas_5gs_spare_b2,
+ &hf_nas_5gs_spare_b1,
+ &hf_nas_5gs_sm_rqos_b0,
+ NULL
+ };
+
+
+ proto_tree_add_bitmask_list(tree, tvb, offset, 1, flags, ENC_BIG_ENDIAN);
+
+ return 1;
+}
+
+/*
+ * 9.10.4.1 5GSM cause
*/
static const value_string nas_5gs_sm_cause_vals[] = {
+ { 0x1a, "Insufficient resources" },
+ { 0x1b, "Missing or unknown DNN" },
+ { 0x1c, "Unknown PDU session type" },
{ 0x1d, "User authentication failed" },
{ 0x1f, "Request rejected, unspecified" },
{ 0x22, "Service option temporarily out of order" },
+ { 0x23, "PTI already in use" },
{ 0x24, "Regular deactivation" },
{ 0x27, "Reactivation requested" },
{ 0x32, "PDU session type Ipv4 only allowed" },
{ 0x33, "PDU session type Ipv6 only allowed" },
+ { 0x43, "Insufficient resources for specific slice and DNN" },
+ { 0x44, "Not supported SSC mode" },
+ { 0x45, "Insufficient resources for specific slice" },
+ { 0x46, "Missing or unknown DNN in a slice" },
+ { 0x51, "Invalid PTI value" },
{ 0x5f, "Semantically incorrect message" },
{ 0x60, "Invalid mandatory information" },
{ 0x61, "Message type non - existent or not implemented" },
@@ -1397,19 +1406,63 @@ de_nas_5gs_sm_5gsm_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
/*
- * 9.8.4.2 Extended protocol configuration options
+ * 9.10.4.3 Allowed SSC mode
+ */
+
+static guint16
+de_nas_5gs_sm_5gsm_allowed_ssc_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
+ guint32 offset, guint len _U_,
+ gchar *add_string _U_, int string_len _U_)
+{
+
+ static const int * flags[] = {
+ &hf_nas_5gs_spare_b3,
+ &hf_nas_5gs_sm_all_ssc_mode_b2,
+ &hf_nas_5gs_sm_all_ssc_mode_b1,
+ &hf_nas_5gs_sm_all_ssc_mode_b0,
+ NULL
+ };
+
+
+ proto_tree_add_bitmask_list(tree, tvb, offset, 1, flags, ENC_BIG_ENDIAN);
+
+ return 1;
+}
+
+/*
+ * 9.10.4.4 Extended protocol configuration options
*/
/* See subclause 10.5.6.3A in 3GPP TS 24.008 */
+/*
+ * 9.10.4.5 Mapped EPS bearer contexts
+ */
+
+static guint16
+de_nas_5gs_sm_mapped_eps_b_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
+
+ return len;
+}
/*
- * 9.8.4.3 GPRS timer
+ * 9.10.4.6 Maximum number of supported packet filters
*/
+static guint16
+de_nas_5gs_sm_max_num_sup_pkt_flt(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
-/* See subclause 10.5.7.3 in 3GPP TS 24.008 */
+ return len;
+}
/*
- * 9.8.4.4 PDU address
+ * 9.10.4.7 PDU address
*/
static const value_string nas_5gs_sm_pdu_ses_type_vals[] = {
@@ -1449,7 +1502,7 @@ de_nas_5gs_sm_pdu_address(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
/*
- * 9.8.4.5 PDU session type
+ * 9.10.4.8 PDU session type
*/
static const value_string nas_5gs_pdu_session_type_values[] = {
{ 0x1, "IP" },
@@ -1474,7 +1527,7 @@ de_nas_5gs_sm_pdu_session_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
/*
- * 9.8.4.6 QoS rules
+ * 9.10.4.9 QoS rules
*/
static true_false_string tfs_nas_5gs_sm_dqr = {
@@ -1630,7 +1683,7 @@ de_nas_5gs_sm_qos_rules(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
}
/*
- * 9.8.4.7 Session-AMBR
+ * 9.10.4.10 Session-AMBR
*/
static const value_string nas_5gs_sm_unit_for_session_ambr_values[] = {
@@ -1724,7 +1777,7 @@ de_nas_5gs_sm_session_ambr(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
}
/*
- * 9.8.4.8 SM PDU DN request container
+ * 9.10.4.11 SM PDU DN request container
*/
/* The SM PDU DN request container contains a DN-specific identity of the UE in the network access identifier (NAI) format */
static guint16
@@ -1738,7 +1791,7 @@ de_nas_5gs_sm_pdu_dn_req_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
}
/*
- * 9.8.4.9 SSC mode
+ * 9.10.4.12 SSC mode
*/
static const value_string nas_5gs_sc_mode_values[] = {
@@ -1761,57 +1814,115 @@ de_nas_5gs_sm_ssc_mode(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
}
+
+
/*
- * 9.8.4.10 5GSM capability
+ * 9.10.2 Common information elements
*/
+/* 9.10.2.1 Additional information*/
+
static guint16
-de_nas_5gs_sm_5gsm_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
- guint32 offset, guint len _U_,
+de_nas_5gs_cmn_add_inf(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
gchar *add_string _U_, int string_len _U_)
{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
- static const int * flags[] = {
- &hf_nas_5gs_spare_b7,
- &hf_nas_5gs_spare_b6,
- &hf_nas_5gs_spare_b5,
- &hf_nas_5gs_spare_b4,
- &hf_nas_5gs_spare_b3,
- &hf_nas_5gs_spare_b2,
- &hf_nas_5gs_spare_b1,
- &hf_nas_5gs_sm_rqos_b0,
- NULL
- };
+ return len;
+}
+/* 9.10.2.2 EAP message*/
- proto_tree_add_bitmask_list(tree, tvb, offset, 1, flags, ENC_BIG_ENDIAN);
+static guint16
+de_nas_5gs_cmn_eap_msg(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ /* EAP message as specified in IETF RFC 3748 */
+ if (eap_handle) {
+ col_append_str(pinfo->cinfo, COL_PROTOCOL, "/");
+ col_set_fence(pinfo->cinfo, COL_PROTOCOL);
+ call_dissector(eap_handle, tvb_new_subset_length(tvb, offset, len), pinfo, tree);
+ }
- return 1;
+ return len;
}
+/* 9.10.2.3 GPRS timer */
+/* See subclause 10.5.7.3 in 3GPP TS 24.008 */
-/*
- * 9.8.2 Common information elements
- */
+/* 9.10.2.4 GPRS timer 2*/
+/* See subclause 10.5.7.4 in 3GPP TS 24.008 */
+
+/* 9.10.2.5 GPRS timer 3*/
+
+/* 9.10.2.6 S-NSSAI */
+guint16
+de_nas_5gs_cmn_s_nssai(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ /* SST octet 3
+ * This field contains the 8 bit SST value. The coding of the SST value part is defined in 3GPP TS 23.003
+ */
+ proto_tree_add_item(tree, hf_nas_5gs_mm_sst, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if (len == 1) {
+ return len;
+ }
+ offset += 1;
+ /* SD octet 4 - octet 6* */
+ proto_tree_add_item(tree, hf_nas_5gs_mm_sd, tvb, offset, 3, ENC_BIG_ENDIAN);
+ if (len == 4) {
+ return len;
+ }
+ offset += 3;
+ /* Mapped configured SST octet 7* */
+ proto_tree_add_item(tree, hf_nas_5gs_mm_mapped_conf_sst, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if (len == 5) {
+ return len;
+ }
+ offset += 1;
+ /* Mapped configured SD octet 8 - octet 10* */
+ proto_tree_add_item(tree, hf_nas_5gs_mm_mapped_conf_ssd, tvb, offset, 3, ENC_BIG_ENDIAN);
-/* 9.8.2.1 Additional information*/
+ return len;
+}
+
+/* 9.10.2.7 S1 mode to N1 mode NAS transparent container */
+static guint16
+de_nas_5gs_cmn_s1_to_n1_mode_trans_cont(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
+ guint32 offset, guint len,
+ gchar *add_string _U_, int string_len _U_)
+{
+ proto_tree_add_expert(tree, pinfo, &ei_nas_5gs_ie_not_dis, tvb, offset, len);
+ return len;
+}
/*
* Note this enum must be of the same size as the element decoding list
*/
typedef enum
{
- DE_NAS_5GS_CMN_ADD_INF, /*9.8.2.1 Additional information*/
- DE_NAS_5GS_PDU_SES_STATUS, /*9.8.2.2 PDU session status*/
- DE_NAS_5GS_UL_DATA_STATUS, /*9.8.2.3 Uplink data status*/
- DE_NAS_5GS_COMMON_NONE /* NONE */
+ DE_NAS_5GS_CMN_ADD_INF, /* 9.10.2.1 Additional information*/
+ DE_NAS_5GS_CMN_EAP_MESSAGE, /* 9.10.2.2 EAP message*/
+ DE_NAS_5GS_CMN_GPRS_TIMER, /* 9.10.2.3 GPRS timer */
+ DE_NAS_5GS_CMN_GPRS_TIMER2, /* 9.10.2.4 GPRS timer 2*/
+ DE_NAS_5GS_CMN_GPRS_TIMER3, /* 9.10.2.5 GPRS timer 3*/
+ DE_NAS_5GS_CMN_S_NSSAI, /* 9.10.2.6 S-NSSAI */
+ DE_NAS_5GS_CMN_S1_TO_N1_MODE_TRANS_CONT, /* 9.10.2.7 S1 mode to N1 mode NAS transparent container */
+ DE_NAS_5GS_COMMON_NONE /* NONE */
}
nas_5gs_common_elem_idx_t;
static const value_string nas_5gs_common_elem_strings[] = {
- { DE_NAS_5GS_CMN_ADD_INF, "Additional information" }, /* 9.8.2.1 Additional information*/
- { DE_NAS_5GS_PDU_SES_STATUS, "PDU session status" }, /* 9.8.2.2 PDU session status*/
- { DE_NAS_5GS_UL_DATA_STATUS, "Uplink data status" }, /* 9.8.2.3 Uplink data status*/
+ { DE_NAS_5GS_CMN_ADD_INF, "Additional information" }, /* 9.10.2.1 Additional information*/
+ { DE_NAS_5GS_CMN_EAP_MESSAGE, "EAP message" }, /* 9.10.2.2 EAP message*/
+ { DE_NAS_5GS_CMN_GPRS_TIMER, "GPRS timer" }, /* 9.10.2.3 GPRS timer*/
+ { DE_NAS_5GS_CMN_GPRS_TIMER2, "GPRS timer 2" }, /* 9.10.2.4 GPRS timer 2*/
+ { DE_NAS_5GS_CMN_GPRS_TIMER3, "GPRS timer 3" }, /* 9.10.2.5 GPRS timer 3*/
+ { DE_NAS_5GS_CMN_S_NSSAI, "S-NSSAI" }, /* 9.10.2.6 S-NSSAI */
+ { DE_NAS_5GS_CMN_S1_TO_N1_MODE_TRANS_CONT, "S1 mode to N1 mode NAS transparent container" }, /* 9.10.2.7 S1 mode to N1 mode NAS transparent container */
{ 0, NULL }
};
value_string_ext nas_5gs_common_elem_strings_ext = VALUE_STRING_EXT_INIT(nas_5gs_common_elem_strings);
@@ -1823,125 +1934,138 @@ gint ett_nas_5gs_common_elem[NUM_NAS_5GS_COMMON_ELEM];
guint16(*nas_5gs_common_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
gchar *add_string, int string_len) = {
- /* 9.8.2 Common information elements */
- de_nas_5gs_cmn_add_inf, /*9.8.2.1 Additional information*/
- de_nas_5gs_pdu_ses_status, /*9.8.2.2 PDU session status*/
- de_nas_5gs_ul_data_status, /*9.8.2.3 Uplink data status*/
+ /* 9.10.2 Common information elements */
+ de_nas_5gs_cmn_add_inf, /* 9.10.2.1 Additional information*/
+ de_nas_5gs_cmn_eap_msg, /* 9.10.2.2 EAP message*/
+ NULL, /* 9.10.2.3 GPRS timer*/
+ NULL, /* 9.10.2.4 GPRS timer 2*/
+ NULL, /* 9.10.2.5 GPRS timer 3*/
+ de_nas_5gs_cmn_s_nssai, /* 9.10.2.6 S-NSSAI */
+ de_nas_5gs_cmn_s1_to_n1_mode_trans_cont, /* 9.10.2.7 S1 mode to N1 mode NAS transparent container */
NULL, /* NONE */
};
/*
- * 9.8.3 5GS mobility management (5GMM) information elements
+ * 9.10.3 5GS mobility management (5GMM) information elements
*/
#if 0
typedef enum
{
- DE_NAS_5GS_MM_5GMM_CAP, /* 9.8.3.1 5GMM capability*/
- DE_NAS_5GS_MM_5GMM_CAUSE, /* 9.8.3.2 5GMM cause*/
- DE_NAS_5GS_MM_5GS_MOBILE_ID, /* 9.8.3.3 5GS mobile identity*/
- DE_NAS_5GS_MM_5GS_NW_FEAT_SUP, /* 9.8.3.4 5GS network feature support*/
- DE_NAS_5GS_MM_5GS_REG_RES, /* 9.8.3.5 5GS registration result*/
- DE_NAS_5GS_MM_5GS_REG_TYPE, /* 9.8.3.6 5GS registration type*/
- DE_NAS_5GS_MM_ALLOW_PDU_SES_STS, /* 9.8.3.7 Allowed PDU session status*/
- DE_NAS_5GS_MM_AUT_PAR_AUTN, /* 9.8.3.8 Authentication parameter AUTN*/
- DE_NAS_5GS_MM_AUT_PAR_RAND, /* 9.8.3.9 Authentication parameter RAND*/
- DE_NAS_5GS_MM_CONF_UPD_IND, /* 9.8.3.10 Configuration update indication*/
- DE_NAS_5GS_MM_DLGT_SAVING_TIME, /* 9.8.3.11 Daylight saving time*/
- DE_NAS_5GS_MM_DE_REG_TYPE, /* 9.8.3.12 De-registration type*/
- DE_NAS_5GS_MM_DNN, /* 9.8.3.13 DNN*/
- DE_NAS_5GS_MM_EAP_MSG, /* 9.8.3.14 EAP message*/
- DE_NAS_5GS_MM_EPS_NAS_MSG_CONT, /* 9.8.3.15 EPS NAS message container*/
- DE_NAS_5GS_MM_GPRS_TIMER_2, /* 9.8.3.16 GPRS timer 2*/
- DE_NAS_5GS_MM_HASHAMF, /* 9.8.3.17 HashAMF*/
- DE_NAS_5GS_MM_IMEISV_REQ, /* 9.8.3.18 IMEISV request*/
- DE_NAS_5GS_MM_LADN_INF, /* 9.8.3.19 LADN information*/
- DE_NAS_5GS_MM_MSG_AUTH_CODE, /* 9.8.3.20 Message authentication code*/
- DE_NAS_5GS_MM_MICO_IND, /* 9.8.3.21 MICO indication*/
- DE_NAS_5GS_MM_NAS_KEY_SET_ID, /* 9.8.3.22 NAS key set identifier*/
- DE_NAS_5GS_MM_NAS_MSG_CONT, /* 9.8.3.23 NAS message container*/
- DE_NAS_5GS_MM_NAS_SEC_ALGO, /* 9.8.3.24 NAS security algorithms*/
- DE_NAS_5GS_MM_NAS_SEC_PAR_NG_RAN, /* 9.8.3.25 NAS security parameters to NG-RAN*/
- DE_NAS_5GS_MM_NW_NAME, /* 9.8.3.26 Network name*/
- DE_NAS_5GS_MM_NONCE, /* 9.8.3.27 Nonce*/
- DE_NAS_5GS_MM_NSSAI, /* 9.8.3.28 NSSAI*/
- DE_NAS_5GS_MM_NSSAI_INF_FOR_PDU_SES, /* 9.8.3.29 NSSAI info for PDU sessions*/
- DE_NAS_5GS_MM_PLD_CONT, /* 9.8.3.30 Payload container*/
- DE_NAS_5GS_MM_PLD_CONT_TYPE, /* 9.8.3.31 Payload container type*/
- DE_NAS_5GS_MM_PDU_SES_REACT_RES, /* 9.8.3.32 PDU session reactivation result*/
- DE_NAS_5GS_MM_PLMN_LIST, /* 9.8.3.33 PLMN list*/
- DE_NAS_5GS_MM_OLD_PDU_SES_ID, /* 9.8.3.34 Old PDU session identity*/
- DE_NAS_5GS_MM_REJ_NSSAI, /* 9.8.3.35 Rejected NSSAI*/
- DE_NAS_5GS_MM_S1_UE_NW_CAP, /* 9.8.3.36 S1 UE network capability*/
- DE_NAS_5GS_MM_S_NSSAI, /* 9.8.3.37 S-NSSAI*/
- DE_NAS_5GS_MM_SEQ_NO, /* 9.8.3.38 Sequence number*/
- DE_NAS_5GS_MM_SAL, /* 9.8.3.39 Service area list*/
- DE_NAS_5GS_MM_SMS_ALL, /* 9.8.3.40 SMS allowed*/
- DE_NAS_5GS_MM_SMS_REQ, /* 9.8.3.41 SMS requested*/
- DE_NAS_5GS_MM_REQ_TYPE, /* 9.8.3.42 Request type*/
- DE_NAS_5GS_MM_SERV_TYPE, /* 9.8.3.43 Service type*/
- DE_NAS_5GS_MM_TAI_ID, /* 9.8.3.44 Tracking area identity*/
- DE_NAS_5GS_MM_TAI_ID_LIST, /* 9.8.3.45 Tracking area identity list*/
- DE_NAS_5GS_MM_TZ, /* 9.8.3.46 Time zone*/
- DE_NAS_5GS_MM_TZ_AND_T, /* 9.8.3.47 Time zone and time*/
- DE_NAS_5GS_MM_UE_SEC_CAP, /* 9.8.3.48 UE security capability*/
- DE_NAS_5GS_MM_UE_STS, /* 9.8.3.49 UE status*/
+ DE_NAS_5GS_MM_5GMM_CAP, /* 9.10.3.1 5GMM capability*/
+ DE_NAS_5GS_MM_5GMM_CAUSE, /* 9.10.3.2 5GMM cause*/
+ DE_NAS_5GS_MM_5GS_IDENTITY_TYPE, /* 9.10.3.3 5GS identity type*/
+ DE_NAS_5GS_MM_5GS_MOBILE_ID, /* 9.10.3.4 5GS mobile identity*/
+ DE_NAS_5GS_MM_5GS_NW_FEAT_SUP, /* 9.10.3.5 5GS network feature support*/
+ DE_NAS_5GS_MM_5GS_REG_RES, /* 9.10.3.6 5GS registration result*/
+ DE_NAS_5GS_MM_5GS_REG_TYPE, /* 9.10.3.7 5GS registration type*/
+ DE_NAS_5GS_MM_5GS_TA_ID, /* 9.10.3.8 5GS tracking area identity */
+ DE_NAS_5GS_MM_5GS_TA_ID_LIST, /* 9.10.3.9 5GS tracking area identity list */
+ DE_NAS_5GS_MM_ACCESS_TYPE, /* 9.10.3.10 Access type */
+ DE_NAS_5GS_MM_ALLOW_PDU_SES_STS, /* 9.10.3.11 Allowed PDU session status*/
+ DE_NAS_5GS_MM_AUT_FAIL_PAR, /* 9.10.3.12 Authentication failure parameter */
+ DE_NAS_5GS_MM_AUT_PAR_AUTN, /* 9.10.3.13 Authentication parameter AUTN*/
+ DE_NAS_5GS_MM_AUT_PAR_RAND, /* 9.10.3.14 Authentication parameter RAND*/
+ DE_NAS_5GS_MM_AUT_RESP_PAR, /* 9.10.3.15 Authentication response parameter */
+ DE_NAS_5GS_MM_CONF_UPD_IND, /* 9.10.3.16 Configuration update indication*/
+ DE_NAS_5GS_MM_DLGT_SAVING_TIME, /* 9.10.3.17 Daylight saving time*/
+ DE_NAS_5GS_MM_DE_REG_TYPE, /* 9.10.3.18 De-registration type*/
+ DE_NAS_5GS_MM_DNN, /* 9.10.3.19 DNN*/
+ DE_NAS_5GS_MM_DRX_PAR, /* 9.10.3.20 DRX parameters */
+ DE_NAS_5GS_MM_EMRG_NR_LIST, /* 9.10.3.21 Emergency number list */
+ DE_NAS_5GS_MM_EPS_NAS_MSG_CONT, /* 9.10.3.22 EPS NAS message container */
+ DE_NAS_5GS_MM_EPS_NAS_SEC_ALGO, /* 9.10.3.23 EPS NAS security algorithms */
+ DE_NAS_5GS_MM_EXT_EMERG_NUM_LIST, /* 9.10.3.24 Extended emergency number list */
+ DE_NAS_5GS_MM_HASHAMF, /* 9.10.3.25 HashAMF*/
+ DE_NAS_5GS_MM_IMEISV_REQ, /* 9.10.3.26 IMEISV request*/
+ DE_NAS_5GS_MM_LADN_INF, /* 9.10.3.27 LADN information*/
+ DE_NAS_5GS_MM_MICO_IND, /* 9.10.3.28 MICO indication*/
+ DE_NAS_5GS_MM_NAS_KEY_SET_ID, /* 9.10.3.29 NAS key set identifier*/
+ DE_NAS_5GS_MM_NAS_MSG, /* 9.10.3.30 NAS message */
+ DE_NAS_5GS_MM_NAS_MSG_CONT, /* 9.10.3.31 NAS message container*/
+ DE_NAS_5GS_MM_NAS_SEC_ALGO, /* 9.10.3.32 NAS security algorithms*/
+ DE_NAS_5GS_MM_NW_NAME, /* 9.10.3.33 Network name*/
+ DE_NAS_5GS_MM_NSSAI, /* 9.10.3.34 NSSAI*/
+ DE_NAS_5GS_MM_PLD_CONT, /* 9.10.3.35 Payload container*/
+ DE_NAS_5GS_MM_PLD_CONT_TYPE, /* 9.10.3.36 Payload container type*/
+ DE_NAS_5GS_MM_PDU_SES_ID_2, /* 9.10.3.37 PDU session identity 2 */
+ DE_NAS_5GS_MM_PDU_SES_REACT_RES, /* 9.10.3.38 PDU session reactivation result*/
+ DE_NAS_5GS_MM_PDU_SES_REACT_RES_ERR_C, /* 9.10.3.39 PDU session reactivation result error cause */
+ DE_NAS_5GS_MM_PDU_SES_STATUS, /* 9.10.3.40 PDU session status */
+ DE_NAS_5GS_MM_PLMN_LIST, /* 9.10.3.41 PLMN list*/
+ DE_NAS_5GS_MM_REJ_NSSAI, /* 9.10.3.42 Rejected NSSAI*/
+ DE_NAS_5GS_MM_REQ_TYPE, /* 9.10.3.43 Request type */
+ DE_NAS_5GS_MM_S1_UE_NW_CAP, /* 9.10.3.44 S1 UE network capability*/
+ DE_NAS_5GS_MM_SAL, /* 9.10.3.45 Service area list*/
+ DE_NAS_5GS_MM_SERV_TYPE, /* 9.10.3.46 Service type*/
+ DE_NAS_5GS_MM_TZ, /* 9.10.3.47 Time zone*/
+ DE_NAS_5GS_MM_TZ_AND_T, /* 9.10.3.48 Time zone and time*/
+ DE_NAS_5GS_MM_TRANSP_CONT, /* 9.10.3.49 Transparent container */
+ DE_NAS_5GS_MM_UE_SEC_CAP, /* 9.10.3.50 UE security capability*/
+ DE_NAS_5GS_MM_UE_USAGE_SET, /* 9.10.3.51 UE's usage setting */
+ DE_NAS_5GS_MM_UE_STATUS, /* 9.10.3.52 UE status */
+ DE_NAS_5GS_MM_UL_DATA_STATUS, /* 9.10.3.53 Uplink data status */
DE_NAS_5GS_MM_NONE /* NONE */
}
nas_5gs_mm_elem_idx_t;
#endif
static const value_string nas_5gs_mm_elem_strings[] = {
- { DE_NAS_5GS_MM_5GMM_CAP, "5GMM capability" }, /* 9.8.3.1 5GMM capability*/
- { DE_NAS_5GS_MM_5GMM_CAUSE, "5GMM cause" }, /* 9.8.3.2 5GMM cause*/
- { DE_NAS_5GS_MM_5GS_MOBILE_ID, "5GS mobile identity" }, /* 9.8.3.3 5GS mobile identity*/
- { DE_NAS_5GS_MM_5GS_NW_FEAT_SUP, "5GS network feature support" }, /* 9.8.3.4 5GS network feature support*/
- { DE_NAS_5GS_MM_5GS_REG_RES, "5GS registration resul" }, /* 9.8.3.5 5GS registration result*/
- { DE_NAS_5GS_MM_5GS_REG_TYPE, "5GS registration type" }, /* 9.8.3.6 5GS registration type*/
- { DE_NAS_5GS_MM_ALLOW_PDU_SES_STS, "Allowed PDU session status" }, /* 9.8.3.7 Allowed PDU session status*/
- { DE_NAS_5GS_MM_AUT_PAR_AUTN, "Authentication parameter AUTN" }, /* 9.8.3.8 Authentication parameter AUTN*/
- { DE_NAS_5GS_MM_AUT_PAR_RAND, "Authentication parameter RAND" }, /* 9.8.3.9 Authentication parameter RAND*/
- { DE_NAS_5GS_MM_CONF_UPD_IND, "Configuration update indication" }, /* 9.8.3.10 Configuration update indication*/
- { DE_NAS_5GS_MM_DLGT_SAVING_TIME, "Daylight saving time" }, /* 9.8.3.11 Daylight saving time*/
- { DE_NAS_5GS_MM_DE_REG_TYPE, "De-registration type" }, /* 9.8.3.12 De-registration type*/
- { DE_NAS_5GS_MM_DNN, "DNN" }, /* 9.8.3.13 DNN*/
- { DE_NAS_5GS_MM_EAP_MSG, "EAP message" }, /* 9.8.3.14 EAP message*/
- { DE_NAS_5GS_MM_EPS_NAS_MSG_CONT, "EPS NAS message container" }, /* 9.8.3.15 EPS NAS message container*/
- { DE_NAS_5GS_MM_GPRS_TIMER_2, "GPRS timer 2" }, /* 9.8.3.16 GPRS timer 2*/
- { DE_NAS_5GS_MM_HASHAMF, "HashAMF" }, /* 9.8.3.17 HashAMF*/
- { DE_NAS_5GS_MM_IMEISV_REQ, "IMEISV request" }, /* 9.8.3.18 IMEISV request*/
- { DE_NAS_5GS_MM_LADN_INF, "LADN information" }, /* 9.8.3.19 LADN information*/
- { DE_NAS_5GS_MM_MSG_AUTH_CODE, "Message authentication code" }, /* 9.8.3.20 Message authentication code*/
- { DE_NAS_5GS_MM_MICO_IND, "MICO indication" }, /* 9.8.3.21 MICO indication*/
- { DE_NAS_5GS_MM_NAS_KEY_SET_ID, "NAS key set identifier" }, /* 9.8.3.22 NAS key set identifier*/
- { DE_NAS_5GS_MM_NAS_MSG_CONT, "NAS message container" }, /* 9.8.3.23 NAS message container*/
- { DE_NAS_5GS_MM_NAS_SEC_ALGO, "NAS security algorithms" }, /* 9.8.3.24 NAS security algorithms*/
- { DE_NAS_5GS_MM_NAS_SEC_PAR_NG_RAN, "NAS security parameters to NG-RAN" }, /* 9.8.3.25 NAS security parameters to NG-RAN*/
- { DE_NAS_5GS_MM_NW_NAME, "Network name" }, /* 9.8.3.26 Network name*/
- { DE_NAS_5GS_MM_NONCE, "Nonce" }, /* 9.8.3.27 Nonce*/
- { DE_NAS_5GS_MM_NSSAI, "NSSAI" }, /* 9.8.3.28 NSSAI*/
- { DE_NAS_5GS_MM_NSSAI_INF_FOR_PDU_SES, "NSSAI info for PDU sessions" }, /* 9.8.3.29 NSSAI info for PDU sessions*/
- { DE_NAS_5GS_MM_PLD_CONT, "Payload container" }, /* 9.8.3.30 Payload container*/
- { DE_NAS_5GS_MM_PLD_CONT_TYPE, "Payload container type" }, /* 9.8.3.31 Payload container type*/
- { DE_NAS_5GS_MM_PDU_SES_REACT_RES, "PDU session reactivation result" }, /* 9.8.3.32 PDU session reactivation result*/
- { DE_NAS_5GS_MM_PLMN_LIST, "PLMN list" }, /* 9.8.3.33 PLMN list*/
- { DE_NAS_5GS_MM_OLD_PDU_SES_ID, "Old PDU session identity" }, /* 9.8.3.34 Old PDU session identity*/
- { DE_NAS_5GS_MM_REJ_NSSAI, "Rejected NSSAI" }, /* 9.8.3.35 Rejected NSSAI*/
- { DE_NAS_5GS_MM_S1_UE_NW_CAP, "S1 UE network capability" }, /* 9.8.3.36 S1 UE network capability*/
- { DE_NAS_5GS_MM_S_NSSAI, "S-NSSAI" }, /* 9.8.3.37 S-NSSAI*/
- { DE_NAS_5GS_MM_SEQ_NO, "Sequence number" }, /* 9.8.3.38 Sequence number*/
- { DE_NAS_5GS_MM_SAL, "Service area list" }, /* 9.8.3.39 Service area list*/
- { DE_NAS_5GS_MM_SMS_ALL, "SMS allowed" }, /* 9.8.3.40 SMS allowed*/
- { DE_NAS_5GS_MM_SMS_REQ, "SMS requested" }, /* 9.8.3.41 SMS requested*/
- { DE_NAS_5GS_MM_REQ_TYPE, "Request type" }, /* 9.8.3.42 Request type*/
- { DE_NAS_5GS_MM_SERV_TYPE, "Service type" }, /* 9.8.3.43 Service type*/
- { DE_NAS_5GS_MM_TAI_ID, "Tracking area identity" }, /* 9.8.3.44 Tracking area identity*/
- { DE_NAS_5GS_MM_TAI_ID_LIST, "Tracking area identity list" }, /* 9.8.3.45 Tracking area identity list*/
- { DE_NAS_5GS_MM_TZ, "Time zone" }, /* 9.8.3.46 Time zone*/
- { DE_NAS_5GS_MM_TZ_AND_T, "Time zone and time" }, /* 9.8.3.47 Time zone and time*/
- { DE_NAS_5GS_MM_UE_SEC_CAP, "UE security capability" }, /* 9.8.3.48 UE security capability*/
- { DE_NAS_5GS_MM_UE_STS, "UE status" }, /* 9.8.3.49 UE status*/
+ { DE_NAS_5GS_MM_5GMM_CAP, "5GMM capability" }, /* 9.10.3.1 5GMM capability*/
+ { DE_NAS_5GS_MM_5GMM_CAUSE, "5GMM cause" }, /* 9.10.3.2 5GMM cause*/
+ { DE_NAS_5GS_MM_5GS_IDENTITY_TYPE, "5GS identity type" }, /* 9.10.3.3 5GS identity type*/
+ { DE_NAS_5GS_MM_5GS_MOBILE_ID, "5GS mobile identity" }, /* 9.10.3.4 5GS mobile identity*/
+ { DE_NAS_5GS_MM_5GS_NW_FEAT_SUP, "5GS network feature support" }, /* 9.10.3.5 5GS network feature support*/
+ { DE_NAS_5GS_MM_5GS_REG_RES, "5GS registration result" }, /* 9.10.3.6 5GS registration result*/
+ { DE_NAS_5GS_MM_5GS_REG_TYPE, "5GS registration type" }, /* 9.10.3.7 5GS registration type*/
+ { DE_NAS_5GS_MM_5GS_TA_ID, "5GS tracking area identit" }, /* 9.10.3.8 5GS tracking area identity */
+ { DE_NAS_5GS_MM_5GS_TA_ID_LIST, "5GS tracking area identity list" }, /* 9.10.3.9 5GS tracking area identity list*/
+ { DE_NAS_5GS_MM_ACCESS_TYPE, "Access type" }, /* 9.10.3.10 Access type */
+ { DE_NAS_5GS_MM_ALLOW_PDU_SES_STS, "Allowed PDU session status" }, /* 9.10.3.11 Allowed PDU session status*/
+ { DE_NAS_5GS_MM_AUT_FAIL_PAR, "Authentication failure parameter" }, /* 9.10.3.12 Authentication failure parameter*/
+ { DE_NAS_5GS_MM_AUT_PAR_AUTN, "Authentication parameter AUTN" }, /* 9.10.3.13 Authentication parameter AUTN*/
+ { DE_NAS_5GS_MM_AUT_PAR_RAND, "Authentication parameter RAND" }, /* 9.10.3.14 Authentication parameter RAND*/
+ { DE_NAS_5GS_MM_AUT_RESP_PAR, "Authentication response parameter" }, /* 9.10.3.15 Authentication response parameter*/
+ { DE_NAS_5GS_MM_CONF_UPD_IND, "Configuration update indication" }, /* 9.10.3.16 Configuration update indication*/
+ { DE_NAS_5GS_MM_DLGT_SAVING_TIME, "Daylight saving time" }, /* 9.10.3.17 Daylight saving time*/
+ { DE_NAS_5GS_MM_DE_REG_TYPE, "De-registration type" }, /* 9.10.3.18 De-registration type*/
+ { DE_NAS_5GS_MM_DNN, "DNN" }, /* 9.10.3.19 DNN*/
+ { DE_NAS_5GS_MM_DRX_PAR, "DRX parameters" }, /* 9.10.3.20 DRX parameters*/
+ { DE_NAS_5GS_MM_EMRG_NR_LIST, "Emergency number list" }, /* 9.10.3.21 Emergency number list*/
+ { DE_NAS_5GS_MM_EPS_NAS_MSG_CONT, "EPS NAS message container" }, /* 9.10.3.22 EPS NAS message container*/
+ { DE_NAS_5GS_MM_EPS_NAS_SEC_ALGO, "EPS NAS security algorithms" }, /* 9.10.3.23 EPS NAS security algorithms*/
+ { DE_NAS_5GS_MM_EXT_EMERG_NUM_LIST, "Extended emergency number list" }, /* 9.10.3.24 Extended emergency number list */
+ { DE_NAS_5GS_MM_HASHAMF, "HashAMF" }, /* 9.10.3.25 HashAMF*/
+ { DE_NAS_5GS_MM_IMEISV_REQ, "IMEISV request" }, /* 9.10.3.26 IMEISV request*/
+ { DE_NAS_5GS_MM_LADN_INF, "LADN information" }, /* 9.10.3.27 LADN information*/
+ { DE_NAS_5GS_MM_MICO_IND, "MICO indication" }, /* 9.10.3.28 MICO indication*/
+ { DE_NAS_5GS_MM_NAS_KEY_SET_ID, "NAS key set identifier" }, /* 9.10.3.29 NAS key set identifier*/
+ { DE_NAS_5GS_MM_NAS_MSG, "NAS message" }, /* 9.10.3.30 NAS message*/
+ { DE_NAS_5GS_MM_NAS_MSG_CONT, "NAS message container" }, /* 9.10.3.31 NAS message container*/
+ { DE_NAS_5GS_MM_NAS_SEC_ALGO, "NAS security algorithms" }, /* 9.10.3.32 NAS security algorithms*/
+ { DE_NAS_5GS_MM_NW_NAME, "Network name" }, /* 9.10.3.33 Network name*/
+ { DE_NAS_5GS_MM_NSSAI, "NSSAI" }, /* 9.10.3.34 NSSAI*/
+ { DE_NAS_5GS_MM_PLD_CONT, "Payload container" }, /* 9.10.3.35 Payload container*/
+ { DE_NAS_5GS_MM_PLD_CONT_TYPE, "Payload container type" }, /* 9.10.3.36 Payload container type*/
+ { DE_NAS_5GS_MM_PDU_SES_ID_2, "PDU session identity 2" }, /* 9.10.3.37 PDU session identity 2*/
+ { DE_NAS_5GS_MM_PDU_SES_REACT_RES, "PDU session reactivation result" }, /* 9.10.3.38 PDU session reactivation result*/
+ { DE_NAS_5GS_MM_PDU_SES_REACT_RES_ERR_C, "PDU session reactivation result error cause" }, /* 9.10.3.39 PDU session reactivation result error cause*/
+ { DE_NAS_5GS_MM_PDU_SES_STATUS, "PDU session status" }, /* 9.10.3.40 PDU session status*/
+ { DE_NAS_5GS_MM_PLMN_LIST, "PLMN list" }, /* 9.10.3.41 PLMN list*/
+ { DE_NAS_5GS_MM_REJ_NSSAI, "Rejected NSSAI" }, /* 9.10.3.42 Rejected NSSAI*/
+ { DE_NAS_5GS_MM_PLMN_LIST, "PLMN list" }, /* 9.10.3.41 PLMN list*/
+ { DE_NAS_5GS_MM_S1_UE_NW_CAP, "S1 UE network capability" }, /* 9.10.3.44 S1 UE network capability*/
+ { DE_NAS_5GS_MM_SAL, "Service area list" }, /* 9.10.3.45 Service area list*/
+ { DE_NAS_5GS_MM_SERV_TYPE, "Service type" }, /* 9.10.3.46 Service type*/
+ { DE_NAS_5GS_MM_TZ, "Time zone" }, /* 9.10.3.47 Time zone*/
+ { DE_NAS_5GS_MM_TZ_AND_T, "Time zone and time" }, /* 9.10.3.48 Time zone and time*/
+ { DE_NAS_5GS_MM_TRANSP_CONT, "Transparent container" }, /* 9.10.3.49 Transparent container*/
+ { DE_NAS_5GS_MM_UE_SEC_CAP, "UE security capability" }, /* 9.10.3.50 UE security capability*/
+ { DE_NAS_5GS_MM_UE_USAGE_SET, "UE's usage setting" }, /* 9.10.3.50 UE's usage setting*/
+ { DE_NAS_5GS_MM_UE_STATUS, "UE status" }, /* 9.10.3.52 UE status*/
+ { DE_NAS_5GS_MM_UL_DATA_STATUS, "Uplink data status" }, /* 9.10.3.53 Uplink data status*/
+
{ 0, NULL }
};
value_string_ext nas_5gs_mm_elem_strings_ext = VALUE_STRING_EXT_INIT(nas_5gs_mm_elem_strings);
@@ -1952,93 +2076,103 @@ gint ett_nas_5gs_mm_elem[NUM_NAS_5GS_MM_ELEM];
guint16(*nas_5gs_mm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
guint32 offset, guint len,
gchar *add_string, int string_len) = {
- /* 9.8.3 5GS mobility management (5GMM) information elements */
- de_nas_5gs_mm_5gmm_cap, /* 9.8.3.1 5GMM capability*/
- de_nas_5gs_mm_5gmm_cause, /* 9.8.3.2 5GMM cause*/
- de_nas_5gs_mm_5gs_mobile_id, /* 9.8.3.3 5GS mobile identity*/
- de_nas_5gs_mm_5gs_nw_feat_sup, /* 9.8.3.4 5GS network feature support*/
- de_nas_5gs_mm_5gs_reg_res, /* 9.8.3.5 5GS registration result*/
- de_nas_5gs_mm_5gs_reg_type, /* 9.8.3.6 5GS registration type*/
- de_nas_5gs_mm_allow_pdu_ses_sts, /* 9.8.3.7 Allowed PDU session status*/
- NULL, /* 9.8.3.8 Authentication parameter AUTN*/
- NULL, /* 9.8.3.9 Authentication parameter RAND*/
- de_nas_5gs_mm_conf_upd_ind, /* 9.8.3.10 Configuration update indication*/
- NULL, /* 9.8.3.11 Daylight saving time*/
- de_nas_5gs_mm_de_reg_type, /* 9.8.3.12 De-registration type*/
- de_nas_5gs_mm_dnn, /* 9.8.3.13 DNN*/
- de_nas_5gs_mm_eap_msg, /* 9.8.3.14 EAP message*/
- de_nas_5gs_mm_eps_nas_msg_cont, /* 9.8.3.15 EPS NAS message container*/
- NULL, /* 9.8.3.16 GPRS timer 2*/
- de_nas_5gs_mm_hashamf, /* 9.8.3.17 HashAMF*/
- NULL, /* 9.8.3.18 IMEISV request*/
- de_nas_5gs_mm_ladn_inf, /* 9.8.3.19 LADN information*/
- de_nas_5gs_mm_msg_auth_code, /* 9.8.3.20 Message authentication code*/
- de_nas_5gs_mm_mico_ind, /* 9.8.3.21 MICO indication*/
- de_nas_5gs_mm_nas_key_set_id, /* 9.8.3.22 NAS key set identifier*/
- de_nas_5gs_mm_nas_msg_cont, /* 9.8.3.23 NAS message container*/
- de_nas_5gs_mm_nas_sec_algo, /* 9.8.3.24 NAS security algorithms*/
- de_nas_5gs_mm_nas_sec_par_ng_ran, /* 9.8.3.25 NAS security parameters to NG-RAN*/
- NULL, /* 9.8.3.26 Network name*/
- NULL, /* 9.8.3.27 Nonce*/
- de_nas_5gs_mm_nssai, /* 9.8.3.28 NSSAI*/
- de_nas_5gs_mm_nssai_inf_for_pdu_ses, /* 9.8.3.29 NSSAI info for PDU sessions*/
- de_nas_5gs_mm_pld_cont, /* 9.8.3.30 Payload container*/
- de_nas_5gs_mm_pld_cont_type, /* 9.8.3.31 Payload container type*/
- de_nas_5gs_mm_pdu_ses_react_res, /* 9.8.3.32 PDU session reactivation result*/
- NULL, /* 9.8.3.33 PLMN list*/
- de_nas_5gs_mm_old_pdu_ses_id, /* 9.8.3.34 Old PDU session identity*/
- de_nas_5gs_mm_rej_nssai, /* 9.8.3.35 Rejected NSSAI*/
- NULL, /* 9.8.3.36 S1 UE network capability*/
- de_nas_5gs_mm_s_nssai, /* 9.8.3.37 S-NSSAI*/
- de_nas_5gs_mm_seq_no, /* 9.8.3.38 Sequence number*/
- de_nas_5gs_mm_sal, /* 9.8.3.39 Service area list*/
- de_nas_5gs_mm_sms_all, /* 9.8.3.40 SMS allowed*/
- de_nas_5gs_mm_sms_req, /* 9.8.3.41 SMS requested*/
- de_nas_5gs_mm_req_type, /* 9.8.3.42 Request type*/
- de_nas_5gs_mm_serv_type, /* 9.8.3.43 Service type*/
- NULL, /* 9.8.3.44 Tracking area identity*/
- NULL, /* 9.8.3.45 Tracking area identity list*/
- NULL, /* 9.8.3.46 Time zone*/
- NULL, /* 9.8.3.47 Time zone and time*/
- de_nas_5gs_mm_ue_sec_cap, /* 9.8.3.48 UE security capability*/
- de_nas_5gs_mm_ue_sts, /* 9.8.3.49 UE status*/
+ /* 9.10.3 5GS mobility management (5GMM) information elements */
+ de_nas_5gs_mm_5gmm_cap, /* 9.10.3.1 5GMM capability*/
+ de_nas_5gs_mm_5gmm_cause, /* 9.10.3.2 5GMM cause*/
+ de_nas_5gs_mm_5gs_identity_type, /* 9.10.3.3 5GS identity type*/
+ de_nas_5gs_mm_5gs_mobile_id, /* 9.10.3.4 5GS mobile identity*/
+ de_nas_5gs_mm_5gs_nw_feat_sup, /* 9.10.3.5 5GS network feature support*/
+ de_nas_5gs_mm_5gs_reg_res, /* 9.10.3.6 5GS registration result*/
+ de_nas_5gs_mm_5gs_reg_type, /* 9.10.3.7 5GS registration type*/
+ de_nas_5gs_mm_5gs_ta_id, /* 9.10.3.8 5GS tracking area identity */
+ de_nas_5gs_mm_5gs_ta_id_list, /* 9.10.3.9 5GS tracking area identity list */
+ de_nas_5gs_mm_access_type, /* 9.10.3.10 Access type */
+
+
+ de_nas_5gs_mm_allow_pdu_ses_sts, /* 9.10.3.11 Allowed PDU session status*/
+ NULL, /* 9.10.3.12 Authentication failure parameter */
+ NULL, /* 9.10.3.13 Authentication parameter AUTN*/
+ NULL, /* 9.10.3.14 Authentication parameter RAND*/
+ NULL, /* 9.10.3.15 Authentication response parameter */
+ de_nas_5gs_mm_conf_upd_ind, /* 9.10.3.16 Configuration update indication*/
+ NULL, /* 9.10.3.17 Daylight saving time*/
+ de_nas_5gs_mm_de_reg_type, /* 9.10.3.18 De-registration type*/
+ de_nas_5gs_mm_dnn, /* 9.10.3.19 DNN*/
+ de_nas_5gs_mm_drx_par, /* 9.10.3.20 DRX parameters*/
+ NULL, /* 9.10.3.21 Emergency number list*/
+ de_nas_5gs_mm_eps_nas_msg_cont, /* 9.10.3.22 EPS NAS message container*/
+ NULL, /* 9.10.3.23 EPS NAS security algorithms*/
+ NULL, /* 9.10.3.24 Extended emergency number list*/
+ de_nas_5gs_mm_hashamf, /* 9.10.3.25 HashAMF*/
+ NULL, /* 9.10.3.26 IMEISV request*/
+ de_nas_5gs_mm_ladn_inf, /* 9.10.3.27 LADN information*/
+ de_nas_5gs_mm_mico_ind, /* 9.10.3.28 MICO indication*/
+ de_nas_5gs_mm_nas_key_set_id, /* 9.10.3.29 NAS key set identifier*/
+ de_nas_5gs_mm_nas_msg, /* 9.10.3.30 NAS message*/
+ de_nas_5gs_mm_nas_msg_cont, /* 9.10.3.31 NAS message container*/
+ de_nas_5gs_mm_nas_sec_algo, /* 9.10.3.32 NAS security algorithms*/
+ NULL, /* 9.10.3.33 Network name*/
+ de_nas_5gs_mm_nssai, /* 9.10.3.34 NSSAI*/
+ de_nas_5gs_mm_pld_cont, /* 9.10.3.35 Payload container*/
+ de_nas_5gs_mm_pld_cont_type, /* 9.10.3.36 Payload container type*/
+ de_nas_5gs_mm_pdu_ses_id_2, /* 9.10.3.37 PDU session identity 2*/
+ de_nas_5gs_mm_pdu_ses_react_res, /* 9.10.3.38 PDU session reactivation result*/
+ de_nas_5gs_mm_pdu_ses_react_res_err_c, /* 9.10.3.39 PDU session reactivation result error cause */
+ de_nas_5gs_mm_pdu_ses_status, /* 9.10.3.40 PDU session status*/
+ NULL, /* 9.10.3.41 PLMN list*/
+ de_nas_5gs_mm_rej_nssai, /* 9.10.3.42 Rejected NSSAI*/
+ de_nas_5gs_mm_req_type, /* 9.10.3.43 Request type*/
+ NULL, /* 9.10.3.44 S1 UE network capability*/
+ de_nas_5gs_mm_sal, /* 9.10.3.45 Service area list*/
+ de_nas_5gs_mm_serv_type, /* 9.10.3.46 Service type*/
+ NULL, /* 9.10.3.47 Time zone*/
+ NULL, /* 9.10.3.48 Time zone and time*/
+ de_nas_5gs_mm_transp_cont, /* 9.10.3.49 Transparent container*/
+ de_nas_5gs_mm_ue_sec_cap, /* 9.10.3.50 UE security capability*/
+ de_nas_5gs_mm_ue_usage_set, /* 9.10.3.51 UE's usage setting*/
+ de_nas_5gs_mm_ue_status, /* 9.10.3.52 UE status*/
+ de_nas_5gs_mm_ul_data_status, /* 9.10.3.53 Uplink data status*/
NULL, /* NONE */
};
/*
- * 9.8.4 5GS session management (5GSM) information elements
+ * 9.10.4 5GS session management (5GSM) information elements
*/
typedef enum
{
- DE_NAS_5GS_SM_5GSM_CAUSE, /* 9.8.4.1 5GSM cause */
- DE_NAS_5GS_SM_EXT_PROT_CONF_OPT, /* 9.8.4.2 Extended protocol configuration options */
- DE_NAS_5GS_SM_GPRS_TIMER, /* 9.8.4.3 GPRS timer */
- DE_NAS_5GS_SM_PDU_ADDRESS, /* 9.8.4.4 PDU address */
- DE_NAS_5GS_SM_PDU_SESSION_TYPE, /* 9.8.4.5 PDU session type */
- DE_NAS_5GS_SM_QOS_RULES, /* 9.8.4.6 QoS rules */
- DE_NAS_5GS_SM_SESSION_AMBR, /* 9.8.4.7 Session-AMBR */
- DE_NAS_5GS_SM_PDU_DN_REQ_CONT, /* 9.8.4.8 SM PDU DN request container */
- DE_NAS_5GS_SM_SSC_MODE, /* 9.8.4.9 SSC mode */
- DE_NAS_5GS_SM_5GSM_CAP, /* 9.8.4.10 5GSM capability */
+ DE_NAS_5GS_SM_5GSM_CAP, /* 9.10.4.1 5GSM capability */
+ DE_NAS_5GS_SM_5GSM_CAUSE, /* 9.10.4.2 5GSM cause */
+ DE_NAS_5GS_SM_5GSM_ALLOWED_SSC_MODE, /* 9.10.4.3 Allowed SSC mode */
+ DE_NAS_5GS_SM_EXT_PROT_CONF_OPT, /* 9.10.4.4 Extended protocol configuration options */
+ DE_NAS_5GS_SM_MAPPED_EPS_B_CONT, /* 9.10.4.5 Mapped EPS bearer contexts */
+ DE_NAS_5GS_SM_MAX_NUM_SUP_PKT_FLT, /* 9.10.4.6 Maximum number of supported packet filters */
+ DE_NAS_5GS_SM_PDU_ADDRESS, /* 9.10.4.7 PDU address */
+ DE_NAS_5GS_SM_PDU_SESSION_TYPE, /* 9.10.4.8 PDU session type */
+ DE_NAS_5GS_SM_QOS_RULES, /* 9.10.4.9 QoS rules */
+ DE_NAS_5GS_SM_SESSION_AMBR, /* 9.10.4.10 Session-AMBR */
+ DE_NAS_5GS_SM_PDU_DN_REQ_CONT, /* 9.10.4.11 SM PDU DN request container */
+ DE_NAS_5GS_SM_SSC_MODE, /* 9.10.4.12 SSC mode */
DE_NAS_5GS_SM_NONE /* NONE */
}
nas_5gs_sm_elem_idx_t;
static const value_string nas_5gs_sm_elem_strings[] = {
- { DE_NAS_5GS_SM_5GSM_CAUSE, "5GSM cause" }, /* 9.8.4.1 5GSM cause */
- { DE_NAS_5GS_SM_EXT_PROT_CONF_OPT, "Extended protocol configuration options" }, /* 9.8.4.2 Extended protocol configuration options */
- { DE_NAS_5GS_SM_GPRS_TIMER, " GPRS timer" }, /* 9.8.4.3 GPRS timer */
- { DE_NAS_5GS_SM_PDU_ADDRESS, "PDU address" }, /* 9.8.4.4 PDU address */
- { DE_NAS_5GS_SM_PDU_SESSION_TYPE, "PDU session type" }, /* 9.8.4.5 PDU session type */
- { DE_NAS_5GS_SM_QOS_RULES, "QoS rules" }, /* 9.8.4.6 QoS rules */
- { DE_NAS_5GS_SM_SESSION_AMBR, "Session-AMBR" }, /* 9.8.4.7 Session-AMBR */
- { DE_NAS_5GS_SM_PDU_DN_REQ_CONT, "SM PDU DN request container" }, /* 9.8.4.8 SM PDU DN request container */
- { DE_NAS_5GS_SM_SSC_MODE, "SSC mode" }, /* 9.8.4.9 SSC mode */
- { DE_NAS_5GS_SM_5GSM_CAP, "5GSM capability" }, /* 9.8.4.10 5GSM capability */
+ { DE_NAS_5GS_SM_5GSM_CAP, "5GSM capability" }, /* 9.10.4.1 5GSM capability */
+ { DE_NAS_5GS_SM_5GSM_CAUSE, "5GSM cause" }, /* 9.10.4.2 5GSM cause */
+ { DE_NAS_5GS_SM_5GSM_ALLOWED_SSC_MODE, "Allowed SSC mode" }, /* 9.10.4.2 Allowed SSC mode */
+ { DE_NAS_5GS_SM_EXT_PROT_CONF_OPT, "Extended protocol configuration options" }, /* 9.10.4.4 Extended protocol configuration options */
+ { DE_NAS_5GS_SM_MAPPED_EPS_B_CONT, "Mapped EPS bearer contexts" }, /* 9.10.4.5 Mapped EPS bearer contexts */
+ { DE_NAS_5GS_SM_MAX_NUM_SUP_PKT_FLT, "Maximum number of supported packet filters" }, /* 9.10.4.6 Maximum number of supported packet filters */
+ { DE_NAS_5GS_SM_PDU_ADDRESS, "PDU address" }, /* 9.10.4.7 PDU address */
+ { DE_NAS_5GS_SM_PDU_SESSION_TYPE, "PDU session type" }, /* 9.10.4.8 PDU session type */
+ { DE_NAS_5GS_SM_QOS_RULES, "QoS rules" }, /* 9.10.4.9 QoS rules */
+ { DE_NAS_5GS_SM_SESSION_AMBR, "Session-AMBR" }, /* 9.10.4.10 Session-AMBR */
+ { DE_NAS_5GS_SM_PDU_DN_REQ_CONT, "SM PDU DN request container" }, /* 9.10.4.11 SM PDU DN request container */
+ { DE_NAS_5GS_SM_SSC_MODE, "SSC mode" }, /* 9.10.4.12 SSC mode */
{ 0, NULL }
};
@@ -2051,16 +2185,18 @@ guint16(*nas_5gs_sm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pi
guint32 offset, guint len,
gchar *add_string, int string_len) = {
/* 5GS session management (5GSM) information elements */
- de_nas_5gs_sm_5gsm_cause, /* 9.8.4.1 5GSM cause */
- NULL, /* 9.8.4.2 Extended protocol configuration options */
- NULL, /* 9.8.4.3 GPRS timer */
- de_nas_5gs_sm_pdu_address, /* 9.8.4.4 PDU address */
- de_nas_5gs_sm_pdu_session_type, /* 9.8.4.5 PDU session type */
- de_nas_5gs_sm_qos_rules, /* 9.8.4.6 QoS rules */
- de_nas_5gs_sm_session_ambr, /* 9.8.4.7 Session-AMBR */
- de_nas_5gs_sm_pdu_dn_req_cont, /* 9.8.4.8 SM PDU DN request container */
- de_nas_5gs_sm_ssc_mode, /* 9.8.4.9 SSC mode */
- de_nas_5gs_sm_5gsm_cap, /* 9.8.4.10 5GSM capability */
+ de_nas_5gs_sm_5gsm_cap, /* 9.10.4.1 5GSM capability */
+ de_nas_5gs_sm_5gsm_cause, /* 9.10.4.2 5GSM cause */
+ de_nas_5gs_sm_5gsm_allowed_ssc_mode, /* 9.10.4.3 Allowed SSC mode */
+ NULL, /* 9.10.4.4 Extended protocol configuration options */
+ de_nas_5gs_sm_mapped_eps_b_cont, /* 9.10.4.5 Mapped EPS bearer contexts */
+ de_nas_5gs_sm_max_num_sup_pkt_flt, /* 9.10.4.6 Maximum number of supported packet filters */
+ de_nas_5gs_sm_pdu_address, /* 9.10.4.7 PDU address */
+ de_nas_5gs_sm_pdu_session_type, /* 9.10.4.8 PDU session type */
+ de_nas_5gs_sm_qos_rules, /* 9.10.4.9 QoS rules */
+ de_nas_5gs_sm_session_ambr, /* 9.10.4.10 Session-AMBR */
+ de_nas_5gs_sm_pdu_dn_req_cont, /* 9.10.4.11 SM PDU DN request container */
+ de_nas_5gs_sm_ssc_mode, /* 9.10.4.12 SSC mode */
NULL, /* NONE */
};
@@ -2085,17 +2221,17 @@ nas_5gs_mm_authentication_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
curr_offset = offset;
curr_len = len;
- /* ngKSI NAS key set identifier 9.8.3.22 M V 1/2 */
+ /*ngKSI NAS key set identifier 9.10.3.29 M V 1/2 */
/* Spare half octet Spare half octet 9.5 M V 1/2 */
proto_tree_add_item(tree, hf_nas_5gs_spare_half_octet, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NAS_KEY_SET_ID, " - ngKSI", ei_nas_5gs_missing_mandatory_elemen);
- /*21 Authentication parameter RAND (5G authentication challenge) Authentication parameter RAND 9.8.3.9 O TV 17*/
- ELEM_MAND_TV(0x21, GSM_A_PDU_TYPE_DTAP, DE_AUTH_PARAM_RAND, " - 5G authentication challenge", ei_nas_5gs_missing_mandatory_elemen);
- /*20 Authentication parameter AUTN (5G authentication challenge) Authentication parameter AUTN 9.8.3.8 O TLV 18*/
- ELEM_MAND_TLV(0x20, GSM_A_PDU_TYPE_DTAP, DE_AUTH_PARAM_AUTN, " - 5G authentication challeng", ei_nas_5gs_missing_mandatory_elemen);
- /*78 EAP message EAP message 9.8.3.14 O TLV-E 7-1503*/
- ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_EAP_MSG, NULL);
+ /*21 Authentication parameter RAND (5G authentication challenge) Authentication parameter RAND 9.10.3.13 O TV 17*/
+ ELEM_OPT_TV(0x21, GSM_A_PDU_TYPE_DTAP, DE_AUTH_PARAM_RAND, " - 5G authentication challenge");
+ /*20 Authentication parameter AUTN (5G authentication challenge) Authentication parameter AUTN 9.10.3.14 O TLV 18*/
+ ELEM_OPT_TLV(0x20, GSM_A_PDU_TYPE_DTAP, DE_AUTH_PARAM_AUTN, " - 5G authentication challenge");
+ /*78 EAP message EAP message 9.10.2.2 O TLV-E 7-1503 */
+ ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_CMN_EAP_MESSAGE, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2114,8 +2250,10 @@ nas_5gs_mm_authentication_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
curr_offset = offset;
curr_len = len;
- /* EAP message EAP message 9.8.3.14 O TLV-E 7-1503 */
- ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_EAP_MSG, NULL);
+ /* 2D Authentication response parameter Authentication response parameter 9.10.3.15 O TLV 6-18 */
+ ELEM_OPT_TLV( 0x2d, NAS_PDU_TYPE_EMM, DE_EMM_AUTH_RESP_PAR, NULL);
+ /* EAP message EAP message 9.10.3.14 O TLV-E 7-1503 */
+ ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_CMN_EAP_MESSAGE, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2125,12 +2263,28 @@ nas_5gs_mm_authentication_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
* 8.2.3 Authentication result
*/
-/*
-ngKSI NAS key set identifier 9.8.3.27 M V 1/2
-Spare half octet Spare half octet 9.5 M V 1/2
-EAP message EAP message 9.8.3.16 M LV-E 6-1502
+static void
+nas_5gs_mm_authentication_result(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
+{
+ guint32 curr_offset;
+ guint32 consumed;
+ guint curr_len;
+
+ curr_offset = offset;
+ curr_len = len;
+
+ /* ngKSI NAS key set identifier 9.10.3.27 M V 1/2
+ Spare half octet Spare half octet 9.5 M V 1/2 */
+ proto_tree_add_item(tree, hf_nas_5gs_spare_half_octet, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
+ ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NAS_KEY_SET_ID, " - ngKSI", ei_nas_5gs_missing_mandatory_elemen);
+
+ /* EAP message EAP message 9.10.3.14 O TLV-E 7-1503 */
+ ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_CMN_EAP_MESSAGE, NULL);
+
+ EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
+
+}
-*/
/*
* 8.2.4 Authentication failure
*/
@@ -2144,7 +2298,7 @@ nas_5gs_mm_authentication_failure(tvbuff_t *tvb, proto_tree *tree, packet_info *
curr_offset = offset;
curr_len = len;
- /* 5GMM cause 5GMM cause 9.8.3.2 M V 1 */
+ /* 5GMM cause 5GMM cause 9.10.3.2 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GMM_CAUSE, NULL, ei_nas_5gs_missing_mandatory_elemen);
@@ -2181,60 +2335,54 @@ nas_5gs_mm_registration_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
curr_offset = offset;
curr_len = len;
- /* 5GS registration type 5GS registration type 9.8.3.6 M V 1*/
+ /* 5GS registration type 5GS registration type 9.10.3.6 M V 1*/
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GS_REG_TYPE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /* ngKSI NAS key set identifier 9.8.3.22 M V 1*/
+ /* ngKSI NAS key set identifier 9.10.3.22 M V 1*/
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NAS_KEY_SET_ID, " - ngKSI", ei_nas_5gs_missing_mandatory_elemen);
- /* Mobile identity 5GS mobile identity 9.8.3.3 M LV TBD*/
+ /* Mobile identity 5GS mobile identity 9.10.3.4 M LV TBD*/
ELEM_MAND_LV(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GS_MOBILE_ID, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*55 NonceUE Nonce 9.8.3.27 O TV 5*/
+ /*55 NonceUE Nonce 9.10.3.27 O TV 5*/
ELEM_OPT_TV(0x55, NAS_PDU_TYPE_EMM, DE_EMM_NONCE, " - NonceUE");
- /*10 5GMM capability 5GMM capability 9.8.3.1 O TLV 4-15*/
+ /*10 5GMM capability 5GMM capability 9.10.3.1 O TLV 4-15*/
ELEM_OPT_TLV(0x10, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GMM_CAP, NULL);
- /*2E UE security capability UE security capability 9.8.3.48 O TLV 4-6*/
+ /*2E UE security capability UE security capability 9.10.3.48 O TLV 4-6*/
ELEM_OPT_TLV(0x2e, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_UE_SEC_CAP, NULL);
- /*2F Requested NSSAI NSSAI 9.8.3.28 O TLV 4-74*/
+ /*2F Requested NSSAI NSSAI 9.10.3.28 O TLV 4-74*/
ELEM_OPT_TLV(0x2f, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NSSAI, " - Requested NSSAI");
- /*52 Last visited registered TAI Tracking area identity 9.8.3.44 O TV 6*/
+ /*52 Last visited registered TAI Tracking area identity 9.10.3.44 O TV 6*/
ELEM_OPT_TV(0x52, NAS_PDU_TYPE_EMM, DE_EMM_TRAC_AREA_ID, " - Last visited registered TAI");
- /*30 S1 UE network capability S1 UE network capability 9.8.3.36 O TV 6-13*/
+ /*30 S1 UE network capability S1 UE network capability 9.10.3.36 O TV 6-13*/
ELEM_OPT_TLV(0x30, NAS_PDU_TYPE_EMM, DE_EMM_UE_NET_CAP, NULL);
- /*40 Uplink data status Uplink data status 9.8.2.3 O TLV 4*/
- ELEM_OPT_TLV(0x40, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_UL_DATA_STATUS, NULL);
+ /*40 Uplink data status Uplink data status 9.10.2.3 O TLV 4*/
+ ELEM_OPT_TLV(0x40, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_UL_DATA_STATUS, NULL);
- /*50 PDU session status PDU session status 9.8.2.2 O TLV 4*/
- ELEM_OPT_TLV(0x50, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_PDU_SES_STATUS, NULL);
+ /*50 PDU session status PDU session status 9.10.2.2 O TLV 4*/
+ ELEM_OPT_TLV(0x50, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_PDU_SES_STATUS, NULL);
- /*B- MICO indication MICO indication 9.8.3.21 O TV 1*/
+ /*B- MICO indication MICO indication 9.10.3.21 O TV 1*/
ELEM_OPT_TV_SHORT(0xb0, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_MICO_IND, NULL);
- /*2B UE status UE status 9.8.3.49 O TLV 3*/
- ELEM_OPT_TLV(0x2b, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_UE_STS, NULL);
+ /*2B UE status UE status 9.10.3.49 O TLV 3*/
+ ELEM_OPT_TLV(0x2b, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_UE_STATUS, NULL);
- /*2C Additional GUTI 5GS mobile identity 9.8.3.3 O TLV TBD*/
+ /*2C Additional GUTI 5GS mobile identity 9.10.3.4 O TLV TBD*/
ELEM_OPT_TLV(0x2c, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GS_MOBILE_ID, " - Additional GUTI");
- /*2D NSSAI info for PDU sessions NSSAI info for PDU sessions 9.8.3.29 O TLV 6-90*/
- ELEM_OPT_TLV(0x2d, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NSSAI_INF_FOR_PDU_SES, NULL);
-
- /*C- SMS requested SMS requested 9.8.3.41 O TV 1*/
- ELEM_OPT_TV_SHORT(0xc0, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_SMS_REQ, NULL);
-
- /*7C EPS NAS message container EPS NAS message container 9.8.3.15 O TLV-E TBD*/
+ /*7C EPS NAS message container EPS NAS message container 9.10.3.15 O TLV-E TBD*/
ELEM_OPT_TLV_E(0x7c, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_EPS_NAS_MSG_CONT, NULL);
/*
- 25 Allowed PDU session status Allowed PDU session status 9.8.3.9 O TLV 4-34
- TBD Policy section identifier list Policy section identifier list 9.8.3.40 O TBD TBD
- 60 UE's usage setting UE's usage setting 9.8.3.56 O TLV 3
+ 25 Allowed PDU session status Allowed PDU session status 9.10.3.9 O TLV 4-34
+ TBD Policy section identifier list Policy section identifier list 9.10.3.40 O TBD TBD
+ 60 UE's usage setting UE's usage setting 9.10.3.56 O TLV 3
*/
@@ -2256,40 +2404,42 @@ nas_5gs_mm_registration_accept(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
curr_offset = offset;
curr_len = len;
- /* 5GS registration result 5GS registration result 9.8.3.5 M V TBD*/
+ /* 5GS registration result 5GS registration result 9.10.3.5 M V TBD*/
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GS_REG_RES, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*2C 5G-GUTI 5GS mobile identity 9.8.3.3 O TLV TBD*/
+ /*2C 5G-GUTI 5GS mobile identity 9.10.3.4 O TLV TBD*/
ELEM_OPT_TLV(0x2c, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GS_MOBILE_ID, " - 5G-GUTI");
- /*4A Equivalent PLMNs PLMN list 9.8.3.33 O TLV 5-47*/
+ /*4A Equivalent PLMNs PLMN list 9.10.3.33 O TLV 5-47*/
ELEM_OPT_TLV(0x4a, GSM_A_PDU_TYPE_COMMON, DE_PLMN_LIST, " - Equivalent PLMNs");
- /*54 TAI list Tracking area identity list 9.8.3.45 O TLV 8-98*/
+ /*54 TAI list Tracking area identity list 9.10.3.45 O TLV 8-98*/
ELEM_OPT_TLV(0x54, NAS_PDU_TYPE_EMM, DE_EMM_TRAC_AREA_ID_LST, NULL);
- /*70 Allowed NSSAI NSSAI 9.8.3.28 O TLV 4-74*/
+ /*70 Allowed NSSAI NSSAI 9.10.3.28 O TLV 4-74*/
ELEM_OPT_TLV(0x70, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NSSAI, " - Allowed NSSAI");
- /*11 Rejected NSSAI Rejected NSSAI 9.8.3.35 O TLV 4-42*/
+ /*11 Rejected NSSAI Rejected NSSAI 9.10.3.35 O TLV 4-42*/
ELEM_OPT_TLV(0x11, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_REJ_NSSAI, NULL);
- /*wx 5GS network feature support 5GS network feature support 9.8.3.4 O TBD TBD*/
-
- /*50 PDU session status PDU session status 9.8.2.2 O TLV 4*/
- ELEM_OPT_TLV(0x50, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_PDU_SES_STATUS, NULL);
- /*26 PDU session reactivation result PDU session reactivation result 9.8.3.32 O TLV 4-32*/
+ /*31 Configured NSSAI NSSAI 9.10.3.34 O TLV 4-146 */
+ ELEM_OPT_TLV(0x31, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NSSAI, " - Configured NSSAI");
+ /*64 5GS network feature support 5GS network feature support 9.10.3.5 O TLV 3-5 */
+ ELEM_OPT_TLV(0x64, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GS_NW_FEAT_SUP, NULL);
+ /*50 PDU session status PDU session status 9.10.2.2 O TLV 4*/
+ ELEM_OPT_TLV(0x50, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_PDU_SES_STATUS, NULL);
+ /*26 PDU session reactivation result PDU session reactivation result 9.10.3.32 O TLV 4-32*/
ELEM_OPT_TLV(0x26, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_PDU_SES_REACT_RES, NULL);
- /*79 LADN information LADN information 9.8.3.19 O TLV-E 11-1579*/
- ELEM_OPT_TLV(0x79, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_LADN_INF, NULL);
- /*B- MICO indication MICO indication 9.8.3.21 O TV 1*/
+ /*79 LADN information LADN information 9.10.3.19 O TLV-E 11-1579*/
+ ELEM_OPT_TLV_E(0x79, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_LADN_INF, NULL);
+ /*B- MICO indication MICO indication 9.10.3.21 O TV 1*/
ELEM_OPT_TV_SHORT(0xb0, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_MICO_IND, NULL);
- /*D- SMS allowed SMS allowed 9.8.3.40 O TV 1*/
- ELEM_OPT_TV_SHORT(0xd0, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_SMS_ALL, NULL);
- /*
- 27 Service area list Service area list 9.8.3.47 O TLV 6-194
- 5E T3512 value GPRS timer 3 9.8.3.21 O TLV 3
- 5D Non-3GPP de-registration timer value GPRS timer 2 9.8.3.20 O TLV 3
- 34 Emergency number list Emergency number list 9.8.3.17 O TLV 5-50
- TBD Extended emergency number list Extended emergency number list 9.8.3.19 O TLV TBD
-
- */
+ /*27 Service area list Service area list 9.10.3.47 O TLV 6-194*/
+ ELEM_OPT_TLV(0x27, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_SAL, NULL);
+ /*5E T3512 value GPRS timer 3 9.10.3.21 O TLV 3*/
+ ELEM_OPT_TLV(0x5E, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3412 value");
+ /*5D Non-3GPP de-registration timer value GPRS timer 2 9.10.3.20 O TLV 3*/
+ ELEM_OPT_TLV(0x5D, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - Non-3GPP de-registration timer value");
+ /*34 Emergency number list Emergency number list 9.10.3.17 O TLV 5-50*/
+ /*35 Extended emergency number list Extended emergency number list 9.10.3.24 O TLV TBD*/
+ /*TBD Transparent container Transparent container 9.10.3.49 O TBD TBD*/
+ /*78 EAP message EAP message 9.10.2.2 O TLV-E 7-1503 */
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2323,10 +2473,10 @@ nas_5gs_mm_registration_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
curr_offset = offset;
curr_len = len;
- /* 5GMM cause 5GMM cause 9.8.3.2 M V 1 */
+ /* 5GMM cause 5GMM cause 9.10.3.2 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GMM_CAUSE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /* 5F T3346 value GPRS timer 2 9.8.3.16 O TLV 3 */
+ /* 5F T3346 value GPRS timer 2 9.10.3.16 O TLV 3 */
ELEM_OPT_TLV(0x5F, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3346 value");
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2346,19 +2496,19 @@ nas_5gs_mm_ul_nas_transp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
curr_offset = offset;
curr_len = len;
- /*Payload container type Payload container type 9.8.3.31 M V 1/2 */
+ /*Payload container type Payload container type 9.10.3.31 M V 1/2 */
/*Spare half octet Spare half octet 9.5 M V 1/2*/
proto_tree_add_item(tree, hf_nas_5gs_spare_half_octet, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_PLD_CONT_TYPE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*Payload container Payload container 9.8.3.30 M LV-E 3-65537*/
+ /*Payload container Payload container 9.10.3.30 M LV-E 3-65537*/
/*PDU session ID PDU session identity 9.4 C V 1*/
- /*70 Old PDU session ID Old PDU session identity 9.8.3.34 O TV 2*/
- /*8- Request type Request type 9.8.3.42 O TV 1*/
- /*22 S-NSSAI S-NSSAI 9.8.3.37 O TLV 3-10*/
- /*25 DNN DNN 9.8.3.13 O TLV 3-102*/
- /*24 Additional information Additional information 9.8.2.1 O TLV 3-n*/
+ /*70 Old PDU session ID Old PDU session identity 9.10.3.34 O TV 2*/
+ /*8- Request type Request type 9.10.3.42 O TV 1*/
+ /*22 S-NSSAI S-NSSAI 9.10.3.37 O TLV 3-10*/
+ /*25 DNN DNN 9.10.3.13 O TLV 3-102*/
+ /*24 Additional information Additional information 9.10.2.1 O TLV 3-n*/
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2378,16 +2528,16 @@ nas_5gs_mm_dl_nas_transp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
curr_offset = offset;
curr_len = len;
- /*Payload container type Payload container type 9.8.3.31 M V 1/2 */
+ /*Payload container type Payload container type 9.10.3.31 M V 1/2 */
/*Spare half octet Spare half octet 9.5 M V 1/2*/
proto_tree_add_item(tree, hf_nas_5gs_spare_half_octet, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_PLD_CONT_TYPE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*Payload container Payload container 9.8.3.30 M LV-E 3-65537*/
+ /*Payload container Payload container 9.10.3.30 M LV-E 3-65537*/
/*PDU session ID PDU session identity 9.4 C V 1*/
- /*24 Additional information Additional information 9.8.2.1 O TLV 3-n*/
- /*72 5GMM cause 5GMM cause 9.8.3.2 O TV 2
+ /*24 Additional information Additional information 9.10.2.1 O TLV 3-n*/
+ /*72 5GMM cause 5GMM cause 9.10.3.2 O TV 2
*/
@@ -2408,10 +2558,10 @@ nas_5gs_mm_de_reg_req_ue_orig(tvbuff_t *tvb, proto_tree *tree, packet_info *pinf
curr_offset = offset;
curr_len = len;
- /* De-registration type De-registration type 9.8.3.12 M V 1 */
+ /* De-registration type De-registration type 9.10.3.12 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_DE_REG_TYPE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*5GS mobile identity 5GS mobile identity 9.8.3.3 M TLV TBD*/
+ /*5GS mobile identity 5GS mobile identity 9.10.3.4 M TLV TBD*/
ELEM_MAND_LV(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GS_MOBILE_ID, NULL, ei_nas_5gs_missing_mandatory_elemen);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2436,13 +2586,13 @@ nas_5gs_mm_de_registration_req_ue_term(tvbuff_t *tvb, proto_tree *tree, packet_i
curr_offset = offset;
curr_len = len;
- /* De-registration type De-registration type 9.8.3.12 M V 1 */
+ /* De-registration type De-registration type 9.10.3.12 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_DE_REG_TYPE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /* 72 5GMM cause 5GMM cause 9.8.3.2 M V 2 */
+ /* 72 5GMM cause 5GMM cause 9.10.3.2 M V 2 */
ELEM_OPT_TV(0x72, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GMM_CAUSE, NULL);
- /* 5F T3346 value GPRS timer 2 9.8.3.16 O TLV 3 */
+ /* 5F T3346 value GPRS timer 2 9.10.3.16 O TLV 3 */
ELEM_OPT_TLV(0x5F, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3346 value");
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2472,9 +2622,9 @@ nas_5gs_mm_service_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NAS_KEY_SET_ID, " - ngKSI", ei_nas_5gs_missing_mandatory_elemen);
Spare half octet Spare half octet 9.4 M V 1/2
- Uplink data status Uplink data status 9.8.2.3 O TLV 4
- PDU session status PDU session status 9.8.2.2 O TLV 4
- Allowed PDU session status Allowed PDU session status 9.8.3.7 O TLV 4-34
+ Uplink data status Uplink data status 9.10.2.3 O TLV 4
+ PDU session status PDU session status 9.10.2.2 O TLV 4
+ Allowed PDU session status Allowed PDU session status 9.10.3.7 O TLV 4-34
*/
@@ -2496,12 +2646,12 @@ nas_5gs_mm_service_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset = offset;
curr_len = len;
- /*50 PDU session status PDU session status 9.8.2.2 O TLV 4*/
- ELEM_OPT_TLV(0x50, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_PDU_SES_STATUS, NULL);
+ /*50 PDU session status PDU session status 9.10.2.2 O TLV 4*/
+ ELEM_OPT_TLV(0x50, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_PDU_SES_STATUS, NULL);
/*
- 26 PDU session reactivation result PDU session reactivation result 9.8.3.37 O TLV 4-32
- 7E PDU session reactivation result error cause PDU session reactivation result error cause 9.8.3.38 O TLV-E 5-515
+ 26 PDU session reactivation result PDU session reactivation result 9.10.3.37 O TLV 4-32
+ 7E PDU session reactivation result error cause PDU session reactivation result error cause 9.10.3.38 O TLV-E 5-515
*/
@@ -2521,13 +2671,13 @@ nas_5gs_mm_service_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset = offset;
curr_len = len;
- /* 5GMM cause 5GMM cause 9.8.3.2 M V 1 */
+ /* 5GMM cause 5GMM cause 9.10.3.2 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GMM_CAUSE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*50 PDU session status PDU session status 9.8.2.2 O TLV 4*/
- ELEM_OPT_TLV(0x50, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_PDU_SES_STATUS, NULL);
+ /*50 PDU session status PDU session status 9.10.2.2 O TLV 4*/
+ ELEM_OPT_TLV(0x50, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_PDU_SES_STATUS, NULL);
- /* 5F T3346 value GPRS timer 2 9.8.3.16 O TLV 3 */
+ /* 5F T3346 value GPRS timer 2 9.10.3.16 O TLV 3 */
ELEM_OPT_TLV(0x5F, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3346 value");
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2547,45 +2697,45 @@ nas_5gs_mm_conf_upd_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset = offset;
curr_len = len;
- /*Configuration update indication Configuration update indication 9.8.3.10 M V 1/2*/
+ /*Configuration update indication Configuration update indication 9.10.3.10 M V 1/2*/
/*Spare half octet Spare half octet 9.5 M V 1/2*/
proto_tree_add_item(tree, hf_nas_5gs_spare_half_octet, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_CONF_UPD_IND, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*2C 5G-GUTI 5GS mobile identity 9.8.3.3 O TLV TBD*/
+ /*2C 5G-GUTI 5GS mobile identity 9.10.3.4 O TLV TBD*/
ELEM_MAND_LV(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GS_MOBILE_ID, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*54 TAI list Tracking area identity list 9.8.3.45 O TLV 8-98*/
+ /*54 TAI list Tracking area identity list 9.10.3.45 O TLV 8-98*/
ELEM_OPT_TLV(0x54, NAS_PDU_TYPE_EMM, DE_EMM_TRAC_AREA_ID_LST, NULL);
- /*70 Allowed NSSAI NSSAI 9.8.3.28 O TLV 4-74*/
+ /*70 Allowed NSSAI NSSAI 9.10.3.28 O TLV 4-74*/
ELEM_OPT_TLV(0x70, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NSSAI, " - Allowed NSSAI");
- /*27 Service area list Service area list 9.8.3.39 O TLV 6-194 */
+ /*27 Service area list Service area list 9.10.3.39 O TLV 6-194 */
ELEM_OPT_TLV(0x70, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_SAL, NULL);
- /*43 Full name for network Network name 9.8.3.26 O TLV 3-n*/
+ /*43 Full name for network Network name 9.10.3.26 O TLV 3-n*/
ELEM_OPT_TLV(0x43, GSM_A_PDU_TYPE_DTAP, DE_NETWORK_NAME, " - Full name for network");
- /*45 Short name for network Network name 9.8.3.26 O TLV 3-n*/
+ /*45 Short name for network Network name 9.10.3.26 O TLV 3-n*/
ELEM_OPT_TLV(0x45, GSM_A_PDU_TYPE_DTAP, DE_NETWORK_NAME, " - Short Name");
- /*46 Local time zone Time zone 9.8.3.46 O TV 2*/
+ /*46 Local time zone Time zone 9.10.3.46 O TV 2*/
ELEM_OPT_TV(0x46, GSM_A_PDU_TYPE_DTAP, DE_TIME_ZONE, " - Local");
- /*47 Universal time and local time zone Time zone and time 9.8.3.47 O TV 8*/
+ /*47 Universal time and local time zone Time zone and time 9.10.3.47 O TV 8*/
ELEM_OPT_TV(0x47, GSM_A_PDU_TYPE_DTAP, DE_TIME_ZONE_TIME, " - Universal Time and Local Time Zone");
- /*49 Network daylight saving time Daylight saving time 9.8.3.11 O TLV 3*/
+ /*49 Network daylight saving time Daylight saving time 9.10.3.11 O TLV 3*/
ELEM_OPT_TLV(0x49, GSM_A_PDU_TYPE_DTAP, DE_DAY_SAVING_TIME, NULL);
- /*79 LADN information LADN information 9.8.3.19 O TLV-E 11-1579*/
- ELEM_OPT_TLV(0x79, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_LADN_INF, NULL);
+ /*79 LADN information LADN information 9.10.3.19 O TLV-E 11-1579*/
+ ELEM_OPT_TLV_E(0x79, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_LADN_INF, NULL);
- /*B- MICO indication MICO indication 9.8.3.21 O TV 1*/
+ /*B- MICO indication MICO indication 9.10.3.21 O TV 1*/
ELEM_OPT_TV_SHORT(0xb0, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_MICO_IND, NULL);
- /*31 Configured NSSAI NSSAI 9.8.3.28 O TLV 4-74*/
+ /*31 Configured NSSAI NSSAI 9.10.3.28 O TLV 4-74*/
ELEM_OPT_TLV(0x31, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NSSAI, " - Configured NSSAI");
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2632,7 +2782,7 @@ nas_5gs_mm_id_resp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guin
curr_offset = offset;
curr_len = len;
- /* Mobile identity 5GS mobile identity 9.8.3.3 M LV TBD */
+ /* Mobile identity 5GS mobile identity 9.10.3.4 M LV TBD */
ELEM_MAND_LV(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GS_MOBILE_ID, NULL, ei_nas_5gs_missing_mandatory_elemen);
@@ -2653,7 +2803,7 @@ nas_5gs_mm_notification(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset = offset;
curr_len = len;
- /* F- Access type Access type 9.8.3.8 O TV 1 */
+ /* F- Access type Access type 9.10.3.8 O TV 1 */
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2676,24 +2826,23 @@ nas_5gs_mm_sec_mode_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset = offset;
curr_len = len;
- /*Selected NAS security algorithms NAS security algorithms 9.8.3.24 M V 1 */
+ /*Selected NAS security algorithms NAS security algorithms 9.10.3.32 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NAS_SEC_ALGO, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*NAS key set identifier NAS key set identifier 9.8.3.22 M V 1*/
- ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NAS_KEY_SET_ID, NULL, ei_nas_5gs_missing_mandatory_elemen);
+ /*ngKSI NAS key set identifier 9.10.3.29 M V 1/2 */
+ /* Spare half octet Spare half octet 9.5 M V 1/2 */
+ proto_tree_add_item(tree, hf_nas_5gs_spare_half_octet, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
+ ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NAS_KEY_SET_ID, " - ngKSI", ei_nas_5gs_missing_mandatory_elemen);
- /*Replayed UE security capabilities UE security capability 9.8.3.48 M LV 3-5*/
+ /*Replayed UE security capabilities UE security capability 9.10.3.48 M LV 3-5*/
ELEM_MAND_LV(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_UE_SEC_CAP, " - Replayed UE security capabilities", ei_nas_5gs_missing_mandatory_elemen);
- /*Xa Allowed NSSAI NSSAI 9.8.3.28 O TBD TBD*/
- /*ELEM_OPT_TLV(0x70, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_NSSAI, " - Allowed NSSAI");*/
- /*E- IMEISV request IMEISV request 9.8.3.18 O TV 1*/
+ /*E- IMEISV request IMEISV request 9.10.3.18 O TV 1*/
ELEM_OPT_TV_SHORT(0xE0, NAS_PDU_TYPE_EMM, DE_EMM_IMEISV_REQ, NULL);
- /*55 Replayed nonceUE Nonce 9.8.3.27 O TV 5*/
- /*56 NonceAMF Nonce 9.8.3.27 O TV 5*/
- /*4F HashAMF HashAMF 9.8.3.17 O TV 9*/
- /*78 EAP message EAP message 9.8.3.14 O TLV-E 7*/
- ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_EAP_MSG, NULL);
+ /*4F HashAMF HashAMF 9.10.3.17 O TV 9*/
+ /*57 Selected EPS NAS security algorithms EPS NAS security algorithms 9.10.3.23 O TV 2 */
+ /*78 EAP message EAP message 9.10.3.14 O TLV-E 7*/
+ ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_CMN_EAP_MESSAGE, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2707,18 +2856,15 @@ static void
nas_5gs_mm_sec_mode_comp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len)
{
guint32 curr_offset;
- /*guint32 consumed;*/
+ guint32 consumed;
guint curr_len;
curr_offset = offset;
curr_len = len;
- /*
- Allowed NSSAI NSSAI 9.8.3.28 M TBD TBD
- IMEISV 5G mobile identity 9.8.3.3 O TLV TBD
- NAS message container NAS message container 9.8.3.23 O TLV-E 3-n
-
- */
+ /* 2C IMEISV 5G mobile identity 9.10.3.4 O TLV 11 */
+ ELEM_OPT_TLV(0x2c, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GS_MOBILE_ID, NULL);
+ /* 7D NAS message container NAS message container 9.10.3.31 O TLV-E 3-n */
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2738,7 +2884,7 @@ nas_5gs_mm_sec_mode_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset = offset;
curr_len = len;
- /* EMM cause 5GMM cause 9.8.3.2 M V 1 */
+ /* EMM cause 5GMM cause 9.10.3.2 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GMM_CAUSE, " - EMM cause", ei_nas_5gs_missing_mandatory_elemen);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2759,7 +2905,7 @@ nas_5gs_mm_5gmm_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset = offset;
curr_len = len;
- /* EMM cause 5GMM cause 9.8.3.2 M V 1 */
+ /* EMM cause 5GMM cause 9.10.3.2 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GMM_CAUSE, " - EMM cause", ei_nas_5gs_missing_mandatory_elemen);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2781,18 +2927,18 @@ nas_5gs_sm_pdu_ses_est_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
curr_offset = offset;
curr_len = len;
- /*9- PDU session type PDU session type 9.8.4.5 O TV 1*/
+ /*9- PDU session type PDU session type 9.10.4.5 O TV 1*/
ELEM_OPT_TV_SHORT(0x90, NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_PDU_SESSION_TYPE, NULL);
- /*A- SSC mode SSC mode 9.8.4.9 O TV 1*/
+ /*A- SSC mode SSC mode 9.10.4.9 O TV 1*/
ELEM_OPT_TV_SHORT(0xa0, NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_SSC_MODE, NULL);
- /*28 5GSM capability 5GSM capability 9.8.4.10 O TLV 3-15 */
+ /*28 5GSM capability 5GSM capability 9.10.4.10 O TLV 3-15 */
ELEM_OPT_TLV(0x28, NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_5GSM_CAP, NULL);
- /*yz SM PDU DN request container SM PDU DN request container 9.8.4.8 O TBD TBD*/
+ /*yz SM PDU DN request container SM PDU DN request container 9.10.4.8 O TBD TBD*/
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV-E 4-65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV-E 4-65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
@@ -2814,23 +2960,23 @@ nas_5gs_sm_pdu_ses_est_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
curr_offset = offset;
curr_len = len;
- /*Selected PDU session type PDU session type 9.8.4.5 M V 1/2*/
+ /*Selected PDU session type PDU session type 9.10.4.5 M V 1/2*/
ELEM_MAND_V(NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_PDU_SESSION_TYPE, " - Selected PDU session type", ei_nas_5gs_missing_mandatory_elemen);
- /*Selected SSC mode SSC mode 9.8.4.9 M V 1/2*/
+ /*Selected SSC mode SSC mode 9.10.4.9 M V 1/2*/
- /* DNN DNN 9.8.3.13 M LV 2-TBD*/
- /*Authorized QoS rules QoS rules 9.8.4.6 M LV-E 2-65537*/
- /*Session AMBR Session-AMBR 9.8.4.7 M LV TBD*/
- /*73 5GSM cause 5GSM cause 9.8.4.1 O TV 2*/
+ /* DNN DNN 9.10.3.13 M LV 2-TBD*/
+ /*Authorized QoS rules QoS rules 9.10.4.6 M LV-E 2-65537*/
+ /*Session AMBR Session-AMBR 9.10.4.7 M LV TBD*/
+ /*73 5GSM cause 5GSM cause 9.10.4.1 O TV 2*/
ELEM_OPT_TV(0x73, NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_5GSM_CAUSE, NULL);
- /*29 PDU address PDU address 9.8.4.4 O TLV 7*/
- /*78 EAP message EAP message 9.8.3.14 O TLV-E 7-1503*/
- /*74 RQ timer value GPRS timer 9.8.4.3 O TV 2*/
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV-E 4-65538*/
+ /*29 PDU address PDU address 9.10.4.4 O TLV 7*/
+ /*78 EAP message EAP message 9.10.3.14 O TLV-E 7-1503*/
+ /*74 RQ timer value GPRS timer 9.10.4.3 O TV 2*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV-E 4-65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
- /*22 S-NSSAI S-NSSAI 9.8.3.37 O TLV 3-6*/
+ /*22 S-NSSAI S-NSSAI 9.10.3.37 O TLV 3-6*/
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2850,13 +2996,13 @@ nas_5gs_sm_pdu_ses_est_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
curr_offset = offset;
curr_len = len;
- /* EMM cause 5GMM cause 9.8.3.2 M V 1 */
+ /* EMM cause 5GMM cause 9.10.3.2 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_5GMM_CAUSE, " - EMM cause", ei_nas_5gs_missing_mandatory_elemen);
- /*78 EAP message EAP message 9.8.3.14 O TLV - E 7 - 1503*/
- ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_EAP_MSG, NULL);
+ /*78 EAP message EAP message 9.10.3.14 O TLV - E 7 - 1503*/
+ ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_CMN_EAP_MESSAGE, NULL);
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
@@ -2878,10 +3024,10 @@ nas_5gs_sm_pdu_ses_auth_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
curr_offset = offset;
curr_len = len;
- /*78 EAP message EAP message 9.8.3.14 O TLV - E 7 - 1503*/
- ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_EAP_MSG, NULL);
+ /*78 EAP message EAP message 9.10.3.14 O TLV - E 7 - 1503*/
+ ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_CMN_EAP_MESSAGE, NULL);
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
@@ -2902,10 +3048,10 @@ nas_5gs_sm_pdu_ses_auth_comp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
curr_offset = offset;
curr_len = len;
- /*78 EAP message EAP message 9.8.3.14 O TLV - E 7 - 1503*/
- ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_EAP_MSG, NULL);
+ /*78 EAP message EAP message 9.10.3.14 O TLV - E 7 - 1503*/
+ ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_CMN_EAP_MESSAGE, NULL);
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
@@ -2927,12 +3073,12 @@ nas_5gs_sm_pdu_ses_mod_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
curr_offset = offset;
curr_len = len;
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
- /*7A Requested QoS rules QoS rules 9.8.4.6 O TLV-E 3-65538 */
+ /*7A Requested QoS rules QoS rules 9.10.4.6 O TLV-E 3-65538 */
- /* 28 5GSM capability 5GSM capability 9.8.4.10 O TLV 3-15 */
+ /* 28 5GSM capability 5GSM capability 9.10.4.10 O TLV 3-15 */
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2952,13 +3098,13 @@ nas_5gs_sm_pdu_ses_mod_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
curr_offset = offset;
curr_len = len;
- /* 5GSM cause 5GSM cause 9.8.4.1 M V 1 */
+ /* 5GSM cause 5GSM cause 9.10.4.1 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_5GSM_CAUSE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*78 EAP message EAP message 9.8.3.14 O TLV - E 7 - 1503*/
- ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_EAP_MSG, NULL);
+ /*78 EAP message EAP message 9.10.3.14 O TLV - E 7 - 1503*/
+ ELEM_OPT_TLV_E(0x78, NAS_5GS_PDU_TYPE_COMMON, DE_NAS_5GS_CMN_EAP_MESSAGE, NULL);
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -2979,13 +3125,13 @@ nas_5gs_sm_pdu_ses_mod_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
curr_offset = offset;
curr_len = len;
- /* 5GSM cause 5GSM cause 9.8.4.1 M V 1 */
+ /* 5GSM cause 5GSM cause 9.10.4.1 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_5GSM_CAUSE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*7B Authorized QoS rules QoS rules 9.8.4.6 O TLV-E 3-65538*/
- /*2A Session AMBR Session-AMBR 9.8.4.7 O TLV 8*/
- /*75 PDU session release time GPRS timer 9.8.4.3 O TV 2*/
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV-E 4-65538*/
+ /*7B Authorized QoS rules QoS rules 9.10.4.6 O TLV-E 3-65538*/
+ /*2A Session AMBR Session-AMBR 9.10.4.7 O TLV 8*/
+ /*75 PDU session release time GPRS timer 9.10.4.3 O TV 2*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV-E 4-65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
@@ -3008,7 +3154,7 @@ nas_5gs_sm_pdu_ses_mod_comp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
curr_offset = offset;
curr_len = len;
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -3029,10 +3175,10 @@ nas_5gs_sm_pdu_ses_mod_com_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
curr_offset = offset;
curr_len = len;
- /* 5GSM cause 5GSM cause 9.8.4.1 M V 1 */
+ /* 5GSM cause 5GSM cause 9.10.4.1 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_5GSM_CAUSE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -3053,10 +3199,10 @@ nas_5gs_sm_pdu_ses_rel_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
curr_offset = offset;
curr_len = len;
- /* 5GSM cause 5GSM cause 9.8.4.1 M V 1 */
+ /* 5GSM cause 5GSM cause 9.10.4.1 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_5GSM_CAUSE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -3077,10 +3223,10 @@ nas_5gs_sm_pdu_ses_rel_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
curr_offset = offset;
curr_len = len;
- /* 5GSM cause 5GSM cause 9.8.4.1 M V 1 */
+ /* 5GSM cause 5GSM cause 9.10.4.1 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_5GSM_CAUSE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -3101,11 +3247,11 @@ nas_5gs_sm_pdu_ses_rel_cmd(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _
curr_offset = offset;
curr_len = len;
- /* 5GSM cause 5GSM cause 9.8.4.1 M V 1 */
+ /* 5GSM cause 5GSM cause 9.10.4.1 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_5GSM_CAUSE, NULL, ei_nas_5gs_missing_mandatory_elemen);
- /* 37 Back-off timer value GPRS timer 3 9.8.3.21 O TLV 3 */
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /* 37 Back-off timer value GPRS timer 3 9.10.3.21 O TLV 3 */
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -3126,7 +3272,7 @@ nas_5gs_sm_pdu_ses_rel_comp(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
curr_offset = offset;
curr_len = len;
- /*7B Extended protocol configuration options Extended protocol configuration options 9.8.4.2 O TLV - E 4 - 65538*/
+ /*7B Extended protocol configuration options Extended protocol configuration options 9.10.4.2 O TLV - E 4 - 65538*/
ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -3147,7 +3293,7 @@ nas_5gs_sm_5gsm_status(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
curr_offset = offset;
curr_len = len;
- /* 5GSM cause 5GSM cause 9.8.4.1 M V 1 */
+ /* 5GSM cause 5GSM cause 9.10.4.1 M V 1 */
ELEM_MAND_V(NAS_5GS_PDU_TYPE_SM, DE_NAS_5GS_SM_5GSM_CAUSE, NULL, ei_nas_5gs_missing_mandatory_elemen);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_5gs_extraneous_data);
@@ -3188,13 +3334,13 @@ static const value_string nas_5gs_mm_message_type_vals[] = {
{ 0x57, "Authentication response"},
{ 0x58, "Authentication reject"},
{ 0x59, "Authentication failure"},
- { 0x5a, "Identity request"},
- { 0x5b, "Identity response"},
- { 0x5c, "Security mode command"},
- { 0x5d, "Security mode complete"},
- { 0x5e, "Security mode reject"},
+ { 0x5a, "Authentication result"},
+ { 0x5b, "Identity request"},
+ { 0x5c, "Identity response"},
+ { 0x5d, "Security mode command"},
+ { 0x5e, "Security mode complete"},
+ { 0x5f, "Security mode reject"},
- { 0x5f, "Not used in v 0.4.0" },
{ 0x60, "Not used in v 0.4.0" },
{ 0x61, "Not used in v 0.4.0" },
{ 0x62, "Not used in v 0.4.0" },
@@ -3217,9 +3363,9 @@ static void(*nas_5gs_mm_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info
nas_5gs_mm_registration_complete, /* 0x43 Registration complete */
nas_5gs_mm_registration_rej, /* 0x44 Registration reject */
nas_5gs_mm_de_reg_req_ue_orig, /* 0x45 Deregistration request (UE originating) */
- nas_5gs_exp_not_dissected_yet, /* 0x46 Deregistration accept (UE originating) */
+ NULL, /* 0x46 Deregistration accept (UE originating) No data*/
nas_5gs_mm_de_registration_req_ue_term, /* 0x47 Deregistration request (UE terminated) */
- nas_5gs_exp_not_dissected_yet, /* 0x48 Deregistration accept (UE terminated) */
+ NULL, /* 0x48 Deregistration accept (UE terminated) No data */
nas_5gs_exp_not_dissected_yet, /* 0x49 Not used in v 0.4.0 */
nas_5gs_exp_not_dissected_yet, /* 0x4a Not used in v 0.4.0 */
@@ -3241,13 +3387,13 @@ static void(*nas_5gs_mm_msg_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info
nas_5gs_mm_authentication_resp, /* 0x57 Authentication response */
nas_5gs_mm_authentication_rej, /* 0x58 Authentication reject */
nas_5gs_mm_authentication_failure, /* 0x59 Authentication failure */
- nas_5gs_mm_id_req, /* 0x5a Identity request */
- nas_5gs_mm_id_resp, /* 0x5b Identity response */
- nas_5gs_mm_sec_mode_cmd, /* 0x5c Security mode command */
- nas_5gs_mm_sec_mode_comp, /* 0x5d Security mode complete */
- nas_5gs_mm_sec_mode_rej, /* 0x5e Security mode reject */
+ nas_5gs_mm_authentication_result, /* 0x5a Authentication result */
+ nas_5gs_mm_id_req, /* 0x5b Identity request */
+ nas_5gs_mm_id_resp, /* 0x5c Identity response */
+ nas_5gs_mm_sec_mode_cmd, /* 0x5d Security mode command */
+ nas_5gs_mm_sec_mode_comp, /* 0x5e Security mode complete */
+ nas_5gs_mm_sec_mode_rej, /* 0x5f Security mode reject */
- nas_5gs_exp_not_dissected_yet, /* 0x5f Not used in v 0.4.0 */
nas_5gs_exp_not_dissected_yet, /* 0x60 Not used in v 0.4.0 */
nas_5gs_exp_not_dissected_yet, /* 0x61 Not used in v 0.4.0 */
nas_5gs_exp_not_dissected_yet, /* 0x62 Not used in v 0.4.0 */
@@ -3476,22 +3622,22 @@ disect_nas_5gs_mm_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int o
}
const value_string nas_5gs_pdu_session_id_vals[] = {
- { 0x00, "No PDU session identity assigned" },
- { 0x01, "Reserved" },
- { 0x02, "Reserved" },
- { 0x03, "Reserved" },
- { 0x04, "Reserved" },
- { 0x05, "PDU session identity value 5" },
- { 0x06, "PDU session identity value 6" },
- { 0x07, "PDU session identity value 7" },
- { 0x08, "PDU session identity value 8" },
- { 0x09, "PDU session identity value 9" },
- { 0x0a, "PDU session identity value 10" },
- { 0x0b, "PDU session identity value 11" },
- { 0x0c, "PDU session identity value 12" },
- { 0x0d, "PDU session identity value 13" },
- { 0x0e, "PDU session identity value 14" },
- { 0x0f, "PDU session identity value 15" },
+ { 0x00, "No PDU session identity assigned" },
+ { 0x01, "Reserved" },
+ { 0x02, "Reserved" },
+ { 0x03, "Reserved" },
+ { 0x04, "Reserved" },
+ { 0x05, "PDU session identity value 5" },
+ { 0x06, "PDU session identity value 6" },
+ { 0x07, "PDU session identity value 7" },
+ { 0x08, "PDU session identity value 8" },
+ { 0x09, "PDU session identity value 9" },
+ { 0x0a, "PDU session identity value 10" },
+ { 0x0b, "PDU session identity value 11" },
+ { 0x0c, "PDU session identity value 12" },
+ { 0x0d, "PDU session identity value 13" },
+ { 0x0e, "PDU session identity value 14" },
+ { 0x0f, "PDU session identity value 15" },
{ 0, NULL }
};
@@ -3762,19 +3908,19 @@ proto_register_nas_5gs(void)
FT_UINT8, BASE_DEC, VALS(nas_5gs_mm_type_of_ip_algo_vals), 0x0f,
NULL, HFILL }
},
- { &hf_nas_5gs_mm_nonceamf,
- { "NonceAMF", "nas_5gs.mm.nonceamf",
- FT_UINT32, BASE_HEX, NULL, 0x0,
- NULL, HFILL }
- },
{ &hf_nas_5gs_mm_s1_mode_b0,
{ "S1 mode", "nas_5gs.mm.s1_mode_b0",
FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x01,
NULL, HFILL }
},
+ { &hf_nas_5gs_mm_ho_attach_b1,
+ { "HO attach", "nas_5gs.mm.ho_attach_b1",
+ FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x01,
+ NULL, HFILL }
+ },
{ &hf_nas_5gs_mm_type_id,
{ "Type of identity", "nas_5gs.mm.type_id",
- FT_UINT8, BASE_DEC, VALS(nas_5gs_mm_type_id_vals), 0x03,
+ FT_UINT8, BASE_DEC, VALS(nas_5gs_mm_type_id_vals), 0x07,
NULL, HFILL }
},
{ &hf_nas_5gs_mm_odd_even,
@@ -3787,31 +3933,11 @@ proto_register_nas_5gs(void)
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
- { &hf_nas_5gs_mm_pdu_ses_id,
- { "PDU session identity", "nas_5gs.mm.pdu_ses_id",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- NULL, HFILL }
- },
- { &hf_nas_5gs_mm_old_pdu_ses_id,
- { "Old PDU session identity", "nas_5gs.mm.old_pdu_ses_id",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- NULL, HFILL }
- },
{ &hf_nas_5gs_mm_pld_cont,
{ "Payload container", "nas_5gs.mm.pld_cont",
FT_BYTES, BASE_NONE, NULL, 0x0,
NULL, HFILL }
},
- { &hf_nas_5gs_mm_all_acc_b1b0,
- { "Allowed accesses", "nas_5gs.mm.all_acc_b1b0",
- FT_UINT8, BASE_DEC, VALS(nas_5gs_mm_all_acc_vals), 0x03,
- NULL, HFILL }
- },
- { &hf_nas_5gs_mm_sup_acc_b1b0,
- { "Supported accesses", "nas_5gs.mm.sup_acc_b1b0",
- FT_UINT8, BASE_DEC, VALS(nas_5gs_mm_sup_acc_vals), 0x03,
- NULL, HFILL }
- },
{ &hf_nas_5gs_mm_req_type,
{ "Request type", "nas_5gs.mm.req_typ",
FT_UINT8, BASE_DEC, VALS(nas_5gs_mm_req_type_vals), 0x0f,
@@ -4254,6 +4380,66 @@ proto_register_nas_5gs(void)
FT_UINT16, BASE_DEC, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_nas_5gs_sm_all_ssc_mode_b0,
+ { "SSC mode 1", "nas_5gs.sm.all_ssc_mode_b0",
+ FT_BOOLEAN, 8, TFS(&tfs_allowed_not_allowed), 0x01,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_sm_all_ssc_mode_b1,
+ { "SSC mode 2", "nas_5gs.sm.all_ssc_mode_b1",
+ FT_BOOLEAN, 8, TFS(&tfs_allowed_not_allowed), 0x02,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_sm_all_ssc_mode_b2,
+ { "SSC mode 3", "nas_5gs.sm.all_ssc_mode_b2",
+ FT_BOOLEAN, 8, TFS(&tfs_allowed_not_allowed), 0x04,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_mm_suci,
+ { "SUCI", "nas_5gs.mm.suci",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_mm_imei,
+ { "IMEI", "nas_5gs.mm.imei",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_mm_imeisv,
+ { "IMEISV", "nas_5gs.mm.imeisv",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_mm_reg_res_sms_allowed,
+ { "SMS over NAS", "nas_5gs.mm.reg_res.sms_all",
+ FT_BOOLEAN, 8, TFS(&tfs_allowed_not_allowed), 0x08,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_mm_reg_res_res,
+ { "5GS registration result", "nas_5gs.mm.reg_res.res",
+ FT_UINT8, BASE_DEC, VALS(nas_5gs_mm_reg_res_values), 0x07,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_amf_region_id,
+ { "AMF Region ID", "nas_5gs.amf_region_id",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_amf_set_id,
+ { "AMF Set ID", "nas_5gs.amf_set_id",
+ FT_UINT8, BASE_DEC, NULL, 0xf0,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_amf_pointer,
+ { "AMF Pointer", "nas_5gs.amf_pointer",
+ FT_UINT8, BASE_DEC, NULL, 0x0f,
+ NULL, HFILL }
+ },
+ { &hf_nas_5gs_5g_tmsi,
+ { "5G-TMSI", "nas_5gs.5g_tmsi",
+ FT_UINT32, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }
+ },
};
guint i;
diff --git a/epan/dissectors/packet-nas_eps.c b/epan/dissectors/packet-nas_eps.c
index c673132c87..45a005b0c1 100644
--- a/epan/dissectors/packet-nas_eps.c
+++ b/epan/dissectors/packet-nas_eps.c
@@ -4864,7 +4864,7 @@ nas_emm_trac_area_upd_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
/* 6F UE additional security capability UE additional security capability 9.9.3.53 O TLV 8 */
ELEM_OPT_TLV(0x6F, NAS_PDU_TYPE_EMM, DE_EMM_UE_ADD_SEC_CAP, NULL);
/* 6D UE status UE status 9.9.3.54 O TLV 3 */
- ELEM_OPT_TLV(0x6D, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_UE_STS, NULL);
+ ELEM_OPT_TLV(0x6D, NAS_5GS_PDU_TYPE_MM, DE_NAS_5GS_MM_UE_STATUS, NULL);
EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_eps_extraneous_data);
}