diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-03-04 19:51:55 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-03-04 19:51:55 +0000 |
commit | b008c30c4fc0f19c4a97603c0601ae3673457b66 (patch) | |
tree | b7e95c3faf32243f69e03806126fe9df8d600c19 /epan/dissectors/packet-gsm_a_common.c | |
parent | 3cf5f3317c694651a6f4c21a2e16075b7cb316c5 (diff) |
- 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
Diffstat (limited to 'epan/dissectors/packet-gsm_a_common.c')
-rw-r--r-- | epan/dissectors/packet-gsm_a_common.c | 14 |
1 files changed, 10 insertions, 4 deletions
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 |