aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/tcap/packet-tcap-template.c21
-rw-r--r--asn1/tcap/tcap.asn83
-rw-r--r--asn1/tcap/tcap.cnf88
-rw-r--r--epan/dissectors/packet-tcap.c593
4 files changed, 60 insertions, 725 deletions
diff --git a/asn1/tcap/packet-tcap-template.c b/asn1/tcap/packet-tcap-template.c
index 7318547352..a2ffe8490d 100644
--- a/asn1/tcap/packet-tcap-template.c
+++ b/asn1/tcap/packet-tcap-template.c
@@ -102,9 +102,7 @@ static dissector_handle_t ansi_tcap_handle;
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_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;
static GHashTable* itu_sub_dissectors = NULL;
@@ -649,25 +647,6 @@ dissect_tcap_ITU_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs
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_)
-{
- /*
- * ok lets look at the oid and ssn and try and find a dissector, otherwise lets decode it.
- */
- ber_oid_dissector_table = find_dissector_table("ber.oid");
-
- if (ber_oid_dissector_table && tcapext_oid){
- if(!dissector_try_string(ber_oid_dissector_table, tcapext_oid, tvb, actx->pinfo, tree))
- {
- return dissect_tcap_param(actx,tree,tvb,0);
- }
- }
- return offset;
-}
-
-
void call_tcap_dissector(dissector_handle_t handle, tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree) {
requested_subdissector_handle = handle;
diff --git a/asn1/tcap/tcap.asn b/asn1/tcap/tcap.asn
index 99e3e5f24c..f16b6c7c30 100644
--- a/asn1/tcap/tcap.asn
+++ b/asn1/tcap/tcap.asn
@@ -26,18 +26,9 @@ ExternalPDU ::= [UNIVERSAL 8] IMPLICIT SEQUENCE
dialog [0] IMPLICIT Dialog1
}
-UserInformation ::= [UNIVERSAL 8] IMPLICIT SEQUENCE
- {
- useroid UserInfoOID,
- externuserinfo [0] IMPLICIT ExternUserInfo
- }
-
-ExternUserInfo ::= OCTET STRING
-
+
Dialog1 ::= OCTET STRING
-UserInfoOID ::= OBJECT IDENTIFIER
-
Applicationcontext ::= OBJECT IDENTIFIER
AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
@@ -53,31 +44,30 @@ AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
application-context-name [1] OBJECT IDENTIFIER,
result [2] Associate-result,
result-source-diagnostic [3] Associate-source-diagnostic,
- user-information [30] IMPLICIT User-information
- OPTIONAL }
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
-- RLRQ PDU is currently not used.
-- It is included for completeness only.
RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
reasonrq [0] IMPLICIT Release-request-reason OPTIONAL,
- user-information [30] IMPLICIT User-information
- OPTIONAL }
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+ }
-- RLRE PDU is currently not used.
-- It is included for completeness only
RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
reasonre [0] IMPLICIT Release-response-reason OPTIONAL,
- user-information [30] IMPLICIT User-information
- OPTIONAL }
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+ }
ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
abort-source [0] IMPLICIT ABRT-source,
- user-information [30] IMPLICIT User-information
- OPTIONAL }
+ user-information [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+ }
-User-information ::= OCTET STRING
ABRT-source ::= INTEGER { dialogue-service-user (0),
dialogue-service-provider (1) }
@@ -130,13 +120,7 @@ TCMessage ::= CHOICE {
begin [APPLICATION 2] IMPLICIT Begin,
end [APPLICATION 4] IMPLICIT End,
continue [APPLICATION 5] IMPLICIT Continue,
- abort [APPLICATION 7] IMPLICIT Abort ,
- -- and we now get clever making this ansi and itu!
- 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
+ abort [APPLICATION 7] IMPLICIT Abort
}
Unidirectional ::= SEQUENCE{
@@ -351,53 +335,6 @@ ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0),
mistypedParameter (4) }
-TransactionPDU ::= SEQUENCE
- {
-
- identifier TransactionID ,
- dialoguePortionansi DialoguePortionANSI OPTIONAL
- }
-
---TransactionPDU should include either a Dialogue Portion , a Component Sequence or both
-
-TransactionID ::= [PRIVATE 7 ] IMPLICIT OCTET STRING
-
--- 0 (zero) Octet for Unidirectional,4 Octet for Query , Response And Abort
-
--- 8 Octet for Conversation in the order Originating then Responding TID
-
-DialoguePortionANSI ::= [ PRIVATE 25 ] IMPLICIT SEQUENCE {
- version ProtocolVersion OPTIONAL ,
- applicationContext [0] CHOICE {
- integerApplicationId IntegerApplicationContext ,
- objectApplicationId ObjectIDApplicationContext
- } OPTIONAL ,
- userInformation UserInformation OPTIONAL ,
- securityContext CHOICE {
- integerSecurityId [ 0 ] IMPLICIT INTEGER ,
- objectSecurityId [ 1 ] IMPLICIT OBJECT IDENTIFIER
- } OPTIONAL ,
- confidentiality [ 2 ] IMPLICIT Confidentiality OPTIONAL ,
- ... }
-
-
-ProtocolVersion ::= [ PRIVATE 26 ] IMPLICIT OCTET STRING ( SIZE(1) )
-
-IntegerApplicationContext ::= [ PRIVATE 27 ] IMPLICIT INTEGER
-
-ObjectIDApplicationContext ::= [ PRIVATE 28 ] IMPLICIT OBJECT IDENTIFIER
-
---UserInformation ::= [ PRIVATE 29 ] IMPLICIT SEQUENCE OF EXTERNAL
-
-Confidentiality ::= SEQUENCE {
- confidentialityId CHOICE {
- integerConfidentialityId [ 0 ] IMPLICIT INTEGER ,
- objectConfidentialityId [ 1 ] IMPLICIT OBJECT IDENTIFIER
- } OPTIONAL ,
- ... }
-
---UserAbortInformation ::= [ PRIVATE 24 ] EXTERNAL
-
ErrorCode ::= CHOICE
{
nationaler [PRIVATE 19] IMPLICIT INTEGER (-32768..32767),
diff --git a/asn1/tcap/tcap.cnf b/asn1/tcap/tcap.cnf
index 98b4577aec..e2e75e8764 100644
--- a/asn1/tcap/tcap.cnf
+++ b/asn1/tcap/tcap.cnf
@@ -67,11 +67,6 @@ return dissect_tcap_DialoguePDU(TRUE, tvb, offset, actx, tree, -1);
return dissect_tcap_param(actx,tree,tvb,offset);
#----------------------------------------------------------------------------------------
-#.FN_BODY User-information
-
-return dissect_tcap_UserInformation(FALSE, tvb, offset, actx, tree, -1);
-
-#----------------------------------------------------------------------------------------
#.FN_BODY Component
tvbuff_t *next_tvb;
gint8 class;
@@ -110,36 +105,6 @@ if (!next_tvb)
tcap_private.oid= (void*) cur_oid;
tcap_private.acv=TRUE;
#----------------------------------------------------------------------------------------
-# Do not overwrite the ApplicationContext with the UserInfoOID !
-#
-#----------------------------------------------------------------------------------------
-#.FN_BODY UserInfoOID FN_VARIANT = _str VAL_PTR = &tcapext_oid
-%(DEFAULT_BODY)s
-
-#----------------------------------------------------------------------------------------
-#.FN_BODY ExternUserInfo
-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 comp_offset;
-
-%(DEFAULT_BODY)s
-
-dissect_tcap_TheExternUserInfo(implicit_tag, next_tvb, 0, actx, tcap_top_tree, hf_index);
-
-return comp_offset+len;
-
-#----------------------------------------------------------------------------------------
#.FN_BODY OrigTransactionID
tvbuff_t *parameter_tvb;
guint8 len, i;
@@ -251,56 +216,3 @@ gp_tcapsrt_info->ope=TC_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))
- col_set_str(actx->pinfo->cinfo, COL_INFO, "QueryWithPerm ");
-#.FN_HDR TCMessage/ansiqueryWithoutPerm
-gp_tcapsrt_info->ope=TC_ANSI_ALL;
-if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_set_str(actx->pinfo->cinfo, COL_INFO, "QueryWithOutPerm ");
-#.FN_HDR TCMessage/ansiresponse
-gp_tcapsrt_info->ope=TC_ANSI_ALL;
-if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_set_str(actx->pinfo->cinfo, COL_INFO, "Response ");
-#.FN_HDR TCMessage/ansiconversationWithPerm
-gp_tcapsrt_info->ope=TC_ANSI_ALL;
-if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_set_str(actx->pinfo->cinfo, COL_INFO, "ConversationWithPerm ");
-#.FN_HDR TCMessage/ansiconversationWithoutPerm
-gp_tcapsrt_info->ope=TC_ANSI_ALL;
-if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_set_str(actx->pinfo->cinfo, COL_INFO, "ConversationWithoutPerm ");
-
-#.END
-
-#----------------------------------------------------------------------------------------
-#.FN_BODY TransactionID/_untag VAL_PTR = &next_tvb
-
-tvbuff_t *next_tvb;
-guint8 len;
-
-%(DEFAULT_BODY)s
-
-if(next_tvb) {
- tcap_private.TransactionID_str = tvb_bytes_to_str(next_tvb, 0,tvb_length(next_tvb));
- len = tvb_length_remaining(next_tvb, 0);
- switch(len) {
- case 1:
- gp_tcapsrt_info->src_tid=tvb_get_guint8(next_tvb, 0);
- break;
- case 2:
- gp_tcapsrt_info->src_tid=tvb_get_ntohs(next_tvb, 0);
- break;
- case 4:
- gp_tcapsrt_info->src_tid=tvb_get_ntohl(next_tvb, 0);
- break;
- default:
- gp_tcapsrt_info->src_tid=0;
- break;
- }
-}
-
-#.END
diff --git a/epan/dissectors/packet-tcap.c b/epan/dissectors/packet-tcap.c
index 386b584111..d7aac0a96c 100644
--- a/epan/dissectors/packet-tcap.c
+++ b/epan/dissectors/packet-tcap.c
@@ -79,8 +79,6 @@ static int hf_tcap_dialogueResponse = -1; /* AARE_apdu */
static int hf_tcap_dialogueAbort = -1; /* ABRT_apdu */
static int hf_tcap_oid = -1; /* OBJECT_IDENTIFIER */
static int hf_tcap_dialog = -1; /* Dialog1 */
-static int hf_tcap_useroid = -1; /* UserInfoOID */
-static int hf_tcap_externuserinfo = -1; /* ExternUserInfo */
static int hf_tcap_protocol_versionrq = -1; /* T_protocol_versionrq */
static int hf_tcap_aarq_application_context_name = -1; /* AARQ_application_context_name */
static int hf_tcap_aarq_user_information = -1; /* AARQ_user_information */
@@ -90,8 +88,10 @@ static int hf_tcap_aare_application_context_name = -1; /* AARE_application_cont
static int hf_tcap_result = -1; /* Associate_result */
static int hf_tcap_result_source_diagnostic = -1; /* Associate_source_diagnostic */
static int hf_tcap_aare_user_information = -1; /* AARE_user_information */
+static int hf_tcap_aare_user_information_item = -1; /* EXTERNAL */
static int hf_tcap_abort_source = -1; /* ABRT_source */
static int hf_tcap_abrt_user_information = -1; /* ABRT_user_information */
+static int hf_tcap_abrt_user_information_item = -1; /* EXTERNAL */
static int hf_tcap_dialogue_service_user = -1; /* T_dialogue_service_user */
static int hf_tcap_dialogue_service_provider = -1; /* T_dialogue_service_provider */
static int hf_tcap_unidirectional = -1; /* Unidirectional */
@@ -99,11 +99,6 @@ static int hf_tcap_begin = -1; /* Begin */
static int hf_tcap_end = -1; /* End */
static int hf_tcap_continue = -1; /* Continue */
static int hf_tcap_abort = -1; /* Abort */
-static int hf_tcap_ansiqueryWithPerm = -1; /* T_ansiqueryWithPerm */
-static int hf_tcap_ansiqueryWithoutPerm = -1; /* T_ansiqueryWithoutPerm */
-static int hf_tcap_ansiresponse = -1; /* T_ansiresponse */
-static int hf_tcap_ansiconversationWithPerm = -1; /* T_ansiconversationWithPerm */
-static int hf_tcap_ansiconversationWithoutPerm = -1; /* T_ansiconversationWithoutPerm */
static int hf_tcap_dialoguePortion = -1; /* DialoguePortion */
static int hf_tcap_components = -1; /* ComponentPortion */
static int hf_tcap_otid = -1; /* OrigTransactionID */
@@ -133,20 +128,6 @@ static int hf_tcap_returnResultProblem = -1; /* ReturnResultProblem */
static int hf_tcap_returnErrorProblem = -1; /* ReturnErrorProblem */
static int hf_tcap_localValue = -1; /* INTEGER */
static int hf_tcap_globalValue = -1; /* OBJECT_IDENTIFIER */
-static int hf_tcap_identifier = -1; /* TransactionID */
-static int hf_tcap_dialoguePortionansi = -1; /* DialoguePortionANSI */
-static int hf_tcap_version = -1; /* ProtocolVersion */
-static int hf_tcap_applicationContext = -1; /* T_applicationContext */
-static int hf_tcap_integerApplicationId = -1; /* IntegerApplicationContext */
-static int hf_tcap_objectApplicationId = -1; /* ObjectIDApplicationContext */
-static int hf_tcap_userInformation = -1; /* UserInformation */
-static int hf_tcap_securityContext = -1; /* T_securityContext */
-static int hf_tcap_integerSecurityId = -1; /* INTEGER */
-static int hf_tcap_objectSecurityId = -1; /* OBJECT_IDENTIFIER */
-static int hf_tcap_confidentiality = -1; /* Confidentiality */
-static int hf_tcap_confidentialityId = -1; /* T_confidentialityId */
-static int hf_tcap_integerConfidentialityId = -1; /* INTEGER */
-static int hf_tcap_objectConfidentialityId = -1; /* OBJECT_IDENTIFIER */
static int hf_tcap_nationaler = -1; /* INTEGER_M32768_32767 */
static int hf_tcap_privateer = -1; /* INTEGER */
static int hf_tcap_unidialoguePDU = -1; /* AUDT_apdu */
@@ -181,13 +162,14 @@ static struct tcaphash_context_t * gp_tcap_context=NULL;
#line 1 "packet-tcap-ett.c"
static gint ett_tcap_DialoguePDU = -1;
static gint ett_tcap_ExternalPDU_U = -1;
-static gint ett_tcap_UserInformation_U = -1;
static gint ett_tcap_AARQ_apdu_U = -1;
static gint ett_tcap_T_protocol_versionrq = -1;
static gint ett_tcap_AARQ_user_information = -1;
static gint ett_tcap_AARE_apdu_U = -1;
static gint ett_tcap_T_protocol_versionre = -1;
+static gint ett_tcap_AARE_user_information = -1;
static gint ett_tcap_ABRT_apdu_U = -1;
+static gint ett_tcap_ABRT_user_information = -1;
static gint ett_tcap_Associate_source_diagnostic = -1;
static gint ett_tcap_TCMessage = -1;
static gint ett_tcap_Unidirectional = -1;
@@ -207,12 +189,6 @@ static gint ett_tcap_T_invokeIDRej = -1;
static gint ett_tcap_T_problem = -1;
static gint ett_tcap_OPERATION = -1;
static gint ett_tcap_ERROR = -1;
-static gint ett_tcap_TransactionPDU = -1;
-static gint ett_tcap_DialoguePortionANSI_U = -1;
-static gint ett_tcap_T_applicationContext = -1;
-static gint ett_tcap_T_securityContext = -1;
-static gint ett_tcap_Confidentiality = -1;
-static gint ett_tcap_T_confidentialityId = -1;
static gint ett_tcap_ErrorCode = -1;
static gint ett_tcap_UniDialoguePDU = -1;
static gint ett_tcap_AUDT_apdu_U = -1;
@@ -245,9 +221,7 @@ static dissector_handle_t ansi_tcap_handle;
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_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;
static GHashTable* itu_sub_dissectors = NULL;
@@ -307,7 +281,7 @@ dissect_tcap_T_protocol_versionrq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_tcap_AARQ_application_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 104 "tcap.cnf"
+#line 99 "tcap.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &cur_oid);
tcap_private.oid= (void*) cur_oid;
@@ -384,7 +358,7 @@ dissect_tcap_T_protocol_versionre(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_tcap_AARE_application_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 109 "tcap.cnf"
+#line 104 "tcap.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &cur_oid);
tcap_private.oid= (void*) cur_oid;
@@ -467,23 +441,14 @@ dissect_tcap_Associate_source_diagnostic(gboolean implicit_tag _U_, tvbuff_t *tv
}
-
-static int
-dissect_tcap_User_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 71 "tcap.cnf"
-
-return dissect_tcap_UserInformation(FALSE, tvb, offset, actx, tree, -1);
-
-
-
- return offset;
-}
-
-
+static const ber_sequence_t AARE_user_information_sequence_of[1] = {
+ { &hf_tcap_aare_user_information_item, BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_tcap_EXTERNAL },
+};
static int
dissect_tcap_AARE_user_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_tcap_User_information(implicit_tag, tvb, offset, actx, tree, hf_index);
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ AARE_user_information_sequence_of, hf_index, ett_tcap_AARE_user_information);
return offset;
}
@@ -533,10 +498,14 @@ dissect_tcap_ABRT_source(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
}
+static const ber_sequence_t ABRT_user_information_sequence_of[1] = {
+ { &hf_tcap_abrt_user_information_item, BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_tcap_EXTERNAL },
+};
static int
dissect_tcap_ABRT_user_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_tcap_User_information(implicit_tag, tvb, offset, actx, tree, hf_index);
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ ABRT_user_information_sequence_of, hf_index, ett_tcap_ABRT_user_information);
return offset;
}
@@ -645,77 +614,6 @@ dissect_tcap_ExternalPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
-dissect_tcap_UserInfoOID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 117 "tcap.cnf"
- offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &tcapext_oid);
-
-
-
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_ExternUserInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 121 "tcap.cnf"
-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 comp_offset;
-
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
-
-dissect_tcap_TheExternUserInfo(implicit_tag, next_tvb, 0, actx, tcap_top_tree, hf_index);
-
-return comp_offset+len;
-
-
-
- return offset;
-}
-
-
-static const ber_sequence_t UserInformation_U_sequence[] = {
- { &hf_tcap_useroid , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_tcap_UserInfoOID },
- { &hf_tcap_externuserinfo , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_tcap_ExternUserInfo },
- { NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_tcap_UserInformation_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- UserInformation_U_sequence, hf_index, ett_tcap_UserInformation_U);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_UserInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
- hf_index, BER_CLASS_UNI, 8, TRUE, dissect_tcap_UserInformation_U);
-
- return offset;
-}
-
-
-
-static int
dissect_tcap_Applicationcontext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
@@ -1063,7 +961,7 @@ static const ber_choice_t Component_choice[] = {
static int
dissect_tcap_Component(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 76 "tcap.cnf"
+#line 71 "tcap.cnf"
tvbuff_t *next_tvb;
gint8 class;
gboolean pc;
@@ -1145,7 +1043,7 @@ dissect_tcap_OCTET_STRING_SIZE_1_4(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
dissect_tcap_OrigTransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 144 "tcap.cnf"
+#line 109 "tcap.cnf"
tvbuff_t *parameter_tvb;
guint8 len, i;
proto_item *tid_item;
@@ -1198,7 +1096,7 @@ static const ber_sequence_t Begin_sequence[] = {
static int
dissect_tcap_Begin(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 218 "tcap.cnf"
+#line 183 "tcap.cnf"
gp_tcapsrt_info->ope=TC_BEGIN;
/* Do not change col_add_str() to col_append_str() here: we _want_ this call
@@ -1221,7 +1119,7 @@ if (check_col(actx->pinfo->cinfo, COL_INFO))
static int
dissect_tcap_DestTransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 183 "tcap.cnf"
+#line 148 "tcap.cnf"
tvbuff_t *parameter_tvb;
guint8 len , i;
proto_item *tid_item;
@@ -1271,7 +1169,7 @@ static const ber_sequence_t End_sequence[] = {
static int
dissect_tcap_End(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 233 "tcap.cnf"
+#line 198 "tcap.cnf"
gp_tcapsrt_info->ope=TC_END;
if (check_col(actx->pinfo->cinfo, COL_INFO))
@@ -1294,7 +1192,7 @@ static const ber_sequence_t Continue_sequence[] = {
static int
dissect_tcap_Continue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 241 "tcap.cnf"
+#line 206 "tcap.cnf"
gp_tcapsrt_info->ope=TC_CONT;
if (check_col(actx->pinfo->cinfo, COL_INFO))
@@ -1366,7 +1264,7 @@ static const ber_sequence_t Abort_sequence[] = {
static int
dissect_tcap_Abort(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 249 "tcap.cnf"
+#line 214 "tcap.cnf"
gp_tcapsrt_info->ope=TC_ABORT;
if (check_col(actx->pinfo->cinfo, COL_INFO))
@@ -1379,312 +1277,21 @@ if (check_col(actx->pinfo->cinfo, COL_INFO))
}
-
-static int
-dissect_tcap_TransactionID_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 281 "tcap.cnf"
-
-tvbuff_t *next_tvb;
-guint8 len;
-
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- &next_tvb);
-
-
-if(next_tvb) {
- tcap_private.TransactionID_str = tvb_bytes_to_str(next_tvb, 0,tvb_length(next_tvb));
- len = tvb_length_remaining(next_tvb, 0);
- switch(len) {
- case 1:
- gp_tcapsrt_info->src_tid=tvb_get_guint8(next_tvb, 0);
- break;
- case 2:
- gp_tcapsrt_info->src_tid=tvb_get_ntohs(next_tvb, 0);
- break;
- case 4:
- gp_tcapsrt_info->src_tid=tvb_get_ntohl(next_tvb, 0);
- break;
- default:
- gp_tcapsrt_info->src_tid=0;
- break;
- }
-}
-
-
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_TransactionID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
- hf_index, BER_CLASS_PRI, 7, TRUE, dissect_tcap_TransactionID_U);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_ProtocolVersion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
- hf_index, BER_CLASS_PRI, 26, TRUE, dissect_tcap_OCTET_STRING_SIZE_1);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_IntegerApplicationContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
- hf_index, BER_CLASS_PRI, 27, TRUE, dissect_tcap_INTEGER);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_ObjectIDApplicationContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
- hf_index, BER_CLASS_PRI, 28, TRUE, dissect_tcap_OBJECT_IDENTIFIER);
-
- return offset;
-}
-
-
-static const value_string tcap_T_applicationContext_vals[] = {
- { 27, "integerApplicationId" },
- { 28, "objectApplicationId" },
- { 0, NULL }
-};
-
-static const ber_choice_t T_applicationContext_choice[] = {
- { 27, &hf_tcap_integerApplicationId, BER_CLASS_PRI, 27, BER_FLAGS_NOOWNTAG, dissect_tcap_IntegerApplicationContext },
- { 28, &hf_tcap_objectApplicationId, BER_CLASS_PRI, 28, BER_FLAGS_NOOWNTAG, dissect_tcap_ObjectIDApplicationContext },
- { 0, NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_tcap_T_applicationContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_choice(actx, tree, tvb, offset,
- T_applicationContext_choice, hf_index, ett_tcap_T_applicationContext,
- NULL);
-
- return offset;
-}
-
-
-static const value_string tcap_T_securityContext_vals[] = {
- { 0, "integerSecurityId" },
- { 1, "objectSecurityId" },
- { 0, NULL }
-};
-
-static const ber_choice_t T_securityContext_choice[] = {
- { 0, &hf_tcap_integerSecurityId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_tcap_INTEGER },
- { 1, &hf_tcap_objectSecurityId, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tcap_OBJECT_IDENTIFIER },
- { 0, NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_tcap_T_securityContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_choice(actx, tree, tvb, offset,
- T_securityContext_choice, hf_index, ett_tcap_T_securityContext,
- NULL);
-
- return offset;
-}
-
-
-static const value_string tcap_T_confidentialityId_vals[] = {
- { 0, "integerConfidentialityId" },
- { 1, "objectConfidentialityId" },
- { 0, NULL }
-};
-
-static const ber_choice_t T_confidentialityId_choice[] = {
- { 0, &hf_tcap_integerConfidentialityId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_tcap_INTEGER },
- { 1, &hf_tcap_objectConfidentialityId, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tcap_OBJECT_IDENTIFIER },
- { 0, NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_tcap_T_confidentialityId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_choice(actx, tree, tvb, offset,
- T_confidentialityId_choice, hf_index, ett_tcap_T_confidentialityId,
- NULL);
-
- return offset;
-}
-
-
-static const ber_sequence_t Confidentiality_sequence[] = {
- { &hf_tcap_confidentialityId, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_tcap_T_confidentialityId },
- { NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_tcap_Confidentiality(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- Confidentiality_sequence, hf_index, ett_tcap_Confidentiality);
-
- return offset;
-}
-
-
-static const ber_sequence_t DialoguePortionANSI_U_sequence[] = {
- { &hf_tcap_version , BER_CLASS_PRI, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_tcap_ProtocolVersion },
- { &hf_tcap_applicationContext, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_tcap_T_applicationContext },
- { &hf_tcap_userInformation, BER_CLASS_UNI, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_tcap_UserInformation },
- { &hf_tcap_securityContext, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_tcap_T_securityContext },
- { &hf_tcap_confidentiality, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tcap_Confidentiality },
- { NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_tcap_DialoguePortionANSI_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- DialoguePortionANSI_U_sequence, hf_index, ett_tcap_DialoguePortionANSI_U);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_DialoguePortionANSI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
- hf_index, BER_CLASS_PRI, 25, TRUE, dissect_tcap_DialoguePortionANSI_U);
-
- return offset;
-}
-
-
-static const ber_sequence_t TransactionPDU_sequence[] = {
- { &hf_tcap_identifier , BER_CLASS_PRI, 7, BER_FLAGS_NOOWNTAG, dissect_tcap_TransactionID },
- { &hf_tcap_dialoguePortionansi, BER_CLASS_PRI, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_tcap_DialoguePortionANSI },
- { NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_tcap_TransactionPDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- TransactionPDU_sequence, hf_index, ett_tcap_TransactionPDU);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_T_ansiqueryWithPerm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 257 "tcap.cnf"
-gp_tcapsrt_info->ope=TC_ANSI_ALL;
-if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_set_str(actx->pinfo->cinfo, COL_INFO, "QueryWithPerm ");
-
- offset = dissect_tcap_TransactionPDU(implicit_tag, tvb, offset, actx, tree, hf_index);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_T_ansiqueryWithoutPerm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 261 "tcap.cnf"
-gp_tcapsrt_info->ope=TC_ANSI_ALL;
-if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_set_str(actx->pinfo->cinfo, COL_INFO, "QueryWithOutPerm ");
-
- offset = dissect_tcap_TransactionPDU(implicit_tag, tvb, offset, actx, tree, hf_index);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_T_ansiresponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 265 "tcap.cnf"
-gp_tcapsrt_info->ope=TC_ANSI_ALL;
-if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_set_str(actx->pinfo->cinfo, COL_INFO, "Response ");
-
- offset = dissect_tcap_TransactionPDU(implicit_tag, tvb, offset, actx, tree, hf_index);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_T_ansiconversationWithPerm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 269 "tcap.cnf"
-gp_tcapsrt_info->ope=TC_ANSI_ALL;
-if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_set_str(actx->pinfo->cinfo, COL_INFO, "ConversationWithPerm ");
-
- offset = dissect_tcap_TransactionPDU(implicit_tag, tvb, offset, actx, tree, hf_index);
-
- return offset;
-}
-
-
-
-static int
-dissect_tcap_T_ansiconversationWithoutPerm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 273 "tcap.cnf"
-gp_tcapsrt_info->ope=TC_ANSI_ALL;
-if (check_col(actx->pinfo->cinfo, COL_INFO))
- col_set_str(actx->pinfo->cinfo, COL_INFO, "ConversationWithoutPerm ");
-
-
- offset = dissect_tcap_TransactionPDU(implicit_tag, tvb, offset, actx, tree, hf_index);
-
- return offset;
-}
-
-
static const value_string tcap_TCMessage_vals[] = {
- { 0, "unidirectional" },
- { 1, "begin" },
- { 2, "end" },
- { 3, "continue" },
- { 4, "abort" },
- { 5, "ansiqueryWithPerm" },
- { 6, "ansiqueryWithoutPerm" },
- { 7, "ansiresponse" },
- { 8, "ansiconversationWithPerm" },
- { 9, "ansiconversationWithoutPerm" },
+ { 1, "unidirectional" },
+ { 2, "begin" },
+ { 4, "end" },
+ { 5, "continue" },
+ { 7, "abort" },
{ 0, NULL }
};
static const ber_choice_t TCMessage_choice[] = {
- { 0, &hf_tcap_unidirectional , BER_CLASS_APP, 1, BER_FLAGS_IMPLTAG, dissect_tcap_Unidirectional },
- { 1, &hf_tcap_begin , BER_CLASS_APP, 2, BER_FLAGS_IMPLTAG, dissect_tcap_Begin },
- { 2, &hf_tcap_end , BER_CLASS_APP, 4, BER_FLAGS_IMPLTAG, dissect_tcap_End },
- { 3, &hf_tcap_continue , BER_CLASS_APP, 5, BER_FLAGS_IMPLTAG, dissect_tcap_Continue },
- { 4, &hf_tcap_abort , BER_CLASS_APP, 7, BER_FLAGS_IMPLTAG, dissect_tcap_Abort },
- { 5, &hf_tcap_ansiqueryWithPerm, BER_CLASS_PRI, 2, BER_FLAGS_IMPLTAG, dissect_tcap_T_ansiqueryWithPerm },
- { 6, &hf_tcap_ansiqueryWithoutPerm, BER_CLASS_PRI, 3, BER_FLAGS_IMPLTAG, dissect_tcap_T_ansiqueryWithoutPerm },
- { 7, &hf_tcap_ansiresponse , BER_CLASS_PRI, 4, BER_FLAGS_IMPLTAG, dissect_tcap_T_ansiresponse },
- { 8, &hf_tcap_ansiconversationWithPerm, BER_CLASS_PRI, 5, BER_FLAGS_IMPLTAG, dissect_tcap_T_ansiconversationWithPerm },
- { 9, &hf_tcap_ansiconversationWithoutPerm, BER_CLASS_PRI, 6, BER_FLAGS_IMPLTAG, dissect_tcap_T_ansiconversationWithoutPerm },
+ { 1, &hf_tcap_unidirectional , BER_CLASS_APP, 1, BER_FLAGS_IMPLTAG, dissect_tcap_Unidirectional },
+ { 2, &hf_tcap_begin , BER_CLASS_APP, 2, BER_FLAGS_IMPLTAG, dissect_tcap_Begin },
+ { 4, &hf_tcap_end , BER_CLASS_APP, 4, BER_FLAGS_IMPLTAG, dissect_tcap_End },
+ { 5, &hf_tcap_continue , BER_CLASS_APP, 5, BER_FLAGS_IMPLTAG, dissect_tcap_Continue },
+ { 7, &hf_tcap_abort , BER_CLASS_APP, 7, BER_FLAGS_IMPLTAG, dissect_tcap_Abort },
{ 0, NULL, 0, 0, 0, NULL }
};
@@ -1738,7 +1345,7 @@ dissect_tcap_T_protocol_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
dissect_tcap_AUDT_application_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 99 "tcap.cnf"
+#line 94 "tcap.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &cur_oid);
tcap_private.oid= (void*) cur_oid;
@@ -1822,7 +1429,7 @@ static void dissect_UniDialoguePDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_
/*--- End of included file: packet-tcap-fn.c ---*/
-#line 146 "packet-tcap-template.c"
+#line 144 "packet-tcap-template.c"
@@ -1945,7 +1552,7 @@ proto_reg_handoff_tcap(void)
/*--- End of included file: packet-tcap-dis-tab.c ---*/
-#line 261 "packet-tcap-template.c"
+#line 259 "packet-tcap-template.c"
}
static void init_tcap(void);
@@ -2038,14 +1645,6 @@ proto_register_tcap(void)
{ "dialog", "tcap.dialog",
FT_BYTES, BASE_HEX, NULL, 0,
"tcap.Dialog1", HFILL }},
- { &hf_tcap_useroid,
- { "useroid", "tcap.useroid",
- FT_OID, BASE_NONE, NULL, 0,
- "tcap.UserInfoOID", HFILL }},
- { &hf_tcap_externuserinfo,
- { "externuserinfo", "tcap.externuserinfo",
- FT_BYTES, BASE_HEX, NULL, 0,
- "tcap.ExternUserInfo", HFILL }},
{ &hf_tcap_protocol_versionrq,
{ "protocol-versionrq", "tcap.protocol_versionrq",
FT_BYTES, BASE_HEX, NULL, 0,
@@ -2080,16 +1679,24 @@ proto_register_tcap(void)
"tcap.Associate_source_diagnostic", HFILL }},
{ &hf_tcap_aare_user_information,
{ "user-information", "tcap.user_information",
- FT_BYTES, BASE_HEX, NULL, 0,
+ FT_UINT32, BASE_DEC, NULL, 0,
"tcap.AARE_user_information", HFILL }},
+ { &hf_tcap_aare_user_information_item,
+ { "Item", "tcap.user_information_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "tcap.EXTERNAL", HFILL }},
{ &hf_tcap_abort_source,
{ "abort-source", "tcap.abort_source",
FT_INT32, BASE_DEC, VALS(tcap_ABRT_source_vals), 0,
"tcap.ABRT_source", HFILL }},
{ &hf_tcap_abrt_user_information,
{ "user-information", "tcap.user_information",
- FT_BYTES, BASE_HEX, NULL, 0,
+ FT_UINT32, BASE_DEC, NULL, 0,
"tcap.ABRT_user_information", HFILL }},
+ { &hf_tcap_abrt_user_information_item,
+ { "Item", "tcap.user_information_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "tcap.EXTERNAL", HFILL }},
{ &hf_tcap_dialogue_service_user,
{ "dialogue-service-user", "tcap.dialogue_service_user",
FT_INT32, BASE_DEC, VALS(tcap_T_dialogue_service_user_vals), 0,
@@ -2118,26 +1725,6 @@ proto_register_tcap(void)
{ "abort", "tcap.abort",
FT_NONE, BASE_NONE, NULL, 0,
"tcap.Abort", HFILL }},
- { &hf_tcap_ansiqueryWithPerm,
- { "ansiqueryWithPerm", "tcap.ansiqueryWithPerm",
- FT_NONE, BASE_NONE, NULL, 0,
- "tcap.T_ansiqueryWithPerm", HFILL }},
- { &hf_tcap_ansiqueryWithoutPerm,
- { "ansiqueryWithoutPerm", "tcap.ansiqueryWithoutPerm",
- FT_NONE, BASE_NONE, NULL, 0,
- "tcap.T_ansiqueryWithoutPerm", HFILL }},
- { &hf_tcap_ansiresponse,
- { "ansiresponse", "tcap.ansiresponse",
- FT_NONE, BASE_NONE, NULL, 0,
- "tcap.T_ansiresponse", HFILL }},
- { &hf_tcap_ansiconversationWithPerm,
- { "ansiconversationWithPerm", "tcap.ansiconversationWithPerm",
- FT_NONE, BASE_NONE, NULL, 0,
- "tcap.T_ansiconversationWithPerm", HFILL }},
- { &hf_tcap_ansiconversationWithoutPerm,
- { "ansiconversationWithoutPerm", "tcap.ansiconversationWithoutPerm",
- FT_NONE, BASE_NONE, NULL, 0,
- "tcap.T_ansiconversationWithoutPerm", HFILL }},
{ &hf_tcap_dialoguePortion,
{ "dialoguePortion", "tcap.dialoguePortion",
FT_BYTES, BASE_HEX, NULL, 0,
@@ -2254,62 +1841,6 @@ proto_register_tcap(void)
{ "globalValue", "tcap.globalValue",
FT_OID, BASE_NONE, NULL, 0,
"tcap.OBJECT_IDENTIFIER", HFILL }},
- { &hf_tcap_identifier,
- { "identifier", "tcap.identifier",
- FT_BYTES, BASE_HEX, NULL, 0,
- "tcap.TransactionID", HFILL }},
- { &hf_tcap_dialoguePortionansi,
- { "dialoguePortionansi", "tcap.dialoguePortionansi",
- FT_NONE, BASE_NONE, NULL, 0,
- "tcap.DialoguePortionANSI", HFILL }},
- { &hf_tcap_version,
- { "version", "tcap.version",
- FT_BYTES, BASE_HEX, NULL, 0,
- "tcap.ProtocolVersion", HFILL }},
- { &hf_tcap_applicationContext,
- { "applicationContext", "tcap.applicationContext",
- FT_UINT32, BASE_DEC, VALS(tcap_T_applicationContext_vals), 0,
- "tcap.T_applicationContext", HFILL }},
- { &hf_tcap_integerApplicationId,
- { "integerApplicationId", "tcap.integerApplicationId",
- FT_INT32, BASE_DEC, NULL, 0,
- "tcap.IntegerApplicationContext", HFILL }},
- { &hf_tcap_objectApplicationId,
- { "objectApplicationId", "tcap.objectApplicationId",
- FT_OID, BASE_NONE, NULL, 0,
- "tcap.ObjectIDApplicationContext", HFILL }},
- { &hf_tcap_userInformation,
- { "userInformation", "tcap.userInformation",
- FT_NONE, BASE_NONE, NULL, 0,
- "tcap.UserInformation", HFILL }},
- { &hf_tcap_securityContext,
- { "securityContext", "tcap.securityContext",
- FT_UINT32, BASE_DEC, VALS(tcap_T_securityContext_vals), 0,
- "tcap.T_securityContext", HFILL }},
- { &hf_tcap_integerSecurityId,
- { "integerSecurityId", "tcap.integerSecurityId",
- FT_INT32, BASE_DEC, NULL, 0,
- "tcap.INTEGER", HFILL }},
- { &hf_tcap_objectSecurityId,
- { "objectSecurityId", "tcap.objectSecurityId",
- FT_OID, BASE_NONE, NULL, 0,
- "tcap.OBJECT_IDENTIFIER", HFILL }},
- { &hf_tcap_confidentiality,
- { "confidentiality", "tcap.confidentiality",
- FT_NONE, BASE_NONE, NULL, 0,
- "tcap.Confidentiality", HFILL }},
- { &hf_tcap_confidentialityId,
- { "confidentialityId", "tcap.confidentialityId",
- FT_UINT32, BASE_DEC, VALS(tcap_T_confidentialityId_vals), 0,
- "tcap.T_confidentialityId", HFILL }},
- { &hf_tcap_integerConfidentialityId,
- { "integerConfidentialityId", "tcap.integerConfidentialityId",
- FT_INT32, BASE_DEC, NULL, 0,
- "tcap.INTEGER", HFILL }},
- { &hf_tcap_objectConfidentialityId,
- { "objectConfidentialityId", "tcap.objectConfidentialityId",
- FT_OID, BASE_NONE, NULL, 0,
- "tcap.OBJECT_IDENTIFIER", HFILL }},
{ &hf_tcap_nationaler,
{ "nationaler", "tcap.nationaler",
FT_INT32, BASE_DEC, NULL, 0,
@@ -2352,7 +1883,7 @@ proto_register_tcap(void)
"", HFILL }},
/*--- End of included file: packet-tcap-hfarr.c ---*/
-#line 323 "packet-tcap-template.c"
+#line 321 "packet-tcap-template.c"
};
/* Setup protocol subtree array */
@@ -2367,13 +1898,14 @@ proto_register_tcap(void)
#line 1 "packet-tcap-ettarr.c"
&ett_tcap_DialoguePDU,
&ett_tcap_ExternalPDU_U,
- &ett_tcap_UserInformation_U,
&ett_tcap_AARQ_apdu_U,
&ett_tcap_T_protocol_versionrq,
&ett_tcap_AARQ_user_information,
&ett_tcap_AARE_apdu_U,
&ett_tcap_T_protocol_versionre,
+ &ett_tcap_AARE_user_information,
&ett_tcap_ABRT_apdu_U,
+ &ett_tcap_ABRT_user_information,
&ett_tcap_Associate_source_diagnostic,
&ett_tcap_TCMessage,
&ett_tcap_Unidirectional,
@@ -2393,12 +1925,6 @@ proto_register_tcap(void)
&ett_tcap_T_problem,
&ett_tcap_OPERATION,
&ett_tcap_ERROR,
- &ett_tcap_TransactionPDU,
- &ett_tcap_DialoguePortionANSI_U,
- &ett_tcap_T_applicationContext,
- &ett_tcap_T_securityContext,
- &ett_tcap_Confidentiality,
- &ett_tcap_T_confidentialityId,
&ett_tcap_ErrorCode,
&ett_tcap_UniDialoguePDU,
&ett_tcap_AUDT_apdu_U,
@@ -2406,7 +1932,7 @@ proto_register_tcap(void)
&ett_tcap_AUDT_user_information,
/*--- End of included file: packet-tcap-ettarr.c ---*/
-#line 333 "packet-tcap-template.c"
+#line 331 "packet-tcap-template.c"
};
/*static enum_val_t tcap_options[] = {
@@ -2726,25 +2252,6 @@ dissect_tcap_ITU_ComponentPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs
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_)
-{
- /*
- * ok lets look at the oid and ssn and try and find a dissector, otherwise lets decode it.
- */
- ber_oid_dissector_table = find_dissector_table("ber.oid");
-
- if (ber_oid_dissector_table && tcapext_oid){
- if(!dissector_try_string(ber_oid_dissector_table, tcapext_oid, tvb, actx->pinfo, tree))
- {
- return dissect_tcap_param(actx,tree,tvb,0);
- }
- }
- return offset;
-}
-
-
void call_tcap_dissector(dissector_handle_t handle, tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree) {
requested_subdissector_handle = handle;