diff options
Diffstat (limited to 'asn1')
-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 |