diff options
Diffstat (limited to 'epan/dissectors/packet-acse.c')
-rw-r--r-- | epan/dissectors/packet-acse.c | 1000 |
1 files changed, 381 insertions, 619 deletions
diff --git a/epan/dissectors/packet-acse.c b/epan/dissectors/packet-acse.c index 9861fd8182..b5a0091b5e 100644 --- a/epan/dissectors/packet-acse.c +++ b/epan/dissectors/packet-acse.c @@ -1,7 +1,7 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Wireshark dissector compiler */ /* packet-acse.c */ -/* ../../tools/asn2wrs.py -b -e -p acse -c acse.cnf -s packet-acse-template acse.asn */ +/* ../../tools/asn2wrs.py -b -e -X -T -p acse -c acse.cnf -s packet-acse-template acse.asn */ /* Input file: packet-acse-template.c */ @@ -109,7 +109,7 @@ static int hf_acse_calling_asoi_tag = -1; /* ASOI_tag */ static int hf_acse_aARQ_user_information = -1; /* Association_data */ static int hf_acse_aARE_protocol_version = -1; /* T_AARE_protocol_version */ static int hf_acse_aARE_aSO_context_name = -1; /* T_AARE_aSO_context_name */ -static int hf_acse_aARE_result = -1; /* Associate_result */ +static int hf_acse_result = -1; /* Associate_result */ static int hf_acse_result_source_diagnostic = -1; /* Associate_source_diagnostic */ static int hf_acse_responding_AP_title = -1; /* AP_title */ static int hf_acse_responding_AE_qualifier = -1; /* AE_qualifier */ @@ -190,19 +190,19 @@ static gint ett_acse = -1; /*--- Included file: packet-acse-ett.c ---*/ #line 1 "packet-acse-ett.c" -static gint ett_acse_EXTERNALt = -1; +static gint ett_acse_EXTERNALt_U = -1; static gint ett_acse_T_encoding = -1; static gint ett_acse_ACSE_apdu = -1; -static gint ett_acse_AARQ_apdu = -1; +static gint ett_acse_AARQ_apdu_U = -1; static gint ett_acse_T_AARQ_protocol_version = -1; -static gint ett_acse_AARE_apdu = -1; +static gint ett_acse_AARE_apdu_U = -1; static gint ett_acse_T_AARE_protocol_version = -1; -static gint ett_acse_RLRQ_apdu = -1; -static gint ett_acse_RLRE_apdu = -1; -static gint ett_acse_ABRT_apdu = -1; -static gint ett_acse_A_DT_apdu = -1; -static gint ett_acse_ACRQ_apdu = -1; -static gint ett_acse_ACRP_apdu = -1; +static gint ett_acse_RLRQ_apdu_U = -1; +static gint ett_acse_RLRE_apdu_U = -1; +static gint ett_acse_ABRT_apdu_U = -1; +static gint ett_acse_A_DT_apdu_U = -1; +static gint ett_acse_ACRQ_apdu_U = -1; +static gint ett_acse_ACRP_apdu_U = -1; static gint ett_acse_ACSE_requirements = -1; static gint ett_acse_AP_title = -1; static gint ett_acse_ASO_qualifier = -1; @@ -306,9 +306,6 @@ find_oid_by_ctx_id(packet_info *pinfo _U_, guint32 idx) /*--- Included file: packet-acse-fn.c ---*/ #line 1 "packet-acse-fn.c" -/*--- Fields for imported types ---*/ - - static int @@ -317,15 +314,12 @@ dissect_acse_T_direct_reference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in return offset; } -static int dissect_direct_reference(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_direct_reference(FALSE, tvb, offset, actx, tree, hf_acse_direct_reference); -} static int dissect_acse_T_indirect_reference(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 84 "acse.cnf" +#line 67 "acse.cnf" char *oid; offset = dissect_ber_integer(FALSE, actx, tree, tvb, offset, hf_acse_indirect_reference, @@ -343,9 +337,6 @@ dissect_acse_T_indirect_reference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, return offset; } -static int dissect_indirect_reference(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_indirect_reference(FALSE, tvb, offset, actx, tree, hf_acse_indirect_reference); -} @@ -357,39 +348,30 @@ dissect_acse_ObjectDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int return offset; } -static int dissect_data_value_descriptor(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ObjectDescriptor(FALSE, tvb, offset, actx, tree, hf_acse_data_value_descriptor); -} static int dissect_acse_T_single_ASN1_type(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 101 "acse.cnf" +#line 84 "acse.cnf" offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, top_tree ? top_tree : tree); return offset; } -static int dissect_single_ASN1_type(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_single_ASN1_type(FALSE, tvb, offset, actx, tree, hf_acse_single_ASN1_type); -} static int dissect_acse_T_octet_aligned(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 "acse.cnf" +#line 87 "acse.cnf" offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, top_tree ? top_tree : tree); return offset; } -static int dissect_octet_aligned_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_octet_aligned(TRUE, tvb, offset, actx, tree, hf_acse_octet_aligned); -} @@ -401,12 +383,6 @@ dissect_acse_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset return offset; } -static int dissect_arbitrary_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_BIT_STRING(TRUE, tvb, offset, actx, tree, hf_acse_arbitrary); -} -static int dissect_bitstring_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_BIT_STRING(TRUE, tvb, offset, actx, tree, hf_acse_bitstring); -} static const value_string acse_T_encoding_vals[] = { @@ -416,63 +392,48 @@ static const value_string acse_T_encoding_vals[] = { { 0, NULL } }; -static const ber_old_choice_t T_encoding_choice[] = { - { 0, BER_CLASS_CON, 0, 0, dissect_single_ASN1_type }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_octet_aligned_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_arbitrary_impl }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t T_encoding_choice[] = { + { 0, &hf_acse_single_ASN1_type, BER_CLASS_CON, 0, 0, dissect_acse_T_single_ASN1_type }, + { 1, &hf_acse_octet_aligned , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_acse_T_octet_aligned }, + { 2, &hf_acse_arbitrary , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_acse_BIT_STRING }, + { 0, NULL, 0, 0, 0, NULL } }; static int dissect_acse_T_encoding(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_old_choice(actx, tree, tvb, offset, - T_encoding_choice, hf_index, ett_acse_T_encoding, - NULL); + offset = dissect_ber_choice(actx, tree, tvb, offset, + T_encoding_choice, hf_index, ett_acse_T_encoding, + NULL); return offset; } -static int dissect_encoding(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_encoding(FALSE, tvb, offset, actx, tree, hf_acse_encoding); -} -static const ber_old_sequence_t EXTERNALt_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_direct_reference }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_indirect_reference }, - { BER_CLASS_UNI, BER_UNI_TAG_ObjectDescriptor, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_data_value_descriptor }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_encoding }, - { 0, 0, 0, NULL } +static const ber_sequence_t EXTERNALt_U_sequence[] = { + { &hf_acse_direct_reference, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_acse_T_direct_reference }, + { &hf_acse_indirect_reference, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_acse_T_indirect_reference }, + { &hf_acse_data_value_descriptor, BER_CLASS_UNI, BER_UNI_TAG_ObjectDescriptor, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_acse_ObjectDescriptor }, + { &hf_acse_encoding , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_acse_T_encoding }, + { NULL, 0, 0, 0, NULL } }; -int -dissect_acse_EXTERNALt(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 42 "acse.cnf" - gint8 class; - gboolean pc, ind_field; - gint32 tag; - guint32 len1; +static int +dissect_acse_EXTERNALt_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, + EXTERNALt_U_sequence, hf_index, ett_acse_EXTERNALt_U); + + return offset; +} - if(!implicit_tag) { - /* XXX asn2wrs can not yet handle tagged assignment so for the - * time being just remove this tag manually inside the EXTERNAL - * dissector. - */ - offset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &class, &pc, &tag); - offset = dissect_ber_length(actx->pinfo, tree, tvb, offset, &len1, &ind_field); - } - offset = dissect_ber_old_sequence(TRUE, actx, tree, tvb, offset, - EXTERNALt_sequence, hf_index, ett_acse_EXTERNALt); +int +dissect_acse_EXTERNALt(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_acse_EXTERNALt_U); return offset; } -static int dissect_Association_data_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_EXTERNALt(FALSE, tvb, offset, actx, tree, hf_acse_Association_data_item); -} -static int dissect_external_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_EXTERNALt(TRUE, tvb, offset, actx, tree, hf_acse_external); -} static const asn_namedbit T_AARQ_protocol_version_bits[] = { @@ -488,9 +449,6 @@ dissect_acse_T_AARQ_protocol_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U return offset; } -static int dissect_aARQ_protocol_version_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_AARQ_protocol_version(TRUE, tvb, offset, actx, tree, hf_acse_aARQ_protocol_version); -} @@ -500,15 +458,12 @@ dissect_acse_ASO_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int return offset; } -static int dissect_ASO_context_name_list_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASO_context_name(FALSE, tvb, offset, actx, tree, hf_acse_ASO_context_name_list_item); -} static int dissect_acse_T_AARQ_aSO_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 68 "acse.cnf" +#line 51 "acse.cnf" offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset, hf_index, &object_identifier_id); @@ -516,9 +471,6 @@ dissect_acse_T_AARQ_aSO_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U return offset; } -static int dissect_aARQ_aSO_context_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_AARQ_aSO_context_name(FALSE, tvb, offset, actx, tree, hf_acse_aARQ_aSO_context_name); -} @@ -528,9 +480,6 @@ dissect_acse_AP_title_form1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of return offset; } -static int dissect_ap_title_form1(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AP_title_form1(FALSE, tvb, offset, actx, tree, hf_acse_ap_title_form1); -} @@ -540,9 +489,6 @@ dissect_acse_AP_title_form2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of return offset; } -static int dissect_ap_title_form2(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AP_title_form2(FALSE, tvb, offset, actx, tree, hf_acse_ap_title_form2); -} @@ -554,9 +500,6 @@ dissect_acse_AP_title_form3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of return offset; } -static int dissect_ap_title_form3(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AP_title_form3(FALSE, tvb, offset, actx, tree, hf_acse_ap_title_form3); -} const value_string acse_AP_title_vals[] = { @@ -566,30 +509,21 @@ const value_string acse_AP_title_vals[] = { { 0, NULL } }; -static const ber_old_choice_t AP_title_choice[] = { - { 0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ap_title_form1 }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ap_title_form2 }, - { 2, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_ap_title_form3 }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t AP_title_choice[] = { + { 0, &hf_acse_ap_title_form1 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_acse_AP_title_form1 }, + { 1, &hf_acse_ap_title_form2 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_acse_AP_title_form2 }, + { 2, &hf_acse_ap_title_form3 , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_acse_AP_title_form3 }, + { 0, NULL, 0, 0, 0, NULL } }; int dissect_acse_AP_title(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_old_choice(actx, tree, tvb, offset, - AP_title_choice, hf_index, ett_acse_AP_title, - NULL); + offset = dissect_ber_choice(actx, tree, tvb, offset, + AP_title_choice, hf_index, ett_acse_AP_title, + NULL); return offset; } -static int dissect_called_AP_title(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_acse_called_AP_title); -} -static int dissect_calling_AP_title(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_acse_calling_AP_title); -} -static int dissect_responding_AP_title(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AP_title(FALSE, tvb, offset, actx, tree, hf_acse_responding_AP_title); -} @@ -599,9 +533,6 @@ dissect_acse_ASO_qualifier_form1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i return offset; } -static int dissect_aso_qualifier_form1(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASO_qualifier_form1(FALSE, tvb, offset, actx, tree, hf_acse_aso_qualifier_form1); -} @@ -612,9 +543,6 @@ dissect_acse_ASO_qualifier_form2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i return offset; } -static int dissect_aso_qualifier_form2(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASO_qualifier_form2(FALSE, tvb, offset, actx, tree, hf_acse_aso_qualifier_form2); -} @@ -626,9 +554,6 @@ dissect_acse_ASO_qualifier_form3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i return offset; } -static int dissect_aso_qualifier_form3(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASO_qualifier_form3(FALSE, tvb, offset, actx, tree, hf_acse_aso_qualifier_form3); -} @@ -639,9 +564,6 @@ dissect_acse_ASO_qualifier_form_octets(gboolean implicit_tag _U_, tvbuff_t *tvb return offset; } -static int dissect_aso_qualifier_form_any_octets(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASO_qualifier_form_octets(FALSE, tvb, offset, actx, tree, hf_acse_aso_qualifier_form_any_octets); -} const value_string acse_ASO_qualifier_vals[] = { @@ -652,28 +574,22 @@ const value_string acse_ASO_qualifier_vals[] = { { 0, NULL } }; -static const ber_old_choice_t ASO_qualifier_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_aso_qualifier_form1 }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_aso_qualifier_form2 }, - { 2, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_aso_qualifier_form3 }, - { 3, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_aso_qualifier_form_any_octets }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t ASO_qualifier_choice[] = { + { 0, &hf_acse_aso_qualifier_form1, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_acse_ASO_qualifier_form1 }, + { 1, &hf_acse_aso_qualifier_form2, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_acse_ASO_qualifier_form2 }, + { 2, &hf_acse_aso_qualifier_form3, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_acse_ASO_qualifier_form3 }, + { 3, &hf_acse_aso_qualifier_form_any_octets, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_acse_ASO_qualifier_form_octets }, + { 0, NULL, 0, 0, 0, NULL } }; int dissect_acse_ASO_qualifier(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_old_choice(actx, tree, tvb, offset, - ASO_qualifier_choice, hf_index, ett_acse_ASO_qualifier, - NULL); + offset = dissect_ber_choice(actx, tree, tvb, offset, + ASO_qualifier_choice, hf_index, ett_acse_ASO_qualifier, + NULL); return offset; } -static int dissect_aso_qualifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASO_qualifier(FALSE, tvb, offset, actx, tree, hf_acse_aso_qualifier); -} -static int dissect_qualifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASO_qualifier(FALSE, tvb, offset, actx, tree, hf_acse_qualifier); -} @@ -683,15 +599,6 @@ dissect_acse_AE_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs return offset; } -static int dissect_called_AE_qualifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_acse_called_AE_qualifier); -} -static int dissect_calling_AE_qualifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_acse_calling_AE_qualifier); -} -static int dissect_responding_AE_qualifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AE_qualifier(FALSE, tvb, offset, actx, tree, hf_acse_responding_AE_qualifier); -} @@ -702,15 +609,6 @@ dissect_acse_AP_invocation_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _ return offset; } -static int dissect_called_AP_invocation_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AP_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_acse_called_AP_invocation_identifier); -} -static int dissect_calling_AP_invocation_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AP_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_acse_calling_AP_invocation_identifier); -} -static int dissect_responding_AP_invocation_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AP_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_acse_responding_AP_invocation_identifier); -} @@ -721,15 +619,6 @@ dissect_acse_AE_invocation_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _ return offset; } -static int dissect_called_AE_invocation_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AE_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_acse_called_AE_invocation_identifier); -} -static int dissect_calling_AE_invocation_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AE_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_acse_calling_AE_invocation_identifier); -} -static int dissect_responding_AE_invocation_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AE_invocation_identifier(FALSE, tvb, offset, actx, tree, hf_acse_responding_AE_invocation_identifier); -} static const asn_namedbit ACSE_requirements_bits[] = { @@ -748,12 +637,6 @@ dissect_acse_ACSE_requirements(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int return offset; } -static int dissect_sender_acse_requirements_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ACSE_requirements(TRUE, tvb, offset, actx, tree, hf_acse_sender_acse_requirements); -} -static int dissect_responder_acse_requirements_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ACSE_requirements(TRUE, tvb, offset, actx, tree, hf_acse_responder_acse_requirements); -} @@ -763,9 +646,6 @@ dissect_acse_Mechanism_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of return offset; } -static int dissect_mechanism_name_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Mechanism_name(TRUE, tvb, offset, actx, tree, hf_acse_mechanism_name); -} @@ -777,9 +657,6 @@ dissect_acse_GraphicString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off return offset; } -static int dissect_charstring_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_GraphicString(TRUE, tvb, offset, actx, tree, hf_acse_charstring); -} @@ -789,42 +666,33 @@ dissect_acse_T_other_mechanism_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_ return offset; } -static int dissect_other_mechanism_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_other_mechanism_name(FALSE, tvb, offset, actx, tree, hf_acse_other_mechanism_name); -} static int dissect_acse_T_other_mechanism_value(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 62 "acse.cnf" +#line 45 "acse.cnf" offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, top_tree); return offset; } -static int dissect_other_mechanism_value(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_other_mechanism_value(FALSE, tvb, offset, actx, tree, hf_acse_other_mechanism_value); -} -static const ber_old_sequence_t Authentication_value_other_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_other_mechanism_name }, - { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_other_mechanism_value }, - { 0, 0, 0, NULL } +static const ber_sequence_t Authentication_value_other_sequence[] = { + { &hf_acse_other_mechanism_name, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_acse_T_other_mechanism_name }, + { &hf_acse_other_mechanism_value, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_acse_T_other_mechanism_value }, + { NULL, 0, 0, 0, NULL } }; static int dissect_acse_Authentication_value_other(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - Authentication_value_other_sequence, hf_index, ett_acse_Authentication_value_other); + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Authentication_value_other_sequence, hf_index, ett_acse_Authentication_value_other); return offset; } -static int dissect_other_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Authentication_value_other(TRUE, tvb, offset, actx, tree, hf_acse_other); -} static const value_string acse_Authentication_value_vals[] = { @@ -835,44 +703,35 @@ static const value_string acse_Authentication_value_vals[] = { { 0, NULL } }; -static const ber_old_choice_t Authentication_value_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_charstring_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_bitstring_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_external_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_other_impl }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t Authentication_value_choice[] = { + { 0, &hf_acse_charstring , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_acse_GraphicString }, + { 1, &hf_acse_bitstring , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_acse_BIT_STRING }, + { 2, &hf_acse_external , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_acse_EXTERNALt }, + { 3, &hf_acse_other , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_acse_Authentication_value_other }, + { 0, NULL, 0, 0, 0, NULL } }; static int dissect_acse_Authentication_value(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_old_choice(actx, tree, tvb, offset, - Authentication_value_choice, hf_index, ett_acse_Authentication_value, - NULL); + offset = dissect_ber_choice(actx, tree, tvb, offset, + Authentication_value_choice, hf_index, ett_acse_Authentication_value, + NULL); return offset; } -static int dissect_calling_authentication_value(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Authentication_value(FALSE, tvb, offset, actx, tree, hf_acse_calling_authentication_value); -} -static int dissect_responding_authentication_value(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Authentication_value(FALSE, tvb, offset, actx, tree, hf_acse_responding_authentication_value); -} -static const ber_old_sequence_t ASO_context_name_list_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ASO_context_name_list_item }, +static const ber_sequence_t ASO_context_name_list_sequence_of[1] = { + { &hf_acse_ASO_context_name_list_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_acse_ASO_context_name }, }; static int dissect_acse_ASO_context_name_list(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_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - ASO_context_name_list_sequence_of, hf_index, ett_acse_ASO_context_name_list); + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + ASO_context_name_list_sequence_of, hf_index, ett_acse_ASO_context_name_list); return offset; } -static int dissect_aSO_context_name_list_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASO_context_name_list(TRUE, tvb, offset, actx, tree, hf_acse_aSO_context_name_list); -} @@ -884,9 +743,6 @@ dissect_acse_Implementation_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i return offset; } -static int dissect_implementation_information_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Implementation_data(TRUE, tvb, offset, actx, tree, hf_acse_implementation_information); -} @@ -897,12 +753,6 @@ dissect_acse_Presentation_context_identifier(gboolean implicit_tag _U_, tvbuff_t return offset; } -static int dissect_pci(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Presentation_context_identifier(FALSE, tvb, offset, actx, tree, hf_acse_pci); -} -static int dissect_presentation_context_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Presentation_context_identifier(FALSE, tvb, offset, actx, tree, hf_acse_presentation_context_identifier); -} @@ -912,12 +762,6 @@ dissect_acse_Abstract_syntax_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, return offset; } -static int dissect_abstract_syntax(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Abstract_syntax_name(FALSE, tvb, offset, actx, tree, hf_acse_abstract_syntax); -} -static int dissect_abstract_syntax_name_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Abstract_syntax_name(TRUE, tvb, offset, actx, tree, hf_acse_abstract_syntax_name); -} @@ -927,100 +771,76 @@ dissect_acse_TransferSyntaxName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in return offset; } -static int dissect_transfer_syntaxes_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_TransferSyntaxName(FALSE, tvb, offset, actx, tree, hf_acse_transfer_syntaxes_item); -} -static int dissect_transfer_syntax_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_TransferSyntaxName(FALSE, tvb, offset, actx, tree, hf_acse_transfer_syntax_name); -} -static int dissect_transfer_syntax_name_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_TransferSyntaxName(TRUE, tvb, offset, actx, tree, hf_acse_transfer_syntax_name); -} -static const ber_old_sequence_t SEQUENCE_OF_TransferSyntaxName_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_transfer_syntaxes_item }, +static const ber_sequence_t SEQUENCE_OF_TransferSyntaxName_sequence_of[1] = { + { &hf_acse_transfer_syntaxes_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_acse_TransferSyntaxName }, }; static int dissect_acse_SEQUENCE_OF_TransferSyntaxName(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_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - SEQUENCE_OF_TransferSyntaxName_sequence_of, hf_index, ett_acse_SEQUENCE_OF_TransferSyntaxName); + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + SEQUENCE_OF_TransferSyntaxName_sequence_of, hf_index, ett_acse_SEQUENCE_OF_TransferSyntaxName); return offset; } -static int dissect_transfer_syntaxes(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_SEQUENCE_OF_TransferSyntaxName(FALSE, tvb, offset, actx, tree, hf_acse_transfer_syntaxes); -} -static const ber_old_sequence_t Context_list_item_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_pci }, - { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_abstract_syntax }, - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_transfer_syntaxes }, - { 0, 0, 0, NULL } +static const ber_sequence_t Context_list_item_sequence[] = { + { &hf_acse_pci , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_acse_Presentation_context_identifier }, + { &hf_acse_abstract_syntax, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_acse_Abstract_syntax_name }, + { &hf_acse_transfer_syntaxes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_acse_SEQUENCE_OF_TransferSyntaxName }, + { NULL, 0, 0, 0, NULL } }; static int dissect_acse_Context_list_item(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - Context_list_item_sequence, hf_index, ett_acse_Context_list_item); + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Context_list_item_sequence, hf_index, ett_acse_Context_list_item); return offset; } -static int dissect_Context_list_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Context_list_item(FALSE, tvb, offset, actx, tree, hf_acse_Context_list_item); -} -static const ber_old_sequence_t Context_list_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Context_list_item }, +static const ber_sequence_t Context_list_sequence_of[1] = { + { &hf_acse_Context_list_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_acse_Context_list_item }, }; static int dissect_acse_Context_list(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_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - Context_list_sequence_of, hf_index, ett_acse_Context_list); + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + Context_list_sequence_of, hf_index, ett_acse_Context_list); return offset; } -static int dissect_context_list(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Context_list(FALSE, tvb, offset, actx, tree, hf_acse_context_list); -} -static const ber_old_sequence_t Default_Context_List_item_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_abstract_syntax_name_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_transfer_syntax_name_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t Default_Context_List_item_sequence[] = { + { &hf_acse_abstract_syntax_name, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Abstract_syntax_name }, + { &hf_acse_transfer_syntax_name, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_acse_TransferSyntaxName }, + { NULL, 0, 0, 0, NULL } }; static int dissect_acse_Default_Context_List_item(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - Default_Context_List_item_sequence, hf_index, ett_acse_Default_Context_List_item); + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + Default_Context_List_item_sequence, hf_index, ett_acse_Default_Context_List_item); return offset; } -static int dissect_Default_Context_List_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Default_Context_List_item(FALSE, tvb, offset, actx, tree, hf_acse_Default_Context_List_item); -} -static const ber_old_sequence_t Default_Context_List_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Default_Context_List_item }, +static const ber_sequence_t Default_Context_List_sequence_of[1] = { + { &hf_acse_Default_Context_List_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_acse_Default_Context_List_item }, }; static int dissect_acse_Default_Context_List(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_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - Default_Context_List_sequence_of, hf_index, ett_acse_Default_Context_List); + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + Default_Context_List_sequence_of, hf_index, ett_acse_Default_Context_List); return offset; } -static int dissect_default_contact_list(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Default_Context_List(FALSE, tvb, offset, actx, tree, hf_acse_default_contact_list); -} static const value_string acse_Syntactic_context_list_vals[] = { @@ -1029,23 +849,20 @@ static const value_string acse_Syntactic_context_list_vals[] = { { 0, NULL } }; -static const ber_old_choice_t Syntactic_context_list_choice[] = { - { 0, BER_CLASS_CON, 0, 0, dissect_context_list }, - { 1, BER_CLASS_CON, 1, 0, dissect_default_contact_list }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t Syntactic_context_list_choice[] = { + { 0, &hf_acse_context_list , BER_CLASS_CON, 0, 0, dissect_acse_Context_list }, + { 1, &hf_acse_default_contact_list, BER_CLASS_CON, 1, 0, dissect_acse_Default_Context_List }, + { 0, NULL, 0, 0, 0, NULL } }; static int dissect_acse_Syntactic_context_list(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_old_choice(actx, tree, tvb, offset, - Syntactic_context_list_choice, hf_index, ett_acse_Syntactic_context_list, - NULL); + offset = dissect_ber_choice(actx, tree, tvb, offset, + Syntactic_context_list_choice, hf_index, ett_acse_Syntactic_context_list, + NULL); return offset; } -static int dissect_p_context_definition_list(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Syntactic_context_list(FALSE, tvb, offset, actx, tree, hf_acse_p_context_definition_list); -} @@ -1056,112 +873,89 @@ dissect_acse_ASOI_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o return offset; } -static int dissect_asoi_identifier_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASOI_identifier(TRUE, tvb, offset, actx, tree, hf_acse_asoi_identifier); -} -static int dissect_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASOI_identifier(FALSE, tvb, offset, actx, tree, hf_acse_identifier); -} -static const ber_old_sequence_t ASOI_tag_item_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_qualifier }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_identifier }, - { 0, 0, 0, NULL } +static const ber_sequence_t ASOI_tag_item_sequence[] = { + { &hf_acse_qualifier , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_ASO_qualifier }, + { &hf_acse_identifier , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_acse_ASOI_identifier }, + { NULL, 0, 0, 0, NULL } }; static int dissect_acse_ASOI_tag_item(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - ASOI_tag_item_sequence, hf_index, ett_acse_ASOI_tag_item); + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + ASOI_tag_item_sequence, hf_index, ett_acse_ASOI_tag_item); return offset; } -static int dissect_ASOI_tag_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASOI_tag_item(FALSE, tvb, offset, actx, tree, hf_acse_ASOI_tag_item); -} -static const ber_old_sequence_t ASOI_tag_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ASOI_tag_item }, +static const ber_sequence_t ASOI_tag_sequence_of[1] = { + { &hf_acse_ASOI_tag_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_acse_ASOI_tag_item }, }; static int dissect_acse_ASOI_tag(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_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - ASOI_tag_sequence_of, hf_index, ett_acse_ASOI_tag); + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + ASOI_tag_sequence_of, hf_index, ett_acse_ASOI_tag); return offset; } -static int dissect_called_asoi_tag_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASOI_tag(TRUE, tvb, offset, actx, tree, hf_acse_called_asoi_tag); -} -static int dissect_calling_asoi_tag_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ASOI_tag(TRUE, tvb, offset, actx, tree, hf_acse_calling_asoi_tag); -} -static const ber_old_sequence_t Association_data_sequence_of[1] = { - { BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_Association_data_item }, +static const ber_sequence_t Association_data_sequence_of[1] = { + { &hf_acse_Association_data_item, BER_CLASS_UNI, 8, BER_FLAGS_NOOWNTAG, dissect_acse_EXTERNALt }, }; static int dissect_acse_Association_data(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_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - Association_data_sequence_of, hf_index, ett_acse_Association_data); + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + Association_data_sequence_of, hf_index, ett_acse_Association_data); + + return offset; +} + + +static const ber_sequence_t AARQ_apdu_U_sequence[] = { + { &hf_acse_aARQ_protocol_version, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_T_AARQ_protocol_version }, + { &hf_acse_aARQ_aSO_context_name, BER_CLASS_CON, 1, 0, dissect_acse_T_AARQ_aSO_context_name }, + { &hf_acse_called_AP_title, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_AP_title }, + { &hf_acse_called_AE_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_AE_qualifier }, + { &hf_acse_called_AP_invocation_identifier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_acse_AP_invocation_identifier }, + { &hf_acse_called_AE_invocation_identifier, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_acse_AE_invocation_identifier }, + { &hf_acse_calling_AP_title, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_AP_title }, + { &hf_acse_calling_AE_qualifier, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_AE_qualifier }, + { &hf_acse_calling_AP_invocation_identifier, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_acse_AP_invocation_identifier }, + { &hf_acse_calling_AE_invocation_identifier, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_acse_AE_invocation_identifier }, + { &hf_acse_sender_acse_requirements, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ACSE_requirements }, + { &hf_acse_mechanism_name , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Mechanism_name }, + { &hf_acse_calling_authentication_value, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_Authentication_value }, + { &hf_acse_aSO_context_name_list, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASO_context_name_list }, + { &hf_acse_implementation_information, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Implementation_data }, + { &hf_acse_p_context_definition_list, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_Syntactic_context_list }, + { &hf_acse_called_asoi_tag, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASOI_tag }, + { &hf_acse_calling_asoi_tag, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASOI_tag }, + { &hf_acse_aARQ_user_information, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Association_data }, + { NULL, 0, 0, 0, NULL } +}; + +static int +dissect_acse_AARQ_apdu_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, + AARQ_apdu_U_sequence, hf_index, ett_acse_AARQ_apdu_U); return offset; } -static int dissect_aARQ_user_information_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Association_data(TRUE, tvb, offset, actx, tree, hf_acse_aARQ_user_information); -} -static int dissect_aARE_user_information_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Association_data(TRUE, tvb, offset, actx, tree, hf_acse_aARE_user_information); -} -static int dissect_rLRQ_user_information_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Association_data(TRUE, tvb, offset, actx, tree, hf_acse_rLRQ_user_information); -} -static int dissect_rLRE_user_information_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Association_data(TRUE, tvb, offset, actx, tree, hf_acse_rLRE_user_information); -} -static int dissect_aBRT_user_information_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Association_data(TRUE, tvb, offset, actx, tree, hf_acse_aBRT_user_information); -} -static const ber_old_sequence_t AARQ_apdu_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aARQ_protocol_version_impl }, - { BER_CLASS_CON, 1, 0, dissect_aARQ_aSO_context_name }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_called_AP_title }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_called_AE_qualifier }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_called_AP_invocation_identifier }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_called_AE_invocation_identifier }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_calling_AP_title }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_calling_AE_qualifier }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_calling_AP_invocation_identifier }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_calling_AE_invocation_identifier }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sender_acse_requirements_impl }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mechanism_name_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_calling_authentication_value }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aSO_context_name_list_impl }, - { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_implementation_information_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_p_context_definition_list }, - { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_called_asoi_tag_impl }, - { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calling_asoi_tag_impl }, - { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aARQ_user_information_impl }, - { 0, 0, 0, NULL } -}; static int dissect_acse_AARQ_apdu(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - AARQ_apdu_sequence, hf_index, ett_acse_AARQ_apdu); + offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, + hf_index, BER_CLASS_APP, 0, TRUE, dissect_acse_AARQ_apdu_U); return offset; } -static int dissect_aarq_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AARQ_apdu(TRUE, tvb, offset, actx, tree, hf_acse_aarq); -} static const asn_namedbit T_AARE_protocol_version_bits[] = { @@ -1177,15 +971,12 @@ dissect_acse_T_AARE_protocol_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U return offset; } -static int dissect_aARE_protocol_version_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_AARE_protocol_version(TRUE, tvb, offset, actx, tree, hf_acse_aARE_protocol_version); -} static int dissect_acse_T_AARE_aSO_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 72 "acse.cnf" +#line 55 "acse.cnf" offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset, hf_index, &object_identifier_id); @@ -1193,9 +984,6 @@ dissect_acse_T_AARE_aSO_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U return offset; } -static int dissect_aARE_aSO_context_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_AARE_aSO_context_name(FALSE, tvb, offset, actx, tree, hf_acse_aARE_aSO_context_name); -} static const value_string acse_Associate_result_vals[] = { @@ -1213,9 +1001,6 @@ dissect_acse_Associate_result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int return offset; } -static int dissect_aARE_result(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Associate_result(FALSE, tvb, offset, actx, tree, hf_acse_aARE_result); -} static const value_string acse_T_acse_service_user_vals[] = { @@ -1245,9 +1030,6 @@ dissect_acse_T_acse_service_user(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i return offset; } -static int dissect_acse_service_user(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_acse_service_user(FALSE, tvb, offset, actx, tree, hf_acse_acse_service_user); -} static const value_string acse_T_acse_service_provider_vals[] = { @@ -1265,9 +1047,6 @@ dissect_acse_T_acse_service_provider(gboolean implicit_tag _U_, tvbuff_t *tvb _U return offset; } -static int dissect_acse_service_provider(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_acse_service_provider(FALSE, tvb, offset, actx, tree, hf_acse_acse_service_provider); -} static const value_string acse_Associate_source_diagnostic_vals[] = { @@ -1276,23 +1055,20 @@ static const value_string acse_Associate_source_diagnostic_vals[] = { { 0, NULL } }; -static const ber_old_choice_t Associate_source_diagnostic_choice[] = { - { 1, BER_CLASS_CON, 1, 0, dissect_acse_service_user }, - { 2, BER_CLASS_CON, 2, 0, dissect_acse_service_provider }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t Associate_source_diagnostic_choice[] = { + { 1, &hf_acse_acse_service_user, BER_CLASS_CON, 1, 0, dissect_acse_T_acse_service_user }, + { 2, &hf_acse_acse_service_provider, BER_CLASS_CON, 2, 0, dissect_acse_T_acse_service_provider }, + { 0, NULL, 0, 0, 0, NULL } }; static int dissect_acse_Associate_source_diagnostic(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_old_choice(actx, tree, tvb, offset, - Associate_source_diagnostic_choice, hf_index, ett_acse_Associate_source_diagnostic, - NULL); + offset = dissect_ber_choice(actx, tree, tvb, offset, + Associate_source_diagnostic_choice, hf_index, ett_acse_Associate_source_diagnostic, + NULL); return offset; } -static int dissect_result_source_diagnostic(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Associate_source_diagnostic(FALSE, tvb, offset, actx, tree, hf_acse_result_source_diagnostic); -} static const value_string acse_Result_vals[] = { @@ -1310,9 +1086,6 @@ dissect_acse_Result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_ return offset; } -static int dissect_pcontext_result_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Result(TRUE, tvb, offset, actx, tree, hf_acse_pcontext_result); -} @@ -1322,9 +1095,6 @@ dissect_acse_Concrete_syntax_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, return offset; } -static int dissect_concrete_syntax_name_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Concrete_syntax_name(TRUE, tvb, offset, actx, tree, hf_acse_concrete_syntax_name); -} static const value_string acse_T_provider_reason_vals[] = { @@ -1343,76 +1113,74 @@ dissect_acse_T_provider_reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int return offset; } -static int dissect_provider_reason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_provider_reason(TRUE, tvb, offset, actx, tree, hf_acse_provider_reason); -} -static const ber_old_sequence_t P_context_result_list_item_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pcontext_result_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_concrete_syntax_name_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_provider_reason_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t P_context_result_list_item_sequence[] = { + { &hf_acse_pcontext_result, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_acse_Result }, + { &hf_acse_concrete_syntax_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Concrete_syntax_name }, + { &hf_acse_provider_reason, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_T_provider_reason }, + { NULL, 0, 0, 0, NULL } }; static int dissect_acse_P_context_result_list_item(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - P_context_result_list_item_sequence, hf_index, ett_acse_P_context_result_list_item); + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + P_context_result_list_item_sequence, hf_index, ett_acse_P_context_result_list_item); return offset; } -static int dissect_P_context_result_list_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_P_context_result_list_item(FALSE, tvb, offset, actx, tree, hf_acse_P_context_result_list_item); -} -static const ber_old_sequence_t P_context_result_list_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_P_context_result_list_item }, +static const ber_sequence_t P_context_result_list_sequence_of[1] = { + { &hf_acse_P_context_result_list_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_acse_P_context_result_list_item }, }; static int dissect_acse_P_context_result_list(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_old_sequence_of(implicit_tag, actx, tree, tvb, offset, - P_context_result_list_sequence_of, hf_index, ett_acse_P_context_result_list); - - return offset; -} -static int dissect_p_context_result_list_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_P_context_result_list(TRUE, tvb, offset, actx, tree, hf_acse_p_context_result_list); -} - - -static const ber_old_sequence_t AARE_apdu_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aARE_protocol_version_impl }, - { BER_CLASS_CON, 1, 0, dissect_aARE_aSO_context_name }, - { BER_CLASS_CON, 2, 0, dissect_aARE_result }, - { BER_CLASS_CON, 3, BER_FLAGS_NOTCHKTAG, dissect_result_source_diagnostic }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_responding_AP_title }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_responding_AE_qualifier }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_responding_AP_invocation_identifier }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_responding_AE_invocation_identifier }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responder_acse_requirements_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mechanism_name_impl }, - { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_responding_authentication_value }, - { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aSO_context_name_list_impl }, - { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_implementation_information_impl }, - { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p_context_result_list_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_called_asoi_tag_impl }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calling_asoi_tag_impl }, - { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aARE_user_information_impl }, - { 0, 0, 0, NULL } + offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, + P_context_result_list_sequence_of, hf_index, ett_acse_P_context_result_list); + + return offset; +} + + +static const ber_sequence_t AARE_apdu_U_sequence[] = { + { &hf_acse_aARE_protocol_version, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_T_AARE_protocol_version }, + { &hf_acse_aARE_aSO_context_name, BER_CLASS_CON, 1, 0, dissect_acse_T_AARE_aSO_context_name }, + { &hf_acse_result , BER_CLASS_CON, 2, 0, dissect_acse_Associate_result }, + { &hf_acse_result_source_diagnostic, BER_CLASS_CON, 3, BER_FLAGS_NOTCHKTAG, dissect_acse_Associate_source_diagnostic }, + { &hf_acse_responding_AP_title, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_AP_title }, + { &hf_acse_responding_AE_qualifier, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_AE_qualifier }, + { &hf_acse_responding_AP_invocation_identifier, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_acse_AP_invocation_identifier }, + { &hf_acse_responding_AE_invocation_identifier, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_acse_AE_invocation_identifier }, + { &hf_acse_responder_acse_requirements, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ACSE_requirements }, + { &hf_acse_mechanism_name , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Mechanism_name }, + { &hf_acse_responding_authentication_value, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_Authentication_value }, + { &hf_acse_aSO_context_name_list, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASO_context_name_list }, + { &hf_acse_implementation_information, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Implementation_data }, + { &hf_acse_p_context_result_list, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_P_context_result_list }, + { &hf_acse_called_asoi_tag, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASOI_tag }, + { &hf_acse_calling_asoi_tag, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASOI_tag }, + { &hf_acse_aARE_user_information, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Association_data }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_acse_AARE_apdu(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - AARE_apdu_sequence, hf_index, ett_acse_AARE_apdu); +dissect_acse_AARE_apdu_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, + AARE_apdu_U_sequence, hf_index, ett_acse_AARE_apdu_U); return offset; } -static int dissect_aare_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AARE_apdu(TRUE, tvb, offset, actx, tree, hf_acse_aare); + + + +static int +dissect_acse_AARE_apdu(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_APP, 1, TRUE, dissect_acse_AARE_apdu_U); + + return offset; } @@ -1426,7 +1194,7 @@ static const value_string acse_Release_request_reason_vals[] = { static int dissect_acse_Release_request_reason(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 110 "acse.cnf" +#line 93 "acse.cnf" int reason = -1; offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -1441,28 +1209,32 @@ dissect_acse_Release_request_reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_ return offset; } -static int dissect_rLRQ_reason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Release_request_reason(TRUE, tvb, offset, actx, tree, hf_acse_rLRQ_reason); -} -static const ber_old_sequence_t RLRQ_apdu_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rLRQ_reason_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_aso_qualifier }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asoi_identifier_impl }, - { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rLRQ_user_information_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t RLRQ_apdu_U_sequence[] = { + { &hf_acse_rLRQ_reason , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Release_request_reason }, + { &hf_acse_aso_qualifier , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_ASO_qualifier }, + { &hf_acse_asoi_identifier, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASOI_identifier }, + { &hf_acse_rLRQ_user_information, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Association_data }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_acse_RLRQ_apdu(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - RLRQ_apdu_sequence, hf_index, ett_acse_RLRQ_apdu); +dissect_acse_RLRQ_apdu_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, + RLRQ_apdu_U_sequence, hf_index, ett_acse_RLRQ_apdu_U); return offset; } -static int dissect_rlrq_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_RLRQ_apdu(TRUE, tvb, offset, actx, tree, hf_acse_rlrq); + + + +static int +dissect_acse_RLRQ_apdu(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_APP, 2, TRUE, dissect_acse_RLRQ_apdu_U); + + return offset; } @@ -1476,7 +1248,7 @@ static const value_string acse_Release_response_reason_vals[] = { static int dissect_acse_Release_response_reason(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 122 "acse.cnf" +#line 105 "acse.cnf" int reason = -1; offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -1491,28 +1263,32 @@ dissect_acse_Release_response_reason(gboolean implicit_tag _U_, tvbuff_t *tvb _U return offset; } -static int dissect_rLRE_reason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Release_response_reason(TRUE, tvb, offset, actx, tree, hf_acse_rLRE_reason); -} -static const ber_old_sequence_t RLRE_apdu_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rLRE_reason_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_aso_qualifier }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asoi_identifier_impl }, - { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rLRE_user_information_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t RLRE_apdu_U_sequence[] = { + { &hf_acse_rLRE_reason , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Release_response_reason }, + { &hf_acse_aso_qualifier , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_ASO_qualifier }, + { &hf_acse_asoi_identifier, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASOI_identifier }, + { &hf_acse_rLRE_user_information, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Association_data }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_acse_RLRE_apdu(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - RLRE_apdu_sequence, hf_index, ett_acse_RLRE_apdu); +dissect_acse_RLRE_apdu_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, + RLRE_apdu_U_sequence, hf_index, ett_acse_RLRE_apdu_U); return offset; } -static int dissect_rlre_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_RLRE_apdu(TRUE, tvb, offset, actx, tree, hf_acse_rlre); + + + +static int +dissect_acse_RLRE_apdu(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_APP, 3, TRUE, dissect_acse_RLRE_apdu_U); + + return offset; } @@ -1530,9 +1306,6 @@ dissect_acse_ABRT_source(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse return offset; } -static int dissect_abort_source_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ABRT_source(TRUE, tvb, offset, actx, tree, hf_acse_abort_source); -} static const value_string acse_ABRT_diagnostic_vals[] = { @@ -1553,29 +1326,33 @@ dissect_acse_ABRT_diagnostic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o return offset; } -static int dissect_abort_diagnostic_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ABRT_diagnostic(TRUE, tvb, offset, actx, tree, hf_acse_abort_diagnostic); -} -static const ber_old_sequence_t ABRT_apdu_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_abort_source_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_abort_diagnostic_impl }, - { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_aso_qualifier }, - { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asoi_identifier_impl }, - { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aBRT_user_information_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t ABRT_apdu_U_sequence[] = { + { &hf_acse_abort_source , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_acse_ABRT_source }, + { &hf_acse_abort_diagnostic, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ABRT_diagnostic }, + { &hf_acse_aso_qualifier , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_ASO_qualifier }, + { &hf_acse_asoi_identifier, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASOI_identifier }, + { &hf_acse_aBRT_user_information, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_Association_data }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_acse_ABRT_apdu(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - ABRT_apdu_sequence, hf_index, ett_acse_ABRT_apdu); +dissect_acse_ABRT_apdu_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, + ABRT_apdu_U_sequence, hf_index, ett_acse_ABRT_apdu_U); return offset; } -static int dissect_abrt_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ABRT_apdu(TRUE, tvb, offset, actx, tree, hf_acse_abrt); + + + +static int +dissect_acse_ABRT_apdu(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_APP, 4, TRUE, dissect_acse_ABRT_apdu_U); + + return offset; } @@ -1586,12 +1363,6 @@ dissect_acse_User_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int return offset; } -static int dissect_user_information(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_User_information(FALSE, tvb, offset, actx, tree, hf_acse_user_information); -} -static int dissect_user_information_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_User_information(TRUE, tvb, offset, actx, tree, hf_acse_user_information); -} @@ -1602,24 +1373,18 @@ dissect_acse_Simply_encoded_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i return offset; } -static int dissect_simply_encoded_data(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_Simply_encoded_data(FALSE, tvb, offset, actx, tree, hf_acse_simply_encoded_data); -} static int dissect_acse_T_simple_ASN1_type(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 65 "acse.cnf" +#line 48 "acse.cnf" /*XXX not implemented yet */ return offset; } -static int dissect_simple_ASN1_type(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_simple_ASN1_type(FALSE, tvb, offset, actx, tree, hf_acse_simple_ASN1_type); -} @@ -1630,9 +1395,6 @@ dissect_acse_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs return offset; } -static int dissect_octet_aligned_01_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_OCTET_STRING(TRUE, tvb, offset, actx, tree, hf_acse_octet_aligned_01); -} static const value_string acse_T_presentation_data_values_vals[] = { @@ -1642,43 +1404,37 @@ static const value_string acse_T_presentation_data_values_vals[] = { { 0, NULL } }; -static const ber_old_choice_t T_presentation_data_values_choice[] = { - { 0, BER_CLASS_CON, 0, 0, dissect_simple_ASN1_type }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_octet_aligned_01_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_arbitrary_impl }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t T_presentation_data_values_choice[] = { + { 0, &hf_acse_simple_ASN1_type, BER_CLASS_CON, 0, 0, dissect_acse_T_simple_ASN1_type }, + { 1, &hf_acse_octet_aligned_01, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_acse_OCTET_STRING }, + { 2, &hf_acse_arbitrary , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_acse_BIT_STRING }, + { 0, NULL, 0, 0, 0, NULL } }; static int dissect_acse_T_presentation_data_values(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_old_choice(actx, tree, tvb, offset, - T_presentation_data_values_choice, hf_index, ett_acse_T_presentation_data_values, - NULL); + offset = dissect_ber_choice(actx, tree, tvb, offset, + T_presentation_data_values_choice, hf_index, ett_acse_T_presentation_data_values, + NULL); return offset; } -static int dissect_presentation_data_values(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_presentation_data_values(FALSE, tvb, offset, actx, tree, hf_acse_presentation_data_values); -} -static const ber_old_sequence_t PDV_list_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_transfer_syntax_name }, - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_presentation_context_identifier }, - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_presentation_data_values }, - { 0, 0, 0, NULL } +static const ber_sequence_t PDV_list_sequence[] = { + { &hf_acse_transfer_syntax_name, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_acse_TransferSyntaxName }, + { &hf_acse_presentation_context_identifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_acse_Presentation_context_identifier }, + { &hf_acse_presentation_data_values, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_acse_T_presentation_data_values }, + { NULL, 0, 0, 0, NULL } }; static int dissect_acse_PDV_list(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - PDV_list_sequence, hf_index, ett_acse_PDV_list); + offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, + PDV_list_sequence, hf_index, ett_acse_PDV_list); return offset; } -static int dissect_fully_encoded_data(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_PDV_list(FALSE, tvb, offset, actx, tree, hf_acse_fully_encoded_data); -} static const value_string acse_User_Data_vals[] = { @@ -1688,49 +1444,53 @@ static const value_string acse_User_Data_vals[] = { { 0, NULL } }; -static const ber_old_choice_t User_Data_choice[] = { - { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_user_information }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_simply_encoded_data }, - { 2, BER_CLASS_CON, 0, 0, dissect_fully_encoded_data }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t User_Data_choice[] = { + { 0, &hf_acse_user_information, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_acse_User_information }, + { 1, &hf_acse_simply_encoded_data, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_acse_Simply_encoded_data }, + { 2, &hf_acse_fully_encoded_data, BER_CLASS_CON, 0, 0, dissect_acse_PDV_list }, + { 0, NULL, 0, 0, 0, NULL } }; static int dissect_acse_User_Data(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_old_choice(actx, tree, tvb, offset, - User_Data_choice, hf_index, ett_acse_User_Data, - NULL); + offset = dissect_ber_choice(actx, tree, tvb, offset, + User_Data_choice, hf_index, ett_acse_User_Data, + NULL); return offset; } -static int dissect_a_user_data(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_User_Data(FALSE, tvb, offset, actx, tree, hf_acse_a_user_data); -} -static const ber_old_sequence_t A_DT_apdu_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_aso_qualifier }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asoi_identifier_impl }, - { BER_CLASS_CON, 30, BER_FLAGS_NOTCHKTAG, dissect_a_user_data }, - { 0, 0, 0, NULL } +static const ber_sequence_t A_DT_apdu_U_sequence[] = { + { &hf_acse_aso_qualifier , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_ASO_qualifier }, + { &hf_acse_asoi_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASOI_identifier }, + { &hf_acse_a_user_data , BER_CLASS_CON, 30, BER_FLAGS_NOTCHKTAG, dissect_acse_User_Data }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_acse_A_DT_apdu(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - A_DT_apdu_sequence, hf_index, ett_acse_A_DT_apdu); +dissect_acse_A_DT_apdu_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, + A_DT_apdu_U_sequence, hf_index, ett_acse_A_DT_apdu_U); return offset; } -static int dissect_adt_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_A_DT_apdu(TRUE, tvb, offset, actx, tree, hf_acse_adt); + + + +static int +dissect_acse_A_DT_apdu(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_APP, 5, TRUE, dissect_acse_A_DT_apdu_U); + + return offset; } static int dissect_acse_T_ACRQ_aSO_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 76 "acse.cnf" +#line 59 "acse.cnf" offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset, hf_index, &object_identifier_id); @@ -1738,37 +1498,41 @@ dissect_acse_T_ACRQ_aSO_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U return offset; } -static int dissect_aCRQ_aSO_context_name_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_ACRQ_aSO_context_name(TRUE, tvb, offset, actx, tree, hf_acse_aCRQ_aSO_context_name); -} -static const ber_old_sequence_t ACRQ_apdu_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_aso_qualifier }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asoi_identifier_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aCRQ_aSO_context_name_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aSO_context_name_list_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_p_context_definition_list }, - { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_user_information_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t ACRQ_apdu_U_sequence[] = { + { &hf_acse_aso_qualifier , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_ASO_qualifier }, + { &hf_acse_asoi_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASOI_identifier }, + { &hf_acse_aCRQ_aSO_context_name, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_T_ACRQ_aSO_context_name }, + { &hf_acse_aSO_context_name_list, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASO_context_name_list }, + { &hf_acse_p_context_definition_list, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_Syntactic_context_list }, + { &hf_acse_user_information, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_User_information }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_acse_ACRQ_apdu(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - ACRQ_apdu_sequence, hf_index, ett_acse_ACRQ_apdu); +dissect_acse_ACRQ_apdu_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, + ACRQ_apdu_U_sequence, hf_index, ett_acse_ACRQ_apdu_U); return offset; } -static int dissect_acrq_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ACRQ_apdu(TRUE, tvb, offset, actx, tree, hf_acse_acrq); + + + +static int +dissect_acse_ACRQ_apdu(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_APP, 6, TRUE, dissect_acse_ACRQ_apdu_U); + + return offset; } static int dissect_acse_T_ACRP_aSO_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 80 "acse.cnf" +#line 63 "acse.cnf" offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset, hf_index, &object_identifier_id); @@ -1776,29 +1540,33 @@ dissect_acse_T_ACRP_aSO_context_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U return offset; } -static int dissect_aSO_context_name_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_T_ACRP_aSO_context_name(TRUE, tvb, offset, actx, tree, hf_acse_aSO_context_name); -} -static const ber_old_sequence_t ACRP_apdu_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_aso_qualifier }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_asoi_identifier_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aSO_context_name_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p_context_result_list_impl }, - { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_user_information_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t ACRP_apdu_U_sequence[] = { + { &hf_acse_aso_qualifier , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_acse_ASO_qualifier }, + { &hf_acse_asoi_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_ASOI_identifier }, + { &hf_acse_aSO_context_name, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_T_ACRP_aSO_context_name }, + { &hf_acse_p_context_result_list, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_P_context_result_list }, + { &hf_acse_user_information, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acse_User_information }, + { NULL, 0, 0, 0, NULL } }; static int -dissect_acse_ACRP_apdu(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_old_sequence(implicit_tag, actx, tree, tvb, offset, - ACRP_apdu_sequence, hf_index, ett_acse_ACRP_apdu); +dissect_acse_ACRP_apdu_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, + ACRP_apdu_U_sequence, hf_index, ett_acse_ACRP_apdu_U); return offset; } -static int dissect_acrp_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_ACRP_apdu(TRUE, tvb, offset, actx, tree, hf_acse_acrp); + + + +static int +dissect_acse_ACRP_apdu(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_APP, 7, TRUE, dissect_acse_ACRP_apdu_U); + + return offset; } @@ -1814,23 +1582,23 @@ static const value_string acse_ACSE_apdu_vals[] = { { 0, NULL } }; -static const ber_old_choice_t ACSE_apdu_choice[] = { - { 0, BER_CLASS_APP, 0, BER_FLAGS_IMPLTAG, dissect_aarq_impl }, - { 1, BER_CLASS_APP, 1, BER_FLAGS_IMPLTAG, dissect_aare_impl }, - { 2, BER_CLASS_APP, 2, BER_FLAGS_IMPLTAG, dissect_rlrq_impl }, - { 3, BER_CLASS_APP, 3, BER_FLAGS_IMPLTAG, dissect_rlre_impl }, - { 4, BER_CLASS_APP, 4, BER_FLAGS_IMPLTAG, dissect_abrt_impl }, - { 5, BER_CLASS_APP, 5, BER_FLAGS_IMPLTAG, dissect_adt_impl }, - { 6, BER_CLASS_APP, 6, BER_FLAGS_IMPLTAG, dissect_acrq_impl }, - { 7, BER_CLASS_APP, 7, BER_FLAGS_IMPLTAG, dissect_acrp_impl }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t ACSE_apdu_choice[] = { + { 0, &hf_acse_aarq , BER_CLASS_APP, 0, BER_FLAGS_IMPLTAG, dissect_acse_AARQ_apdu }, + { 1, &hf_acse_aare , BER_CLASS_APP, 1, BER_FLAGS_IMPLTAG, dissect_acse_AARE_apdu }, + { 2, &hf_acse_rlrq , BER_CLASS_APP, 2, BER_FLAGS_IMPLTAG, dissect_acse_RLRQ_apdu }, + { 3, &hf_acse_rlre , BER_CLASS_APP, 3, BER_FLAGS_IMPLTAG, dissect_acse_RLRE_apdu }, + { 4, &hf_acse_abrt , BER_CLASS_APP, 4, BER_FLAGS_IMPLTAG, dissect_acse_ABRT_apdu }, + { 5, &hf_acse_adt , BER_CLASS_APP, 5, BER_FLAGS_IMPLTAG, dissect_acse_A_DT_apdu }, + { 6, &hf_acse_acrq , BER_CLASS_APP, 6, BER_FLAGS_IMPLTAG, dissect_acse_ACRQ_apdu }, + { 7, &hf_acse_acrp , BER_CLASS_APP, 7, BER_FLAGS_IMPLTAG, dissect_acse_ACRP_apdu }, + { 0, NULL, 0, 0, 0, NULL } }; static int dissect_acse_ACSE_apdu(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_old_choice(actx, tree, tvb, offset, - ACSE_apdu_choice, hf_index, ett_acse_ACSE_apdu, - NULL); + offset = dissect_ber_choice(actx, tree, tvb, offset, + ACSE_apdu_choice, hf_index, ett_acse_ACSE_apdu, + NULL); return offset; } @@ -1852,9 +1620,6 @@ dissect_acse_AE_title_form1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of return offset; } -static int dissect_ae_title_form1(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AE_title_form1(FALSE, tvb, offset, actx, tree, hf_acse_ae_title_form1); -} @@ -1864,9 +1629,6 @@ dissect_acse_AE_title_form2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of return offset; } -static int dissect_ae_title_form2(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) { - return dissect_acse_AE_title_form2(FALSE, tvb, offset, actx, tree, hf_acse_ae_title_form2); -} const value_string acse_AE_title_vals[] = { @@ -1875,17 +1637,17 @@ const value_string acse_AE_title_vals[] = { { 0, NULL } }; -static const ber_old_choice_t AE_title_choice[] = { - { 0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ae_title_form1 }, - { 1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ae_title_form2 }, - { 0, 0, 0, 0, NULL } +static const ber_choice_t AE_title_choice[] = { + { 0, &hf_acse_ae_title_form1 , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_acse_AE_title_form1 }, + { 1, &hf_acse_ae_title_form2 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_acse_AE_title_form2 }, + { 0, NULL, 0, 0, 0, NULL } }; int dissect_acse_AE_title(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_old_choice(actx, tree, tvb, offset, - AE_title_choice, hf_index, ett_acse_AE_title, - NULL); + offset = dissect_ber_choice(actx, tree, tvb, offset, + AE_title_choice, hf_index, ett_acse_AE_title, + NULL); return offset; } @@ -2145,7 +1907,7 @@ void proto_register_acse(void) { { "aSO-context-name", "acse.aSO_context_name", FT_OID, BASE_NONE, NULL, 0, "acse.T_AARE_aSO_context_name", HFILL }}, - { &hf_acse_aARE_result, + { &hf_acse_result, { "result", "acse.result", FT_UINT32, BASE_DEC, VALS(acse_Associate_result_vals), 0, "acse.Associate_result", HFILL }}, @@ -2440,19 +2202,19 @@ void proto_register_acse(void) { /*--- Included file: packet-acse-ettarr.c ---*/ #line 1 "packet-acse-ettarr.c" - &ett_acse_EXTERNALt, + &ett_acse_EXTERNALt_U, &ett_acse_T_encoding, &ett_acse_ACSE_apdu, - &ett_acse_AARQ_apdu, + &ett_acse_AARQ_apdu_U, &ett_acse_T_AARQ_protocol_version, - &ett_acse_AARE_apdu, + &ett_acse_AARE_apdu_U, &ett_acse_T_AARE_protocol_version, - &ett_acse_RLRQ_apdu, - &ett_acse_RLRE_apdu, - &ett_acse_ABRT_apdu, - &ett_acse_A_DT_apdu, - &ett_acse_ACRQ_apdu, - &ett_acse_ACRP_apdu, + &ett_acse_RLRQ_apdu_U, + &ett_acse_RLRE_apdu_U, + &ett_acse_ABRT_apdu_U, + &ett_acse_A_DT_apdu_U, + &ett_acse_ACRQ_apdu_U, + &ett_acse_ACRP_apdu_U, &ett_acse_ACSE_requirements, &ett_acse_AP_title, &ett_acse_ASO_qualifier, |