From b008c30c4fc0f19c4a97603c0601ae3673457b66 Mon Sep 17 00:00:00 2001 From: etxrab Date: Wed, 4 Mar 2009 19:51:55 +0000 Subject: - Use correct length in TLV-E and LV-E. - Update PD values to the latest spec. - Remove some non ASCII chars. - Start dissecton of LTE NAS ESM EPS messages and IE's. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@27605 f5534014-38df-0310-8fa8-9805f1628bb7 --- epan/dissectors/packet-gsm_a_common.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'epan/dissectors/packet-gsm_a_common.c') diff --git a/epan/dissectors/packet-gsm_a_common.c b/epan/dissectors/packet-gsm_a_common.c index 2007d042da..1098e6738e 100644 --- a/epan/dissectors/packet-gsm_a_common.c +++ b/epan/dissectors/packet-gsm_a_common.c @@ -587,6 +587,9 @@ const char* get_gsm_a_msg_string(int pdu_type, int idx) case NAS_PDU_TYPE_EMM: msg_string = nas_emm_elem_strings[idx].strptr; break; + case NAS_PDU_TYPE_ESM: + msg_string = nas_esm_elem_strings[idx].strptr; + break; default: DISSECTOR_ASSERT_NOT_REACHED(); } @@ -629,6 +632,9 @@ static int get_hf_elem_id(int pdu_type) case NAS_PDU_TYPE_EMM: hf_elem_id = hf_nas_emm_elem_id; break; + case NAS_PDU_TYPE_ESM: + hf_elem_id = hf_nas_esm_elem_id; + break; default: DISSECTOR_ASSERT_NOT_REACHED(); } @@ -780,7 +786,7 @@ guint16 elem_tlv_e(tvbuff_t *tvb, proto_tree *tree, guint8 iei, gint pdu_type, i a_add_string=ep_alloc(1024); a_add_string[0] = '\0'; consumed = - (*elem_funcs[idx])(tvb, subtree, curr_offset + 2, + (*elem_funcs[idx])(tvb, subtree, curr_offset + 1 + 2, parm_len, a_add_string, 1024); if (a_add_string[0] != '\0') @@ -1074,7 +1080,7 @@ guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint if (elem_funcs[idx] == NULL) { proto_tree_add_text(subtree, - tvb, curr_offset + 1, parm_len, + tvb, curr_offset + 2, parm_len, "Element Value"); consumed = parm_len; @@ -1086,7 +1092,7 @@ guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint a_add_string=ep_alloc(1024); a_add_string[0] = '\0'; consumed = - (*elem_funcs[idx])(tvb, subtree, curr_offset + 1, + (*elem_funcs[idx])(tvb, subtree, curr_offset + 2, parm_len, a_add_string, 1024); if (a_add_string[0] != '\0') @@ -1096,7 +1102,7 @@ guint16 elem_lv_e(tvbuff_t *tvb, proto_tree *tree, gint pdu_type, int idx, guint } } - return(consumed + 1); + return(consumed + 2); } /* * Value (V) element dissector -- cgit v1.2.3