diff options
author | Anders Broman <anders.broman@ericsson.com> | 2012-05-11 08:42:23 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2012-05-11 08:42:23 +0000 |
commit | 1fe00a4c4463253e434d7dd5037cffaf66e63cad (patch) | |
tree | a21ddb315a2efdb4beedb91a52ff3750b1e71acb /asn1/rnsap | |
parent | 6a92b2a472944da55d398bd15bff2bc086a26a1d (diff) |
Make it possible to dissect private IE's
svn path=/trunk/; revision=42570
Diffstat (limited to 'asn1/rnsap')
-rw-r--r-- | asn1/rnsap/packet-rnsap-template.c | 9 | ||||
-rw-r--r-- | asn1/rnsap/rnsap.cnf | 5 |
2 files changed, 14 insertions, 0 deletions
diff --git a/asn1/rnsap/packet-rnsap-template.c b/asn1/rnsap/packet-rnsap-template.c index 62cddff8ac..90ed3702f0 100644 --- a/asn1/rnsap/packet-rnsap-template.c +++ b/asn1/rnsap/packet-rnsap-template.c @@ -38,6 +38,7 @@ #include <epan/asn1.h> #include "packet-per.h" +#include "packet-ber.h" #ifdef _MSC_VER /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */ @@ -69,6 +70,8 @@ static guint32 ProcedureCode; static guint32 ProtocolIE_ID; static guint32 ddMode; static const gchar *ProcedureID; +static const char *obj_id = NULL; + /* Dissector tables */ static dissector_table_t rnsap_ies_dissector_table; @@ -79,6 +82,7 @@ static dissector_table_t rnsap_proc_uout_dissector_table; static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); +static int dissect_PrivateIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); @@ -95,6 +99,11 @@ static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_in return (dissector_try_uint(rnsap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0; } +static int dissect_PrivateIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +{ + return (call_ber_oid_callback(obj_id, tvb, 0, pinfo, tree)) ? tvb_length(tvb) : 0; +} + static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { if (!ProcedureID) return 0; diff --git a/asn1/rnsap/rnsap.cnf b/asn1/rnsap/rnsap.cnf index a830f1b1cc..c5116fc7b7 100644 --- a/asn1/rnsap/rnsap.cnf +++ b/asn1/rnsap/rnsap.cnf @@ -72,6 +72,8 @@ ProtocolIE-ContainerPairList #.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue +#.FN_PARS PrivateIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_PrivateIEFieldValue + #.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode #.FN_FTR ProcedureCode col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", @@ -123,6 +125,9 @@ ProtocolIE-ContainerPairList #.END +#.FN_PARS PrivateIE-ID/global FN_VARIANT = _str VAL_PTR = &obj_id + + #.TYPE_ATTR BLER TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL #.END |