diff options
author | Anders Broman <anders.broman@ericsson.com> | 2008-09-13 16:38:21 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2008-09-13 16:38:21 +0000 |
commit | eb9dc794b251d1f2ff7df34b8a9ea59af1056cbd (patch) | |
tree | 30939347a3049d29ab56f3c4c82a3039241fee6f /asn1/tcap | |
parent | 16512c7b8c8e9c6659300f08456e2dee6f4a6fbb (diff) | |
download | wireshark-eb9dc794b251d1f2ff7df34b8a9ea59af1056cbd.tar.gz |
Start to get rid of the "old" ANSI TCAP stuff.
svn path=/trunk/; revision=26189
Diffstat (limited to 'asn1/tcap')
-rw-r--r-- | asn1/tcap/packet-tcap-template.c | 52 | ||||
-rw-r--r-- | asn1/tcap/tcap.asn | 121 | ||||
-rw-r--r-- | asn1/tcap/tcap.cnf | 40 |
3 files changed, 2 insertions, 211 deletions
diff --git a/asn1/tcap/packet-tcap-template.c b/asn1/tcap/packet-tcap-template.c index 972284d076..7318547352 100644 --- a/asn1/tcap/packet-tcap-template.c +++ b/asn1/tcap/packet-tcap-template.c @@ -104,7 +104,6 @@ static void raz_tcap_private(struct tcap_private_t * p_tcap_private); static int dissect_tcap_param(asn1_ctx_t *actx, proto_tree *tree, tvbuff_t *tvb, int offset); static int dissect_tcap_UserInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_); static int dissect_tcap_ITU_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_); -static int dissect_tcap_ANSI_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_); static int dissect_tcap_TheExternUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_); static GHashTable* ansi_sub_dissectors = NULL; @@ -650,57 +649,6 @@ dissect_tcap_ITU_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs return offset; } -/* - * Call ANSI Subdissector to decode the Tcap Component - */ -static int -dissect_tcap_ANSI_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) -{ - dissector_handle_t subdissector_handle; - gboolean is_subdissector=FALSE; - struct tcaphash_context_t * p_tcap_context=NULL; - - gchar str[20]; - - - /* - * Handle The TCAP Service Response Time - */ - if ( gtcap_HandleSRT ) { - if (!tcap_subdissector_used) { - p_tcap_context=tcapsrt_call_matching(tvb, actx->pinfo, tcap_stat_tree, gp_tcapsrt_info); - tcap_subdissector_used=TRUE; - gp_tcap_context=p_tcap_context; - tcap_private.context=p_tcap_context; - } else { - /* Take the last TCAP context */ - p_tcap_context = gp_tcap_context; - tcap_private.context=p_tcap_context; - } - } - - if (p_tcap_context) { - /* tcap_private.TransactionID_str = bytes_to_str(&(p_tcap_context->session_id),4); */ - g_snprintf(str, sizeof(str), "(%d)",p_tcap_context->session_id); - tcap_private.TransactionID_str = str; - } - - if ( (subdissector_handle - = get_ansi_tcap_subdissector(actx->pinfo->match_port))) { - /* Found according to SSN */ - is_subdissector=TRUE; - } else { - /* Nothing found, take the Data handler */ - subdissector_handle = data_handle; - is_subdissector=TRUE; - } /* SSN */ - - /* Call the sub dissector if present, and not already called */ - if (is_subdissector) - call_dissector(subdissector_handle, tvb, actx->pinfo, tree); - - return offset; -} static int dissect_tcap_TheExternUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) diff --git a/asn1/tcap/tcap.asn b/asn1/tcap/tcap.asn index bcbbdfc415..99e3e5f24c 100644 --- a/asn1/tcap/tcap.asn +++ b/asn1/tcap/tcap.asn @@ -132,13 +132,11 @@ TCMessage ::= CHOICE { continue [APPLICATION 5] IMPLICIT Continue, abort [APPLICATION 7] IMPLICIT Abort , -- and we now get clever making this ansi and itu! - ansiunidirectional [ PRIVATE 1 ] IMPLICIT UniTransactionPDU , ansiqueryWithPerm [ PRIVATE 2 ] IMPLICIT TransactionPDU , ansiqueryWithoutPerm [ PRIVATE 3 ] IMPLICIT TransactionPDU , ansiresponse [ PRIVATE 4 ] IMPLICIT TransactionPDU , ansiconversationWithPerm [ PRIVATE 5 ] IMPLICIT TransactionPDU , - ansiconversationWithoutPerm [ PRIVATE 6 ] IMPLICIT TransactionPDU , - ansiabort [ PRIVATE 22 ] IMPLICIT AbortPDU + ansiconversationWithoutPerm [ PRIVATE 6 ] IMPLICIT TransactionPDU } Unidirectional ::= SEQUENCE{ @@ -353,21 +351,11 @@ ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0), mistypedParameter (4) } - -UniTransactionPDU ::= SEQUENCE - - { - identifier TransactionID , - dialoguePortionansi DialoguePortionANSI OPTIONAL , - componentPortion ComponentSequence OPTIONAL - } - TransactionPDU ::= SEQUENCE { identifier TransactionID , - dialoguePortionansi DialoguePortionANSI OPTIONAL , - componentPortion ComponentSequence OPTIONAL + dialoguePortionansi DialoguePortionANSI OPTIONAL } --TransactionPDU should include either a Dialogue Portion , a Component Sequence or both @@ -378,32 +366,6 @@ TransactionID ::= [PRIVATE 7 ] IMPLICIT OCTET STRING -- 8 Octet for Conversation in the order Originating then Responding TID -AbortPDU ::= SEQUENCE - { - identifier TransactionID , - dialoguePortionansi DialoguePortionANSI OPTIONAL , - causeInformation CHOICE { - abortCause P-Abort-cause , - userInformation UserInformation -- UserAbortInformation - } OPTIONAL -} - ---when the Abort package is generated by the Transaction sublayer, - ---the P-Abort-cause must be present - -P-Abort-cause ::= [ PRIVATE 23 ] IMPLICIT INTEGER { - unrecognizedPackageType ( 1 ) , - incorrestTransactionPortion ( 2 ) , - badlyStructuredTransactionPortion ( 3 ) , - unassignedRespondingTransactionID ( 4 ) , - permissionToReleaseProblem ( 5 ) , - resourceUnavilable ( 6 ) , - unrecognizedDialoguePortionID ( 7 ) , - badlyStructuredDialoguePortion ( 8 ) , - missingDialoguePortion ( 9 ) , - inconsistentDialoguePortion ( 10 ) } - DialoguePortionANSI ::= [ PRIVATE 25 ] IMPLICIT SEQUENCE { version ProtocolVersion OPTIONAL , applicationContext [0] CHOICE { @@ -435,85 +397,6 @@ Confidentiality ::= SEQUENCE { ... } --UserAbortInformation ::= [ PRIVATE 24 ] EXTERNAL - -ComponentSequence ::= [ PRIVATE 8 ] IMPLICIT SEQUENCE OF ComponentPDU - -ComponentPDU ::= - CHOICE { - invokeLastansi [ PRIVATE 9 ] IMPLICIT InvokePDU , - returnResultLastansi [ PRIVATE 10 ] IMPLICIT ReturnResultPDU, - returnErroransi [ PRIVATE 11 ] IMPLICIT ReturnErrorPDU , - rejectansi [ PRIVATE 12 ] IMPLICIT RejectPDU , - invokeNotLastansi [ PRIVATE 13 ] IMPLICIT InvokePDU , - returnResultNotLastansi [ PRIVATE 14 ] IMPLICIT ReturnResultPDU - } - -InvokePDU ::= SEQUENCE { - componentIDs [ PRIVATE 15 ] IMPLICIT OCTET STRING (SIZE(0..2)) OPTIONAL , - operationCode OperationCode OPTIONAL, - parameterinv ANSIparamch - } -ANSIParameters ::= ANY - -ANSIparamch ::= SEQUENCE { - ansiparams ANSIParameters OPTIONAL, - ansiparams1 ANSIParameters OPTIONAL, - ansiparams2 ANSIParameters OPTIONAL, - ansiparams3 ANSIParameters OPTIONAL, - ansiparams4 ANSIParameters OPTIONAL, - ansiparams5 ANSIParameters OPTIONAL, - ansiparams6 ANSIParameters OPTIONAL, - ansiparams7 ANSIParameters OPTIONAL, - ansiparams8 ANSIParameters OPTIONAL, - ansiparams9 ANSIParameters OPTIONAL, - ansiparams10 ANSIParameters OPTIONAL, - ansiparams11 ANSIParameters OPTIONAL, - ansiparams12 ANSIParameters OPTIONAL, - ansiparams13 ANSIParameters OPTIONAL, - ansiparams14 ANSIParameters OPTIONAL, - ansiparams15 ANSIParameters OPTIONAL, - ansiparams16 ANSIParameters OPTIONAL, - ansiparams17 ANSIParameters OPTIONAL, - ansiparams18 ANSIParameters OPTIONAL, - ansiparams19 ANSIParameters OPTIONAL, - ansiparams20 ANSIParameters OPTIONAL, - ansiparams21 ANSIParameters OPTIONAL - } - -ReturnResultPDU ::= SEQUENCE { - componentID ComponentID, - parameterrr ANSIparamch - } - - -ComponentID ::= [ PRIVATE 15 ] IMPLICIT OCTET STRING ( SIZE(1) ) - -ReturnErrorPDU ::= SEQUENCE { - componentID ComponentID , - errorCode ErrorCode , - parameterre ANSIparamch - } - -RejectPDU ::= SEQUENCE { - componentID ComponentID , - rejectProblem [PRIVATE 21 ] IMPLICIT ProblemPDU, - parameterrj ANSIparamch -} - - -ProblemPDU ::= INTEGER { - general-unrecognisedComponentType (257) , - general-incorrectComponentPortion ( 258 ) , - general-badlyStructuredCompPortion ( 259 ) - - } - - -OperationCode ::= CHOICE - { - national [PRIVATE 16] IMPLICIT INTEGER (-32768..32767), - private [PRIVATE 17] IMPLICIT INTEGER - } ErrorCode ::= CHOICE { diff --git a/asn1/tcap/tcap.cnf b/asn1/tcap/tcap.cnf index f911f6ee70..98b4577aec 100644 --- a/asn1/tcap/tcap.cnf +++ b/asn1/tcap/tcap.cnf @@ -140,38 +140,6 @@ dissect_tcap_TheExternUserInfo(implicit_tag, next_tvb, 0, actx, tcap_top_tree, h return comp_offset+len; #---------------------------------------------------------------------------------------- -#.FN_BODY ANSIParameters -/* we are doing the ParamSet here so need to look at the tags*/ - guint32 len; -len = tvb_length_remaining(tvb, offset); -if (len > 2) /* arghhh I dont know whether this is constructed or not! */ - offset = dissect_tcap_param(actx,tree,tvb,offset); -else -offset = dissect_ber_octet_string(TRUE, actx, tree, tvb, 0, hf_index, - NULL); - -#---------------------------------------------------------------------------------------- -#.FN_BODY ComponentPDU -tvbuff_t *next_tvb; -gint8 class; -gboolean pc; -gint tag; -guint32 len, comp_offset; -gint ind_field; - -comp_offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &class, &pc, &tag); -comp_offset = dissect_ber_length(actx->pinfo, tree, tvb, comp_offset, &len, &ind_field); -/* we can believe the length now */ -next_tvb = tvb_new_subset(tvb, offset, len+comp_offset-offset, len+comp_offset-offset); - -if (!next_tvb) - return offset; - -%(DEFAULT_BODY)s - -dissect_tcap_ANSI_ComponentPDU(implicit_tag, next_tvb, 0, actx, tcap_top_tree, hf_index); - -#---------------------------------------------------------------------------------------- #.FN_BODY OrigTransactionID tvbuff_t *parameter_tvb; guint8 len, i; @@ -285,14 +253,6 @@ if (check_col(actx->pinfo->cinfo, COL_INFO)) #.END -#.FN_HDR AbortPDU -gp_tcapsrt_info->ope=TC_ANSI_ABORT; - -if (check_col(actx->pinfo->cinfo, COL_INFO)) - col_set_str(actx->pinfo->cinfo, COL_INFO, "Abort "); -#.END - - #.FN_HDR TCMessage/ansiqueryWithPerm gp_tcapsrt_info->ope=TC_ANSI_ALL; if (check_col(actx->pinfo->cinfo, COL_INFO)) |