aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_a_common.c
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2009-03-04 19:51:55 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2009-03-04 19:51:55 +0000
commitb008c30c4fc0f19c4a97603c0601ae3673457b66 (patch)
treeb7e95c3faf32243f69e03806126fe9df8d600c19 /epan/dissectors/packet-gsm_a_common.c
parent3cf5f3317c694651a6f4c21a2e16075b7cb316c5 (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.c14
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