forked from osmocom/wireshark
3GPP: upgrade 2G/3G NAS dissector to v12.7.0 and NAS EPS dissector to v12.6.0
Change-Id: I1e5bc5d28cb956b333c302b1cb18335b59d096a8 Reviewed-on: https://code.wireshark.org/review/5621 Reviewed-by: Anders Broman <a.broman58@gmail.com> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
This commit is contained in:
parent
ab3c182f21
commit
70ca52c023
|
@ -453,7 +453,7 @@ static const value_string vamos_level_vals[] = {
|
|||
{ 0, "VAMOS not supported" },
|
||||
{ 1, "VAMOS I supported" },
|
||||
{ 2, "VAMOS II supported" },
|
||||
{ 3, "Unused. If received, the network shall interpret this as VAMOS II supported" },
|
||||
{ 3, "VAMOS III supported" },
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
|
@ -705,6 +705,10 @@ static int hf_gsm_a_selective_ciph_down_sacch = -1;
|
|||
static int hf_gsm_a_cs_to_ps_srvcc_geran_to_utra = -1;
|
||||
static int hf_gsm_a_cs_to_ps_srvcc_geran_to_eutra = -1;
|
||||
static int hf_gsm_a_geran_network_sharing_support = -1;
|
||||
static int hf_gsm_a_eutra_wb_rsrq_support = -1;
|
||||
static int hf_gsm_a_er_band_support = -1;
|
||||
static int hf_gsm_a_utra_mfbi_support = -1;
|
||||
static int hf_gsm_a_eutra_mfbi_support = -1;
|
||||
|
||||
static int hf_gsm_a_geo_loc_type_of_shape = -1;
|
||||
static int hf_gsm_a_geo_loc_sign_of_lat = -1;
|
||||
|
@ -2461,7 +2465,7 @@ de_ms_cm_2(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
|
|||
|
||||
/*
|
||||
* [3] 10.5.1.7 Mobile Station Classmark 3
|
||||
* 3GPP TS 24.008 version 11.7.0 Release 11
|
||||
* 3GPP TS 24.008 version 12.7.0 Release 12
|
||||
*/
|
||||
#define AVAILABLE_BITS_CHECK(n) \
|
||||
bits_left = ((len + offset) << 3) - bit_offset; \
|
||||
|
@ -3188,6 +3192,36 @@ de_ms_cm_3(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset,
|
|||
proto_tree_add_bits_item(tree, hf_gsm_a_geran_network_sharing_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||
bit_offset = bit_offset + 1;
|
||||
|
||||
/*
|
||||
* < E-UTRA Wideband RSRQ measurements support : bit(1)>
|
||||
*/
|
||||
AVAILABLE_BITS_CHECK(1);
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_eutra_wb_rsrq_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||
bit_offset = bit_offset + 1;
|
||||
|
||||
/*
|
||||
* Release 12 starts here
|
||||
*
|
||||
* < ER Band support : bit(1) > -- Release 12 starts here
|
||||
*/
|
||||
AVAILABLE_BITS_CHECK(1);
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_er_band_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||
bit_offset = bit_offset + 1;
|
||||
|
||||
/*
|
||||
* < UTRA Multiple Frequency Band Indicators support : bit(1)>
|
||||
*/
|
||||
AVAILABLE_BITS_CHECK(1);
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_utra_mfbi_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||
bit_offset = bit_offset + 1;
|
||||
|
||||
/*
|
||||
* < E-UTRA Multiple Frequency Band Indicators support : bit(1)>
|
||||
*/
|
||||
AVAILABLE_BITS_CHECK(1);
|
||||
proto_tree_add_bits_item(tree, hf_gsm_a_eutra_mfbi_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||
bit_offset = bit_offset + 1;
|
||||
|
||||
/*
|
||||
* Add spare bits until we reach an octet boundary
|
||||
*/
|
||||
|
@ -4304,7 +4338,27 @@ proto_register_gsm_a_common(void)
|
|||
NULL, HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_geran_network_sharing_support,
|
||||
{ "GERAN Network Sharing support", "gsm_a.classmark3.ggeran_network_sharing_support",
|
||||
{ "GERAN Network Sharing support", "gsm_a.classmark3.geran_network_sharing_support",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&true_false_vals), 0x00,
|
||||
NULL, HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_eutra_wb_rsrq_support,
|
||||
{ "E-UTRA Wideband RSRQ measurements support", "gsm_a.classmark3.eutra_wb_rsrq_support",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&true_false_vals), 0x00,
|
||||
NULL, HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_er_band_support,
|
||||
{ "ER Band support", "gsm_a.classmark3.er_band_support",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&true_false_vals), 0x00,
|
||||
NULL, HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_utra_mfbi_support,
|
||||
{ "UTRA Multiple Frequency Band Indicators support", "gsm_a.classmark3.utra_mfbi_support",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&true_false_vals), 0x00,
|
||||
NULL, HFILL}
|
||||
},
|
||||
{ &hf_gsm_a_eutra_mfbi_support,
|
||||
{ "E-UTRA Multiple Frequency Band Indicators support", "gsm_a.classmark3.eutra_mfbi_support",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&true_false_vals), 0x00,
|
||||
NULL, HFILL}
|
||||
},
|
||||
|
|
|
@ -1173,6 +1173,7 @@ typedef enum
|
|||
DE_REQ_TYPE, /* Request type */
|
||||
DE_SM_NOTIF_IND, /* Notification indicator */
|
||||
DE_SM_CONNECTIVITY_TYPE, /* Connectivity type */
|
||||
DE_SM_WLAN_OFFLOAD_ACCEPT, /* WLAN offload acceptability */
|
||||
/* GPRS Common Information Elements [8] 10.5.7 */
|
||||
DE_PDP_CONTEXT_STAT, /* [8] 10.5.7.1 PDP Context Status */
|
||||
DE_RAD_PRIO, /* [8] 10.5.7.2 Radio Priority */
|
||||
|
@ -1363,6 +1364,7 @@ typedef enum
|
|||
DE_EMM_NONCE, /* 9.9.3.25 Nonce */
|
||||
DE_EMM_PAGING_ID, /* 9.9.3.25A Paging identity */
|
||||
DE_EMM_P_TMSI_SIGN, /* 9.9.3.26 P-TMSI signature, See subclause 10.5.5.8 in 3GPP TS 24.008 [6]. */
|
||||
DE_EMM_EXT_CAUSE, /* 9.9.3.26A Extended EMM cause */
|
||||
DE_EMM_SERV_TYPE, /* 9.9.3.27 Service type */
|
||||
DE_EMM_SHORT_MAC, /* 9.9.3.28 Short MAC */
|
||||
DE_EMM_TZ, /* 9.9.3.29 Time zone, See subclause 10.5.3.8 in 3GPP TS 24.008 [6]. */
|
||||
|
|
|
@ -47,6 +47,12 @@
|
|||
* Stage 3
|
||||
* (3GPP TS 24.008 version 11.7.0 Release 11)
|
||||
*
|
||||
* Reference [12]
|
||||
* Mobile radio interface Layer 3 specification;
|
||||
* Core network protocols;
|
||||
* Stage 3
|
||||
* (3GPP TS 24.008 version 12.7.0 Release 12)
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
|
@ -213,6 +219,7 @@ static const value_string gsm_gm_elem_strings[] = {
|
|||
{ DE_REQ_TYPE, "Request type" },
|
||||
{ DE_SM_NOTIF_IND, "Notification indicator" },
|
||||
{ DE_SM_CONNECTIVITY_TYPE, "Connectivity type" },
|
||||
{ DE_SM_WLAN_OFFLOAD_ACCEPT, "WLAN offload acceptability" },
|
||||
/* GPRS Common Information Elements 10.5.7 */
|
||||
{ DE_PDP_CONTEXT_STAT, "PDP Context Status" },
|
||||
{ DE_RAD_PRIO, "Radio Priority" },
|
||||
|
@ -363,6 +370,7 @@ static int hf_gsm_a_sm_enh_nsapi = -1;
|
|||
static int hf_gsm_a_sm_req_type = -1;
|
||||
static int hf_gsm_a_sm_notif_ind = -1;
|
||||
static int hf_gsm_a_sm_connectivity_type = -1;
|
||||
static int hf_gsm_a_sm_wlan_offload_accept = -1;
|
||||
static int hf_gsm_a_gm_rac_ctrled_early_cm_sending = -1;
|
||||
static int hf_gsm_a_gm_rac_pseudo_sync = -1;
|
||||
static int hf_gsm_a_gm_rac_vgcs = -1;
|
||||
|
@ -423,6 +431,14 @@ static int hf_gsm_a_gm_rac_tighter_cap = -1;
|
|||
static int hf_gsm_a_gm_rac_fanr_cap = -1;
|
||||
static int hf_gsm_a_gm_rac_ipa_cap = -1;
|
||||
static int hf_gsm_a_gm_rac_geran_nw_sharing_support = -1;
|
||||
static int hf_gsm_a_gm_rac_eutra_wb_rsrq_support = -1;
|
||||
static int hf_gsm_a_gm_rac_utra_mfbi_support = -1;
|
||||
static int hf_gsm_a_gm_rac_eutra_mfbi_support = -1;
|
||||
static int hf_gsm_a_gm_rac_dlmc_non_contig_intra_band_recep = -1;
|
||||
static int hf_gsm_a_gm_rac_dlmc_inter_band_recep = -1;
|
||||
static int hf_gsm_a_gm_rac_dlmc_max_bandwidth = -1;
|
||||
static int hf_gsm_a_gm_rac_dlmc_max_nb_dl_ts = -1;
|
||||
static int hf_gsm_a_gm_rac_dlmc_max_nb_dl_carriers = -1;
|
||||
static int hf_gsm_a_sm_ti_flag = -1;
|
||||
static int hf_gsm_a_sm_ext = -1;
|
||||
|
||||
|
@ -1358,6 +1374,49 @@ static const value_string gsm_a_gm_alt_efta_multi_slot_class_vals[] = {
|
|||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const value_string gsm_a_gm_dlmc_non_contig_intra_band_recep_vals[] = {
|
||||
{ 0x00, "Not supported" },
|
||||
{ 0x01, "Supported in band E-GSM or GSM850" },
|
||||
{ 0x02, "Supported in band DCS1800 or PCS1900" },
|
||||
{ 0x03, "Supported in band E-GSM, or GSM850, or DCS1800 or PCS1900" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const true_false_string gsm_a_gm_dlmc_inter_band_recep_val = {
|
||||
"Supported in band combination (E-GSM, DCS1800), or band combination (GSM850, PCS1900)",
|
||||
"Not supported"
|
||||
};
|
||||
|
||||
static const value_string gsm_a_gm_dlmc_max_bandwidth_vals[] = {
|
||||
{ 0x00, "5 MHz" },
|
||||
{ 0x01, "10 MHz" },
|
||||
{ 0x02, "15 MHz" },
|
||||
{ 0x03, "20 MHz" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static void
|
||||
gsm_a_gm_dlmc_max_nb_dl_ts_fmt(gchar *s, guint32 v)
|
||||
{
|
||||
if (v < 0x3E)
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "%u TS supported (%u)",
|
||||
2*v + 6, v);
|
||||
else
|
||||
g_snprintf(s, ITEM_LABEL_LENGTH, "Reserved (%u)", v);
|
||||
}
|
||||
|
||||
static const value_string gsm_a_gm_dlmc_max_nb_dl_carriers_vals[] = {
|
||||
{ 0x00, "2 carriers supported" },
|
||||
{ 0x01, "4 carriers supported" },
|
||||
{ 0x02, "6 carriers supported" },
|
||||
{ 0x03, "8 carriers supported" },
|
||||
{ 0x04, "10 carriers supported" },
|
||||
{ 0x05, "12 carriers supported" },
|
||||
{ 0x06, "14 carriers supported" },
|
||||
{ 0x07, "16 carriers supported" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
guint16
|
||||
de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
|
@ -2944,6 +3003,135 @@ de_gmm_ms_radio_acc_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
|
|||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
|
||||
/*
|
||||
* E-UTRA Wideband RSRQ measurements support
|
||||
*/
|
||||
bits_needed = 1;
|
||||
GET_DATA;
|
||||
proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_eutra_wb_rsrq_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
|
||||
/*
|
||||
* Release 12
|
||||
*/
|
||||
|
||||
/*
|
||||
* UTRA Multiple Frequency Band Indicators support
|
||||
*/
|
||||
bits_needed = 1;
|
||||
GET_DATA;
|
||||
proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_utra_mfbi_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
|
||||
/*
|
||||
* E-UTRA Multiple Frequency Band Indicators support
|
||||
*/
|
||||
bits_needed = 1;
|
||||
GET_DATA;
|
||||
proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_eutra_mfbi_support, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
|
||||
/*
|
||||
* DLMC Capability
|
||||
*/
|
||||
bits_needed = 1;
|
||||
GET_DATA;
|
||||
if ((oct>>(32-bits_needed)) == 0)
|
||||
{
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
}
|
||||
else
|
||||
{
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
|
||||
bits_needed = 1;
|
||||
GET_DATA;
|
||||
if ((oct>>(32-bits_needed)) == 0)
|
||||
{
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
}
|
||||
else
|
||||
{
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
|
||||
/*
|
||||
* DLMC - Non-contiguous intra-band reception
|
||||
*/
|
||||
bits_needed = 2;
|
||||
GET_DATA;
|
||||
proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_dlmc_non_contig_intra_band_recep, tvb, bit_offset, 2, ENC_BIG_ENDIAN);
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
|
||||
/*
|
||||
* DLMC - Inter-band reception
|
||||
*/
|
||||
bits_needed = 1;
|
||||
GET_DATA;
|
||||
proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_dlmc_inter_band_recep, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
}
|
||||
|
||||
/*
|
||||
* DLMC - Maximum Bandwidth
|
||||
*/
|
||||
bits_needed = 2;
|
||||
GET_DATA;
|
||||
proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_dlmc_max_bandwidth, tvb, bit_offset, 2, ENC_BIG_ENDIAN);
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
|
||||
/*
|
||||
* DLMC - Maximum Number of Downlink Timeslots
|
||||
*/
|
||||
bits_needed = 6;
|
||||
GET_DATA;
|
||||
proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_dlmc_max_nb_dl_ts, tvb, bit_offset, 6, ENC_BIG_ENDIAN);
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
|
||||
/*
|
||||
* DLMC - Maximum Number of Downlink Carriers
|
||||
*/
|
||||
bits_needed = 3;
|
||||
GET_DATA;
|
||||
proto_tree_add_bits_item(tf_tree, hf_gsm_a_gm_rac_dlmc_max_nb_dl_carriers, tvb, bit_offset, 3, ENC_BIG_ENDIAN);
|
||||
bit_offset += bits_needed;
|
||||
curr_bits_length -= bits_needed;
|
||||
oct <<= bits_needed;
|
||||
bits_in_oct -= bits_needed;
|
||||
}
|
||||
|
||||
/*
|
||||
* we are too long ... so jump over it
|
||||
*/
|
||||
|
@ -3938,6 +4126,7 @@ static const range_string gsm_a_sm_pco_ms2net_prot_vals[] = {
|
|||
{ 0x000f, 0x000f, "IFOM-Support-Request" },
|
||||
{ 0x0010, 0x0010, "IPv4 Link MTU Request" },
|
||||
{ 0x0011, 0x0011, "MS support of Local address in TFT indicator" },
|
||||
{ 0x0012, 0x0012, "P-CSCF Re-selection support" },
|
||||
{ 0xff00, 0xffff, "Operator Specific Use" },
|
||||
{ 0, 0, NULL }
|
||||
};
|
||||
|
@ -3959,6 +4148,7 @@ static const range_string gsm_a_sm_pco_net2ms_prot_vals[] = {
|
|||
{ 0x000f, 0x000f, "IFOM-Support" },
|
||||
{ 0x0010, 0x0010, "IPv4 Link MTU" },
|
||||
{ 0x0011, 0x0011, "Network support of Local address in TFT indicator" },
|
||||
{ 0x0012, 0x0012, "Reserved" },
|
||||
{ 0xff00, 0xffff, "Operator Specific Use" },
|
||||
{ 0, 0, NULL }
|
||||
};
|
||||
|
@ -5479,15 +5669,28 @@ static const range_string gsm_a_sm_connectivity_type_vals[] = {
|
|||
static guint16
|
||||
de_sm_connectivity_type(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
|
||||
proto_tree_add_item(tree, hf_gsm_a_sm_connectivity_type, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tree, hf_gsm_a_sm_connectivity_type, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
return (len);
|
||||
}
|
||||
|
||||
/*
|
||||
* [12] 10.5.6.20 WLAN offload acceptability
|
||||
*/
|
||||
static const range_string gsm_a_sm_wlan_offload_accept_vals[] = {
|
||||
{ 0x0, 0x0, "Offloading the traffic of the PDN connection via a WLAN is not acceptable"},
|
||||
{ 0x1, 0x1, "Offloading the traffic of the PDN connection via a WLAN is acceptable"},
|
||||
{ 0x2, 0xF, "Offloading the traffic of the PDN connection via a WLAN is not acceptable"},
|
||||
{ 0, 0, NULL }
|
||||
};
|
||||
|
||||
static guint16
|
||||
de_sm_wlan_offload_accept(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
proto_tree_add_item(tree, hf_gsm_a_sm_wlan_offload_accept, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
return (len);
|
||||
}
|
||||
|
||||
guint16 (*gm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_, guint32 offset, guint len, gchar *add_string, int string_len) = {
|
||||
/* GPRS Mobility Management Information Elements 10.5.5 */
|
||||
|
@ -5547,6 +5750,7 @@ guint16 (*gm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_
|
|||
de_sm_req_type, /* Request type */
|
||||
de_sm_notif_ind, /* Notification indicator */
|
||||
de_sm_connectivity_type, /* Connectivity type */
|
||||
de_sm_wlan_offload_accept, /* WLAN offload acceptability */
|
||||
/* GPRS Common Information Elements 10.5.7 */
|
||||
de_gc_context_stat, /* PDP Context Status */
|
||||
de_gc_radio_prio, /* Radio Priority */
|
||||
|
@ -5623,6 +5827,10 @@ dtap_gmm_attach_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
|
|||
|
||||
ELEM_OPT_TLV(0x10, GSM_A_PDU_TYPE_GM, DE_NET_RES_ID_CONT, " - TMSI based NRI container");
|
||||
|
||||
ELEM_OPT_TLV(0x6A, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3324 value");
|
||||
|
||||
ELEM_OPT_TLV(0x39, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3312 extended value");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
|
||||
}
|
||||
|
||||
|
@ -5683,6 +5891,8 @@ dtap_gmm_attach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
|
|||
|
||||
ELEM_OPT_TLV(0x66, GSM_A_PDU_TYPE_GM, DE_ADD_NET_FEAT_SUP, NULL);
|
||||
|
||||
ELEM_OPT_TLV(0x6A, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3324 value");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
|
||||
}
|
||||
|
||||
|
@ -6059,6 +6269,10 @@ dtap_gmm_rau_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 of
|
|||
|
||||
ELEM_OPT_TLV(0x10, GSM_A_PDU_TYPE_GM, DE_NET_RES_ID_CONT, " - TMSI based NRI container");
|
||||
|
||||
ELEM_OPT_TLV(0x6A, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3324 value");
|
||||
|
||||
ELEM_OPT_TLV(0x39, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3312 extended value");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
|
||||
}
|
||||
|
||||
|
@ -6119,6 +6333,8 @@ dtap_gmm_rau_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 of
|
|||
|
||||
ELEM_OPT_TLV(0x66, GSM_A_PDU_TYPE_GM, DE_ADD_NET_FEAT_SUP, NULL);
|
||||
|
||||
ELEM_OPT_TLV(0x6A, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3324 value");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
|
||||
}
|
||||
|
||||
|
@ -6377,6 +6593,8 @@ dtap_sm_act_pdp_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
|
|||
|
||||
ELEM_OPT_TV_SHORT(0xB0 , GSM_A_PDU_TYPE_GM, DE_SM_CONNECTIVITY_TYPE, NULL);
|
||||
|
||||
ELEM_OPT_TV_SHORT(0xC0 , GSM_A_PDU_TYPE_GM, DE_SM_WLAN_OFFLOAD_ACCEPT, " - WLAN offload indication");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
|
||||
}
|
||||
|
||||
|
@ -6598,6 +6816,8 @@ dtap_sm_mod_pdp_req_net(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, gui
|
|||
|
||||
ELEM_OPT_TLV( 0x36, GSM_A_PDU_TYPE_GM, DE_TRAFFIC_FLOW_TEMPLATE, NULL);
|
||||
|
||||
ELEM_OPT_TV_SHORT(0xC0 , GSM_A_PDU_TYPE_GM, DE_SM_WLAN_OFFLOAD_ACCEPT, " - WLAN offload indication");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK_EXPERT(curr_len, 0, pinfo, &ei_gsm_a_gm_extraneous_data);
|
||||
}
|
||||
|
||||
|
@ -7854,15 +8074,20 @@ proto_register_gsm_a_gm(void)
|
|||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_sm_notif_ind,
|
||||
{ "Notification indicator value", "gsm_a.gm.sm.notif_ind",
|
||||
{ "Notification indicator", "gsm_a.gm.sm.notif_ind",
|
||||
FT_UINT8, BASE_DEC, VALS(gsm_a_sm_notif_ind_vals), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_sm_connectivity_type,
|
||||
{ "Connectivity type value", "gsm_a.gm.sm.connectivity_type",
|
||||
{ "Connectivity type", "gsm_a.gm.sm.connectivity_type",
|
||||
FT_UINT8, BASE_DEC|BASE_RANGE_STRING, RVALS(gsm_a_sm_connectivity_type_vals), 0x0F,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_sm_wlan_offload_accept,
|
||||
{ "WLAN offload acceptability", "gsm_a.gm.sm.wlan_offload_accept",
|
||||
FT_UINT8, BASE_DEC|BASE_RANGE_STRING, RVALS(gsm_a_sm_wlan_offload_accept_vals), 0x0F,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_gm_rac_ctrled_early_cm_sending,
|
||||
{ "Controlled early Classmark Sending", "gsm_a.gm.gmm.rac.ctrled_early_cm_sending",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&tfs_implemented_not_implemented), 0x0,
|
||||
|
@ -8163,6 +8388,46 @@ proto_register_gsm_a_gm(void)
|
|||
FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_gm_rac_eutra_wb_rsrq_support,
|
||||
{ "E-UTRA Wideband RSRQ measurements support", "gsm_a.gm.gmm.rac.eutra_wb_rsrq_support",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_gm_rac_utra_mfbi_support,
|
||||
{ "UTRA Multiple Frequency Band Indicators support", "gsm_a.gm.gmm.rac.utra_mfbi_support",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_gm_rac_eutra_mfbi_support,
|
||||
{ "E-UTRA Multiple Frequency Band Indicators support", "gsm_a.gm.gmm.rac.eutra_mfbi_support",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_gm_rac_dlmc_non_contig_intra_band_recep,
|
||||
{ "DLMC - Non-contiguous intra-band reception", "gsm_a.gm.gmm.rac.dlmc.non_contig_intra_band_recep",
|
||||
FT_UINT8, BASE_DEC, VALS(gsm_a_gm_dlmc_non_contig_intra_band_recep_vals), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_gm_rac_dlmc_inter_band_recep,
|
||||
{ "DLMC - Inter-band reception", "gsm_a.gm.gmm.rac.dlmc.inter_band_recep",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&gsm_a_gm_dlmc_inter_band_recep_val), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_gm_rac_dlmc_max_bandwidth,
|
||||
{ "DLMC - Maximum Bandwidth", "gsm_a.gm.gmm.rac.dlmc.max_bandwidth",
|
||||
FT_UINT8, BASE_DEC, VALS(gsm_a_gm_dlmc_max_bandwidth_vals), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_gm_rac_dlmc_max_nb_dl_ts,
|
||||
{ "DLMC - Maximum Number of Downlink Timeslots", "gsm_a.gm.gmm.rac.dlmc.max_nb_dl_ts",
|
||||
FT_UINT8, BASE_CUSTOM, &gsm_a_gm_dlmc_max_nb_dl_ts_fmt, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_gm_rac_dlmc_max_nb_dl_carriers,
|
||||
{ "DLMC - Maximum Number of Downlink Carriers", "gsm_a.gm.gmm.rac.dlmc.max_nb_dl_carriers",
|
||||
FT_UINT8, BASE_DEC, VALS(gsm_a_gm_dlmc_max_nb_dl_carriers_vals), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_gsm_a_sm_ti_flag,
|
||||
{ "TI Flag", "gsm_a.gm.sm.ti_flag",
|
||||
FT_BOOLEAN, 8, TFS(&gsm_a_sm_ti_flag_vals), 0x80,
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* References: 3GPP TS 24.301 V11.5.0 (2012-12)
|
||||
* References: 3GPP TS 24.301 V12.6.0 (2014-09)
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
@ -83,6 +83,7 @@ static int hf_nas_eps_emm_dl_nas_cnt = -1;
|
|||
static int hf_nas_eps_emm_nonce_mme = -1;
|
||||
static int hf_nas_eps_emm_nonce = -1;
|
||||
static int hf_nas_eps_emm_paging_id = -1;
|
||||
static int hf_nas_eps_emm_ext_emm_cause = -1;
|
||||
static int hf_nas_eps_emm_eps_att_type = -1;
|
||||
static int hf_nas_eps_emm_esr_ps = -1;
|
||||
static int hf_nas_eps_emm_cs_lcs = -1;
|
||||
|
@ -152,12 +153,15 @@ static int hf_nas_eps_emm_gea4 = -1;
|
|||
static int hf_nas_eps_emm_gea5 = -1;
|
||||
static int hf_nas_eps_emm_gea6 = -1;
|
||||
static int hf_nas_eps_emm_gea7 = -1;
|
||||
static int hf_nas_eps_emm_prose_dd_cap = -1;
|
||||
static int hf_nas_eps_emm_prose_cap = -1;
|
||||
static int hf_nas_eps_emm_h245_ash_cap = -1;
|
||||
static int hf_nas_eps_emm_acc_csfb_cap = -1;
|
||||
static int hf_nas_eps_emm_lpp_cap = -1;
|
||||
static int hf_nas_eps_emm_lcs_cap = -1;
|
||||
static int hf_nas_eps_emm_1xsrvcc_cap = -1;
|
||||
static int hf_nas_eps_emm_nf_cap = -1;
|
||||
static int hf_nas_eps_emm_prose_dc_cap = -1;
|
||||
static int hf_nas_eps_emm_ue_ra_cap_inf_upd_need_flg = -1;
|
||||
static int hf_nas_eps_emm_ss_code = -1;
|
||||
static int hf_nas_eps_emm_lcs_ind = -1;
|
||||
|
@ -636,6 +640,7 @@ static const value_string nas_emm_elem_strings[] = {
|
|||
{ DE_EMM_NONCE, "Nonce" }, /* 9.9.3.25 Nonce */
|
||||
{ DE_EMM_PAGING_ID, "Paging identity" }, /* 9.9.3.25A Paging identity */
|
||||
{ DE_EMM_P_TMSI_SIGN, "P-TMSI signature" }, /* 9.9.3.26 P-TMSI signature, See subclause 10.5.5.8 in 3GPP TS 24.008 [6]. */
|
||||
{ DE_EMM_EXT_CAUSE, " Extended EMM cause" }, /* 9.9.3.26A Extended EMM cause */
|
||||
{ DE_EMM_SERV_TYPE, "Service type" }, /* 9.9.3.27 Service type ,See subclause 10.5.5.15 in 3GPP TS 24.008 [6]. */
|
||||
{ DE_EMM_SHORT_MAC, "Short MAC" }, /* 9.9.3.28 Short MAC */
|
||||
{ DE_EMM_TZ, "Time zone" }, /* 9.9.3.29 Time zone, See subclause 10.5.3.8 in 3GPP TS 24.008 [6]. */
|
||||
|
@ -707,6 +712,7 @@ typedef enum
|
|||
DE_EMM_NONCE, /* 9.9.3.25 Nonce */
|
||||
DE_EMM_PAGING_ID, /* 9.9.3.25A Paging identity */
|
||||
DE_EMM_P_TMSI_SIGN, /* 9.9.3.26 P-TMSI signature, See subclause 10.5.5.8 in 3GPP TS 24.008 [6]. */
|
||||
DE_EMM_EXT_CAUSE, /* 9.9.3.26A Extended EMM cause */
|
||||
DE_EMM_SERV_TYPE, /* 9.9.3.27 Service type */
|
||||
DE_EMM_SHORT_MAC, /* 9.9.3.28 Short MAC */
|
||||
DE_EMM_TZ, /* 9.9.3.29 Time zone, See subclause 10.5.3.8 in 3GPP TS 24.008 [6]. */
|
||||
|
@ -1474,7 +1480,34 @@ de_emm_paging_id(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
|
|||
* 9.9.3.26 P-TMSI signature
|
||||
* See subclause 10.5.5.8 in 3GPP TS 24.008 [6].
|
||||
*/
|
||||
/*
|
||||
|
||||
/*
|
||||
* 9.9.3.26A Extended EMM cause
|
||||
*/
|
||||
static const true_false_string nas_eps_ext_emm_cause = {
|
||||
"E-UTRAN not allowed",
|
||||
"E-UTRAN allowed"
|
||||
};
|
||||
|
||||
static guint16
|
||||
de_emm_ext_cause(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
|
||||
guint32 offset, guint len _U_,
|
||||
gchar *add_string _U_, int string_len _U_)
|
||||
{
|
||||
guint32 curr_offset, bit_offset;
|
||||
|
||||
curr_offset = offset;
|
||||
bit_offset = (curr_offset<<3)+4;
|
||||
|
||||
proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, bit_offset, 3, ENC_BIG_ENDIAN);
|
||||
bit_offset += 3;
|
||||
proto_tree_add_bits_item(tree, hf_nas_eps_emm_ext_emm_cause, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
|
||||
curr_offset++;
|
||||
|
||||
return (curr_offset - offset);
|
||||
}
|
||||
|
||||
/*
|
||||
* 9.9.3.27 Service type
|
||||
*/
|
||||
static const range_string nas_eps_service_type_vals[] = {
|
||||
|
@ -1573,7 +1606,7 @@ de_emm_trac_area_id_lst(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo,
|
|||
|
||||
curr_offset++;
|
||||
if (tol>2) {
|
||||
proto_tree_add_text(tree, tvb, curr_offset, len-(curr_offset-offset) , "Unknown type of list ( Not in 3GPP TS 24.301 version 8.1.0 Release 8 )");
|
||||
proto_tree_add_text(tree, tvb, curr_offset, len-(curr_offset-offset) , "Unknown type of list");
|
||||
return len;
|
||||
}
|
||||
|
||||
|
@ -1647,6 +1680,16 @@ static const true_false_string nas_eps_emm_ucs2_supp_flg_value = {
|
|||
"The UE has no preference between the use of the default alphabet and the use of UCS2",
|
||||
"The UE has a preference for the default alphabet"
|
||||
};
|
||||
/* ProSe-dd capability (octet 7, bit 8) */
|
||||
static const true_false_string nas_eps_emm_prose_dd_cap_flg = {
|
||||
"ProSe direct discovery supported",
|
||||
"ProSe direct discovery not supported"
|
||||
};
|
||||
/* ProSe capability (octet 7, bit 7) */
|
||||
static const true_false_string nas_eps_emm_prose_cap_flg = {
|
||||
"ProSe supported",
|
||||
"ProSe not supported"
|
||||
};
|
||||
/* H.245-ASH capability (octet 7, bit 6) */
|
||||
static const true_false_string nas_eps_emm_h245_ash_cap_flg = {
|
||||
"H.245 after SRVCC handover capability supported",
|
||||
|
@ -1677,6 +1720,11 @@ static const true_false_string nas_eps_emm_nf_cap_flg = {
|
|||
"Notification procedure supported",
|
||||
"Notification procedure not supported"
|
||||
};
|
||||
/* ProSe-dc capability (octet 8, bit 1) */
|
||||
static const true_false_string nas_eps_emm_prose_dc_cap_flg = {
|
||||
"ProSe direct communication supported",
|
||||
"ProSe direct communication not supported"
|
||||
};
|
||||
|
||||
guint16
|
||||
de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
|
||||
|
@ -1781,8 +1829,10 @@ de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
|
|||
if ((curr_offset - offset) >= len)
|
||||
return (len);
|
||||
|
||||
/* Bits 8 to 7 of octet 7 are spare and shall be coded as zero. */
|
||||
proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, (curr_offset<<3), 2, ENC_BIG_ENDIAN);
|
||||
/* ProSe-dd capability (octet 7, bit 8) */
|
||||
proto_tree_add_item(tree, hf_nas_eps_emm_prose_dd_cap, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
|
||||
/* ProSe capability (octet 7, bit 7) */
|
||||
proto_tree_add_item(tree, hf_nas_eps_emm_prose_cap, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
|
||||
/* H.245-ASH capability (octet 7, bit 6) */
|
||||
proto_tree_add_item(tree, hf_nas_eps_emm_h245_ash_cap, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
|
||||
/* ACC-CSFB capability (octet 7, bit 5) */
|
||||
|
@ -1797,6 +1847,15 @@ de_emm_ue_net_cap(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo _U_,
|
|||
proto_tree_add_item(tree, hf_nas_eps_emm_nf_cap, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
|
||||
curr_offset++;
|
||||
|
||||
if ((curr_offset - offset) >= len)
|
||||
return (len);
|
||||
|
||||
/* Bits 8 to 2 of octet 8 are spare and shall be coded as zero. */
|
||||
proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, (curr_offset<<3), 7, ENC_BIG_ENDIAN);
|
||||
/* ProSe-dc capability (octet 8, bit 1) */
|
||||
proto_tree_add_item(tree, hf_nas_eps_emm_prose_dc_cap, tvb, curr_offset, 1, ENC_BIG_ENDIAN);
|
||||
curr_offset++;
|
||||
|
||||
while ((curr_offset - offset) < len) {
|
||||
proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, (curr_offset<<3), 8, ENC_BIG_ENDIAN);
|
||||
curr_offset++;
|
||||
|
@ -2273,7 +2332,13 @@ static const range_string nas_eps_qci_vals[] = {
|
|||
{ 0x07, 0x07, "QCI 7"},
|
||||
{ 0x08, 0x08, "QCI 8"},
|
||||
{ 0x09, 0x09, "QCI 9"},
|
||||
{ 0x0A, 0x7F, "Reserved"},
|
||||
{ 0x0A, 0x40, "Reserved"},
|
||||
{ 0x41, 0x41, "QCI 65"},
|
||||
{ 0x42, 0x42, "QCI 66"},
|
||||
{ 0x43, 0x44, "Reserved"},
|
||||
{ 0x45, 0x45, "QCI 69"},
|
||||
{ 0x46, 0x46, "QCI 70"},
|
||||
{ 0x47, 0x7F, "Reserved"},
|
||||
{ 0x80, 0xFE, "Operator-specific QCI"},
|
||||
{ 0xFF, 0xFF, "Reserved"},
|
||||
{ 0, 0, NULL }
|
||||
|
@ -2700,6 +2765,11 @@ static const value_string nas_eps_esm_request_type_values[] = {
|
|||
* subclause 10.5.6.7.
|
||||
* The coding of the TI flag, the TI value and the EXT bit is defined in 3GPP TS 24.007[20].
|
||||
*/
|
||||
/*
|
||||
* 9.9.4.18 WLAN offload acceptability
|
||||
* See subclause 10.5.6.20 in 3GPP TS 24.008
|
||||
* packet-gsm_a_gm.c
|
||||
*/
|
||||
|
||||
guint16 (*emm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len) = {
|
||||
/* 9.9.3 EPS Mobility Management (EMM) information elements */
|
||||
|
@ -2736,6 +2806,7 @@ guint16 (*emm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
|
|||
de_emm_nonce, /* 9.9.3.25 Nonce */
|
||||
de_emm_paging_id, /* 9.9.3.25A Paging identity */
|
||||
NULL, /* 9.9.3.26 P-TMSI signature, See subclause 10.5.5.8 in 3GPP TS 24.008 [6]. (packet-gsm_a_gm.c)*/
|
||||
de_emm_ext_cause, /* 9.9.3.26A Extended EMM cause */
|
||||
NULL, /* 9.9.3.27 Service type */
|
||||
de_emm_nas_short_mac, /* 9.9.3.28 Short MAC */
|
||||
NULL, /* 9.9.3.29 Time zone, See subclause 10.5.3.8 in 3GPP TS 24.008 [6]. (packet-gsm_a_dtap.c)*/
|
||||
|
@ -2780,6 +2851,7 @@ typedef enum
|
|||
DE_ESM_TRAF_FLOW_AGR_DESC, /* 9.9.4.15 Traffic flow aggregate description */
|
||||
DE_ESM_TRAF_FLOW_TEMPL, /* 9.9.4.16 Traffic flow template */
|
||||
DE_ESM_TID, /* 9.9.4.17 Transaction identifier */
|
||||
DE_ESM_WLAN_OFFLOAD_ACCEPT, /* 9.9.4.18 WLAN offload acceptability */
|
||||
DE_ESM_NONE /* NONE */
|
||||
}
|
||||
nas_esm_elem_idx_t;
|
||||
|
@ -2804,6 +2876,7 @@ static const value_string nas_esm_elem_strings[] = {
|
|||
{ DE_ESM_TRAF_FLOW_AGR_DESC, "Traffic flow aggregate description" },/* 9.9.4.15 Traffic flow aggregate description */
|
||||
{ DE_ESM_TRAF_FLOW_TEMPL, "Traffic flow template" }, /* 9.9.4.16 Traffic flow template */
|
||||
{ DE_ESM_TID, "Transaction identifier" }, /* 9.9.4.17 Transaction identifier */
|
||||
{ DE_ESM_WLAN_OFFLOAD_ACCEPT, "WLAN offload acceptability" }, /* 9.9.4.18 WLAN offload acceptability */
|
||||
{ 0, NULL }
|
||||
};
|
||||
value_string_ext nas_esm_elem_strings_ext = VALUE_STRING_EXT_INIT(nas_esm_elem_strings);
|
||||
|
@ -2831,6 +2904,7 @@ guint16 (*esm_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
|
|||
NULL, /* 9.9.4.15 Traffic flow aggregate description */
|
||||
NULL, /* 9.9.4.16 Traffic flow template */
|
||||
NULL, /* 9.9.4.17 Transaction identifier */
|
||||
NULL, /* 9.9.4.18 WLAN offload acceptability */
|
||||
NULL, /* NONE */
|
||||
};
|
||||
|
||||
|
@ -2890,6 +2964,8 @@ nas_emm_attach_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
|
|||
ELEM_OPT_TV_SHORT( 0xF0 , NAS_PDU_TYPE_EMM, DE_EMM_ADD_UPD_RES, NULL );
|
||||
/* 5E T3412 extended value GPRS timer 3 9.9.3.16B O TLV 3 */
|
||||
ELEM_OPT_TLV(0x5E, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3412 extended value");
|
||||
/* 6A T3324 value GPRS timer 2 9.9.3.16A O TLV 3 */
|
||||
ELEM_OPT_TLV(0x6A, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3324");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
}
|
||||
|
@ -2934,6 +3010,8 @@ nas_emm_attach_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
|
|||
ELEM_OPT_TLV(0x5F, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3346 value");
|
||||
/* 16 T3402 value GPRS timer 2 9.9.3.16A O TLV 3 */
|
||||
ELEM_OPT_TLV(0x16, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3402 value");
|
||||
/* A- Extended EMM cause Extended EMM cause 9.9.3.26A O TV 1 */
|
||||
ELEM_OPT_TV_SHORT( 0xA0, NAS_PDU_TYPE_EMM, DE_EMM_EXT_CAUSE, NULL );
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
|
||||
|
@ -3002,10 +3080,14 @@ nas_emm_attach_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32
|
|||
ELEM_OPT_TV_SHORT(0xD0 , GSM_A_PDU_TYPE_GM, DE_DEVICE_PROPERTIES, NULL);
|
||||
/* E- Old GUTI type GUTI type 9.9.3.45 O TV 1 */
|
||||
ELEM_OPT_TV_SHORT(0xE0 , NAS_PDU_TYPE_EMM, DE_EMM_GUTI_TYPE, " - Old GUTI type");
|
||||
/* C- MS network feature support MS network feature support 9.9.3.20A 0 TV 1 */
|
||||
/* C- MS network feature support MS network feature support 9.9.3.20A O TV 1 */
|
||||
ELEM_OPT_TV_SHORT(0xC0 , GSM_A_PDU_TYPE_COMMON, DE_MS_NET_FEAT_SUP, NULL);
|
||||
/* 10 TMSI based NRI container Network resource identifier container 9.9.3.24A 0 TLV 4 */
|
||||
/* 10 TMSI based NRI container Network resource identifier container 9.9.3.24A O TLV 4 */
|
||||
ELEM_OPT_TLV(0x10, GSM_A_PDU_TYPE_GM, DE_NET_RES_ID_CONT, " - TMSI based NRI container");
|
||||
/* 6A T3324 value GPRS timer 2 9.9.3.16A O TLV 3 */
|
||||
ELEM_OPT_TLV(0x6A, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3324 value");
|
||||
/* 5E T3412 extended value GPRS timer 3 9.9.3.16B O TLV 3 */
|
||||
ELEM_OPT_TLV(0x5E, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3412 extended value");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
}
|
||||
|
@ -3640,6 +3722,8 @@ nas_emm_trac_area_upd_acc(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
|
|||
ELEM_OPT_TV_SHORT( 0xF0 , NAS_PDU_TYPE_EMM, DE_EMM_ADD_UPD_RES, NULL );
|
||||
/* 5E T3412 extended value GPRS timer 3 9.9.3.16B O TLV 3 */
|
||||
ELEM_OPT_TLV(0x5E, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3412 extended value");
|
||||
/* 6A T3324 value GPRS timer 2 9.9.3.16A O TLV 3 */
|
||||
ELEM_OPT_TLV(0x6A, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3324");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
}
|
||||
|
@ -3664,6 +3748,8 @@ nas_emm_trac_area_upd_rej(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
|
|||
ELEM_MAND_V(NAS_PDU_TYPE_EMM, DE_EMM_CAUSE, NULL);
|
||||
/* 5F T3346 value GPRS timer 2 9.9.3.16A O TLV 3 */
|
||||
ELEM_OPT_TLV(0x5F, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3346 value");
|
||||
/* A- Extended EMM cause Extended EMM cause 9.9.3.26A O TV 1 */
|
||||
ELEM_OPT_TV_SHORT( 0xA0, NAS_PDU_TYPE_EMM, DE_EMM_EXT_CAUSE, NULL );
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
}
|
||||
|
@ -3717,15 +3803,15 @@ nas_emm_trac_area_upd_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
|
|||
/* 5C DRX parameter DRX parameter 9.9.3.8 O TV 3 */
|
||||
ELEM_OPT_TV(0x5c, GSM_A_PDU_TYPE_GM, DE_DRX_PARAM, NULL );
|
||||
/* A- UE radio capability information update needed UE radio capability information update needed 9.9.3.35 O TV 1 */
|
||||
ELEM_OPT_TV_SHORT( 0xA0 , NAS_PDU_TYPE_EMM, DE_EMM_UE_RA_CAP_INF_UPD_NEED , NULL );
|
||||
ELEM_OPT_TV_SHORT( 0xA0, NAS_PDU_TYPE_EMM, DE_EMM_UE_RA_CAP_INF_UPD_NEED, NULL );
|
||||
/* 57 EPS bearer context status EPS bearer context status 9.9.2.1 O TLV 4 */
|
||||
ELEM_OPT_TLV(0x57, NAS_PDU_TYPE_COMMON, DE_EPS_CMN_EPS_BE_CTX_STATUS, NULL);
|
||||
/* 31 MS network capability MS network capability 9.9.3.20 O TLV 4-10 */
|
||||
ELEM_OPT_TLV( 0x31 , GSM_A_PDU_TYPE_GM, DE_MS_NET_CAP , NULL );
|
||||
ELEM_OPT_TLV( 0x31, GSM_A_PDU_TYPE_GM, DE_MS_NET_CAP, NULL );
|
||||
/* 13 Old location area identification Location area identification 9.9.2.2 O TV 6 */
|
||||
ELEM_OPT_TV(0x13, NAS_PDU_TYPE_COMMON, DE_EPS_CMN_LOC_AREA_ID, " - Old location area identification");
|
||||
/* 9- TMSI status TMSI status 9.9.3.31 O TV 1 */
|
||||
ELEM_OPT_TV_SHORT( 0x90 , GSM_A_PDU_TYPE_GM, DE_TMSI_STAT , NULL );
|
||||
ELEM_OPT_TV_SHORT( 0x90, GSM_A_PDU_TYPE_GM, DE_TMSI_STAT, NULL );
|
||||
/* 11 Mobile station classmark 2 Mobile station classmark 2 9.9.2.5 O TLV 5 */
|
||||
ELEM_OPT_TLV( 0x11, NAS_PDU_TYPE_COMMON, DE_EPS_MS_CM_2 , NULL );
|
||||
/* 20 Mobile station classmark 3 Mobile station classmark 3 9.9.2.5 O TLV 2-34 */
|
||||
|
@ -3733,17 +3819,21 @@ nas_emm_trac_area_upd_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, g
|
|||
/* 40 Supported Codecs Supported Codec List 9.9.2.10 O TLV 5-n */
|
||||
ELEM_OPT_TLV(0x40, GSM_A_PDU_TYPE_DTAP, DE_SUP_CODEC_LIST, " - Supported Codecs");
|
||||
/* F- Additional update type Additional update type 9.9.3.0B O TV 1 */
|
||||
ELEM_OPT_TV_SHORT( 0xF0 , NAS_PDU_TYPE_EMM, DE_EMM_ADD_UPD_TYPE, NULL );
|
||||
ELEM_OPT_TV_SHORT( 0xF0, NAS_PDU_TYPE_EMM, DE_EMM_ADD_UPD_TYPE, NULL );
|
||||
/* 5D Voice domain preference and UE's usage setting Voice domain preference and UE's usage setting 9.9.3.44 O TLV 3 */
|
||||
ELEM_OPT_TLV(0x5D, GSM_A_PDU_TYPE_GM, DE_VOICE_DOMAIN_PREF, NULL);
|
||||
/* E- Old GUTI type GUTI type 9.9.3.45 O TV 1 */
|
||||
ELEM_OPT_TV_SHORT(0xE0 , NAS_PDU_TYPE_EMM, DE_EMM_GUTI_TYPE, " - Old GUTI type");
|
||||
ELEM_OPT_TV_SHORT(0xE0, NAS_PDU_TYPE_EMM, DE_EMM_GUTI_TYPE, " - Old GUTI type");
|
||||
/* D- Device properties Device properties 9.9.2.0A O TV 1 */
|
||||
ELEM_OPT_TV_SHORT(0xD0 , GSM_A_PDU_TYPE_GM, DE_DEVICE_PROPERTIES, NULL);
|
||||
ELEM_OPT_TV_SHORT(0xD0, GSM_A_PDU_TYPE_GM, DE_DEVICE_PROPERTIES, NULL);
|
||||
/* C- MS network feature support MS network feature support 9.9.3.20A 0 TV 1 */
|
||||
ELEM_OPT_TV_SHORT(0xC0 , GSM_A_PDU_TYPE_COMMON, DE_MS_NET_FEAT_SUP, NULL);
|
||||
ELEM_OPT_TV_SHORT(0xC0, GSM_A_PDU_TYPE_COMMON, DE_MS_NET_FEAT_SUP, NULL);
|
||||
/* 10 TMSI based NRI container Network resource identifier container 9.9.3.24A 0 TLV 4 */
|
||||
ELEM_OPT_TLV(0x10, GSM_A_PDU_TYPE_GM, DE_NET_RES_ID_CONT, " - TMSI based NRI container");
|
||||
/* 6A T3324 value GPRS timer 2 9.9.3.16A O TLV 3 */
|
||||
ELEM_OPT_TLV(0x6A, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_2, " - T3324 value");
|
||||
/* 5E T3412 extended value GPRS timer 3 9.9.3.16B O TLV 3 */
|
||||
ELEM_OPT_TLV(0x5E, GSM_A_PDU_TYPE_GM, DE_GPRS_TIMER_3, " - T3412 extended value");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
}
|
||||
|
@ -4010,8 +4100,10 @@ nas_esm_act_def_eps_bearer_ctx_req(tvbuff_t *tvb, proto_tree *tree, packet_info
|
|||
ELEM_OPT_TV( 0x58 , NAS_PDU_TYPE_ESM, DE_ESM_CAUSE , NULL );
|
||||
/* 27 Protocol configuration options Protocol configuration options 9.9.4.11 O TLV 3-253 */
|
||||
ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL );
|
||||
/* B- Connectivity type Connectivity type 9.9.4.2A 0 TV 1 */
|
||||
/* B- Connectivity type Connectivity type 9.9.4.2A O TV 1 */
|
||||
ELEM_OPT_TV_SHORT(0xB0 , GSM_A_PDU_TYPE_GM, DE_SM_CONNECTIVITY_TYPE, NULL);
|
||||
/* C- WLAN offload indication WLAN offload indication 9.9.4.18 O TV 1 */
|
||||
ELEM_OPT_TV_SHORT(0xC0 , GSM_A_PDU_TYPE_GM, DE_SM_WLAN_OFFLOAD_ACCEPT, " - WLAN offload indication");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
}
|
||||
|
@ -4335,6 +4427,8 @@ nas_esm_mod_eps_bearer_ctx_req(tvbuff_t *tvb, proto_tree *tree, packet_info *pin
|
|||
ELEM_OPT_TLV( 0x5E , NAS_PDU_TYPE_ESM, DE_ESM_APN_AGR_MAX_BR , NULL );
|
||||
/* 27 Protocol configuration options Protocol configuration options 9.9.4.11 O TLV 3-253 */
|
||||
ELEM_OPT_TLV( 0x27 , GSM_A_PDU_TYPE_GM, DE_PRO_CONF_OPT , NULL );
|
||||
/* C- WLAN offload indication WLAN offload indication 9.9.4.18 O TV 1 */
|
||||
ELEM_OPT_TV_SHORT(0xC0 , GSM_A_PDU_TYPE_GM, DE_SM_WLAN_OFFLOAD_ACCEPT, " - WLAN offload indication");
|
||||
|
||||
EXTRANEOUS_DATA_CHECK(curr_len, 0);
|
||||
}
|
||||
|
@ -5109,6 +5203,11 @@ proto_register_nas_eps(void)
|
|||
FT_BOOLEAN, BASE_NONE, TFS(&nas_eps_emm_paging_id_vals), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_nas_eps_emm_ext_emm_cause,
|
||||
{ "Extended EMM cause","nas_eps.emm.ext_emm_cause",
|
||||
FT_BOOLEAN, BASE_NONE, TFS(&nas_eps_ext_emm_cause), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_nas_eps_emm_eps_att_type,
|
||||
{ "EPS attach type","nas_eps.emm.eps_att_type",
|
||||
FT_UINT8,BASE_DEC, VALS(nas_eps_emm_eps_att_type_vals), 0x0,
|
||||
|
@ -5456,6 +5555,16 @@ proto_register_nas_eps(void)
|
|||
FT_BOOLEAN, 8, TFS(&nas_eps_emm_supported_flg_value), 0x01,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_nas_eps_emm_prose_dd_cap,
|
||||
{ "ProSe-dd capability","nas_eps.emm.prose_dd_cap",
|
||||
FT_BOOLEAN, 8, TFS(&nas_eps_emm_prose_dd_cap_flg), 0x80,
|
||||
"ProSe direct discovery capability", HFILL }
|
||||
},
|
||||
{ &hf_nas_eps_emm_prose_cap,
|
||||
{ "ProSe capability","nas_eps.emm.prose_cap",
|
||||
FT_BOOLEAN, 8, TFS(&nas_eps_emm_prose_cap_flg), 0x40,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_nas_eps_emm_h245_ash_cap,
|
||||
{ "H.245-ASH capability","nas_eps.emm.h245_ash_cap",
|
||||
FT_BOOLEAN, 8, TFS(&nas_eps_emm_h245_ash_cap_flg), 0x20,
|
||||
|
@ -5486,6 +5595,11 @@ proto_register_nas_eps(void)
|
|||
FT_BOOLEAN, 8, TFS(&nas_eps_emm_nf_cap_flg), 0x01,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_nas_eps_emm_prose_dc_cap,
|
||||
{ "ProSe-dc capability","nas_eps.emm.prose_dc_cap",
|
||||
FT_BOOLEAN, 8, TFS(&nas_eps_emm_prose_dc_cap_flg), 0x01,
|
||||
"ProSe direct communication capability", HFILL }
|
||||
},
|
||||
{ &hf_nas_eps_emm_ue_ra_cap_inf_upd_need_flg,
|
||||
{ "URC upd","nas_eps.emm.ue_ra_cap_inf_upd_need_flg",
|
||||
FT_BOOLEAN, 8, TFS(&nas_eps_emm_ue_ra_cap_inf_upd_need_flg), 0x01,
|
||||
|
|
Loading…
Reference in New Issue