diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2018-03-29 23:20:55 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-03-29 22:59:05 +0000 |
commit | af7309ff9d2d1df59ecc837588d599167b6ea692 (patch) | |
tree | 9f5cfed53f79a0d4481fbbdf73847806b3188fd9 | |
parent | 684ca9db12b107f7d0ab5f2e5e29320da5ef9a77 (diff) |
NAS EPS: upgrade dissector to v15.2.0
Change-Id: I448934f15a18b5f6086cdf3f415dcccf2a4534d6
Reviewed-on: https://code.wireshark.org/review/26683
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | epan/dissectors/packet-gsm_a_common.h | 59 | ||||
-rwxr-xr-x | epan/dissectors/packet-nas_5gs.c | 15 | ||||
-rw-r--r-- | epan/dissectors/packet-nas_eps.c | 88 |
3 files changed, 150 insertions, 12 deletions
diff --git a/epan/dissectors/packet-gsm_a_common.h b/epan/dissectors/packet-gsm_a_common.h index 5fd097c051..3c1c35a3f9 100644 --- a/epan/dissectors/packet-gsm_a_common.h +++ b/epan/dissectors/packet-gsm_a_common.h @@ -1478,7 +1478,8 @@ typedef enum DE_EMM_UE_NET_CAP, /* 9.9.3.34 UE network capability */ DE_EMM_UE_RA_CAP_INF_UPD_NEED, /* 9.9.3.35 UE radio capability information update needed */ DE_EMM_UE_SEC_CAP, /* 9.9.3.36 UE security capability */ - DE_EMM_EMERG_NUM_LST, /* 9.9.3.37 Emergency Number List */ + DE_EMM_EMERG_NUM_LIST, /* 9.9.3.37 Emergency Number List */ + DE_EMM_EXT_EMERG_NUM_LIST, /* 9.9.3.37a Extended Emergency Number List */ DE_EMM_CLI, /* 9.9.3.38 CLI */ DE_EMM_SS_CODE, /* 9.9.3.39 SS Code */ DE_EMM_LCS_IND, /* 9.9.3.40 LCS indicator */ @@ -1495,6 +1496,7 @@ typedef enum DE_EMM_REPLAYED_NAS_MSG_CONT, /* 9.9.3.51 Replayed NAS message container */ DE_EMM_NETWORK_POLICY, /* 9.9.3.52 Network policy */ DE_EMM_UE_ADD_SEC_CAP, /* 9.9.3.53 UE additional security capability */ + DE_EMM_UE_STATUS, /* 9.9.3.54 UE status */ DE_EMM_NONE /* NONE */ } nas_emm_elem_idx_t; @@ -1589,6 +1591,61 @@ typedef enum } 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_NONE /* NONE */ +} +nas_5gs_mm_elem_idx_t; + #endif /* __PACKET_GSM_A_COMMON_H__ */ /* diff --git a/epan/dissectors/packet-nas_5gs.c b/epan/dissectors/packet-nas_5gs.c index be03bd756d..47320f16ea 100755 --- a/epan/dissectors/packet-nas_5gs.c +++ b/epan/dissectors/packet-nas_5gs.c @@ -117,6 +117,7 @@ static int hf_nas_5gs_mm_eia4 = -1; static int hf_nas_5gs_mm_eia5 = -1; static int hf_nas_5gs_mm_eia6 = -1; static int hf_nas_5gs_mm_eia7 = -1; +static int hf_nas_5gs_mm_n1_mode_reg_b1 = -1; static int hf_nas_5gs_mm_s1_mode_reg_b0 = -1; static int hf_nas_5gs_pdu_ses_sts_psi_7_b7 = -1; @@ -1318,6 +1319,11 @@ de_nas_5gs_mm_ue_sec_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_ * 9.8.3.49 UE status */ +static true_false_string tfs_nas_5gs_mm_n1_mod = { + "UE is in 5GMM-REGISTERED state", + "UE is not in 5GMM-REGISTERED state" +}; + static true_false_string tfs_nas_5gs_mm_s1_mod = { "UE is in EMM-REGISTERED state", "UE is not in EMM-REGISTERED state" @@ -1337,7 +1343,7 @@ de_nas_5gs_mm_ue_sts(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_n1_mode_reg_b1, &hf_nas_5gs_mm_s1_mode_reg_b0, NULL }; @@ -1831,6 +1837,7 @@ guint16(*nas_5gs_common_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info /* * 9.8.3 5GS mobility management (5GMM) information elements */ +#if 0 typedef enum { DE_NAS_5GS_MM_5GMM_CAP, /* 9.8.3.1 5GMM capability*/ @@ -1885,6 +1892,7 @@ typedef enum 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*/ @@ -3976,6 +3984,11 @@ proto_register_nas_5gs(void) FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x01, NULL, HFILL } }, + { &hf_nas_5gs_mm_n1_mode_reg_b1, + { "N1 mode reg","nas_5gs.mm.n1_mode_reg_b1", + FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_mm_n1_mod), 0x02, + NULL, HFILL } + }, { &hf_nas_5gs_mm_s1_mode_reg_b0, { "S1 mode reg","nas_5gs.mm.s1_mode_reg_b0", FT_BOOLEAN, 8, TFS(&tfs_nas_5gs_mm_s1_mod), 0x01, diff --git a/epan/dissectors/packet-nas_eps.c b/epan/dissectors/packet-nas_eps.c index 047f39012d..7e3006c43e 100644 --- a/epan/dissectors/packet-nas_eps.c +++ b/epan/dissectors/packet-nas_eps.c @@ -9,7 +9,7 @@ * * SPDX-License-Identifier: GPL-2.0-or-later * - * References: 3GPP TS 24.301 V15.1.1 (2017-12) + * References: 3GPP TS 24.301 V15.2.0 (2018-03) */ #include "config.h" @@ -89,6 +89,7 @@ static int hf_nas_eps_emm_cs_lcs = -1; static int hf_nas_eps_emm_epc_lcs = -1; static int hf_nas_eps_emm_emc_bs = -1; static int hf_nas_eps_emm_ims_vops = -1; +static int hf_nas_eps_emm_n26ind = -1; static int hf_nas_eps_emm_restrict_dcnr = -1; static int hf_nas_eps_emm_restrict_ec = -1; static int hf_nas_eps_emm_epco = -1; @@ -177,6 +178,8 @@ static int hf_nas_eps_emm_up_ciot_cap = -1; static int hf_nas_eps_emm_cp_ciot_cap = -1; static int hf_nas_eps_emm_prose_relay_cap = -1; static int hf_nas_eps_emm_prose_dc_cap = -1; +static int hf_nas_eps_sgc_cap = -1; +static int hf_nas_eps_n1mode_cap = -1; static int hf_nas_eps_dcnr_cap = -1; static int hf_nas_eps_cp_backoff_cap = -1; static int hf_nas_eps_restrict_ec_cap = -1; @@ -787,7 +790,8 @@ static const value_string nas_emm_elem_strings[] = { { DE_EMM_UE_NET_CAP, "UE network capability" }, /* 9.9.3.34 UE network capability */ { DE_EMM_UE_RA_CAP_INF_UPD_NEED, "UE radio capability information update needed" },/* 9.9.3.35 UE radio capability information update needed */ { DE_EMM_UE_SEC_CAP, "UE security capability" }, /* 9.9.3.36 UE security capability */ - { DE_EMM_EMERG_NUM_LST, "Emergency Number List" }, /* 9.9.3.37 Emergency Number List */ + { DE_EMM_EMERG_NUM_LIST, "Emergency Number List" }, /* 9.9.3.37 Emergency Number List */ + { DE_EMM_EXT_EMERG_NUM_LIST, "Extended Emergency Number List" }, /* 9.9.3.37a Extended Emergency Number List */ { DE_EMM_CLI, "CLI" }, /* 9.9.3.38 CLI */ { DE_EMM_SS_CODE, "SS Code" }, /* 9.9.3.39 SS Code */ { DE_EMM_LCS_IND, "LCS indicator" }, /* 9.9.3.40 LCS indicator */ @@ -804,6 +808,7 @@ static const value_string nas_emm_elem_strings[] = { { DE_EMM_REPLAYED_NAS_MSG_CONT, "Replayed NAS message container" }, /* 9.9.3.51 Replayed NAS message container */ { DE_EMM_NETWORK_POLICY, "Network policy" }, /* 9.9.3.52 Network policy */ { DE_EMM_UE_ADD_SEC_CAP, "UE additional security capability" }, /* 9.9.3.53 UE additional security capability */ + { DE_EMM_UE_STATUS, "UE status" }, /* 9.9.3.54 UE status */ { 0, NULL } }; value_string_ext nas_emm_elem_strings_ext = VALUE_STRING_EXT_INIT(nas_emm_elem_strings); @@ -868,7 +873,8 @@ typedef enum DE_EMM_UE_NET_CAP, /* 9.9.3.34 UE network capability */ DE_EMM_UE_RA_CAP_INF_UPD_NEED, /* 9.9.3.35 UE radio capability information update needed */ DE_EMM_UE_SEC_CAP, /* 9.9.3.36 UE security capability */ - DE_EMM_EMERG_NUM_LST, /* 9.9.3.37 Emergency Number List */ + DE_EMM_EMERG_NUM_LIST, /* 9.9.3.37 Emergency Number List */ + DE_EMM_EXT_EMERG_NUM_LIST, /* 9.9.3.37a Extended Emergency Number List */ DE_EMM_CLI, /* 9.9.3.38 CLI */ DE_EMM_SS_CODE, /* 9.9.3.39 SS Code */ DE_EMM_LCS_IND, /* 9.9.3.40 LCS indicator */ @@ -885,6 +891,7 @@ typedef enum DE_EMM_REPLAYED_NAS_MSG_CONT, /* 9.9.3.51 Replayed NAS message container */ DE_EMM_NETWORK_POLICY, /* 9.9.3.52 Network policy */ DE_EMM_UE_ADD_SEC_CAP, /* 9.9.3.53 UE additional security capability */ + DE_EMM_UE_STATUS, /* 9.9.3.54 UE status */ DE_EMM_NONE /* NONE */ } nas_emm_elem_idx_t; @@ -926,7 +933,7 @@ de_emm_add_upd_res(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, static const value_string nas_eps_emm_pnb_ciot_vals[] = { { 0x0, "No additional information"}, { 0x1, "Control-plane CIoT EPS optimization"}, - { 0x2, "S1-U data transfer"}, + { 0x2, "User plane CIoT EPS optimization"}, { 0x3, "Reserved"}, { 0, NULL } }; @@ -1311,8 +1318,10 @@ de_emm_eps_net_feature_sup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _ proto_tree_add_bits_item(tree, hf_nas_eps_emm_ims_vops, tvb, bit_offset, 1, ENC_BIG_ENDIAN); bit_offset += 1; if (len >= 2) { - proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, bit_offset, 2, ENC_BIG_ENDIAN); - bit_offset += 2; + proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, bit_offset, 1, ENC_BIG_ENDIAN); + bit_offset += 1; + proto_tree_add_bits_item(tree, hf_nas_eps_emm_n26ind, tvb, bit_offset, 1, ENC_BIG_ENDIAN); + bit_offset += 1; proto_tree_add_bits_item(tree, hf_nas_eps_emm_restrict_dcnr, tvb, bit_offset, 1, ENC_BIG_ENDIAN); bit_offset += 1; proto_tree_add_bits_item(tree, hf_nas_eps_emm_restrict_ec, tvb, bit_offset, 1, ENC_BIG_ENDIAN); @@ -2005,6 +2014,8 @@ de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, }; static const int * oct9_flags[] = { + &hf_nas_eps_sgc_cap, + &hf_nas_eps_n1mode_cap, &hf_nas_eps_dcnr_cap, &hf_nas_eps_cp_backoff_cap, &hf_nas_eps_restrict_ec_cap, @@ -2066,9 +2077,9 @@ de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, return (len); /* Octet 9 - * 0 Spare 0 Spare 0 Spare DCNR CP backoff RestrictEC V2X PC5 multipleDRB + * 0 Spare SGC N1mode DCNR CP backoff RestrictEC V2X PC5 multipleDRB */ - proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, (curr_offset<<3), 3, ENC_BIG_ENDIAN); + proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, (curr_offset<<3), 1, ENC_BIG_ENDIAN); proto_tree_add_bitmask_list(tree, tvb, curr_offset, 1, oct9_flags, ENC_NA); curr_offset++; @@ -2223,6 +2234,21 @@ de_emm_ue_sec_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, */ /* + * 9.9.3.37a Extended Emergency Number List + */ +static guint16 +de_emm_ext_emerg_num_list(tvbuff_t *tvb _U_, proto_tree *tree _U_, packet_info *pinfo, + guint32 offset, guint len, + gchar *add_string _U_, int string_len _U_) +{ + guint32 curr_offset = offset; + + EXTRANEOUS_DATA_CHECK(len, 0, pinfo, &ei_nas_eps_extraneous_data); + + return len; +} + +/* * 9.9.3.38 CLI */ @@ -2237,7 +2263,7 @@ de_emm_ue_sec_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, */ static guint16 de_emm_ss_code(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, - guint32 offset, guint len _U_, + guint32 offset, guint len, gchar *add_string _U_, int string_len _U_) { guint32 curr_offset; @@ -2544,6 +2570,11 @@ de_emm_ue_add_sec_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, g } /* + * 9.9.3.54 UE status + * see packet-nas_5gs.c + */ + +/* * 9.9.4 EPS Session Management (ESM) information elements */ @@ -2694,7 +2725,15 @@ static const range_string nas_eps_qci_vals[] = { { 0x43, 0x44, "Spare"}, { 0x45, 0x45, "QCI 69"}, { 0x46, 0x46, "QCI 70"}, - { 0x47, 0x7F, "Spare"}, + { 0x47, 0x4A, "Spare"}, + { 0x4B, 0x4B, "QCI 75"}, + { 0x4C, 0x4E, "Spare"}, + { 0x4F, 0x4F, "QCI 79"}, + { 0x50, 0x50, "QCI 80"}, + { 0x51, 0x51, "Spare"}, + { 0x52, 0x52, "QCI 82"}, + { 0x53, 0x53, "QCI 83"}, + { 0x54, 0x7F, "Spare"}, { 0x80, 0xFE, "Operator-specific QCI"}, { 0xFF, 0xFF, "Reserved"}, { 0, 0, NULL } @@ -3715,6 +3754,7 @@ guint16 (*emm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g de_emm_ue_ra_cap_inf_upd_need, /* 9.9.3.35 UE radio capability information update needed */ de_emm_ue_sec_cap, /* 9.9.3.36 UE security capability */ NULL, /* 9.9.3.37 Emergency Number List (packet-gsm_a_dtap.c) */ + de_emm_ext_emerg_num_list, /* 9.9.3.37a Extended Emergency Number List */ NULL, /* 9.9.3.38 CLI */ de_emm_ss_code, /* 9.9.3.39 SS Code */ de_emm_lcs_ind, /* 9.9.3.40 LCS indicator */ @@ -3731,6 +3771,7 @@ guint16 (*emm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g de_emm_replayed_nas_msg_cont, /* 9.9.3.51 Replayed NAS message container */ de_emm_network_policy, /* 9.9.3.52 Network policy */ de_emm_ue_add_sec_cap, /* 9.9.3.53 UE additional security capability */ + NULL, /* 9.9.3.54 UE status */ NULL, /* NONE */ }; @@ -3927,6 +3968,10 @@ nas_emm_attach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 ELEM_OPT_TLV(0x6B, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3448 value"); /* C- Network policy Network policy 9.9.3.52 O TV 1 */ ELEM_OPT_TV_SHORT(0xC0, NAS_PDU_TYPE_EMM, DE_EMM_NETWORK_POLICY, NULL); + /* 6C T3447 value GPRS timer 3 9.9.3.16B O TLV 3 */ + ELEM_OPT_TLV(0x6C, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3447 value"); + /* 35 Extended emergency number list Extended emergency number list 9.9.3.37A O TLV FFS */ + ELEM_OPT_TLV(0x35, NAS_PDU_TYPE_EMM, DE_EMM_EXT_EMERG_NUM_LIST, NULL); EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_eps_extraneous_data); } @@ -4699,6 +4744,10 @@ nas_emm_trac_area_upd_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g ELEM_OPT_TLV(0x6B, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3448 value"); /* C- Network policy Network policy 9.9.3.52 O TV 1 */ ELEM_OPT_TV_SHORT(0xC0, NAS_PDU_TYPE_EMM, DE_EMM_NETWORK_POLICY, NULL); + /* 6C T3447 value GPRS timer 3 9.9.3.16B O TLV 3 */ + ELEM_OPT_TLV(0x6C, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3447 value"); + /* 35 Extended emergency number list Extended emergency number list 9.9.3.37A O TLV FFS */ + ELEM_OPT_TLV(0x35, NAS_PDU_TYPE_EMM, DE_EMM_EXT_EMERG_NUM_LIST, NULL); EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_eps_extraneous_data); } @@ -4817,6 +4866,8 @@ nas_emm_trac_area_upd_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g ELEM_OPT_TLV(0x6E, GSM_A_PDU_TYPE_GM, DE_EXT_DRX_PARAMS, NULL); /* 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); EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_eps_extraneous_data); } @@ -4991,6 +5042,8 @@ nas_esm_act_ded_eps_bearer_ctx_acc(tvbuff_t *tvb, proto_tree *tree, packet_info ELEM_OPT_TLV(0x33, NAS_PDU_TYPE_ESM, DE_ESM_NBIFOM_CONT, NULL); /* 7B Extended protocol configuration options Extended protocol configuration options 9.9.4.26 O TLV-E 4-65538 */ ELEM_OPT_TLV_E(0x7B, NAS_PDU_TYPE_ESM, DE_ESM_EXT_PCO, NULL); + /* 5C Extended EPS QoS Extended quality of service 9.9.4.30 O TLV 12 */ + ELEM_OPT_TLV(0x5C, NAS_PDU_TYPE_ESM, DE_ESM_EXT_EPS_QOS, NULL); EXTRANEOUS_DATA_CHECK(curr_len, 0, pinfo, &ei_nas_eps_extraneous_data); } @@ -6497,6 +6550,11 @@ proto_register_nas_eps(void) FT_BOOLEAN ,BASE_NONE, TFS(&tfs_restricted_not_restricted), 0x0, NULL, HFILL } }, + { &hf_nas_eps_emm_n26ind, + { "Interworking without N26","nas_eps.emm.n26ind", + FT_BOOLEAN ,BASE_NONE, TFS(&tfs_supported_not_supported), 0x0, + NULL, HFILL } + }, { &hf_nas_eps_emm_restrict_dcnr, { "Restriction on the use of dual connectivity with NR","nas_eps.emm.restrict_dcnr", FT_BOOLEAN ,BASE_NONE, TFS(&tfs_restricted_not_restricted), 0x0, @@ -6934,6 +6992,16 @@ proto_register_nas_eps(void) FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x01, NULL, HFILL } }, + { &hf_nas_eps_sgc_cap, + { "Service gap control","nas_eps.emm.sgc_cap", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x40, + NULL, HFILL } + }, + { &hf_nas_eps_n1mode_cap, + { "N1 mode","nas_eps.emm.n1mode_cap", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x20, + NULL, HFILL } + }, { &hf_nas_eps_dcnr_cap, { "Dual connectivity with NR","nas_eps.emm.dcnr_cap", FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x10, |