aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_a_common.c
diff options
context:
space:
mode:
authorpascal <pascal@localhost>2012-05-20 09:50:34 +0000
committerpascal <pascal@localhost>2012-05-20 09:50:34 +0000
commit774748914ffedaec19908f36f7a91b6dd6c5a423 (patch)
treebb1fda3867e1449e87287fedcef474aa10f4f092 /epan/dissectors/packet-gsm_a_common.c
parent4a9b825c49a228b6456fbf24731aadcdd47d2c4e (diff)
Upgrade NAS EPS dissector to Release 10 (10.6.1)
svn path=/trunk/; revision=42722
Diffstat (limited to 'epan/dissectors/packet-gsm_a_common.c')
-rw-r--r--epan/dissectors/packet-gsm_a_common.c38
1 files changed, 35 insertions, 3 deletions
diff --git a/epan/dissectors/packet-gsm_a_common.c b/epan/dissectors/packet-gsm_a_common.c
index 2826836c8c..83da021fee 100644
--- a/epan/dissectors/packet-gsm_a_common.c
+++ b/epan/dissectors/packet-gsm_a_common.c
@@ -64,6 +64,7 @@ const value_string gsm_common_elem_strings[] = {
{ 0x00, "PS domain specific system information" },
{ 0x00, "PLMN List" },
{ 0x00, "NAS container for PS HO" },
+ { 0x00, "MS network feature support" },
{ 0, NULL }
};
@@ -558,6 +559,7 @@ static int hf_gsm_a_nmo_1 = -1;
static int hf_gsm_a_nmo = -1;
static int hf_gsm_a_old_xid = -1;
static int hf_gsm_a_iov_ui = -1;
+static int hf_gsm_a_ext_periodic_timers = -1;
static int hf_gsm_a_b7spare = -1;
int hf_gsm_a_b8spare = -1;
static int hf_gsm_a_multi_bnd_sup_fields = -1;
@@ -3333,11 +3335,11 @@ de_plmn_list(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset
return(curr_offset - offset);
}
+
/*
* 10.5.1.14 NAS container for PS HO
*/
-
static const value_string gsm_a_pld_xid_vals[] = {
{ 0x00, "The MS shall perform a Reset of LLC and SNDCP without old XID indicator" },
{ 0x01, "The MS shall perform a Reset of LLC and SNDCP with old XID indicator" },
@@ -3369,6 +3371,30 @@ de_nas_cont_for_ps_ho(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint
return(curr_offset - offset);
}
+/*
+ * 10.5.1.15 MS network feature support
+ */
+static const true_false_string gsm_a_ext_periodic_timers_value = {
+ "MS supports the extended periodic timer in this domain",
+ "MS does not support the extended periodic timer in this domain"
+};
+
+static guint16
+de_ms_net_feat_sup(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, 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_gsm_a_spare_bits, tvb, bit_offset, 3, ENC_BIG_ENDIAN);
+ bit_offset += 3;
+ proto_tree_add_bits_item(tree, hf_gsm_a_ext_periodic_timers, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ curr_offset++;
+
+ return (curr_offset - offset);
+}
+
guint16 (*common_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, guint len, gchar *add_string, int string_len) = {
/* Common Information Elements 10.5.1 */
@@ -3388,8 +3414,9 @@ guint16 (*common_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo
de_cn_common_gsm_map_nas_sys_info, /* 10.5.1.12.1 CN Common GSM-MAP NAS system information */
de_cs_domain_spec_sys_info, /* 10.5.1.12.2 CS domain specific system information */
de_ps_domain_spec_sys_info, /* 10.5.1.12.2 PS domain specific system information */
- de_plmn_list, /* 10.5.1.13 PLMN list */
- de_nas_cont_for_ps_ho, /* 10.5.1.14 NAS container for PS HO */
+ de_plmn_list, /* 10.5.1.13 PLMN list */
+ de_nas_cont_for_ps_ho, /* 10.5.1.14 NAS container for PS HO */
+ de_ms_net_feat_sup, /* 10.5.1.15 MS network feature support */
NULL, /* NONE */
};
@@ -3608,6 +3635,11 @@ proto_register_gsm_a_common(void)
FT_UINT32, BASE_HEX, NULL, 0x0,
NULL, HFILL }
},
+ { &hf_gsm_a_ext_periodic_timers,
+ { "Extended periodic timers", "gsm_a.ext_periodic_timers",
+ FT_BOOLEAN, BASE_NONE, TFS(&gsm_a_ext_periodic_timers_value), 0x0,
+ NULL, HFILL }
+ },
{ &hf_gsm_a_skip_ind,
{ "Skip Indicator", "gsm_a.skip.ind",
FT_UINT8, BASE_DEC, NULL, 0xf0,