Improve dissection of UE Time Zone.

svn path=/trunk/; revision=35477
This commit is contained in:
Anders Broman 2011-01-11 17:06:38 +00:00
parent b2992b2310
commit 852c75636e
3 changed files with 11 additions and 14 deletions

View File

@ -1863,17 +1863,17 @@ de_mid(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_st
a_bigbuf[0] = Dgt1_9_bcd.out[(oct & 0xf0) >> 4];
curr_offset++;
poctets = tvb_get_ephemeral_string(tvb, curr_offset, len - (curr_offset - offset));
//poctets = tvb_get_ephemeral_string(tvb, curr_offset, len - (curr_offset - offset));
my_dgt_tbcd_unpack(&a_bigbuf[1], poctets, len - (curr_offset - offset),
&Dgt1_9_bcd);
//my_dgt_tbcd_unpack(&a_bigbuf[1], poctets, len - (curr_offset - offset),
// &Dgt1_9_bcd);
proto_tree_add_string_format(tree,
((oct & 0x07) == 3) ? hf_gsm_a_imeisv : hf_gsm_a_imsi,
tvb, curr_offset - 1, len - (curr_offset - offset) + 1,
a_bigbuf,
"BCD Digits: %s",
a_bigbuf);
tvb_bcd_dig_to_ep_str(tvb, curr_offset - 1, -1, NULL, TRUE));
if (sccp_assoc && ! sccp_assoc->calling_party) {
sccp_assoc->calling_party = se_strdup_printf(

View File

@ -606,7 +606,7 @@ guint16 de_sm_pco(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gc
guint16 de_sm_qos(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
guint16 de_sm_pflow_id(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
guint16 de_sm_tflow_temp(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
guint16 de_time_zone(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_);
guint16 de_gmm_drx_param(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
guint16 de_gmm_ms_net_cap(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);
guint16 de_gmm_rai(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len, gchar *add_string, int string_len);

View File

@ -263,7 +263,6 @@ static int hf_gtpv2_charging_id = -1;
static int hf_gtpv2_charging_characteristic = -1;
static int hf_gtpv2_bearer_flag_ppc = -1;
static int hf_gtpv2_bearer_flag_vb = -1;
static int hf_gtpv2_ue_time_zone = -1;
static int hf_gtpv2_ue_time_zone_dst = -1;
static int hf_gtpv2_fq_csid_type = -1;
static int hf_gtpv2_fq_csid_nr = -1;
@ -2330,8 +2329,12 @@ dissect_gtpv2_ue_time_zone(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
{
int offset = 0;
proto_tree_add_item(tree, hf_gtpv2_ue_time_zone, tvb, offset, 1, FALSE);
/*
* UE Time Zone is used to indicate the offset between universal time and local time in steps of 15 minutes of where the
* UE currently resides. The "Time Zone" field uses the same format as the "Time Zone" IE in 3GPP TS 24.008 [5].
* (packet-gsm_a_dtap.c)
*/
de_time_zone(tvb, tree, offset, 1, NULL, 0);
offset= offset+ 1;
proto_tree_add_item(tree, hf_gtpv2_ue_time_zone_dst, tvb, offset, 1, FALSE);
@ -4153,12 +4156,6 @@ void proto_register_gtpv2(void)
FT_UINT8, BASE_DEC, NULL, 0x1c,
NULL, HFILL}
},
{&hf_gtpv2_ue_time_zone,
{"Time Zone","gtpv2.ue_time_zone",
FT_UINT8, BASE_DEC, NULL,0x0,
NULL, HFILL}
},
{&hf_gtpv2_ue_time_zone_dst,
{"Daylight Saving Time","gtpv2.ue_time_zone_dst",
FT_UINT8, BASE_DEC, VALS(gtpv2_ue_time_zone_dst_vals),0x03,