2013-04-11 18:14:53 +00:00
|
|
|
/* Do not modify this file. Changes will be overwritten. */
|
|
|
|
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
|
2007-10-31 08:26:52 +00:00
|
|
|
/* packet-acse.c */
|
2016-03-09 03:17:51 +00:00
|
|
|
/* asn2wrs.py -b -C -p acse -c ./acse.cnf -s ./packet-acse-template -D . -O ../.. acse.asn */
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
/* Input file: packet-acse-template.c */
|
|
|
|
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 1 "./asn1/acse/packet-acse-template.c"
|
2005-06-19 11:54:33 +00:00
|
|
|
/*XXX
|
2006-05-24 12:24:54 +00:00
|
|
|
There is a bug in asn2wrs that it can not yet handle tagged assignments such
|
2005-06-22 08:15:18 +00:00
|
|
|
as EXTERNAL ::= [UNIVERSAL 8] IMPLICIT SEQUENCE {
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2005-10-17 16:12:24 +00:00
|
|
|
This bug is workedaround by some .cnf magic but this should be cleaned up
|
2006-05-24 12:24:54 +00:00
|
|
|
once asn2wrs learns how to deal with tagged assignments
|
2004-01-23 10:15:37 +00:00
|
|
|
*/
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
/* packet-acse.c
|
|
|
|
* Routines for ACSE packet dissection
|
|
|
|
* Ronnie Sahlberg 2005
|
2005-06-22 08:15:18 +00:00
|
|
|
* dissect_acse() based original handwritten dissector by Sid
|
|
|
|
* Yuriy Sidelnikov <YSidelnikov@hotmail.com>
|
2005-10-17 16:12:24 +00:00
|
|
|
*
|
2006-05-21 04:49:01 +00:00
|
|
|
* Wireshark - Network traffic analyzer
|
|
|
|
* By Gerald Combs <gerald@wireshark.org>
|
2005-06-19 11:54:33 +00:00
|
|
|
* Copyright 1998 Gerald Combs
|
|
|
|
*
|
2018-02-12 11:23:27 +00:00
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
2005-06-19 11:54:33 +00:00
|
|
|
*/
|
|
|
|
|
2012-09-20 02:03:38 +00:00
|
|
|
#include "config.h"
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
#include <epan/packet.h>
|
2013-11-10 15:59:37 +00:00
|
|
|
#include <epan/exceptions.h>
|
2009-03-07 00:31:03 +00:00
|
|
|
#include <epan/expert.h>
|
2007-08-25 01:14:24 +00:00
|
|
|
#include <epan/oids.h>
|
2007-05-04 20:27:43 +00:00
|
|
|
#include <epan/asn1.h>
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
#include "packet-ber.h"
|
2004-01-23 10:15:37 +00:00
|
|
|
#include "packet-acse.h"
|
|
|
|
#include "packet-ses.h"
|
2005-09-04 09:00:01 +00:00
|
|
|
#include "packet-pres.h"
|
2005-06-19 11:54:33 +00:00
|
|
|
#include "packet-x509if.h"
|
|
|
|
|
2005-11-16 07:13:12 +00:00
|
|
|
#define PNAME "ISO 8650-1 OSI Association Control Service"
|
2005-06-19 11:54:33 +00:00
|
|
|
#define PSNAME "ACSE"
|
|
|
|
#define PFNAME "acse"
|
|
|
|
|
2010-01-04 23:17:37 +00:00
|
|
|
#define CLPNAME "ISO 10035-1 OSI Connectionless Association Control Service"
|
|
|
|
#define CLPSNAME "CLACSE"
|
|
|
|
#define CLPFNAME "clacse"
|
|
|
|
|
2005-10-17 16:12:24 +00:00
|
|
|
#define ACSE_APDU_OID "2.2.1.0.1"
|
|
|
|
|
2013-12-09 06:50:09 +00:00
|
|
|
void proto_register_acse(void);
|
|
|
|
void proto_reg_handoff_acse(void);
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
/* Initialize the protocol and registered fields */
|
2010-01-04 23:17:37 +00:00
|
|
|
int proto_acse = -1;
|
|
|
|
int proto_clacse = -1;
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
/*--- Included file: packet-acse-hf.c ---*/
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 1 "./asn1/acse/packet-acse-hf.c"
|
2005-10-03 05:17:51 +00:00
|
|
|
static int hf_acse_direct_reference = -1; /* T_direct_reference */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_indirect_reference = -1; /* T_indirect_reference */
|
|
|
|
static int hf_acse_data_value_descriptor = -1; /* ObjectDescriptor */
|
|
|
|
static int hf_acse_encoding = -1; /* T_encoding */
|
|
|
|
static int hf_acse_single_ASN1_type = -1; /* T_single_ASN1_type */
|
2007-07-14 08:21:58 +00:00
|
|
|
static int hf_acse_octet_aligned = -1; /* T_octet_aligned */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_arbitrary = -1; /* BIT_STRING */
|
|
|
|
static int hf_acse_aarq = -1; /* AARQ_apdu */
|
|
|
|
static int hf_acse_aare = -1; /* AARE_apdu */
|
|
|
|
static int hf_acse_rlrq = -1; /* RLRQ_apdu */
|
|
|
|
static int hf_acse_rlre = -1; /* RLRE_apdu */
|
|
|
|
static int hf_acse_abrt = -1; /* ABRT_apdu */
|
|
|
|
static int hf_acse_adt = -1; /* A_DT_apdu */
|
|
|
|
static int hf_acse_acrq = -1; /* ACRQ_apdu */
|
|
|
|
static int hf_acse_acrp = -1; /* ACRP_apdu */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_acse_aARQ_protocol_version = -1; /* T_AARQ_protocol_version */
|
|
|
|
static int hf_acse_aARQ_aSO_context_name = -1; /* T_AARQ_aSO_context_name */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_called_AP_title = -1; /* AP_title */
|
|
|
|
static int hf_acse_called_AE_qualifier = -1; /* AE_qualifier */
|
|
|
|
static int hf_acse_called_AP_invocation_identifier = -1; /* AP_invocation_identifier */
|
|
|
|
static int hf_acse_called_AE_invocation_identifier = -1; /* AE_invocation_identifier */
|
|
|
|
static int hf_acse_calling_AP_title = -1; /* AP_title */
|
|
|
|
static int hf_acse_calling_AE_qualifier = -1; /* AE_qualifier */
|
|
|
|
static int hf_acse_calling_AP_invocation_identifier = -1; /* AP_invocation_identifier */
|
|
|
|
static int hf_acse_calling_AE_invocation_identifier = -1; /* AE_invocation_identifier */
|
|
|
|
static int hf_acse_sender_acse_requirements = -1; /* ACSE_requirements */
|
|
|
|
static int hf_acse_mechanism_name = -1; /* Mechanism_name */
|
|
|
|
static int hf_acse_calling_authentication_value = -1; /* Authentication_value */
|
|
|
|
static int hf_acse_aSO_context_name_list = -1; /* ASO_context_name_list */
|
|
|
|
static int hf_acse_implementation_information = -1; /* Implementation_data */
|
|
|
|
static int hf_acse_p_context_definition_list = -1; /* Syntactic_context_list */
|
|
|
|
static int hf_acse_called_asoi_tag = -1; /* ASOI_tag */
|
|
|
|
static int hf_acse_calling_asoi_tag = -1; /* ASOI_tag */
|
2005-08-31 20:20:56 +00:00
|
|
|
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 */
|
2007-11-05 20:41:44 +00:00
|
|
|
static int hf_acse_result = -1; /* Associate_result */
|
2005-06-19 11:54:33 +00:00
|
|
|
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 */
|
|
|
|
static int hf_acse_responding_AP_invocation_identifier = -1; /* AP_invocation_identifier */
|
|
|
|
static int hf_acse_responding_AE_invocation_identifier = -1; /* AE_invocation_identifier */
|
|
|
|
static int hf_acse_responder_acse_requirements = -1; /* ACSE_requirements */
|
|
|
|
static int hf_acse_responding_authentication_value = -1; /* Authentication_value */
|
|
|
|
static int hf_acse_p_context_result_list = -1; /* P_context_result_list */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_acse_aARE_user_information = -1; /* Association_data */
|
|
|
|
static int hf_acse_rLRQ_reason = -1; /* Release_request_reason */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_aso_qualifier = -1; /* ASO_qualifier */
|
|
|
|
static int hf_acse_asoi_identifier = -1; /* ASOI_identifier */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_acse_rLRQ_user_information = -1; /* Association_data */
|
|
|
|
static int hf_acse_rLRE_reason = -1; /* Release_response_reason */
|
|
|
|
static int hf_acse_rLRE_user_information = -1; /* Association_data */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_abort_source = -1; /* ABRT_source */
|
|
|
|
static int hf_acse_abort_diagnostic = -1; /* ABRT_diagnostic */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_acse_aBRT_user_information = -1; /* Association_data */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_a_user_data = -1; /* User_Data */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_acse_aCRQ_aSO_context_name = -1; /* T_ACRQ_aSO_context_name */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_user_information = -1; /* User_information */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_acse_aSO_context_name = -1; /* T_ACRP_aSO_context_name */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_ap_title_form1 = -1; /* AP_title_form1 */
|
|
|
|
static int hf_acse_ap_title_form2 = -1; /* AP_title_form2 */
|
|
|
|
static int hf_acse_ap_title_form3 = -1; /* AP_title_form3 */
|
|
|
|
static int hf_acse_aso_qualifier_form1 = -1; /* ASO_qualifier_form1 */
|
|
|
|
static int hf_acse_aso_qualifier_form2 = -1; /* ASO_qualifier_form2 */
|
|
|
|
static int hf_acse_aso_qualifier_form3 = -1; /* ASO_qualifier_form3 */
|
2006-08-27 09:03:21 +00:00
|
|
|
static int hf_acse_aso_qualifier_form_any_octets = -1; /* ASO_qualifier_form_octets */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_ae_title_form1 = -1; /* AE_title_form1 */
|
|
|
|
static int hf_acse_ae_title_form2 = -1; /* AE_title_form2 */
|
|
|
|
static int hf_acse_ASOI_tag_item = -1; /* ASOI_tag_item */
|
|
|
|
static int hf_acse_qualifier = -1; /* ASO_qualifier */
|
|
|
|
static int hf_acse_identifier = -1; /* ASOI_identifier */
|
|
|
|
static int hf_acse_ASO_context_name_list_item = -1; /* ASO_context_name */
|
|
|
|
static int hf_acse_context_list = -1; /* Context_list */
|
|
|
|
static int hf_acse_default_contact_list = -1; /* Default_Context_List */
|
|
|
|
static int hf_acse_Context_list_item = -1; /* Context_list_item */
|
|
|
|
static int hf_acse_pci = -1; /* Presentation_context_identifier */
|
|
|
|
static int hf_acse_abstract_syntax = -1; /* Abstract_syntax_name */
|
|
|
|
static int hf_acse_transfer_syntaxes = -1; /* SEQUENCE_OF_TransferSyntaxName */
|
|
|
|
static int hf_acse_transfer_syntaxes_item = -1; /* TransferSyntaxName */
|
|
|
|
static int hf_acse_Default_Context_List_item = -1; /* Default_Context_List_item */
|
|
|
|
static int hf_acse_abstract_syntax_name = -1; /* Abstract_syntax_name */
|
|
|
|
static int hf_acse_transfer_syntax_name = -1; /* TransferSyntaxName */
|
|
|
|
static int hf_acse_P_context_result_list_item = -1; /* P_context_result_list_item */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_acse_pcontext_result = -1; /* Result */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_concrete_syntax_name = -1; /* Concrete_syntax_name */
|
|
|
|
static int hf_acse_provider_reason = -1; /* T_provider_reason */
|
2013-07-06 01:20:38 +00:00
|
|
|
static int hf_acse_service_user = -1; /* T_service_user */
|
|
|
|
static int hf_acse_service_provider = -1; /* T_service_provider */
|
2007-05-03 11:37:47 +00:00
|
|
|
static int hf_acse_Association_data_item = -1; /* EXTERNALt */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_simply_encoded_data = -1; /* Simply_encoded_data */
|
|
|
|
static int hf_acse_fully_encoded_data = -1; /* PDV_list */
|
|
|
|
static int hf_acse_presentation_context_identifier = -1; /* Presentation_context_identifier */
|
|
|
|
static int hf_acse_presentation_data_values = -1; /* T_presentation_data_values */
|
|
|
|
static int hf_acse_simple_ASN1_type = -1; /* T_simple_ASN1_type */
|
2010-01-04 23:17:37 +00:00
|
|
|
static int hf_acse_pDVList_octet_aligned = -1; /* OCTET_STRING */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_other_mechanism_name = -1; /* T_other_mechanism_name */
|
|
|
|
static int hf_acse_other_mechanism_value = -1; /* T_other_mechanism_value */
|
|
|
|
static int hf_acse_charstring = -1; /* GraphicString */
|
|
|
|
static int hf_acse_bitstring = -1; /* BIT_STRING */
|
2007-05-03 11:37:47 +00:00
|
|
|
static int hf_acse_external = -1; /* EXTERNALt */
|
2005-06-19 11:54:33 +00:00
|
|
|
static int hf_acse_other = -1; /* Authentication_value_other */
|
|
|
|
/* named bits */
|
|
|
|
static int hf_acse_T_AARQ_protocol_version_version1 = -1;
|
|
|
|
static int hf_acse_T_AARE_protocol_version_version1 = -1;
|
|
|
|
static int hf_acse_ACSE_requirements_authentication = -1;
|
|
|
|
static int hf_acse_ACSE_requirements_aSO_context_negotiation = -1;
|
|
|
|
static int hf_acse_ACSE_requirements_higher_level_association = -1;
|
|
|
|
static int hf_acse_ACSE_requirements_nested_association = -1;
|
|
|
|
|
|
|
|
/*--- End of included file: packet-acse-hf.c ---*/
|
2018-02-18 14:19:48 +00:00
|
|
|
#line 56 "./asn1/acse/packet-acse-template.c"
|
2014-08-08 13:19:29 +00:00
|
|
|
static gint hf_acse_user_data = -1;
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
/* Initialize the subtree pointers */
|
|
|
|
static gint ett_acse = -1;
|
|
|
|
|
|
|
|
/*--- Included file: packet-acse-ett.c ---*/
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 1 "./asn1/acse/packet-acse-ett.c"
|
2007-11-05 20:41:44 +00:00
|
|
|
static gint ett_acse_EXTERNALt_U = -1;
|
2005-06-19 11:54:33 +00:00
|
|
|
static gint ett_acse_T_encoding = -1;
|
|
|
|
static gint ett_acse_ACSE_apdu = -1;
|
2007-11-05 20:41:44 +00:00
|
|
|
static gint ett_acse_AARQ_apdu_U = -1;
|
2005-06-19 11:54:33 +00:00
|
|
|
static gint ett_acse_T_AARQ_protocol_version = -1;
|
2007-11-05 20:41:44 +00:00
|
|
|
static gint ett_acse_AARE_apdu_U = -1;
|
2005-06-19 11:54:33 +00:00
|
|
|
static gint ett_acse_T_AARE_protocol_version = -1;
|
2007-11-05 20:41:44 +00:00
|
|
|
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;
|
2005-06-19 11:54:33 +00:00
|
|
|
static gint ett_acse_ACSE_requirements = -1;
|
|
|
|
static gint ett_acse_AP_title = -1;
|
|
|
|
static gint ett_acse_ASO_qualifier = -1;
|
|
|
|
static gint ett_acse_AE_title = -1;
|
|
|
|
static gint ett_acse_ASOI_tag = -1;
|
|
|
|
static gint ett_acse_ASOI_tag_item = -1;
|
|
|
|
static gint ett_acse_ASO_context_name_list = -1;
|
|
|
|
static gint ett_acse_Syntactic_context_list = -1;
|
|
|
|
static gint ett_acse_Context_list = -1;
|
|
|
|
static gint ett_acse_Context_list_item = -1;
|
|
|
|
static gint ett_acse_SEQUENCE_OF_TransferSyntaxName = -1;
|
|
|
|
static gint ett_acse_Default_Context_List = -1;
|
|
|
|
static gint ett_acse_Default_Context_List_item = -1;
|
|
|
|
static gint ett_acse_P_context_result_list = -1;
|
|
|
|
static gint ett_acse_P_context_result_list_item = -1;
|
|
|
|
static gint ett_acse_Associate_source_diagnostic = -1;
|
|
|
|
static gint ett_acse_Association_data = -1;
|
|
|
|
static gint ett_acse_User_Data = -1;
|
|
|
|
static gint ett_acse_PDV_list = -1;
|
|
|
|
static gint ett_acse_T_presentation_data_values = -1;
|
|
|
|
static gint ett_acse_Authentication_value_other = -1;
|
|
|
|
static gint ett_acse_Authentication_value = -1;
|
|
|
|
|
|
|
|
/*--- End of included file: packet-acse-ett.c ---*/
|
2018-02-18 14:19:48 +00:00
|
|
|
#line 61 "./asn1/acse/packet-acse-template.c"
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2013-06-03 03:42:36 +00:00
|
|
|
static expert_field ei_acse_dissector_not_available = EI_INIT;
|
2014-08-08 13:19:29 +00:00
|
|
|
static expert_field ei_acse_malformed = EI_INIT;
|
|
|
|
static expert_field ei_acse_invalid_oid = EI_INIT;
|
2013-06-03 03:42:36 +00:00
|
|
|
|
2016-07-01 00:41:45 +00:00
|
|
|
static dissector_handle_t acse_handle = NULL;
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
/* indirect_reference, used to pick up the signalling so we know what
|
|
|
|
kind of data is transferred in SES_DATA_TRANSFER_PDUs */
|
|
|
|
static guint32 indir_ref=0;
|
|
|
|
|
2005-09-04 09:00:01 +00:00
|
|
|
#if NOT_NEEDED
|
2005-06-19 11:54:33 +00:00
|
|
|
/* to keep track of presentation context identifiers and protocol-oids */
|
|
|
|
typedef struct _acse_ctx_oid_t {
|
|
|
|
/* XXX here we should keep track of ADDRESS/PORT as well */
|
|
|
|
guint32 ctx_id;
|
|
|
|
char *oid;
|
|
|
|
} acse_ctx_oid_t;
|
2017-01-29 03:29:32 +00:00
|
|
|
static wmem_map_t *acse_ctx_oid_table = NULL;
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
static guint
|
|
|
|
acse_ctx_oid_hash(gconstpointer k)
|
2004-01-23 10:15:37 +00:00
|
|
|
{
|
2005-06-19 11:54:33 +00:00
|
|
|
acse_ctx_oid_t *aco=(acse_ctx_oid_t *)k;
|
|
|
|
return aco->ctx_id;
|
|
|
|
}
|
|
|
|
/* XXX this one should be made ADDRESS/PORT aware */
|
|
|
|
static gint
|
|
|
|
acse_ctx_oid_equal(gconstpointer k1, gconstpointer k2)
|
2004-01-23 10:15:37 +00:00
|
|
|
{
|
2005-06-19 11:54:33 +00:00
|
|
|
acse_ctx_oid_t *aco1=(acse_ctx_oid_t *)k1;
|
|
|
|
acse_ctx_oid_t *aco2=(acse_ctx_oid_t *)k2;
|
|
|
|
return aco1->ctx_id==aco2->ctx_id;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
static void
|
2005-06-19 11:54:33 +00:00
|
|
|
register_ctx_id_and_oid(packet_info *pinfo _U_, guint32 idx, char *oid)
|
2004-01-23 10:15:37 +00:00
|
|
|
{
|
2005-06-19 11:54:33 +00:00
|
|
|
acse_ctx_oid_t *aco, *tmpaco;
|
2013-06-19 20:43:03 +00:00
|
|
|
aco=wmem_new(wmem_file_scope(), acse_ctx_oid_t);
|
2005-06-19 11:54:33 +00:00
|
|
|
aco->ctx_id=idx;
|
2013-06-19 20:43:03 +00:00
|
|
|
aco->oid=wmem_strdup(wmem_file_scope(), oid);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
/* if this ctx already exists, remove the old one first */
|
2017-01-29 03:29:32 +00:00
|
|
|
tmpaco=(acse_ctx_oid_t *)wmem_map_lookup(acse_ctx_oid_table, aco);
|
2016-02-06 11:28:16 +00:00
|
|
|
if (tmpaco) {
|
2017-01-29 03:29:32 +00:00
|
|
|
wmem_map_remove(acse_ctx_oid_table, tmpaco);
|
2004-01-23 10:15:37 +00:00
|
|
|
}
|
2017-01-29 03:29:32 +00:00
|
|
|
wmem_map_insert(acse_ctx_oid_table, aco, aco);
|
2004-01-23 10:15:37 +00:00
|
|
|
}
|
2005-06-19 11:54:33 +00:00
|
|
|
static char *
|
|
|
|
find_oid_by_ctx_id(packet_info *pinfo _U_, guint32 idx)
|
2004-01-23 10:15:37 +00:00
|
|
|
{
|
2005-06-19 11:54:33 +00:00
|
|
|
acse_ctx_oid_t aco, *tmpaco;
|
|
|
|
aco.ctx_id=idx;
|
2017-01-29 03:29:32 +00:00
|
|
|
tmpaco=(acse_ctx_oid_t *)wmem_map_lookup(acse_ctx_oid_table, &aco);
|
2016-02-06 11:28:16 +00:00
|
|
|
if (tmpaco) {
|
2005-06-19 11:54:33 +00:00
|
|
|
return tmpaco->oid;
|
|
|
|
}
|
|
|
|
return NULL;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-09-04 09:00:01 +00:00
|
|
|
# endif /* NOT_NEEDED */
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
/*--- Included file: packet-acse-fn.c ---*/
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 1 "./asn1/acse/packet-acse-fn.c"
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_T_direct_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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 102 "./asn1/acse/acse.cnf"
|
2015-01-04 17:47:40 +00:00
|
|
|
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
|
|
|
|
|
|
|
|
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
|
|
|
|
|
|
|
|
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
2004-01-23 10:15:37 +00:00
|
|
|
}
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 82 "./asn1/acse/acse.cnf"
|
2005-09-04 09:00:01 +00:00
|
|
|
char *oid;
|
2013-11-05 22:58:50 +00:00
|
|
|
struct SESSION_DATA_STRUCTURE* session = (struct SESSION_DATA_STRUCTURE*) actx->private_data;
|
2013-11-05 18:47:26 +00:00
|
|
|
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(FALSE, actx, tree, tvb, offset,
|
2005-06-19 11:54:33 +00:00
|
|
|
hf_acse_indirect_reference,
|
|
|
|
&indir_ref);
|
|
|
|
|
2005-09-04 09:00:01 +00:00
|
|
|
/* look up the indirect reference */
|
2007-05-13 20:58:29 +00:00
|
|
|
if((oid = find_oid_by_pres_ctx_id(actx->pinfo, indir_ref)) != NULL) {
|
2015-01-04 17:47:40 +00:00
|
|
|
actx->external.direct_reference = wmem_strdup(wmem_packet_scope(), oid);
|
|
|
|
actx->external.direct_ref_present = TRUE;
|
2005-09-04 09:00:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if(session)
|
|
|
|
session->pres_ctx_id = indir_ref;
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
2004-01-23 10:15:37 +00:00
|
|
|
}
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2005-08-19 15:50:48 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_ObjectDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2005-06-19 11:54:33 +00:00
|
|
|
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_ObjectDescriptor,
|
2007-05-15 05:49:43 +00:00
|
|
|
actx, tree, tvb, offset, hf_index,
|
2005-08-19 15:50:48 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
2004-01-23 10:15:37 +00:00
|
|
|
}
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2004-01-23 10:15:37 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 106 "./asn1/acse/acse.cnf"
|
2015-01-04 17:47:40 +00:00
|
|
|
if (actx->external.direct_ref_present) {
|
2017-08-29 15:03:05 +00:00
|
|
|
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, actx->subtree.top_tree ? actx->subtree.top_tree : tree, actx->private_data);
|
2015-01-04 17:47:40 +00:00
|
|
|
}
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
2004-01-23 10:15:37 +00:00
|
|
|
}
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-07-09 02:58:07 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-07-14 08:21:58 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 111 "./asn1/acse/acse.cnf"
|
2015-01-04 17:47:40 +00:00
|
|
|
if (actx->external.direct_ref_present) {
|
2017-08-29 15:03:05 +00:00
|
|
|
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, actx->subtree.top_tree ? actx->subtree.top_tree : tree, actx->private_data);
|
2015-01-04 17:47:40 +00:00
|
|
|
}
|
2007-07-14 08:21:58 +00:00
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2005-08-19 15:50:48 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
|
2019-04-02 11:39:52 +00:00
|
|
|
NULL, 0, hf_index, -1,
|
2005-08-19 15:50:48 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static const value_string acse_T_encoding_vals[] = {
|
|
|
|
{ 0, "single-ASN1-type" },
|
|
|
|
{ 1, "octet-aligned" },
|
|
|
|
{ 2, "arbitrary" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_choice(actx, tree, tvb, offset,
|
|
|
|
T_encoding_choice, hf_index, ett_acse_T_encoding,
|
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
2004-01-23 10:15:37 +00:00
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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;
|
|
|
|
}
|
2005-06-22 08:15:18 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2005-06-22 08:15:18 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-08-19 15:50:48 +00:00
|
|
|
|
2019-04-02 11:39:52 +00:00
|
|
|
static const int * T_AARQ_protocol_version_bits[] = {
|
|
|
|
&hf_acse_T_AARQ_protocol_version_version1,
|
|
|
|
NULL
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_T_AARQ_protocol_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
|
2019-04-02 11:39:52 +00:00
|
|
|
T_AARQ_protocol_version_bits, 1, hf_index, ett_acse_T_AARQ_protocol_version,
|
2005-08-19 15:50:48 +00:00
|
|
|
NULL);
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_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_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 62 "./asn1/acse/acse.cnf"
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
|
2015-01-04 17:47:40 +00:00
|
|
|
hf_index, &actx->external.direct_reference);
|
|
|
|
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
|
2005-03-29 12:27:13 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_AP_title_form1(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_x509if_Name(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_AP_title_form2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2005-08-19 15:50:48 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_AP_title_form3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2005-06-19 11:54:33 +00:00
|
|
|
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
|
2007-05-15 05:49:43 +00:00
|
|
|
actx, tree, tvb, offset, hf_index,
|
2005-08-19 15:50:48 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
2004-01-23 10:15:37 +00:00
|
|
|
}
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2005-07-03 05:28:12 +00:00
|
|
|
const value_string acse_AP_title_vals[] = {
|
2005-06-19 11:54:33 +00:00
|
|
|
{ 0, "ap-title-form1" },
|
|
|
|
{ 1, "ap-title-form2" },
|
|
|
|
{ 2, "ap-title-form3" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
2005-07-03 05:28:12 +00:00
|
|
|
int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_choice(actx, tree, tvb, offset,
|
|
|
|
AP_title_choice, hf_index, ett_acse_AP_title,
|
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_ASO_qualifier_form1(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_x509if_RelativeDistinguishedName(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_ASO_qualifier_form2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2008-07-22 17:28:38 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
|
2005-08-19 15:50:48 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_ASO_qualifier_form3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2005-06-19 11:54:33 +00:00
|
|
|
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
|
2007-05-15 05:49:43 +00:00
|
|
|
actx, tree, tvb, offset, hf_index,
|
2005-08-19 15:50:48 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
|
2006-08-27 09:03:21 +00:00
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_ASO_qualifier_form_octets(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2006-08-27 09:03:21 +00:00
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-10-24 21:42:19 +00:00
|
|
|
const value_string acse_ASO_qualifier_vals[] = {
|
2005-06-19 11:54:33 +00:00
|
|
|
{ 0, "aso-qualifier-form1" },
|
|
|
|
{ 1, "aso-qualifier-form2" },
|
|
|
|
{ 2, "aso-qualifier-form3" },
|
2006-08-27 09:03:21 +00:00
|
|
|
{ 3, "aso-qualifier-form-any-octets" },
|
2005-06-19 11:54:33 +00:00
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-10-24 21:42:19 +00:00
|
|
|
int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_choice(actx, tree, tvb, offset,
|
|
|
|
ASO_qualifier_choice, hf_index, ett_acse_ASO_qualifier,
|
|
|
|
NULL);
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-07-03 05:28:12 +00:00
|
|
|
int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_AE_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_acse_ASO_qualifier(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2004-01-23 10:15:37 +00:00
|
|
|
|
2005-07-03 05:28:12 +00:00
|
|
|
int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_AP_invocation_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2008-07-22 17:28:38 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-03 05:28:12 +00:00
|
|
|
int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_AE_invocation_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2008-07-22 17:28:38 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-19 15:50:48 +00:00
|
|
|
|
2019-04-02 11:39:52 +00:00
|
|
|
static const int * ACSE_requirements_bits[] = {
|
|
|
|
&hf_acse_ACSE_requirements_authentication,
|
|
|
|
&hf_acse_ACSE_requirements_aSO_context_negotiation,
|
|
|
|
&hf_acse_ACSE_requirements_higher_level_association,
|
|
|
|
&hf_acse_ACSE_requirements_nested_association,
|
|
|
|
NULL
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_ACSE_requirements(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
|
2019-04-02 11:39:52 +00:00
|
|
|
ACSE_requirements_bits, 4, hf_index, ett_acse_ACSE_requirements,
|
2005-08-19 15:50:48 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_Mechanism_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_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-19 15:50:48 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_GraphicString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2005-07-03 05:28:12 +00:00
|
|
|
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
|
2007-05-15 05:49:43 +00:00
|
|
|
actx, tree, tvb, offset, hf_index,
|
2005-08-19 15:50:48 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_T_other_mechanism_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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 50 "./asn1/acse/acse.cnf"
|
2015-01-04 17:47:40 +00:00
|
|
|
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference);
|
|
|
|
|
|
|
|
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
|
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 54 "./asn1/acse/acse.cnf"
|
2015-01-04 17:47:40 +00:00
|
|
|
if (actx->external.direct_ref_present) {
|
2017-08-29 15:03:05 +00:00
|
|
|
offset=call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, actx->subtree.top_tree, actx->private_data);
|
2015-01-04 17:47:40 +00:00
|
|
|
}
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Authentication_value_other_sequence, hf_index, ett_acse_Authentication_value_other);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_Authentication_value_vals[] = {
|
|
|
|
{ 0, "charstring" },
|
|
|
|
{ 1, "bitstring" },
|
|
|
|
{ 2, "external" },
|
|
|
|
{ 3, "other" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_choice(actx, tree, tvb, offset,
|
|
|
|
Authentication_value_choice, hf_index, ett_acse_Authentication_value,
|
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-07-21 21:12:09 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 },
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-19 15:50:48 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_Implementation_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_) {
|
2005-06-19 11:54:33 +00:00
|
|
|
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
|
2007-05-15 05:49:43 +00:00
|
|
|
actx, tree, tvb, offset, hf_index,
|
2005-08-19 15:50:48 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_Presentation_context_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2008-07-22 17:28:38 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_Abstract_syntax_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_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_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_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-07-21 21:12:09 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 },
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
SEQUENCE_OF_TransferSyntaxName_sequence_of, hf_index, ett_acse_SEQUENCE_OF_TransferSyntaxName);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Context_list_item_sequence, hf_index, ett_acse_Context_list_item);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-07-21 21:12:09 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 },
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Context_list_sequence_of, hf_index, ett_acse_Context_list);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Default_Context_List_item_sequence, hf_index, ett_acse_Default_Context_List_item);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-07-21 21:12:09 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 },
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Default_Context_List_sequence_of, hf_index, ett_acse_Default_Context_List);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_Syntactic_context_list_vals[] = {
|
|
|
|
{ 0, "context-list" },
|
|
|
|
{ 1, "default-contact-list" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_choice(actx, tree, tvb, offset,
|
|
|
|
Syntactic_context_list_choice, hf_index, ett_acse_Syntactic_context_list,
|
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_ASOI_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2009-12-19 14:27:17 +00:00
|
|
|
offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
1U, 128U, hf_index, NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
ASOI_tag_item_sequence, hf_index, ett_acse_ASOI_tag_item);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-07-21 21:12:09 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 },
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2009-12-19 14:27:17 +00:00
|
|
|
offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
0, 7, ASOI_tag_sequence_of, hf_index, ett_acse_ASOI_tag);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-07-21 21:12:09 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 },
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 116 "./asn1/acse/acse.cnf"
|
2013-10-31 00:57:03 +00:00
|
|
|
col_append_str(actx->pinfo->cinfo, COL_INFO, "A-Associate-Request");
|
2010-10-15 08:39:48 +00:00
|
|
|
|
|
|
|
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
|
2007-11-05 20:41:44 +00:00
|
|
|
hf_index, BER_CLASS_APP, 0, TRUE, dissect_acse_AARQ_apdu_U);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2010-10-15 08:39:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-19 15:50:48 +00:00
|
|
|
|
2019-04-02 11:39:52 +00:00
|
|
|
static const int * T_AARE_protocol_version_bits[] = {
|
|
|
|
&hf_acse_T_AARE_protocol_version_version1,
|
|
|
|
NULL
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_T_AARE_protocol_version(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
|
2019-04-02 11:39:52 +00:00
|
|
|
T_AARE_protocol_version_bits, 1, hf_index, ett_acse_T_AARE_protocol_version,
|
2005-08-19 15:50:48 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 67 "./asn1/acse/acse.cnf"
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
|
2015-01-04 17:47:40 +00:00
|
|
|
hf_index, &actx->external.direct_reference);
|
|
|
|
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_Associate_result_vals[] = {
|
|
|
|
{ 0, "accepted" },
|
|
|
|
{ 1, "rejected-permanent" },
|
|
|
|
{ 2, "rejected-transient" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_Associate_result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2009-12-19 14:27:17 +00:00
|
|
|
offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
0U, 2U, hf_index, NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2013-07-06 01:20:38 +00:00
|
|
|
static const value_string acse_T_service_user_vals[] = {
|
2005-06-19 11:54:33 +00:00
|
|
|
{ 0, "null" },
|
|
|
|
{ 1, "no-reason-given" },
|
|
|
|
{ 2, "application-context-name-not-supported" },
|
|
|
|
{ 3, "calling-AP-title-not-recognized" },
|
|
|
|
{ 4, "calling-AP-invocation-identifier-not-recognized" },
|
|
|
|
{ 5, "calling-AE-qualifier-not-recognized" },
|
|
|
|
{ 6, "calling-AE-invocation-identifier-not-recognized" },
|
|
|
|
{ 7, "called-AP-title-not-recognized" },
|
|
|
|
{ 8, "called-AP-invocation-identifier-not-recognized" },
|
|
|
|
{ 9, "called-AE-qualifier-not-recognized" },
|
|
|
|
{ 10, "called-AE-invocation-identifier-not-recognized" },
|
|
|
|
{ 11, "authentication-mechanism-name-not-recognized" },
|
|
|
|
{ 12, "authentication-mechanism-name-required" },
|
|
|
|
{ 13, "authentication-failure" },
|
|
|
|
{ 14, "authentication-required" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2013-07-06 01:20:38 +00:00
|
|
|
dissect_acse_T_service_user(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2009-12-19 14:27:17 +00:00
|
|
|
offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
0U, 14U, hf_index, NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2013-07-06 01:20:38 +00:00
|
|
|
static const value_string acse_T_service_provider_vals[] = {
|
2005-06-19 11:54:33 +00:00
|
|
|
{ 0, "null" },
|
|
|
|
{ 1, "no-reason-given" },
|
|
|
|
{ 2, "no-common-acse-version" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2013-07-06 01:20:38 +00:00
|
|
|
dissect_acse_T_service_provider(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2009-12-19 14:27:17 +00:00
|
|
|
offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
0U, 2U, hf_index, NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_Associate_source_diagnostic_vals[] = {
|
2013-07-06 01:20:38 +00:00
|
|
|
{ 1, "service-user" },
|
|
|
|
{ 2, "service-provider" },
|
2005-06-19 11:54:33 +00:00
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
static const ber_choice_t Associate_source_diagnostic_choice[] = {
|
2013-07-06 01:20:38 +00:00
|
|
|
{ 1, &hf_acse_service_user , BER_CLASS_CON, 1, 0, dissect_acse_T_service_user },
|
|
|
|
{ 2, &hf_acse_service_provider, BER_CLASS_CON, 2, 0, dissect_acse_T_service_provider },
|
2007-11-05 20:41:44 +00:00
|
|
|
{ 0, NULL, 0, 0, 0, NULL }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_choice(actx, tree, tvb, offset,
|
|
|
|
Associate_source_diagnostic_choice, hf_index, ett_acse_Associate_source_diagnostic,
|
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_Result_vals[] = {
|
|
|
|
{ 0, "acceptance" },
|
|
|
|
{ 1, "user-rejection" },
|
|
|
|
{ 2, "provider-rejection" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_Result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2008-07-22 17:28:38 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_Concrete_syntax_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_) {
|
|
|
|
offset = dissect_acse_TransferSyntaxName(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_T_provider_reason_vals[] = {
|
|
|
|
{ 0, "reason-not-specified" },
|
|
|
|
{ 1, "abstract-syntax-not-supported" },
|
|
|
|
{ 2, "proposed-transfer-syntaxes-not-supported" },
|
|
|
|
{ 3, "local-limit-on-DCS-exceeded" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_T_provider_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_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2008-07-22 17:28:38 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-07-21 21:12:09 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 },
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-11-05 20:41:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 121 "./asn1/acse/acse.cnf"
|
2013-10-31 00:57:03 +00:00
|
|
|
col_append_str(actx->pinfo->cinfo, COL_INFO, "A-Associate-Response");
|
2010-10-15 08:39:48 +00:00
|
|
|
|
|
|
|
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
|
2007-11-05 20:41:44 +00:00
|
|
|
hf_index, BER_CLASS_APP, 1, TRUE, dissect_acse_AARE_apdu_U);
|
|
|
|
|
2010-10-15 08:39:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
return offset;
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_Release_request_reason_vals[] = {
|
|
|
|
{ 0, "normal" },
|
|
|
|
{ 1, "urgent" },
|
|
|
|
{ 30, "user-defined" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 134 "./asn1/acse/acse.cnf"
|
2005-11-16 07:13:12 +00:00
|
|
|
int reason = -1;
|
2014-02-26 19:29:17 +00:00
|
|
|
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2008-07-22 17:28:38 +00:00
|
|
|
&reason);
|
2005-11-16 07:13:12 +00:00
|
|
|
|
|
|
|
|
2010-01-13 21:41:28 +00:00
|
|
|
if(reason != -1)
|
2010-06-09 14:27:09 +00:00
|
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s)", val_to_str(reason, acse_Release_request_reason_vals, "reason(%d)"));
|
2005-11-16 07:13:12 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-11-05 20:41:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 126 "./asn1/acse/acse.cnf"
|
2013-10-31 00:57:03 +00:00
|
|
|
col_append_str(actx->pinfo->cinfo, COL_INFO, "Release-Request");
|
2010-06-09 14:27:09 +00:00
|
|
|
|
|
|
|
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
|
2007-11-05 20:41:44 +00:00
|
|
|
hf_index, BER_CLASS_APP, 2, TRUE, dissect_acse_RLRQ_apdu_U);
|
|
|
|
|
2010-06-09 14:27:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
return offset;
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_Release_response_reason_vals[] = {
|
|
|
|
{ 0, "normal" },
|
|
|
|
{ 1, "not-finished" },
|
|
|
|
{ 30, "user-defined" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 150 "./asn1/acse/acse.cnf"
|
2005-11-16 07:13:12 +00:00
|
|
|
int reason = -1;
|
2014-02-26 19:29:17 +00:00
|
|
|
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2008-07-22 17:28:38 +00:00
|
|
|
&reason);
|
2005-11-16 07:13:12 +00:00
|
|
|
|
|
|
|
|
2010-01-13 21:41:28 +00:00
|
|
|
if(reason != -1)
|
2010-06-09 14:27:09 +00:00
|
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s)", val_to_str(reason, acse_Release_response_reason_vals, "reason(%d)"));
|
2005-11-16 07:13:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-11-05 20:41:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 142 "./asn1/acse/acse.cnf"
|
2013-10-31 00:57:03 +00:00
|
|
|
col_append_str(actx->pinfo->cinfo, COL_INFO, "Release-Response");
|
2010-06-09 14:27:09 +00:00
|
|
|
|
|
|
|
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
|
2007-11-05 20:41:44 +00:00
|
|
|
hf_index, BER_CLASS_APP, 3, TRUE, dissect_acse_RLRE_apdu_U);
|
|
|
|
|
2010-06-09 14:27:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
return offset;
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_ABRT_source_vals[] = {
|
2013-07-06 01:20:38 +00:00
|
|
|
{ 0, "service-user" },
|
|
|
|
{ 1, "service-provider" },
|
2005-06-19 11:54:33 +00:00
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_ABRT_source(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 163 "./asn1/acse/acse.cnf"
|
2010-09-23 07:39:38 +00:00
|
|
|
int source = -1;
|
|
|
|
|
|
|
|
offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
0U, 1U, hf_index, &source);
|
|
|
|
|
|
|
|
|
|
|
|
if(source != -1)
|
|
|
|
col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s)", val_to_str(source, acse_ABRT_source_vals, "source(%d)"));
|
2014-02-26 19:29:17 +00:00
|
|
|
|
2010-09-23 07:39:38 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_ABRT_diagnostic_vals[] = {
|
|
|
|
{ 1, "no-reason-given" },
|
|
|
|
{ 2, "protocol-error" },
|
|
|
|
{ 3, "authentication-mechanism-name-not-recognized" },
|
|
|
|
{ 4, "authentication-mechanism-name-required" },
|
|
|
|
{ 5, "authentication-failure" },
|
|
|
|
{ 6, "authentication-required" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_ABRT_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_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2005-07-09 02:58:07 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-11-05 20:41:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 158 "./asn1/acse/acse.cnf"
|
2013-10-31 00:57:03 +00:00
|
|
|
col_append_str(actx->pinfo->cinfo, COL_INFO, "Abort");
|
2010-09-23 07:39:38 +00:00
|
|
|
|
|
|
|
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
|
2007-11-05 20:41:44 +00:00
|
|
|
hf_index, BER_CLASS_APP, 4, TRUE, dissect_acse_ABRT_apdu_U);
|
|
|
|
|
2010-09-23 07:39:38 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
return offset;
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_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_acse_Association_data(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-07-09 02:58:07 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_Simply_encoded_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_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2005-07-09 02:58:07 +00:00
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 59 "./asn1/acse/acse.cnf"
|
2005-06-19 11:54:33 +00:00
|
|
|
/*XXX not implemented yet */
|
|
|
|
|
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-07-14 08:21:58 +00:00
|
|
|
|
|
|
|
static int
|
|
|
|
dissect_acse_OCTET_STRING(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;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static const value_string acse_T_presentation_data_values_vals[] = {
|
|
|
|
{ 0, "simple-ASN1-type" },
|
|
|
|
{ 1, "octet-aligned" },
|
|
|
|
{ 2, "arbitrary" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 },
|
2010-01-04 23:17:37 +00:00
|
|
|
{ 1, &hf_acse_pDVList_octet_aligned, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_acse_OCTET_STRING },
|
2007-11-05 20:41:44 +00:00
|
|
|
{ 2, &hf_acse_arbitrary , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_acse_BIT_STRING },
|
|
|
|
{ 0, NULL, 0, 0, 0, NULL }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_choice(actx, tree, tvb, offset,
|
|
|
|
T_presentation_data_values_choice, hf_index, ett_acse_T_presentation_data_values,
|
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
PDV_list_sequence, hf_index, ett_acse_PDV_list);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string acse_User_Data_vals[] = {
|
|
|
|
{ 0, "user-information" },
|
|
|
|
{ 1, "simply-encoded-data" },
|
|
|
|
{ 2, "fully-encoded-data" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_choice(actx, tree, tvb, offset,
|
|
|
|
User_Data_choice, hf_index, ett_acse_User_Data,
|
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-11-05 20:41:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 72 "./asn1/acse/acse.cnf"
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
|
2015-01-04 17:47:40 +00:00
|
|
|
hf_index, &actx->external.direct_reference);
|
|
|
|
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-11-05 20:41:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 77 "./asn1/acse/acse.cnf"
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_object_identifier_str(FALSE, actx, tree, tvb, offset,
|
2015-01-04 17:47:40 +00:00
|
|
|
hf_index, &actx->external.direct_reference);
|
|
|
|
actx->external.direct_ref_present = (actx->external.direct_reference != NULL) ? TRUE : FALSE;
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-11-05 20:41:44 +00:00
|
|
|
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);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-11-05 20:41:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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;
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_choice(actx, tree, tvb, offset,
|
|
|
|
ACSE_apdu_choice, hf_index, ett_acse_ACSE_apdu,
|
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-13 01:29:31 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_AE_title_form1(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_x509if_Name(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_acse_AE_title_form2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-06-12 21:29:27 +00:00
|
|
|
const value_string acse_AE_title_vals[] = {
|
2005-06-19 11:54:33 +00:00
|
|
|
{ 0, "ae-title-form1" },
|
|
|
|
{ 1, "ae-title-form2" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-11-05 20:41:44 +00:00
|
|
|
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 }
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
2007-06-12 21:29:27 +00:00
|
|
|
int
|
2007-05-13 20:58:29 +00:00
|
|
|
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_) {
|
2007-11-05 20:41:44 +00:00
|
|
|
offset = dissect_ber_choice(actx, tree, tvb, offset,
|
|
|
|
AE_title_choice, hf_index, ett_acse_AE_title,
|
|
|
|
NULL);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*--- End of included file: packet-acse-fn.c ---*/
|
2018-02-18 14:19:48 +00:00
|
|
|
#line 126 "./asn1/acse/packet-acse-template.c"
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Dissect ACSE PDUs inside a PPDU.
|
|
|
|
*/
|
2013-11-05 18:47:26 +00:00
|
|
|
static int
|
|
|
|
dissect_acse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data)
|
2005-06-19 11:54:33 +00:00
|
|
|
{
|
|
|
|
int offset = 0;
|
2013-11-05 18:47:26 +00:00
|
|
|
proto_item *item;
|
|
|
|
proto_tree *tree;
|
2005-06-19 11:54:33 +00:00
|
|
|
char *oid;
|
2013-11-05 18:47:26 +00:00
|
|
|
struct SESSION_DATA_STRUCTURE* session;
|
2007-05-13 20:58:29 +00:00
|
|
|
asn1_ctx_t asn1_ctx;
|
|
|
|
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2013-12-02 02:07:42 +00:00
|
|
|
/* do we have spdu type from the session dissector? */
|
2016-02-06 11:28:16 +00:00
|
|
|
if (data == NULL) {
|
2013-12-02 02:07:42 +00:00
|
|
|
return 0;
|
|
|
|
}
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
/* first, try to check length */
|
|
|
|
/* do we have at least 2 bytes */
|
2016-02-06 11:28:16 +00:00
|
|
|
if (!tvb_bytes_exist(tvb, 0, 2)) {
|
2014-08-08 13:19:29 +00:00
|
|
|
proto_tree_add_item(parent_tree, hf_acse_user_data, tvb, offset,
|
|
|
|
tvb_reported_length_remaining(tvb,offset), ENC_NA);
|
2013-11-05 18:47:26 +00:00
|
|
|
return 0; /* no, it isn't a ACSE PDU */
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
2013-11-05 18:47:26 +00:00
|
|
|
|
2016-02-06 11:28:16 +00:00
|
|
|
session = ( (struct SESSION_DATA_STRUCTURE*)data);
|
|
|
|
if (session->spdu_type == 0) {
|
|
|
|
if (parent_tree) {
|
2018-03-25 22:09:56 +00:00
|
|
|
REPORT_DISSECTOR_BUG("Wrong spdu type %x from session dissector.",session->spdu_type);
|
2013-11-05 18:47:26 +00:00
|
|
|
return 0;
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
}
|
2013-11-05 18:47:26 +00:00
|
|
|
|
|
|
|
asn1_ctx.private_data = session;
|
2005-11-16 07:13:12 +00:00
|
|
|
/* save parent_tree so subdissectors can create new top nodes */
|
2017-08-29 15:03:05 +00:00
|
|
|
asn1_ctx.subtree.top_tree = parent_tree;
|
2005-11-16 07:13:12 +00:00
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
/* ACSE has only AARQ,AARE,RLRQ,RLRE,ABRT type of pdu */
|
|
|
|
/* reject everything else */
|
|
|
|
/* data pdu is not ACSE pdu and has to go directly to app dissector */
|
2016-02-06 11:28:16 +00:00
|
|
|
switch (session->spdu_type) {
|
2005-06-19 11:54:33 +00:00
|
|
|
case SES_CONNECTION_REQUEST: /* AARQ */
|
2005-09-04 09:00:01 +00:00
|
|
|
case SES_CONNECTION_ACCEPT: /* AARE */
|
|
|
|
case SES_REFUSE: /* RLRE */
|
|
|
|
case SES_DISCONNECT: /* RLRQ */
|
|
|
|
case SES_FINISH: /* RLRE */
|
|
|
|
case SES_ABORT: /* ABRT */
|
2016-01-06 00:58:42 +00:00
|
|
|
case CLSES_UNIT_DATA: /* AARQ Connectionless session */
|
2005-06-19 11:54:33 +00:00
|
|
|
break;
|
|
|
|
case SES_DATA_TRANSFER:
|
2005-09-04 09:00:01 +00:00
|
|
|
oid=find_oid_by_pres_ctx_id(pinfo, indir_ref);
|
2016-02-06 11:28:16 +00:00
|
|
|
if (oid) {
|
|
|
|
if (strcmp(oid, ACSE_APDU_OID) == 0) {
|
2014-08-08 13:19:29 +00:00
|
|
|
proto_tree_add_expert_format(parent_tree, pinfo, &ei_acse_invalid_oid, tvb, offset, -1,
|
2005-10-18 13:36:32 +00:00
|
|
|
"Invalid OID: %s", ACSE_APDU_OID);
|
|
|
|
}
|
2017-08-29 15:03:05 +00:00
|
|
|
else {
|
|
|
|
call_ber_oid_callback(oid, tvb, offset, pinfo, parent_tree, NULL);
|
|
|
|
}
|
2005-06-19 11:54:33 +00:00
|
|
|
} else {
|
2013-07-03 02:59:31 +00:00
|
|
|
proto_tree_add_expert(parent_tree, pinfo, &ei_acse_dissector_not_available,
|
2017-08-29 15:03:05 +00:00
|
|
|
tvb, offset, -1);
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
2013-11-05 18:47:26 +00:00
|
|
|
return 0;
|
2005-06-19 11:54:33 +00:00
|
|
|
default:
|
2013-11-05 18:47:26 +00:00
|
|
|
return 0;
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
2016-02-06 11:28:16 +00:00
|
|
|
if (session->spdu_type == CLSES_UNIT_DATA) {
|
2010-01-04 23:17:37 +00:00
|
|
|
/* create display subtree for the connectionless protocol */
|
2013-11-05 18:47:26 +00:00
|
|
|
item = proto_tree_add_item(parent_tree, proto_clacse, tvb, 0, -1, ENC_NA);
|
|
|
|
tree = proto_item_add_subtree(item, ett_acse);
|
|
|
|
|
2010-01-04 23:17:37 +00:00
|
|
|
col_set_str(pinfo->cinfo, COL_PROTOCOL, "CL-ACSE");
|
2013-11-05 18:47:26 +00:00
|
|
|
col_clear(pinfo->cinfo, COL_INFO);
|
2016-02-06 11:28:16 +00:00
|
|
|
} else {
|
2010-01-04 23:17:37 +00:00
|
|
|
/* create display subtree for the protocol */
|
2013-11-05 18:47:26 +00:00
|
|
|
item = proto_tree_add_item(parent_tree, proto_acse, tvb, 0, -1, ENC_NA);
|
|
|
|
tree = proto_item_add_subtree(item, ett_acse);
|
|
|
|
|
2010-01-04 23:17:37 +00:00
|
|
|
col_set_str(pinfo->cinfo, COL_PROTOCOL, "ACSE");
|
2013-11-05 18:47:26 +00:00
|
|
|
col_clear(pinfo->cinfo, COL_INFO);
|
2005-06-22 08:28:59 +00:00
|
|
|
}
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
/* we can't make any additional checking here */
|
|
|
|
/* postpone it before dissector will have more information */
|
2016-02-06 11:28:16 +00:00
|
|
|
while (tvb_reported_length_remaining(tvb, offset) > 0) {
|
2005-10-13 01:39:53 +00:00
|
|
|
int old_offset=offset;
|
2007-05-13 20:58:29 +00:00
|
|
|
offset = dissect_acse_ACSE_apdu(FALSE, tvb, offset, &asn1_ctx, tree, -1);
|
2016-02-06 11:28:16 +00:00
|
|
|
if (offset == old_offset) {
|
2014-08-08 13:19:29 +00:00
|
|
|
proto_tree_add_expert(tree, pinfo, &ei_acse_malformed, tvb, offset, -1);
|
2005-06-19 11:54:33 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2013-12-02 02:07:42 +00:00
|
|
|
|
2014-06-19 19:27:47 +00:00
|
|
|
return tvb_captured_length(tvb);
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/*--- proto_register_acse ----------------------------------------------*/
|
|
|
|
void proto_register_acse(void) {
|
|
|
|
|
|
|
|
/* List of fields */
|
|
|
|
static hf_register_info hf[] = {
|
2014-08-08 13:19:29 +00:00
|
|
|
{ &hf_acse_user_data,
|
|
|
|
{ "User data", "acse.user_data",
|
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
/*--- Included file: packet-acse-hfarr.c ---*/
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 1 "./asn1/acse/packet-acse-hfarr.c"
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_direct_reference,
|
|
|
|
{ "direct-reference", "acse.direct_reference",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"T_direct_reference", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_indirect_reference,
|
|
|
|
{ "indirect-reference", "acse.indirect_reference",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"T_indirect_reference", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_data_value_descriptor,
|
|
|
|
{ "data-value-descriptor", "acse.data_value_descriptor",
|
|
|
|
FT_STRING, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ObjectDescriptor", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_encoding,
|
|
|
|
{ "encoding", "acse.encoding",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_T_encoding_vals), 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_single_ASN1_type,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "single-ASN1-type", "acse.single_ASN1_type_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_octet_aligned,
|
|
|
|
{ "octet-aligned", "acse.octet_aligned",
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"T_octet_aligned", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_arbitrary,
|
|
|
|
{ "arbitrary", "acse.arbitrary",
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"BIT_STRING", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_aarq,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "aarq", "acse.aarq_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AARQ_apdu", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_aare,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "aare", "acse.aare_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AARE_apdu", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_rlrq,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "rlrq", "acse.rlrq_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"RLRQ_apdu", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_rlre,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "rlre", "acse.rlre_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"RLRE_apdu", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_abrt,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "abrt", "acse.abrt_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ABRT_apdu", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_adt,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "adt", "acse.adt_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"A_DT_apdu", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_acrq,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "acrq", "acse.acrq_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ACRQ_apdu", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_acrp,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "acrp", "acse.acrp_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ACRP_apdu", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_aARQ_protocol_version,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "protocol-version", "acse.protocol_version",
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"T_AARQ_protocol_version", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_aARQ_aSO_context_name,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "aSO-context-name", "acse.aSO_context_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"T_AARQ_aSO_context_name", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_called_AP_title,
|
|
|
|
{ "called-AP-title", "acse.called_AP_title",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_AP_title_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AP_title", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_called_AE_qualifier,
|
|
|
|
{ "called-AE-qualifier", "acse.called_AE_qualifier",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_ASO_qualifier_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AE_qualifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_called_AP_invocation_identifier,
|
|
|
|
{ "called-AP-invocation-identifier", "acse.called_AP_invocation_identifier",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AP_invocation_identifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_called_AE_invocation_identifier,
|
|
|
|
{ "called-AE-invocation-identifier", "acse.called_AE_invocation_identifier",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AE_invocation_identifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_calling_AP_title,
|
|
|
|
{ "calling-AP-title", "acse.calling_AP_title",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_AP_title_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AP_title", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_calling_AE_qualifier,
|
|
|
|
{ "calling-AE-qualifier", "acse.calling_AE_qualifier",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_ASO_qualifier_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AE_qualifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_calling_AP_invocation_identifier,
|
|
|
|
{ "calling-AP-invocation-identifier", "acse.calling_AP_invocation_identifier",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AP_invocation_identifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_calling_AE_invocation_identifier,
|
|
|
|
{ "calling-AE-invocation-identifier", "acse.calling_AE_invocation_identifier",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AE_invocation_identifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_sender_acse_requirements,
|
|
|
|
{ "sender-acse-requirements", "acse.sender_acse_requirements",
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ACSE_requirements", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_mechanism_name,
|
|
|
|
{ "mechanism-name", "acse.mechanism_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_calling_authentication_value,
|
|
|
|
{ "calling-authentication-value", "acse.calling_authentication_value",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_Authentication_value_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Authentication_value", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_aSO_context_name_list,
|
|
|
|
{ "aSO-context-name-list", "acse.aSO_context_name_list",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_implementation_information,
|
|
|
|
{ "implementation-information", "acse.implementation_information",
|
|
|
|
FT_STRING, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Implementation_data", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_p_context_definition_list,
|
|
|
|
{ "p-context-definition-list", "acse.p_context_definition_list",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_Syntactic_context_list_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Syntactic_context_list", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_called_asoi_tag,
|
|
|
|
{ "called-asoi-tag", "acse.called_asoi_tag",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ASOI_tag", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_calling_asoi_tag,
|
|
|
|
{ "calling-asoi-tag", "acse.calling_asoi_tag",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ASOI_tag", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_aARQ_user_information,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "user-information", "acse.user_information",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Association_data", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_aARE_protocol_version,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "protocol-version", "acse.protocol_version",
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"T_AARE_protocol_version", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_aARE_aSO_context_name,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "aSO-context-name", "acse.aSO_context_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"T_AARE_aSO_context_name", HFILL }},
|
2007-11-05 20:41:44 +00:00
|
|
|
{ &hf_acse_result,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "result", "acse.result",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_Associate_result_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Associate_result", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_result_source_diagnostic,
|
|
|
|
{ "result-source-diagnostic", "acse.result_source_diagnostic",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_Associate_source_diagnostic_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Associate_source_diagnostic", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_responding_AP_title,
|
|
|
|
{ "responding-AP-title", "acse.responding_AP_title",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_AP_title_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AP_title", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_responding_AE_qualifier,
|
|
|
|
{ "responding-AE-qualifier", "acse.responding_AE_qualifier",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_ASO_qualifier_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AE_qualifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_responding_AP_invocation_identifier,
|
|
|
|
{ "responding-AP-invocation-identifier", "acse.responding_AP_invocation_identifier",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AP_invocation_identifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_responding_AE_invocation_identifier,
|
|
|
|
{ "responding-AE-invocation-identifier", "acse.responding_AE_invocation_identifier",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"AE_invocation_identifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_responder_acse_requirements,
|
|
|
|
{ "responder-acse-requirements", "acse.responder_acse_requirements",
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ACSE_requirements", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_responding_authentication_value,
|
|
|
|
{ "responding-authentication-value", "acse.responding_authentication_value",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_Authentication_value_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Authentication_value", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_p_context_result_list,
|
|
|
|
{ "p-context-result-list", "acse.p_context_result_list",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_aARE_user_information,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "user-information", "acse.user_information",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Association_data", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_rLRQ_reason,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "reason", "acse.reason",
|
|
|
|
FT_INT32, BASE_DEC, VALS(acse_Release_request_reason_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Release_request_reason", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_aso_qualifier,
|
|
|
|
{ "aso-qualifier", "acse.aso_qualifier",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_ASO_qualifier_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_asoi_identifier,
|
|
|
|
{ "asoi-identifier", "acse.asoi_identifier",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_rLRQ_user_information,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "user-information", "acse.user_information",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Association_data", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_rLRE_reason,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "reason", "acse.reason",
|
|
|
|
FT_INT32, BASE_DEC, VALS(acse_Release_response_reason_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Release_response_reason", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_rLRE_user_information,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "user-information", "acse.user_information",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Association_data", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_abort_source,
|
|
|
|
{ "abort-source", "acse.abort_source",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_ABRT_source_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ABRT_source", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_abort_diagnostic,
|
|
|
|
{ "abort-diagnostic", "acse.abort_diagnostic",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_ABRT_diagnostic_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ABRT_diagnostic", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_aBRT_user_information,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "user-information", "acse.user_information",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Association_data", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_a_user_data,
|
|
|
|
{ "a-user-data", "acse.a_user_data",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_User_Data_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"User_Data", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_aCRQ_aSO_context_name,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "aSO-context-name", "acse.aSO_context_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"T_ACRQ_aSO_context_name", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_user_information,
|
|
|
|
{ "user-information", "acse.user_information",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_aSO_context_name,
|
|
|
|
{ "aSO-context-name", "acse.aSO_context_name",
|
2010-01-03 14:35:35 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"T_ACRP_aSO_context_name", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ap_title_form1,
|
|
|
|
{ "ap-title-form1", "acse.ap_title_form1",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ap_title_form2,
|
|
|
|
{ "ap-title-form2", "acse.ap_title_form2",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ap_title_form3,
|
|
|
|
{ "ap-title-form3", "acse.ap_title_form3",
|
|
|
|
FT_STRING, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_aso_qualifier_form1,
|
|
|
|
{ "aso-qualifier-form1", "acse.aso_qualifier_form1",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_aso_qualifier_form2,
|
|
|
|
{ "aso-qualifier-form2", "acse.aso_qualifier_form2",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_aso_qualifier_form3,
|
|
|
|
{ "aso-qualifier-form3", "acse.aso_qualifier_form3",
|
|
|
|
FT_STRING, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2006-08-27 09:03:21 +00:00
|
|
|
{ &hf_acse_aso_qualifier_form_any_octets,
|
|
|
|
{ "aso-qualifier-form-any-octets", "acse.aso_qualifier_form_any_octets",
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ASO_qualifier_form_octets", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ae_title_form1,
|
|
|
|
{ "ae-title-form1", "acse.ae_title_form1",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(x509if_Name_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ae_title_form2,
|
|
|
|
{ "ae-title-form2", "acse.ae_title_form2",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ASOI_tag_item,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "ASOI-tag item", "acse.ASOI_tag_item_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_qualifier,
|
|
|
|
{ "qualifier", "acse.qualifier",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_ASO_qualifier_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ASO_qualifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_identifier,
|
|
|
|
{ "identifier", "acse.identifier",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"ASOI_identifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ASO_context_name_list_item,
|
2009-05-16 22:07:03 +00:00
|
|
|
{ "ASO-context-name", "acse.ASO_context_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_context_list,
|
|
|
|
{ "context-list", "acse.context_list",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_default_contact_list,
|
|
|
|
{ "default-contact-list", "acse.default_contact_list",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Default_Context_List", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_Context_list_item,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "Context-list item", "acse.Context_list_item_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_pci,
|
|
|
|
{ "pci", "acse.pci",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Presentation_context_identifier", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_abstract_syntax,
|
|
|
|
{ "abstract-syntax", "acse.abstract_syntax",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Abstract_syntax_name", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_transfer_syntaxes,
|
|
|
|
{ "transfer-syntaxes", "acse.transfer_syntaxes",
|
2005-07-21 21:12:09 +00:00
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"SEQUENCE_OF_TransferSyntaxName", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_transfer_syntaxes_item,
|
2009-05-16 22:07:03 +00:00
|
|
|
{ "TransferSyntaxName", "acse.TransferSyntaxName",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_Default_Context_List_item,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "Default-Context-List item", "acse.Default_Context_List_item_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_abstract_syntax_name,
|
|
|
|
{ "abstract-syntax-name", "acse.abstract_syntax_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_transfer_syntax_name,
|
|
|
|
{ "transfer-syntax-name", "acse.transfer_syntax_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"TransferSyntaxName", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_P_context_result_list_item,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "P-context-result-list item", "acse.P_context_result_list_item_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_acse_pcontext_result,
|
2005-06-19 11:54:33 +00:00
|
|
|
{ "result", "acse.result",
|
|
|
|
FT_INT32, BASE_DEC, VALS(acse_Result_vals), 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_concrete_syntax_name,
|
|
|
|
{ "concrete-syntax-name", "acse.concrete_syntax_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_provider_reason,
|
|
|
|
{ "provider-reason", "acse.provider_reason",
|
|
|
|
FT_INT32, BASE_DEC, VALS(acse_T_provider_reason_vals), 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2013-07-06 01:20:38 +00:00
|
|
|
{ &hf_acse_service_user,
|
|
|
|
{ "service-user", "acse.service_user",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_T_service_user_vals), 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2013-07-06 01:20:38 +00:00
|
|
|
{ &hf_acse_service_provider,
|
|
|
|
{ "service-provider", "acse.service_provider",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_T_service_provider_vals), 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_Association_data_item,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "Association-data", "acse.EXTERNALt_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"EXTERNALt", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_simply_encoded_data,
|
|
|
|
{ "simply-encoded-data", "acse.simply_encoded_data",
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_fully_encoded_data,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "fully-encoded-data", "acse.fully_encoded_data_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"PDV_list", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_presentation_context_identifier,
|
|
|
|
{ "presentation-context-identifier", "acse.presentation_context_identifier",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_presentation_data_values,
|
|
|
|
{ "presentation-data-values", "acse.presentation_data_values",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(acse_T_presentation_data_values_vals), 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_simple_ASN1_type,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "simple-ASN1-type", "acse.simple_ASN1_type_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2010-01-04 23:17:37 +00:00
|
|
|
{ &hf_acse_pDVList_octet_aligned,
|
2007-07-14 08:21:58 +00:00
|
|
|
{ "octet-aligned", "acse.octet_aligned",
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"OCTET_STRING", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_other_mechanism_name,
|
|
|
|
{ "other-mechanism-name", "acse.other_mechanism_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_other_mechanism_value,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "other-mechanism-value", "acse.other_mechanism_value_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 03:53:31 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_charstring,
|
|
|
|
{ "charstring", "acse.charstring",
|
|
|
|
FT_STRING, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"GraphicString", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_bitstring,
|
|
|
|
{ "bitstring", "acse.bitstring",
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
FT_BYTES, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"BIT_STRING", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_external,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "external", "acse.external_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"EXTERNALt", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_other,
|
2013-05-27 20:26:49 +00:00
|
|
|
{ "other", "acse.other_element",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2010-05-11 02:13:26 +00:00
|
|
|
"Authentication_value_other", HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_T_AARQ_protocol_version_version1,
|
2019-04-04 12:49:57 +00:00
|
|
|
{ "version1", "acse.T.AARQ.protocol.version.version1",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_BOOLEAN, 8, NULL, 0x80,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_T_AARE_protocol_version_version1,
|
2019-04-04 12:49:57 +00:00
|
|
|
{ "version1", "acse.T.AARE.protocol.version.version1",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_BOOLEAN, 8, NULL, 0x80,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ACSE_requirements_authentication,
|
2019-04-04 12:49:57 +00:00
|
|
|
{ "authentication", "acse.ACSE.requirements.authentication",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_BOOLEAN, 8, NULL, 0x80,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ACSE_requirements_aSO_context_negotiation,
|
2019-04-04 12:49:57 +00:00
|
|
|
{ "aSO-context-negotiation", "acse.ACSE.requirements.aSO.context.negotiation",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_BOOLEAN, 8, NULL, 0x40,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ACSE_requirements_higher_level_association,
|
2019-04-04 12:49:57 +00:00
|
|
|
{ "higher-level-association", "acse.ACSE.requirements.higher.level.association",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_BOOLEAN, 8, NULL, 0x20,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
{ &hf_acse_ACSE_requirements_nested_association,
|
2019-04-04 12:49:57 +00:00
|
|
|
{ "nested-association", "acse.ACSE.requirements.nested.association",
|
2005-06-19 11:54:33 +00:00
|
|
|
FT_BOOLEAN, 8, NULL, 0x10,
|
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
|
|
|
NULL, HFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
|
|
|
|
/*--- End of included file: packet-acse-hfarr.c ---*/
|
2018-03-25 22:09:56 +00:00
|
|
|
#line 238 "./asn1/acse/packet-acse-template.c"
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
/* List of subtrees */
|
|
|
|
static gint *ett[] = {
|
|
|
|
&ett_acse,
|
|
|
|
|
|
|
|
/*--- Included file: packet-acse-ettarr.c ---*/
|
2016-03-09 03:17:51 +00:00
|
|
|
#line 1 "./asn1/acse/packet-acse-ettarr.c"
|
2007-11-05 20:41:44 +00:00
|
|
|
&ett_acse_EXTERNALt_U,
|
2005-06-19 11:54:33 +00:00
|
|
|
&ett_acse_T_encoding,
|
|
|
|
&ett_acse_ACSE_apdu,
|
2007-11-05 20:41:44 +00:00
|
|
|
&ett_acse_AARQ_apdu_U,
|
2005-06-19 11:54:33 +00:00
|
|
|
&ett_acse_T_AARQ_protocol_version,
|
2007-11-05 20:41:44 +00:00
|
|
|
&ett_acse_AARE_apdu_U,
|
2005-06-19 11:54:33 +00:00
|
|
|
&ett_acse_T_AARE_protocol_version,
|
2007-11-05 20:41:44 +00:00
|
|
|
&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,
|
2005-06-19 11:54:33 +00:00
|
|
|
&ett_acse_ACSE_requirements,
|
|
|
|
&ett_acse_AP_title,
|
|
|
|
&ett_acse_ASO_qualifier,
|
|
|
|
&ett_acse_AE_title,
|
|
|
|
&ett_acse_ASOI_tag,
|
|
|
|
&ett_acse_ASOI_tag_item,
|
|
|
|
&ett_acse_ASO_context_name_list,
|
|
|
|
&ett_acse_Syntactic_context_list,
|
|
|
|
&ett_acse_Context_list,
|
|
|
|
&ett_acse_Context_list_item,
|
|
|
|
&ett_acse_SEQUENCE_OF_TransferSyntaxName,
|
|
|
|
&ett_acse_Default_Context_List,
|
|
|
|
&ett_acse_Default_Context_List_item,
|
|
|
|
&ett_acse_P_context_result_list,
|
|
|
|
&ett_acse_P_context_result_list_item,
|
|
|
|
&ett_acse_Associate_source_diagnostic,
|
|
|
|
&ett_acse_Association_data,
|
|
|
|
&ett_acse_User_Data,
|
|
|
|
&ett_acse_PDV_list,
|
|
|
|
&ett_acse_T_presentation_data_values,
|
|
|
|
&ett_acse_Authentication_value_other,
|
|
|
|
&ett_acse_Authentication_value,
|
|
|
|
|
|
|
|
/*--- End of included file: packet-acse-ettarr.c ---*/
|
2018-03-25 22:09:56 +00:00
|
|
|
#line 244 "./asn1/acse/packet-acse-template.c"
|
2013-06-03 03:42:36 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static ei_register_info ei[] = {
|
|
|
|
{ &ei_acse_dissector_not_available, { "acse.dissector_not_available", PI_UNDECODED, PI_WARN, "Dissector is not available", EXPFILL }},
|
2015-01-04 17:47:40 +00:00
|
|
|
{ &ei_acse_malformed, { "acse.malformed", PI_MALFORMED, PI_ERROR, "Malformed packet", EXPFILL }},
|
2014-08-08 13:19:29 +00:00
|
|
|
{ &ei_acse_invalid_oid, { "acse.invalid_oid", PI_UNDECODED, PI_WARN, "Invalid OID", EXPFILL }},
|
2005-06-19 11:54:33 +00:00
|
|
|
};
|
|
|
|
|
2013-06-03 03:42:36 +00:00
|
|
|
expert_module_t* expert_acse;
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
/* Register protocol */
|
|
|
|
proto_acse = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
2016-07-01 00:41:45 +00:00
|
|
|
acse_handle = register_dissector("acse", dissect_acse, proto_acse);
|
2005-06-19 11:54:33 +00:00
|
|
|
|
2010-01-04 23:17:37 +00:00
|
|
|
/* Register connectionless protocol */
|
|
|
|
proto_clacse = proto_register_protocol(CLPNAME, CLPSNAME, CLPFNAME);
|
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
/* Register fields and subtrees */
|
|
|
|
proto_register_field_array(proto_acse, hf, array_length(hf));
|
|
|
|
proto_register_subtree_array(ett, array_length(ett));
|
2013-06-03 03:42:36 +00:00
|
|
|
expert_acse = expert_register_protocol(proto_acse);
|
|
|
|
expert_register_field_array(expert_acse, ei, array_length(ei));
|
2017-01-29 03:29:32 +00:00
|
|
|
|
|
|
|
#if NOT_NEEDED
|
|
|
|
acse_ctx_oid_table = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), acse_ctx_oid_hash,
|
|
|
|
acse_ctx_oid_equal);
|
|
|
|
#endif
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*--- proto_reg_handoff_acse -------------------------------------------*/
|
|
|
|
void proto_reg_handoff_acse(void) {
|
|
|
|
/*#include "packet-acse-dis-tab.c"*/
|
2009-03-09 13:25:43 +00:00
|
|
|
oid_add_from_string("id-aCSE","2.2.3.1.1");
|
2013-11-05 18:47:26 +00:00
|
|
|
register_ber_oid_dissector_handle(ACSE_APDU_OID, acse_handle, proto_acse, "id-as-acse");
|
2005-09-04 09:00:01 +00:00
|
|
|
|
|
|
|
|
2005-06-19 11:54:33 +00:00
|
|
|
}
|
2004-01-23 10:15:37 +00:00
|
|
|
|