aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-nas_eps.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2010-09-29 15:41:27 +0000
committerAnders Broman <anders.broman@ericsson.com>2010-09-29 15:41:27 +0000
commit72ac77046f39b63ed50e653c7d631ce13efc7a4d (patch)
tree71cc69ba461ca9e4725c8f30f12cd1196138e977 /epan/dissectors/packet-nas_eps.c
parentfc1cf15ea433e7b7efeb558317c0f62cb59d86d7 (diff)
From Pascal Quantin:
[NAS EPS] Add dissection of EPS network feature support IE https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5264 svn path=/trunk/; revision=34279
Diffstat (limited to 'epan/dissectors/packet-nas_eps.c')
-rw-r--r--epan/dissectors/packet-nas_eps.c59
1 files changed, 57 insertions, 2 deletions
diff --git a/epan/dissectors/packet-nas_eps.c b/epan/dissectors/packet-nas_eps.c
index 2005791427..f4172d7ed3 100644
--- a/epan/dissectors/packet-nas_eps.c
+++ b/epan/dissectors/packet-nas_eps.c
@@ -79,6 +79,10 @@ static int hf_nas_eps_emm_ebi15 = -1;
static int hf_nas_eps_emm_dl_nas_cnt = -1;
static int hf_nas_eps_emm_nounce_mme = -1;
static int hf_nas_eps_emm_eps_att_type = -1;
+static int hf_nas_eps_emm_cs_lcs_type = -1;
+static int hf_nas_eps_emm_epc_lcs_type = -1;
+static int hf_nas_eps_emm_emc_bs_type = -1;
+static int hf_nas_eps_emm_ims_vops_type = -1;
static int hf_nas_eps_emm_nas_key_set_id = -1;
static int hf_nas_eps_tsc = -1;
static int hf_nas_eps_emm_odd_even = -1;
@@ -962,16 +966,47 @@ de_emm_eps_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, g
return(len);
}
+
/*
* 9.9.3.12A EPS network feature support
*/
+static const value_string nas_eps_emm_cs_lcs_vals[] = {
+ { 0, "no information about support of location services via CS domain is available"},
+ { 1, "location services via CS domain not supported"},
+ { 2, "location services via CS domain supported"},
+ { 3, "reserved"},
+ { 0, NULL }
+};
+static const true_false_string nas_eps_emm_epc_lcs_value = {
+ "location services via EPC supported",
+ "location services via EPC not supported"
+};
+static const true_false_string nas_eps_emm_emc_bs_value = {
+ "emergency bearer services in S1 mode supported",
+ "emergency bearer services in S1 mode not supported"
+};
+static const true_false_string nas_eps_emm_ims_vops_value = {
+ "IMS voice over PS session in S1 mode supported",
+ "IMS voice over PS session in S1 mode not supported"
+};
+
static guint16
de_emm_eps_net_feature_sup(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
{
- guint32 curr_offset;
+ guint32 curr_offset, bit_offset;
curr_offset = offset;
- proto_tree_add_text(tree, tvb, curr_offset, len, "Not dissected yet");
+ bit_offset = curr_offset << 3;
+ proto_tree_add_bits_item(tree, hf_nas_eps_spare_bits, tvb, bit_offset, 3, FALSE);
+ bit_offset += 3;
+ proto_tree_add_bits_item(tree, hf_nas_eps_emm_cs_lcs_type, tvb, bit_offset, 2, FALSE);
+ bit_offset += 2;
+ proto_tree_add_bits_item(tree, hf_nas_eps_emm_epc_lcs_type, tvb, bit_offset, 1, FALSE);
+ bit_offset += 1;
+ proto_tree_add_bits_item(tree, hf_nas_eps_emm_emc_bs_type, tvb, bit_offset, 1, FALSE);
+ bit_offset += 1;
+ proto_tree_add_bits_item(tree, hf_nas_eps_emm_ims_vops_type, tvb, bit_offset, 1, FALSE);
+ bit_offset += 1;
return len;
}
@@ -4441,6 +4476,26 @@ void proto_register_nas_eps(void) {
FT_UINT8,BASE_DEC, VALS(nas_eps_emm_eps_att_type_vals), 0x0,
NULL, HFILL }
},
+ { &hf_nas_eps_emm_cs_lcs_type,
+ { "CS-LCS","nas_eps.emm.cs_lcs",
+ FT_UINT8, BASE_DEC, VALS(nas_eps_emm_cs_lcs_vals), 0x0,
+ "Location services indicator in CS", HFILL }
+ },
+ { &hf_nas_eps_emm_epc_lcs_type,
+ { "EPC-LCS","nas_eps.emm.epc_lcs",
+ FT_BOOLEAN ,BASE_NONE, TFS(&nas_eps_emm_epc_lcs_value), 0x0,
+ "Location services indicator in EPC", HFILL }
+ },
+ { &hf_nas_eps_emm_emc_bs_type,
+ { "EMC BS","nas_eps.emm.emc_bs",
+ FT_BOOLEAN, BASE_NONE, TFS(&nas_eps_emm_emc_bs_value), 0x0,
+ "Emergency bearer services indicator", HFILL }
+ },
+ { &hf_nas_eps_emm_ims_vops_type,
+ { "IMS VoPS","nas_eps.emm.ims_vops",
+ FT_BOOLEAN, BASE_NONE, TFS(&nas_eps_emm_ims_vops_value), 0x0,
+ "IMS voice over PS session indicator", HFILL }
+ },
{ &hf_nas_eps_tsc,
{ "Type of security context flag (TSC)","nas_eps.emm.tsc",
FT_UINT8,BASE_DEC, VALS(nas_eps_tsc_vals), 0x0,