diff options
author | AndersBroman <anders.broman@ericsson.com> | 2014-10-17 13:57:56 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-10-17 12:01:27 +0000 |
commit | 0ceeddee17571fa99a4cb35625a8e3c2bdca97d2 (patch) | |
tree | 3ae01c23317c96d17e0fcd0a0ad668487797a9c0 /asn1/s1ap | |
parent | 9d1afef1dfd3af626c471debe7f09f41d67c401f (diff) |
Dissect CDMA2000 PDU if GCSNA dissector exists.
Change-Id: I866fb9bbc3e94df63231959d6745f3d45ca84020
Reviewed-on: https://code.wireshark.org/review/4772
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'asn1/s1ap')
-rw-r--r-- | asn1/s1ap/packet-s1ap-template.c | 5 | ||||
-rw-r--r-- | asn1/s1ap/s1ap.cnf | 14 |
2 files changed, 19 insertions, 0 deletions
diff --git a/asn1/s1ap/packet-s1ap-template.c b/asn1/s1ap/packet-s1ap-template.c index 9f83e16fc7..61125e8812 100644 --- a/asn1/s1ap/packet-s1ap-template.c +++ b/asn1/s1ap/packet-s1ap-template.c @@ -81,6 +81,7 @@ static int ett_s1ap_ToSourceTransparentContainer = -1; static int ett_s1ap_RRCContainer = -1; static int ett_s1ap_UERadioCapability = -1; static int ett_s1ap_RIMInformation = -1; +static int ett_s1ap_Cdma2000PDU = -1; #include "packet-s1ap-ett.c" @@ -99,6 +100,8 @@ static guint32 handover_type_value; static guint32 message_type; static gboolean g_s1ap_dissect_container = TRUE; +static dissector_handle_t gcsna_handle = NULL; + /* Dissector tables */ static dissector_table_t s1ap_ies_dissector_table; static dissector_table_t s1ap_ies_p1_dissector_table; @@ -191,6 +194,7 @@ proto_reg_handoff_s1ap(void) static guint SctpPort; s1ap_handle = find_dissector("s1ap"); + gcsna_handle = find_dissector("gcsna"); if (!Initialized) { nas_eps_handle = find_dissector("nas-eps"); @@ -239,6 +243,7 @@ void proto_register_s1ap(void) { &ett_s1ap_RRCContainer, &ett_s1ap_UERadioCapability, &ett_s1ap_RIMInformation, + &ett_s1ap_Cdma2000PDU, #include "packet-s1ap-ettarr.c" }; diff --git a/asn1/s1ap/s1ap.cnf b/asn1/s1ap/s1ap.cnf index 39da98c6f3..0815dcd167 100644 --- a/asn1/s1ap/s1ap.cnf +++ b/asn1/s1ap/s1ap.cnf @@ -506,6 +506,20 @@ if (g_s1ap_dissect_container) { } +#.FN_BODY Cdma2000PDU VAL_PTR = ¶meter_tvb + + tvbuff_t *parameter_tvb; + proto_tree *subtree = NULL; + +%(DEFAULT_BODY)s + if (!parameter_tvb) + return offset; + +if (gcsna_handle) { + subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_Cdma2000PDU); + call_dissector(gcsna_handle, parameter_tvb, %(ACTX)s->pinfo, subtree); +} + #.TYPE_ATTR ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &s1ap_ProtocolIE_ID_vals_ext |