2005-08-29 20:07:06 +00:00
|
|
|
/* Do not modify this file. */
|
2006-05-24 12:24:54 +00:00
|
|
|
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
|
2007-06-24 05:28:27 +00:00
|
|
|
/* ./packet-pres.c */
|
2006-05-24 12:24:54 +00:00
|
|
|
/* ../../tools/asn2wrs.py -b -e -p pres -c pres.cnf -s packet-pres-template ISO8823-PRESENTATION.asn */
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
/* Input file: packet-pres-template.c */
|
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
#line 1 "packet-pres-template.c"
|
2004-01-13 02:10:25 +00:00
|
|
|
/* packet-pres.c
|
2005-08-29 20:07:06 +00:00
|
|
|
* Routine to dissect ISO 8823 OSI Presentation Protocol packets
|
|
|
|
* Based on the dissector by
|
|
|
|
* Yuriy Sidelnikov <YSidelnikov@hotmail.com>
|
|
|
|
*
|
|
|
|
* $Id$
|
|
|
|
*
|
2006-05-21 04:49:01 +00:00
|
|
|
* Wireshark - Network traffic analyzer
|
|
|
|
* By Gerald Combs <gerald@wireshark.org>
|
2005-08-29 20:07:06 +00:00
|
|
|
* Copyright 1998 Gerald Combs
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include "config.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <glib.h>
|
|
|
|
#include <epan/packet.h>
|
|
|
|
#include <epan/conversation.h>
|
2005-08-31 20:20:56 +00:00
|
|
|
#include <epan/emem.h>
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
2007-05-13 20:58:29 +00:00
|
|
|
#include <epan/asn1.h>
|
2005-08-29 20:07:06 +00:00
|
|
|
#include "packet-ber.h"
|
|
|
|
#include "packet-ses.h"
|
|
|
|
#include "packet-pres.h"
|
2005-09-04 20:30:31 +00:00
|
|
|
#include "packet-rtse.h"
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
#define PNAME "ISO 8823 OSI Presentation Protocol"
|
|
|
|
#define PSNAME "PRES"
|
|
|
|
#define PFNAME "pres"
|
|
|
|
|
|
|
|
/* Initialize the protocol and registered fields */
|
|
|
|
int proto_pres = -1;
|
|
|
|
/* type of session envelop */
|
|
|
|
static struct SESSION_DATA_STRUCTURE* session = NULL;
|
|
|
|
|
|
|
|
/* pointers for acse dissector */
|
|
|
|
proto_tree *global_tree = NULL;
|
|
|
|
packet_info *global_pinfo = NULL;
|
2005-09-04 09:00:01 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
/* dissector for data */
|
|
|
|
static dissector_handle_t data_handle;
|
|
|
|
|
2005-11-14 10:02:31 +00:00
|
|
|
static const char *abstract_syntax_name_oid;
|
2005-08-31 20:20:56 +00:00
|
|
|
static guint32 presentation_context_identifier;
|
|
|
|
|
|
|
|
/* to keep track of presentation context identifiers and protocol-oids */
|
|
|
|
typedef struct _pres_ctx_oid_t {
|
|
|
|
guint32 ctx_id;
|
|
|
|
char *oid;
|
2007-06-27 17:51:19 +00:00
|
|
|
guint32 index;
|
2005-08-31 20:20:56 +00:00
|
|
|
} pres_ctx_oid_t;
|
|
|
|
static GHashTable *pres_ctx_oid_table = NULL;
|
|
|
|
|
2005-09-06 18:08:45 +00:00
|
|
|
static int hf_pres_CP_type = -1;
|
|
|
|
static int hf_pres_CPA_PPDU = -1;
|
|
|
|
static int hf_pres_Abort_type = -1;
|
|
|
|
static int hf_pres_CPR_PPDU = -1;
|
|
|
|
static int hf_pres_Typed_data_type = -1;
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
/*--- Included file: packet-pres-hf.c ---*/
|
2005-12-08 23:29:21 +00:00
|
|
|
#line 1 "packet-pres-hf.c"
|
2005-08-29 20:07:06 +00:00
|
|
|
static int hf_pres_mode_selector = -1; /* Mode_selector */
|
|
|
|
static int hf_pres_x410_mode_parameters = -1; /* RTORQapdu */
|
|
|
|
static int hf_pres_normal_mode_parameters = -1; /* T_normal_mode_parameters */
|
|
|
|
static int hf_pres_protocol_version = -1; /* Protocol_version */
|
|
|
|
static int hf_pres_calling_presentation_selector = -1; /* Calling_presentation_selector */
|
|
|
|
static int hf_pres_called_presentation_selector = -1; /* Called_presentation_selector */
|
|
|
|
static int hf_pres_presentation_context_definition_list = -1; /* Presentation_context_definition_list */
|
|
|
|
static int hf_pres_default_context_name = -1; /* Default_context_name */
|
|
|
|
static int hf_pres_presentation_requirements = -1; /* Presentation_requirements */
|
|
|
|
static int hf_pres_user_session_requirements = -1; /* User_session_requirements */
|
|
|
|
static int hf_pres_protocol_options = -1; /* Protocol_options */
|
|
|
|
static int hf_pres_initiators_nominated_context = -1; /* Presentation_context_identifier */
|
|
|
|
static int hf_pres_extensions = -1; /* T_extensions */
|
|
|
|
static int hf_pres_user_data = -1; /* User_data */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_pres_cPR_PPDU_x400_mode_parameters = -1; /* RTOACapdu */
|
|
|
|
static int hf_pres_cPU_PPDU_normal_mode_parameters = -1; /* T_CPA_PPDU_normal_mode_parameters */
|
2005-08-29 20:07:06 +00:00
|
|
|
static int hf_pres_responding_presentation_selector = -1; /* Responding_presentation_selector */
|
|
|
|
static int hf_pres_presentation_context_definition_result_list = -1; /* Presentation_context_definition_result_list */
|
|
|
|
static int hf_pres_responders_nominated_context = -1; /* Presentation_context_identifier */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_pres_cPU_PPDU_x400_mode_parameters = -1; /* RTORJapdu */
|
|
|
|
static int hf_pres_cPR_PPDU_normal_mode_parameters = -1; /* T_CPR_PPDU_normal_mode_parameters */
|
2005-08-29 20:07:06 +00:00
|
|
|
static int hf_pres_default_context_result = -1; /* Default_context_result */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_pres_cPR_PPDU__provider_reason = -1; /* Provider_reason */
|
2005-08-29 20:07:06 +00:00
|
|
|
static int hf_pres_aru_ppdu = -1; /* ARU_PPDU */
|
|
|
|
static int hf_pres_arp_ppdu = -1; /* ARP_PPDU */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_pres_aRU_PPDU_x400_mode_parameters = -1; /* RTABapdu */
|
|
|
|
static int hf_pres_aRU_PPDU_normal_mode_parameters = -1; /* T_ARU_PPDU_normal_mode_parameters */
|
2005-08-29 20:07:06 +00:00
|
|
|
static int hf_pres_presentation_context_identifier_list = -1; /* Presentation_context_identifier_list */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_pres_aRU_PPDU_provider_reason = -1; /* Abort_reason */
|
2005-08-29 20:07:06 +00:00
|
|
|
static int hf_pres_event_identifier = -1; /* Event_identifier */
|
|
|
|
static int hf_pres_acPPDU = -1; /* AC_PPDU */
|
|
|
|
static int hf_pres_acaPPDU = -1; /* ACA_PPDU */
|
|
|
|
static int hf_pres_ttdPPDU = -1; /* User_data */
|
|
|
|
static int hf_pres_presentation_context_addition_list = -1; /* Presentation_context_addition_list */
|
|
|
|
static int hf_pres_presentation_context_deletion_list = -1; /* Presentation_context_deletion_list */
|
|
|
|
static int hf_pres_presentation_context_addition_result_list = -1; /* Presentation_context_addition_result_list */
|
|
|
|
static int hf_pres_presentation_context_deletion_result_list = -1; /* Presentation_context_deletion_result_list */
|
|
|
|
static int hf_pres_Context_list_item = -1; /* Context_list_item */
|
|
|
|
static int hf_pres_presentation_context_identifier = -1; /* Presentation_context_identifier */
|
|
|
|
static int hf_pres_abstract_syntax_name = -1; /* Abstract_syntax_name */
|
|
|
|
static int hf_pres_transfer_syntax_name_list = -1; /* SEQUENCE_OF_Transfer_syntax_name */
|
|
|
|
static int hf_pres_transfer_syntax_name_list_item = -1; /* Transfer_syntax_name */
|
|
|
|
static int hf_pres_transfer_syntax_name = -1; /* Transfer_syntax_name */
|
|
|
|
static int hf_pres_mode_value = -1; /* T_mode_value */
|
|
|
|
static int hf_pres_Presentation_context_deletion_list_item = -1; /* Presentation_context_identifier */
|
|
|
|
static int hf_pres_Presentation_context_deletion_result_list_item = -1; /* Presentation_context_deletion_result_list_item */
|
|
|
|
static int hf_pres_Presentation_context_identifier_list_item = -1; /* Presentation_context_identifier_list_item */
|
|
|
|
static int hf_pres_Result_list_item = -1; /* Result_list_item */
|
|
|
|
static int hf_pres_result = -1; /* Result */
|
2005-08-31 20:20:56 +00:00
|
|
|
static int hf_pres_provider_reason = -1; /* T_provider_reason */
|
2005-08-29 20:07:06 +00:00
|
|
|
static int hf_pres_simply_encoded_data = -1; /* Simply_encoded_data */
|
|
|
|
static int hf_pres_fully_encoded_data = -1; /* Fully_encoded_data */
|
|
|
|
static int hf_pres_Fully_encoded_data_item = -1; /* PDV_list */
|
|
|
|
static int hf_pres_presentation_data_values = -1; /* T_presentation_data_values */
|
|
|
|
static int hf_pres_single_ASN1_type = -1; /* T_single_ASN1_type */
|
2005-09-09 19:46:57 +00:00
|
|
|
static int hf_pres_octet_aligned = -1; /* T_octet_aligned */
|
2005-08-29 20:07:06 +00:00
|
|
|
static int hf_pres_arbitrary = -1; /* BIT_STRING */
|
|
|
|
/* named bits */
|
|
|
|
static int hf_pres_Presentation_requirements_context_management = -1;
|
|
|
|
static int hf_pres_Presentation_requirements_restoration = -1;
|
|
|
|
static int hf_pres_Protocol_options_nominated_context = -1;
|
|
|
|
static int hf_pres_Protocol_options_short_encoding = -1;
|
|
|
|
static int hf_pres_Protocol_options_packed_encoding_rules = -1;
|
|
|
|
static int hf_pres_Protocol_version_version_1 = -1;
|
|
|
|
static int hf_pres_User_session_requirements_half_duplex = -1;
|
|
|
|
static int hf_pres_User_session_requirements_duplex = -1;
|
|
|
|
static int hf_pres_User_session_requirements_expedited_data = -1;
|
|
|
|
static int hf_pres_User_session_requirements_minor_synchronize = -1;
|
|
|
|
static int hf_pres_User_session_requirements_major_synchronize = -1;
|
|
|
|
static int hf_pres_User_session_requirements_resynchronize = -1;
|
|
|
|
static int hf_pres_User_session_requirements_activity_management = -1;
|
|
|
|
static int hf_pres_User_session_requirements_negotiated_release = -1;
|
|
|
|
static int hf_pres_User_session_requirements_capability_data = -1;
|
|
|
|
static int hf_pres_User_session_requirements_exceptions = -1;
|
|
|
|
static int hf_pres_User_session_requirements_typed_data = -1;
|
|
|
|
static int hf_pres_User_session_requirements_symmetric_synchronize = -1;
|
|
|
|
static int hf_pres_User_session_requirements_data_separation = -1;
|
|
|
|
|
|
|
|
/*--- End of included file: packet-pres-hf.c ---*/
|
2007-05-13 20:58:29 +00:00
|
|
|
#line 80 "packet-pres-template.c"
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
/* Initialize the subtree pointers */
|
|
|
|
static gint ett_pres = -1;
|
|
|
|
|
|
|
|
|
|
|
|
/*--- Included file: packet-pres-ett.c ---*/
|
2005-12-08 23:29:21 +00:00
|
|
|
#line 1 "packet-pres-ett.c"
|
2005-08-29 20:07:06 +00:00
|
|
|
static gint ett_pres_CP_type = -1;
|
|
|
|
static gint ett_pres_T_normal_mode_parameters = -1;
|
|
|
|
static gint ett_pres_T_extensions = -1;
|
|
|
|
static gint ett_pres_CPA_PPDU = -1;
|
2005-08-31 20:20:56 +00:00
|
|
|
static gint ett_pres_T_CPA_PPDU_normal_mode_parameters = -1;
|
2005-08-29 20:07:06 +00:00
|
|
|
static gint ett_pres_CPR_PPDU = -1;
|
2005-08-31 20:20:56 +00:00
|
|
|
static gint ett_pres_T_CPR_PPDU_normal_mode_parameters = -1;
|
2005-08-29 20:07:06 +00:00
|
|
|
static gint ett_pres_Abort_type = -1;
|
|
|
|
static gint ett_pres_ARU_PPDU = -1;
|
2005-08-31 20:20:56 +00:00
|
|
|
static gint ett_pres_T_ARU_PPDU_normal_mode_parameters = -1;
|
2005-08-29 20:07:06 +00:00
|
|
|
static gint ett_pres_ARP_PPDU = -1;
|
|
|
|
static gint ett_pres_Typed_data_type = -1;
|
|
|
|
static gint ett_pres_AC_PPDU = -1;
|
|
|
|
static gint ett_pres_ACA_PPDU = -1;
|
|
|
|
static gint ett_pres_RS_PPDU = -1;
|
|
|
|
static gint ett_pres_RSA_PPDU = -1;
|
|
|
|
static gint ett_pres_Context_list = -1;
|
|
|
|
static gint ett_pres_Context_list_item = -1;
|
|
|
|
static gint ett_pres_SEQUENCE_OF_Transfer_syntax_name = -1;
|
|
|
|
static gint ett_pres_Default_context_name = -1;
|
|
|
|
static gint ett_pres_Mode_selector = -1;
|
|
|
|
static gint ett_pres_Presentation_context_deletion_list = -1;
|
|
|
|
static gint ett_pres_Presentation_context_deletion_result_list = -1;
|
|
|
|
static gint ett_pres_Presentation_context_identifier_list = -1;
|
|
|
|
static gint ett_pres_Presentation_context_identifier_list_item = -1;
|
|
|
|
static gint ett_pres_Presentation_requirements = -1;
|
|
|
|
static gint ett_pres_Protocol_options = -1;
|
|
|
|
static gint ett_pres_Protocol_version = -1;
|
|
|
|
static gint ett_pres_Result_list = -1;
|
|
|
|
static gint ett_pres_Result_list_item = -1;
|
|
|
|
static gint ett_pres_User_data = -1;
|
|
|
|
static gint ett_pres_Fully_encoded_data = -1;
|
|
|
|
static gint ett_pres_PDV_list = -1;
|
|
|
|
static gint ett_pres_T_presentation_data_values = -1;
|
|
|
|
static gint ett_pres_User_session_requirements = -1;
|
|
|
|
|
|
|
|
/*--- End of included file: packet-pres-ett.c ---*/
|
2007-05-13 20:58:29 +00:00
|
|
|
#line 85 "packet-pres-template.c"
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
|
2005-08-31 20:20:56 +00:00
|
|
|
static guint
|
|
|
|
pres_ctx_oid_hash(gconstpointer k)
|
|
|
|
{
|
2005-09-04 09:00:01 +00:00
|
|
|
pres_ctx_oid_t *pco=(pres_ctx_oid_t *)k;
|
|
|
|
return pco->ctx_id;
|
2005-08-31 20:20:56 +00:00
|
|
|
}
|
2007-06-27 17:51:19 +00:00
|
|
|
|
2005-08-31 20:20:56 +00:00
|
|
|
static gint
|
|
|
|
pres_ctx_oid_equal(gconstpointer k1, gconstpointer k2)
|
|
|
|
{
|
2005-09-04 09:00:01 +00:00
|
|
|
pres_ctx_oid_t *pco1=(pres_ctx_oid_t *)k1;
|
|
|
|
pres_ctx_oid_t *pco2=(pres_ctx_oid_t *)k2;
|
2007-06-27 17:51:19 +00:00
|
|
|
return (pco1->ctx_id==pco2->ctx_id && pco1->index==pco2->index);
|
2005-08-31 20:20:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
pres_init(void)
|
|
|
|
{
|
|
|
|
if( pres_ctx_oid_table ){
|
|
|
|
g_hash_table_destroy(pres_ctx_oid_table);
|
|
|
|
pres_ctx_oid_table = NULL;
|
|
|
|
}
|
|
|
|
pres_ctx_oid_table = g_hash_table_new(pres_ctx_oid_hash,
|
|
|
|
pres_ctx_oid_equal);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2005-11-14 10:02:31 +00:00
|
|
|
register_ctx_id_and_oid(packet_info *pinfo _U_, guint32 idx, const char *oid)
|
2005-08-31 20:20:56 +00:00
|
|
|
{
|
2005-09-04 09:00:01 +00:00
|
|
|
pres_ctx_oid_t *pco, *tmppco;
|
2007-06-27 17:51:19 +00:00
|
|
|
conversation_t *conversation;
|
2005-11-20 02:48:26 +00:00
|
|
|
|
|
|
|
if(!oid){
|
|
|
|
/* we did not get any oid name, malformed packet? */
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2007-06-27 17:51:19 +00:00
|
|
|
pco=se_alloc(sizeof(pres_ctx_oid_t));
|
|
|
|
pco->ctx_id=idx;
|
2005-09-04 09:00:01 +00:00
|
|
|
pco->oid=se_strdup(oid);
|
2007-06-27 17:51:19 +00:00
|
|
|
conversation=find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
|
|
|
|
pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
|
|
|
|
if (conversation) {
|
|
|
|
pco->index = conversation->index;
|
|
|
|
} else {
|
|
|
|
pco->index = 0;
|
|
|
|
}
|
2005-08-31 20:20:56 +00:00
|
|
|
|
|
|
|
/* if this ctx already exists, remove the old one first */
|
2005-09-04 09:00:01 +00:00
|
|
|
tmppco=(pres_ctx_oid_t *)g_hash_table_lookup(pres_ctx_oid_table, pco);
|
|
|
|
if(tmppco){
|
|
|
|
g_hash_table_remove(pres_ctx_oid_table, tmppco);
|
|
|
|
|
2005-08-31 20:20:56 +00:00
|
|
|
}
|
2005-09-04 09:00:01 +00:00
|
|
|
g_hash_table_insert(pres_ctx_oid_table, pco, pco);
|
2005-08-31 20:20:56 +00:00
|
|
|
}
|
2005-09-04 09:00:01 +00:00
|
|
|
char *
|
|
|
|
find_oid_by_pres_ctx_id(packet_info *pinfo _U_, guint32 idx)
|
2005-08-31 20:20:56 +00:00
|
|
|
{
|
2005-09-04 09:00:01 +00:00
|
|
|
pres_ctx_oid_t pco, *tmppco;
|
2007-06-27 17:51:19 +00:00
|
|
|
conversation_t *conversation;
|
|
|
|
|
2005-09-04 09:00:01 +00:00
|
|
|
pco.ctx_id=idx;
|
2007-06-27 17:51:19 +00:00
|
|
|
conversation=find_conversation (pinfo->fd->num, &pinfo->src, &pinfo->dst,
|
|
|
|
pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
|
|
|
|
if (conversation) {
|
|
|
|
pco.index = conversation->index;
|
|
|
|
} else {
|
|
|
|
pco.index = 0;
|
|
|
|
}
|
|
|
|
|
2005-09-04 09:00:01 +00:00
|
|
|
tmppco=(pres_ctx_oid_t *)g_hash_table_lookup(pres_ctx_oid_table, &pco);
|
|
|
|
if(tmppco){
|
|
|
|
return tmppco->oid;
|
2005-08-31 20:20:56 +00:00
|
|
|
}
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
/*--- Included file: packet-pres-fn.c ---*/
|
2005-12-08 23:29:21 +00:00
|
|
|
#line 1 "packet-pres-fn.c"
|
2005-08-29 20:07:06 +00:00
|
|
|
/*--- Fields for imported types ---*/
|
|
|
|
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_x410_mode_parameters_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_rtse_RTORQapdu(TRUE, tvb, offset, actx, tree, hf_pres_x410_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_cPR_PPDU_x400_mode_parameters_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_rtse_RTOACapdu(TRUE, tvb, offset, actx, tree, hf_pres_cPR_PPDU_x400_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_cPU_PPDU_x400_mode_parameters(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_rtse_RTORJapdu(FALSE, tvb, offset, actx, tree, hf_pres_cPU_PPDU_x400_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_aRU_PPDU_x400_mode_parameters(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_rtse_RTABapdu(FALSE, tvb, offset, actx, tree, hf_pres_aRU_PPDU_x400_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string pres_T_mode_value_vals[] = {
|
|
|
|
{ 0, "x410-1984-mode" },
|
|
|
|
{ 1, "normal-mode" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_T_mode_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-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2005-08-29 20:07:06 +00:00
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_mode_value_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_T_mode_value(TRUE, tvb, offset, actx, tree, hf_pres_mode_value);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Mode_selector_set[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mode_value_impl },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Mode_selector(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_set(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Mode_selector_set, hf_index, ett_pres_Mode_selector);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_mode_selector_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Mode_selector(TRUE, tvb, offset, actx, tree, hf_pres_mode_selector);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const asn_namedbit Protocol_version_bits[] = {
|
|
|
|
{ 0, &hf_pres_Protocol_version_version_1, -1, -1, "version-1", NULL },
|
|
|
|
{ 0, NULL, 0, 0, NULL, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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,
|
2005-08-29 20:07:06 +00:00
|
|
|
Protocol_version_bits, hf_index, ett_pres_Protocol_version,
|
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_protocol_version_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Protocol_version(TRUE, tvb, offset, actx, tree, hf_pres_protocol_version);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_selector(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-08-29 20:07:06 +00:00
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Calling_presentation_selector(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_pres_Presentation_selector(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_calling_presentation_selector_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Calling_presentation_selector(TRUE, tvb, offset, actx, tree, hf_pres_calling_presentation_selector);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Called_presentation_selector(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_pres_Presentation_selector(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_called_presentation_selector_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Called_presentation_selector(TRUE, tvb, offset, actx, tree, hf_pres_called_presentation_selector);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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_) {
|
2006-05-24 12:24:54 +00:00
|
|
|
#line 69 "pres.cnf"
|
2005-10-13 05:20:40 +00:00
|
|
|
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2005-08-31 20:20:56 +00:00
|
|
|
&presentation_context_identifier);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
2005-10-13 05:20:40 +00:00
|
|
|
|
|
|
|
if(session)
|
|
|
|
session->pres_ctx_id = presentation_context_identifier;
|
|
|
|
|
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_initiators_nominated_context(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_identifier(FALSE, tvb, offset, actx, tree, hf_pres_initiators_nominated_context);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_responders_nominated_context(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_identifier(FALSE, tvb, offset, actx, tree, hf_pres_responders_nominated_context);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_presentation_context_identifier(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_identifier(FALSE, tvb, offset, actx, tree, hf_pres_presentation_context_identifier);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_Presentation_context_deletion_list_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_identifier(FALSE, tvb, offset, actx, tree, hf_pres_Presentation_context_deletion_list_item);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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_str(implicit_tag, actx, tree, tvb, offset, hf_index, &abstract_syntax_name_oid);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_abstract_syntax_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Abstract_syntax_name(FALSE, tvb, offset, actx, tree, hf_pres_abstract_syntax_name);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_abstract_syntax_name_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Abstract_syntax_name(TRUE, tvb, offset, actx, tree, hf_pres_abstract_syntax_name);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Transfer_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-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_transfer_syntax_name_list_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Transfer_syntax_name(FALSE, tvb, offset, actx, tree, hf_pres_transfer_syntax_name_list_item);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_transfer_syntax_name(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Transfer_syntax_name(FALSE, tvb, offset, actx, tree, hf_pres_transfer_syntax_name);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_transfer_syntax_name_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Transfer_syntax_name(TRUE, tvb, offset, actx, tree, hf_pres_transfer_syntax_name);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t SEQUENCE_OF_Transfer_syntax_name_sequence_of[1] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_transfer_syntax_name_list_item },
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_SEQUENCE_OF_Transfer_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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
SEQUENCE_OF_Transfer_syntax_name_sequence_of, hf_index, ett_pres_SEQUENCE_OF_Transfer_syntax_name);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_transfer_syntax_name_list(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_SEQUENCE_OF_Transfer_syntax_name(FALSE, tvb, offset, actx, tree, hf_pres_transfer_syntax_name_list);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Context_list_item_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_presentation_context_identifier },
|
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_abstract_syntax_name },
|
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_transfer_syntax_name_list },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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_) {
|
2006-05-24 12:24:54 +00:00
|
|
|
#line 76 "pres.cnf"
|
2005-11-20 02:48:26 +00:00
|
|
|
abstract_syntax_name_oid=NULL;
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Context_list_item_sequence, hf_index, ett_pres_Context_list_item);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
2006-05-24 12:24:54 +00:00
|
|
|
#line 79 "pres.cnf"
|
2007-05-13 20:58:29 +00:00
|
|
|
register_ctx_id_and_oid(actx->pinfo, presentation_context_identifier, abstract_syntax_name_oid);
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_Context_list_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Context_list_item(FALSE, tvb, offset, actx, tree, hf_pres_Context_list_item);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Context_list_sequence_of[1] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Context_list_item },
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Context_list_sequence_of, hf_index, ett_pres_Context_list);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_context_definition_list(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
offset = dissect_pres_Context_list(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_presentation_context_definition_list_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_definition_list(TRUE, tvb, offset, actx, tree, hf_pres_presentation_context_definition_list);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Default_context_name_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_abstract_syntax_name_impl },
|
|
|
|
{ BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_transfer_syntax_name_impl },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Default_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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Default_context_name_sequence, hf_index, ett_pres_Default_context_name);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_default_context_name_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Default_context_name(TRUE, tvb, offset, actx, tree, hf_pres_default_context_name);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const asn_namedbit Presentation_requirements_bits[] = {
|
|
|
|
{ 0, &hf_pres_Presentation_requirements_context_management, -1, -1, "context-management", NULL },
|
|
|
|
{ 1, &hf_pres_Presentation_requirements_restoration, -1, -1, "restoration", NULL },
|
|
|
|
{ 0, NULL, 0, 0, NULL, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_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,
|
2005-08-29 20:07:06 +00:00
|
|
|
Presentation_requirements_bits, hf_index, ett_pres_Presentation_requirements,
|
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_presentation_requirements_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_requirements(TRUE, tvb, offset, actx, tree, hf_pres_presentation_requirements);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const asn_namedbit User_session_requirements_bits[] = {
|
|
|
|
{ 0, &hf_pres_User_session_requirements_half_duplex, -1, -1, "half-duplex", NULL },
|
|
|
|
{ 1, &hf_pres_User_session_requirements_duplex, -1, -1, "duplex", NULL },
|
|
|
|
{ 2, &hf_pres_User_session_requirements_expedited_data, -1, -1, "expedited-data", NULL },
|
|
|
|
{ 3, &hf_pres_User_session_requirements_minor_synchronize, -1, -1, "minor-synchronize", NULL },
|
|
|
|
{ 4, &hf_pres_User_session_requirements_major_synchronize, -1, -1, "major-synchronize", NULL },
|
|
|
|
{ 5, &hf_pres_User_session_requirements_resynchronize, -1, -1, "resynchronize", NULL },
|
|
|
|
{ 6, &hf_pres_User_session_requirements_activity_management, -1, -1, "activity-management", NULL },
|
|
|
|
{ 7, &hf_pres_User_session_requirements_negotiated_release, -1, -1, "negotiated-release", NULL },
|
|
|
|
{ 8, &hf_pres_User_session_requirements_capability_data, -1, -1, "capability-data", NULL },
|
|
|
|
{ 9, &hf_pres_User_session_requirements_exceptions, -1, -1, "exceptions", NULL },
|
|
|
|
{ 10, &hf_pres_User_session_requirements_typed_data, -1, -1, "typed-data", NULL },
|
|
|
|
{ 11, &hf_pres_User_session_requirements_symmetric_synchronize, -1, -1, "symmetric-synchronize", NULL },
|
|
|
|
{ 12, &hf_pres_User_session_requirements_data_separation, -1, -1, "data-separation", NULL },
|
|
|
|
{ 0, NULL, 0, 0, NULL, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_User_session_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,
|
2005-08-29 20:07:06 +00:00
|
|
|
User_session_requirements_bits, hf_index, ett_pres_User_session_requirements,
|
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_user_session_requirements_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_User_session_requirements(TRUE, tvb, offset, actx, tree, hf_pres_user_session_requirements);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const asn_namedbit Protocol_options_bits[] = {
|
|
|
|
{ 0, &hf_pres_Protocol_options_nominated_context, -1, -1, "nominated-context", NULL },
|
|
|
|
{ 1, &hf_pres_Protocol_options_short_encoding, -1, -1, "short-encoding", NULL },
|
|
|
|
{ 2, &hf_pres_Protocol_options_packed_encoding_rules, -1, -1, "packed-encoding-rules", NULL },
|
|
|
|
{ 0, NULL, 0, 0, NULL, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Protocol_options(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,
|
2005-08-29 20:07:06 +00:00
|
|
|
Protocol_options_bits, hf_index, ett_pres_Protocol_options,
|
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_protocol_options(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Protocol_options(FALSE, tvb, offset, actx, tree, hf_pres_protocol_options);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t T_extensions_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_T_extensions(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
T_extensions_sequence, hf_index, ett_pres_T_extensions);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_extensions(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_T_extensions(FALSE, tvb, offset, actx, tree, hf_pres_extensions);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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-08-29 20:07:06 +00:00
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_simply_encoded_data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Simply_encoded_data(TRUE, tvb, offset, actx, tree, hf_pres_simply_encoded_data);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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_) {
|
2006-05-24 12:24:54 +00:00
|
|
|
#line 35 "pres.cnf"
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
tvbuff_t *next_tvb;
|
2005-08-31 20:20:56 +00:00
|
|
|
char *oid;
|
2005-08-29 20:07:06 +00:00
|
|
|
|
2007-05-13 20:58:29 +00:00
|
|
|
oid=find_oid_by_pres_ctx_id(actx->pinfo, presentation_context_identifier);
|
2005-08-31 20:20:56 +00:00
|
|
|
if(oid){
|
2005-08-29 20:07:06 +00:00
|
|
|
next_tvb = tvb_new_subset(tvb, offset, -1, -1);
|
2007-05-13 20:58:29 +00:00
|
|
|
call_ber_oid_callback(oid, next_tvb, offset, actx->pinfo, global_tree);
|
2005-08-31 20:20:56 +00:00
|
|
|
} else {
|
|
|
|
proto_tree_add_text(tree, tvb, offset, -1,"dissector is not available");
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2005-08-31 20:20:56 +00:00
|
|
|
NULL);
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_single_ASN1_type_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_T_single_ASN1_type(TRUE, tvb, offset, actx, tree, hf_pres_single_ASN1_type);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-09-04 20:30:31 +00:00
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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_) {
|
2006-05-24 12:24:54 +00:00
|
|
|
#line 48 "pres.cnf"
|
2005-09-09 19:46:57 +00:00
|
|
|
|
|
|
|
tvbuff_t *next_tvb;
|
|
|
|
char *oid;
|
|
|
|
|
2007-05-13 20:58:29 +00:00
|
|
|
oid=find_oid_by_pres_ctx_id(actx->pinfo, presentation_context_identifier);
|
2005-09-09 19:46:57 +00:00
|
|
|
if(oid){
|
|
|
|
next_tvb = tvb_new_subset(tvb, offset, -1, -1);
|
2007-05-13 20:58:29 +00:00
|
|
|
call_ber_oid_callback(oid, next_tvb, offset, actx->pinfo, global_tree);
|
2005-09-09 19:46:57 +00:00
|
|
|
} else {
|
|
|
|
proto_tree_add_text(tree, tvb, offset, -1,"dissector is not available");
|
2007-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2005-09-04 20:30:31 +00:00
|
|
|
NULL);
|
2005-09-09 19:46:57 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-09-04 20:30:31 +00:00
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
|
2005-09-04 20:30:31 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_octet_aligned_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_T_octet_aligned(TRUE, tvb, offset, actx, tree, hf_pres_octet_aligned);
|
2005-09-04 20:30:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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,
|
2005-09-04 20:30:31 +00:00
|
|
|
NULL, hf_index, -1,
|
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_arbitrary_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_BIT_STRING(TRUE, tvb, offset, actx, tree, hf_pres_arbitrary);
|
2005-09-04 20:30:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static const value_string pres_T_presentation_data_values_vals[] = {
|
|
|
|
{ 0, "single-ASN1-type" },
|
|
|
|
{ 1, "octet-aligned" },
|
|
|
|
{ 2, "arbitrary" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_choice_t T_presentation_data_values_choice[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_single_ASN1_type_impl },
|
|
|
|
{ 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_octet_aligned_impl },
|
|
|
|
{ 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_arbitrary_impl },
|
|
|
|
{ 0, 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_choice(actx, tree, tvb, offset,
|
|
|
|
T_presentation_data_values_choice, hf_index, ett_pres_T_presentation_data_values,
|
|
|
|
NULL);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_presentation_data_values(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_T_presentation_data_values(FALSE, tvb, offset, actx, tree, hf_pres_presentation_data_values);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t PDV_list_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_transfer_syntax_name },
|
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_presentation_context_identifier },
|
|
|
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_presentation_data_values },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
PDV_list_sequence, hf_index, ett_pres_PDV_list);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_Fully_encoded_data_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_PDV_list(FALSE, tvb, offset, actx, tree, hf_pres_Fully_encoded_data_item);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Fully_encoded_data_sequence_of[1] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Fully_encoded_data_item },
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Fully_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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Fully_encoded_data_sequence_of, hf_index, ett_pres_Fully_encoded_data);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_fully_encoded_data_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Fully_encoded_data(TRUE, tvb, offset, actx, tree, hf_pres_fully_encoded_data);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string pres_User_data_vals[] = {
|
|
|
|
{ 0, "simply-encoded-data" },
|
|
|
|
{ 1, "fully-encoded-data" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_choice_t User_data_choice[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ 0, BER_CLASS_APP, 0, BER_FLAGS_IMPLTAG, dissect_simply_encoded_data_impl },
|
|
|
|
{ 1, BER_CLASS_APP, 1, BER_FLAGS_IMPLTAG, dissect_fully_encoded_data_impl },
|
|
|
|
{ 0, 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_choice(actx, tree, tvb, offset,
|
|
|
|
User_data_choice, hf_index, ett_pres_User_data,
|
|
|
|
NULL);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_user_data(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_User_data(FALSE, tvb, offset, actx, tree, hf_pres_user_data);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_ttdPPDU(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_User_data(FALSE, tvb, offset, actx, tree, hf_pres_ttdPPDU);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t T_normal_mode_parameters_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_protocol_version_impl },
|
|
|
|
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calling_presentation_selector_impl },
|
|
|
|
{ BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_called_presentation_selector_impl },
|
|
|
|
{ BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_context_definition_list_impl },
|
|
|
|
{ BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_default_context_name_impl },
|
|
|
|
{ BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_requirements_impl },
|
|
|
|
{ BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_user_session_requirements_impl },
|
|
|
|
{ BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_protocol_options },
|
|
|
|
{ BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_initiators_nominated_context },
|
|
|
|
{ BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_extensions },
|
|
|
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_user_data },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_T_normal_mode_parameters(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
T_normal_mode_parameters_sequence, hf_index, ett_pres_T_normal_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_normal_mode_parameters_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_T_normal_mode_parameters(TRUE, tvb, offset, actx, tree, hf_pres_normal_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t CP_type_set[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mode_selector_impl },
|
|
|
|
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x410_mode_parameters_impl },
|
|
|
|
{ BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_normal_mode_parameters_impl },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_CP_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_) {
|
2007-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_set(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
CP_type_set, hf_index, ett_pres_CP_type);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_CPC_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_) {
|
|
|
|
offset = dissect_pres_User_data(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Responding_presentation_selector(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_pres_Presentation_selector(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_responding_presentation_selector_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Responding_presentation_selector(TRUE, tvb, offset, actx, tree, hf_pres_responding_presentation_selector);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string pres_Result_vals[] = {
|
|
|
|
{ 0, "acceptance" },
|
|
|
|
{ 1, "user-rejection" },
|
|
|
|
{ 2, "provider-rejection" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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,
|
2005-08-29 20:07:06 +00:00
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_result_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Result(TRUE, tvb, offset, actx, tree, hf_pres_result);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string pres_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_pres_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,
|
2005-08-29 20:07:06 +00:00
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_provider_reason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_T_provider_reason(TRUE, tvb, offset, actx, tree, hf_pres_provider_reason);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Result_list_item_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_result_impl },
|
|
|
|
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_transfer_syntax_name_impl },
|
2005-08-31 20:20:56 +00:00
|
|
|
{ BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_provider_reason_impl },
|
2005-08-29 20:07:06 +00:00
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Result_list_item_sequence, hf_index, ett_pres_Result_list_item);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_Result_list_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Result_list_item(FALSE, tvb, offset, actx, tree, hf_pres_Result_list_item);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Result_list_sequence_of[1] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Result_list_item },
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Result_list_sequence_of, hf_index, ett_pres_Result_list);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_context_definition_result_list(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
offset = dissect_pres_Result_list(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_presentation_context_definition_result_list_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_definition_result_list(TRUE, tvb, offset, actx, tree, hf_pres_presentation_context_definition_result_list);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t T_CPA_PPDU_normal_mode_parameters_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_protocol_version_impl },
|
|
|
|
{ BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responding_presentation_selector_impl },
|
|
|
|
{ BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_context_definition_result_list_impl },
|
|
|
|
{ BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_requirements_impl },
|
|
|
|
{ BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_user_session_requirements_impl },
|
|
|
|
{ BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_protocol_options },
|
|
|
|
{ BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_responders_nominated_context },
|
|
|
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_user_data },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_T_CPA_PPDU_normal_mode_parameters(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
T_CPA_PPDU_normal_mode_parameters_sequence, hf_index, ett_pres_T_CPA_PPDU_normal_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_cPU_PPDU_normal_mode_parameters_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_T_CPA_PPDU_normal_mode_parameters(TRUE, tvb, offset, actx, tree, hf_pres_cPU_PPDU_normal_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t CPA_PPDU_set[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mode_selector_impl },
|
2005-08-31 20:20:56 +00:00
|
|
|
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cPR_PPDU_x400_mode_parameters_impl },
|
|
|
|
{ BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cPU_PPDU_normal_mode_parameters_impl },
|
2005-08-29 20:07:06 +00:00
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_CPA_PPDU(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_set(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
CPA_PPDU_set, hf_index, ett_pres_CPA_PPDU);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Default_context_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_) {
|
|
|
|
offset = dissect_pres_Result(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_default_context_result_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Default_context_result(TRUE, tvb, offset, actx, tree, hf_pres_default_context_result);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string pres_Provider_reason_vals[] = {
|
|
|
|
{ 0, "reason-not-specified" },
|
|
|
|
{ 1, "temporary-congestion" },
|
|
|
|
{ 2, "local-limit-exceeded" },
|
|
|
|
{ 3, "called-presentation-address-unknown" },
|
|
|
|
{ 4, "protocol-version-not-supported" },
|
|
|
|
{ 5, "default-context-not-supported" },
|
|
|
|
{ 6, "user-data-not-readable" },
|
|
|
|
{ 7, "no-PSAP-available" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_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,
|
2005-08-29 20:07:06 +00:00
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_cPR_PPDU__provider_reason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Provider_reason(TRUE, tvb, offset, actx, tree, hf_pres_cPR_PPDU__provider_reason);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t T_CPR_PPDU_normal_mode_parameters_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_protocol_version_impl },
|
|
|
|
{ BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_responding_presentation_selector_impl },
|
|
|
|
{ BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_context_definition_result_list_impl },
|
|
|
|
{ BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_default_context_result_impl },
|
2005-08-31 20:20:56 +00:00
|
|
|
{ BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cPR_PPDU__provider_reason_impl },
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_user_data },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_T_CPR_PPDU_normal_mode_parameters(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
T_CPR_PPDU_normal_mode_parameters_sequence, hf_index, ett_pres_T_CPR_PPDU_normal_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_cPR_PPDU_normal_mode_parameters(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_T_CPR_PPDU_normal_mode_parameters(FALSE, tvb, offset, actx, tree, hf_pres_cPR_PPDU_normal_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string pres_CPR_PPDU_vals[] = {
|
|
|
|
{ 0, "x400-mode-parameters" },
|
|
|
|
{ 1, "normal-mode-parameters" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_choice_t CPR_PPDU_choice[] = {
|
2005-08-31 20:20:56 +00:00
|
|
|
{ 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_cPU_PPDU_x400_mode_parameters },
|
|
|
|
{ 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_cPR_PPDU_normal_mode_parameters },
|
2005-08-29 20:07:06 +00:00
|
|
|
{ 0, 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_CPR_PPDU(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_choice(actx, tree, tvb, offset,
|
|
|
|
CPR_PPDU_choice, hf_index, ett_pres_CPR_PPDU,
|
|
|
|
NULL);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Presentation_context_identifier_list_item_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_presentation_context_identifier },
|
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_transfer_syntax_name },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_context_identifier_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-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Presentation_context_identifier_list_item_sequence, hf_index, ett_pres_Presentation_context_identifier_list_item);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_Presentation_context_identifier_list_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_identifier_list_item(FALSE, tvb, offset, actx, tree, hf_pres_Presentation_context_identifier_list_item);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Presentation_context_identifier_list_sequence_of[1] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Presentation_context_identifier_list_item },
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_context_identifier_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-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Presentation_context_identifier_list_sequence_of, hf_index, ett_pres_Presentation_context_identifier_list);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_presentation_context_identifier_list_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_identifier_list(TRUE, tvb, offset, actx, tree, hf_pres_presentation_context_identifier_list);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2004-01-13 02:10:25 +00:00
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t T_ARU_PPDU_normal_mode_parameters_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_context_identifier_list_impl },
|
|
|
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_user_data },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_T_ARU_PPDU_normal_mode_parameters(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
T_ARU_PPDU_normal_mode_parameters_sequence, hf_index, ett_pres_T_ARU_PPDU_normal_mode_parameters);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_aRU_PPDU_normal_mode_parameters_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_T_ARU_PPDU_normal_mode_parameters(TRUE, tvb, offset, actx, tree, hf_pres_aRU_PPDU_normal_mode_parameters);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2004-01-13 02:10:25 +00:00
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static const value_string pres_ARU_PPDU_vals[] = {
|
|
|
|
{ 0, "x400-mode-parameters" },
|
|
|
|
{ 1, "normal-mode-parameters" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_choice_t ARU_PPDU_choice[] = {
|
2005-08-31 20:20:56 +00:00
|
|
|
{ 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_aRU_PPDU_x400_mode_parameters },
|
|
|
|
{ 1, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aRU_PPDU_normal_mode_parameters_impl },
|
2005-08-29 20:07:06 +00:00
|
|
|
{ 0, 0, 0, 0, NULL }
|
|
|
|
};
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_ARU_PPDU(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_choice(actx, tree, tvb, offset,
|
|
|
|
ARU_PPDU_choice, hf_index, ett_pres_ARU_PPDU,
|
|
|
|
NULL);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_aru_ppdu(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_ARU_PPDU(FALSE, tvb, offset, actx, tree, hf_pres_aru_ppdu);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2004-01-13 02:10:25 +00:00
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static const value_string pres_Abort_reason_vals[] = {
|
|
|
|
{ 0, "reason-not-specified" },
|
|
|
|
{ 1, "unrecognized-ppdu" },
|
|
|
|
{ 2, "unexpected-ppdu" },
|
|
|
|
{ 3, "unexpected-session-service-primitive" },
|
|
|
|
{ 4, "unrecognized-ppdu-parameter" },
|
|
|
|
{ 5, "unexpected-ppdu-parameter" },
|
|
|
|
{ 6, "invalid-ppdu-parameter-value" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
2004-01-13 02:10:25 +00:00
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Abort_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,
|
2005-08-29 20:07:06 +00:00
|
|
|
NULL);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_aRU_PPDU_provider_reason_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Abort_reason(TRUE, tvb, offset, actx, tree, hf_pres_aRU_PPDU_provider_reason);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2004-01-13 02:10:25 +00:00
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static const value_string pres_Event_identifier_vals[] = {
|
|
|
|
{ 0, "cp-PPDU" },
|
|
|
|
{ 1, "cpa-PPDU" },
|
|
|
|
{ 2, "cpr-PPDU" },
|
|
|
|
{ 3, "aru-PPDU" },
|
|
|
|
{ 4, "arp-PPDU" },
|
|
|
|
{ 5, "ac-PPDU" },
|
|
|
|
{ 6, "aca-PPDU" },
|
|
|
|
{ 7, "td-PPDU" },
|
|
|
|
{ 8, "ttd-PPDU" },
|
|
|
|
{ 9, "te-PPDU" },
|
|
|
|
{ 10, "tc-PPDU" },
|
|
|
|
{ 11, "tcc-PPDU" },
|
|
|
|
{ 12, "rs-PPDU" },
|
|
|
|
{ 13, "rsa-PPDU" },
|
|
|
|
{ 14, "s-release-indication" },
|
|
|
|
{ 15, "s-release-confirm" },
|
|
|
|
{ 16, "s-token-give-indication" },
|
|
|
|
{ 17, "s-token-please-indication" },
|
|
|
|
{ 18, "s-control-give-indication" },
|
|
|
|
{ 19, "s-sync-minor-indication" },
|
|
|
|
{ 20, "s-sync-minor-confirm" },
|
|
|
|
{ 21, "s-sync-major-indication" },
|
|
|
|
{ 22, "s-sync-major-confirm" },
|
|
|
|
{ 23, "s-p-exception-report-indication" },
|
|
|
|
{ 24, "s-u-exception-report-indication" },
|
|
|
|
{ 25, "s-activity-start-indication" },
|
|
|
|
{ 26, "s-activity-resume-indication" },
|
|
|
|
{ 27, "s-activity-interrupt-indication" },
|
|
|
|
{ 28, "s-activity-interrupt-confirm" },
|
|
|
|
{ 29, "s-activity-discard-indication" },
|
|
|
|
{ 30, "s-activity-discard-confirm" },
|
|
|
|
{ 31, "s-activity-end-indication" },
|
|
|
|
{ 32, "s-activity-end-confirm" },
|
|
|
|
{ 0, NULL }
|
2004-01-13 02:10:25 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Event_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,
|
2005-08-29 20:07:06 +00:00
|
|
|
NULL);
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_event_identifier_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Event_identifier(TRUE, tvb, offset, actx, tree, hf_pres_event_identifier);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t ARP_PPDU_sequence[] = {
|
2005-08-31 20:20:56 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aRU_PPDU_provider_reason_impl },
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_event_identifier_impl },
|
|
|
|
{ 0, 0, 0, NULL }
|
2004-01-13 02:10:25 +00:00
|
|
|
};
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_ARP_PPDU(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
ARP_PPDU_sequence, hf_index, ett_pres_ARP_PPDU);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_arp_ppdu(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_ARP_PPDU(FALSE, tvb, offset, actx, tree, hf_pres_arp_ppdu);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static const value_string pres_Abort_type_vals[] = {
|
|
|
|
{ 0, "aru-ppdu" },
|
|
|
|
{ 1, "arp-ppdu" },
|
|
|
|
{ 0, NULL }
|
2004-01-13 02:10:25 +00:00
|
|
|
};
|
2005-08-29 20:07:06 +00:00
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_choice_t Abort_type_choice[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ 0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_aru_ppdu },
|
|
|
|
{ 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_arp_ppdu },
|
|
|
|
{ 0, 0, 0, 0, NULL }
|
2004-01-13 02:10:25 +00:00
|
|
|
};
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Abort_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_) {
|
2007-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_choice(actx, tree, tvb, offset,
|
|
|
|
Abort_type_choice, hf_index, ett_pres_Abort_type,
|
|
|
|
NULL);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_context_addition_list(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
offset = dissect_pres_Context_list(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_presentation_context_addition_list_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_addition_list(TRUE, tvb, offset, actx, tree, hf_pres_presentation_context_addition_list);
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Presentation_context_deletion_list_sequence_of[1] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_Presentation_context_deletion_list_item },
|
|
|
|
};
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_context_deletion_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-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Presentation_context_deletion_list_sequence_of, hf_index, ett_pres_Presentation_context_deletion_list);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_presentation_context_deletion_list_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_deletion_list(TRUE, tvb, offset, actx, tree, hf_pres_presentation_context_deletion_list);
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
2005-05-04 15:35:21 +00:00
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t AC_PPDU_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_context_addition_list_impl },
|
|
|
|
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_context_deletion_list_impl },
|
|
|
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_user_data },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
2005-05-04 15:35:21 +00:00
|
|
|
|
2004-01-13 02:10:25 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_AC_PPDU(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
AC_PPDU_sequence, hf_index, ett_pres_AC_PPDU);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_acPPDU_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_AC_PPDU(TRUE, tvb, offset, actx, tree, hf_pres_acPPDU);
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2004-01-23 09:53:18 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_context_addition_result_list(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
|
|
|
offset = dissect_pres_Result_list(implicit_tag, tvb, offset, actx, tree, hf_index);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_presentation_context_addition_result_list_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_addition_result_list(TRUE, tvb, offset, actx, tree, hf_pres_presentation_context_addition_result_list);
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static const value_string pres_Presentation_context_deletion_result_list_item_vals[] = {
|
|
|
|
{ 0, "acceptance" },
|
|
|
|
{ 1, "user-rejection" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
2004-01-13 02:10:25 +00:00
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_context_deletion_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-05-15 05:49:43 +00:00
|
|
|
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
|
2005-08-29 20:07:06 +00:00
|
|
|
NULL);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_Presentation_context_deletion_result_list_item(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_deletion_result_list_item(FALSE, tvb, offset, actx, tree, hf_pres_Presentation_context_deletion_result_list_item);
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t Presentation_context_deletion_result_list_sequence_of[1] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_Presentation_context_deletion_result_list_item },
|
|
|
|
};
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Presentation_context_deletion_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-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence_of(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
Presentation_context_deletion_result_list_sequence_of, hf_index, ett_pres_Presentation_context_deletion_result_list);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_presentation_context_deletion_result_list_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_Presentation_context_deletion_result_list(TRUE, tvb, offset, actx, tree, hf_pres_presentation_context_deletion_result_list);
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t ACA_PPDU_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_context_addition_result_list_impl },
|
|
|
|
{ BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_context_deletion_result_list_impl },
|
|
|
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_user_data },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_ACA_PPDU(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
ACA_PPDU_sequence, hf_index, ett_pres_ACA_PPDU);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
|
|
|
}
|
2007-05-13 20:58:29 +00:00
|
|
|
static int dissect_acaPPDU_impl(proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_) {
|
|
|
|
return dissect_pres_ACA_PPDU(TRUE, tvb, offset, actx, tree, hf_pres_acaPPDU);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2004-03-13 09:27:38 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static const value_string pres_Typed_data_type_vals[] = {
|
|
|
|
{ 0, "acPPDU" },
|
|
|
|
{ 1, "acaPPDU" },
|
|
|
|
{ 2, "ttdPPDU" },
|
|
|
|
{ 0, NULL }
|
|
|
|
};
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_choice_t Typed_data_type_choice[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_acPPDU_impl },
|
|
|
|
{ 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_acaPPDU_impl },
|
|
|
|
{ 2, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ttdPPDU },
|
|
|
|
{ 0, 0, 0, 0, NULL }
|
|
|
|
};
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_Typed_data_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_) {
|
2007-05-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_choice(actx, tree, tvb, offset,
|
|
|
|
Typed_data_type_choice, hf_index, ett_pres_Typed_data_type,
|
|
|
|
NULL);
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
return offset;
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t RS_PPDU_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_context_identifier_list_impl },
|
|
|
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_user_data },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_RS_PPDU(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
RS_PPDU_sequence, hf_index, ett_pres_RS_PPDU);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
|
2007-05-22 16:17:54 +00:00
|
|
|
static const ber_old_sequence_t RSA_PPDU_sequence[] = {
|
2005-08-29 20:07:06 +00:00
|
|
|
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_presentation_context_identifier_list_impl },
|
|
|
|
{ BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_user_data },
|
|
|
|
{ 0, 0, 0, NULL }
|
|
|
|
};
|
|
|
|
|
|
|
|
static int
|
2007-05-13 20:58:29 +00:00
|
|
|
dissect_pres_RSA_PPDU(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-22 16:17:54 +00:00
|
|
|
offset = dissect_ber_old_sequence(implicit_tag, actx, tree, tvb, offset,
|
|
|
|
RSA_PPDU_sequence, hf_index, ett_pres_RSA_PPDU);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
return offset;
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
/*--- End of included file: packet-pres-fn.c ---*/
|
2007-06-27 17:51:19 +00:00
|
|
|
#line 168 "packet-pres-template.c"
|
2005-08-29 20:07:06 +00:00
|
|
|
|
2005-08-31 20:20:56 +00:00
|
|
|
|
2004-01-13 02:10:25 +00:00
|
|
|
/*
|
2005-08-29 20:07:06 +00:00
|
|
|
* Dissect an PPDU.
|
|
|
|
*/
|
2004-01-13 02:10:25 +00:00
|
|
|
static int
|
2005-08-29 20:07:06 +00:00
|
|
|
dissect_ppdu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
|
2004-01-13 02:10:25 +00:00
|
|
|
{
|
|
|
|
proto_item *ti;
|
|
|
|
proto_tree *pres_tree = NULL;
|
2005-08-29 20:07:06 +00:00
|
|
|
guint s_type;
|
2007-05-13 20:58:29 +00:00
|
|
|
asn1_ctx_t asn1_ctx;
|
|
|
|
asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
|
|
|
|
|
|
|
|
/* do we have spdu type from the session dissector? */
|
2005-08-31 20:20:56 +00:00
|
|
|
if( !pinfo->private_data ){
|
|
|
|
if(tree){
|
|
|
|
proto_tree_add_text(tree, tvb, offset, -1,
|
|
|
|
"Internal error:can't get spdu type from session dissector.");
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
session = ( (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data) );
|
|
|
|
if(session->spdu_type == 0 ){
|
|
|
|
if(tree){
|
|
|
|
proto_tree_add_text(tree, tvb, offset, -1,
|
|
|
|
"Internal error:wrong spdu type %x from session dissector.",session->spdu_type);
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2004-01-13 02:10:25 +00:00
|
|
|
/* get type of tag */
|
|
|
|
s_type = tvb_get_guint8(tvb, offset);
|
|
|
|
/* set up type of Ppdu */
|
|
|
|
if (check_col(pinfo->cinfo, COL_INFO))
|
|
|
|
col_add_str(pinfo->cinfo, COL_INFO,
|
|
|
|
val_to_str(session->spdu_type, ses_vals, "Unknown Ppdu type (0x%02x)"));
|
2005-08-31 20:20:56 +00:00
|
|
|
if (tree){
|
|
|
|
ti = proto_tree_add_item(tree, proto_pres, tvb, offset, -1,
|
2004-01-13 02:10:25 +00:00
|
|
|
FALSE);
|
2005-08-31 20:20:56 +00:00
|
|
|
pres_tree = proto_item_add_subtree(ti, ett_pres);
|
|
|
|
}
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-31 20:20:56 +00:00
|
|
|
switch(session->spdu_type){
|
2004-01-13 02:10:25 +00:00
|
|
|
case SES_CONNECTION_REQUEST:
|
2007-05-13 20:58:29 +00:00
|
|
|
offset = dissect_pres_CP_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_CP_type);
|
2005-08-29 20:07:06 +00:00
|
|
|
break;
|
2004-01-13 02:10:25 +00:00
|
|
|
case SES_CONNECTION_ACCEPT:
|
2007-05-13 20:58:29 +00:00
|
|
|
offset = dissect_pres_CPA_PPDU(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_CPA_PPDU);
|
2005-08-29 20:07:06 +00:00
|
|
|
break;
|
2004-01-13 02:10:25 +00:00
|
|
|
case SES_ABORT:
|
2005-09-06 18:08:45 +00:00
|
|
|
case SES_ABORT_ACCEPT:
|
2007-05-13 20:58:29 +00:00
|
|
|
offset = dissect_pres_Abort_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_Abort_type);
|
2005-08-29 20:07:06 +00:00
|
|
|
break;
|
|
|
|
case SES_DATA_TRANSFER:
|
2007-05-13 20:58:29 +00:00
|
|
|
offset = dissect_pres_CPC_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_user_data);
|
2005-09-06 18:08:45 +00:00
|
|
|
break;
|
|
|
|
case SES_TYPED_DATA:
|
2007-05-13 20:58:29 +00:00
|
|
|
offset = dissect_pres_Typed_data_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_Typed_data_type);
|
2005-09-06 18:08:45 +00:00
|
|
|
break;
|
|
|
|
case SES_RESYNCHRONIZE:
|
2007-05-13 20:58:29 +00:00
|
|
|
offset = dissect_pres_RS_PPDU(FALSE, tvb, offset, &asn1_ctx, pres_tree, -1);
|
2005-09-06 18:08:45 +00:00
|
|
|
break;
|
|
|
|
case SES_RESYNCHRONIZE_ACK:
|
2007-05-13 20:58:29 +00:00
|
|
|
offset = dissect_pres_RSA_PPDU(FALSE, tvb, offset, &asn1_ctx, pres_tree, -1);
|
2004-01-13 02:10:25 +00:00
|
|
|
break;
|
2005-10-13 05:20:40 +00:00
|
|
|
case SES_REFUSE:
|
2007-05-13 20:58:29 +00:00
|
|
|
offset = dissect_pres_CPR_PPDU(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_CPR_PPDU);
|
2005-10-13 05:20:40 +00:00
|
|
|
break;
|
2004-01-13 02:10:25 +00:00
|
|
|
default:
|
2007-05-13 20:58:29 +00:00
|
|
|
offset = dissect_pres_CPC_type(FALSE, tvb, offset, &asn1_ctx, pres_tree, hf_pres_user_data);
|
2005-08-29 20:07:06 +00:00
|
|
|
break;
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return offset;
|
|
|
|
}
|
|
|
|
|
2005-12-08 23:29:21 +00:00
|
|
|
void
|
2005-08-29 20:07:06 +00:00
|
|
|
dissect_pres(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
|
2004-01-13 02:10:25 +00:00
|
|
|
{
|
2005-08-30 19:43:32 +00:00
|
|
|
int offset = 0, old_offset;
|
2004-01-13 02:10:25 +00:00
|
|
|
/* first, try to check length */
|
|
|
|
/* do we have at least 4 bytes */
|
2005-08-29 20:07:06 +00:00
|
|
|
if (!tvb_bytes_exist(tvb, 0, 4)){
|
2007-06-24 05:28:27 +00:00
|
|
|
session = ((struct SESSION_DATA_STRUCTURE*)(pinfo->private_data));
|
|
|
|
if (session && session->spdu_type != SES_MAJOR_SYNC_POINT) {
|
|
|
|
proto_tree_add_text(parent_tree, tvb, offset,
|
|
|
|
tvb_reported_length_remaining(tvb,offset),"User data");
|
|
|
|
return; /* no, it isn't a presentation PDU */
|
|
|
|
}
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* we can't make any additional checking here */
|
|
|
|
/* postpone it before dissector will have more information */
|
|
|
|
|
|
|
|
if (check_col(pinfo->cinfo, COL_PROTOCOL))
|
|
|
|
col_set_str(pinfo->cinfo, COL_PROTOCOL, "PRES");
|
|
|
|
if (check_col(pinfo->cinfo, COL_INFO))
|
|
|
|
col_clear(pinfo->cinfo, COL_INFO);
|
|
|
|
/* save pointers for calling the acse dissector */
|
2005-08-29 20:07:06 +00:00
|
|
|
global_tree = parent_tree;
|
2004-01-13 02:10:25 +00:00
|
|
|
global_pinfo = pinfo;
|
|
|
|
|
2007-06-24 05:28:27 +00:00
|
|
|
if (session && session->spdu_type == SES_MAJOR_SYNC_POINT) {
|
|
|
|
/* This is a reassembly initiated in packet-ses */
|
|
|
|
char *oid = find_oid_by_pres_ctx_id (pinfo, session->pres_ctx_id);
|
|
|
|
if (oid) {
|
|
|
|
call_ber_oid_callback (oid, tvb, offset, pinfo, parent_tree);
|
|
|
|
} else {
|
|
|
|
proto_tree_add_text(parent_tree, tvb, offset,
|
|
|
|
tvb_reported_length_remaining(tvb,offset),"User data");
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
while (tvb_reported_length_remaining(tvb, offset) > 0){
|
2005-08-30 19:43:32 +00:00
|
|
|
old_offset = offset;
|
2005-08-29 20:07:06 +00:00
|
|
|
offset = dissect_ppdu(tvb, offset, pinfo, parent_tree);
|
2005-08-30 19:43:32 +00:00
|
|
|
if(offset <= old_offset){
|
|
|
|
proto_tree_add_text(parent_tree, tvb, offset, -1,"Invalid offset");
|
|
|
|
THROW(ReportedBoundsError);
|
2005-08-29 20:07:06 +00:00
|
|
|
}
|
|
|
|
}
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
/*--- proto_register_pres -------------------------------------------*/
|
|
|
|
void proto_register_pres(void) {
|
|
|
|
|
|
|
|
/* List of fields */
|
|
|
|
static hf_register_info hf[] = {
|
2005-09-06 18:08:45 +00:00
|
|
|
{ &hf_pres_CP_type,
|
|
|
|
{ "CP-type", "pres.cptype",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_CPA_PPDU,
|
|
|
|
{ "CPA-PPDU", "pres.cpapdu",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_Abort_type,
|
|
|
|
{ "Abort type", "pres.aborttype",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(pres_Abort_type_vals), 0,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_CPR_PPDU,
|
|
|
|
{ "CPR-PPDU", "pres.cprtype",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(pres_CPR_PPDU_vals), 0,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_Typed_data_type,
|
|
|
|
{ "Typed data type", "pres.Typed_data_type",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(pres_Typed_data_type_vals), 0,
|
|
|
|
"", HFILL }},
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
/*--- Included file: packet-pres-hfarr.c ---*/
|
2005-12-08 23:29:21 +00:00
|
|
|
#line 1 "packet-pres-hfarr.c"
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_mode_selector,
|
|
|
|
{ "mode-selector", "pres.mode_selector",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Mode_selector", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_x410_mode_parameters,
|
|
|
|
{ "x410-mode-parameters", "pres.x410_mode_parameters",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"rtse.RTORQapdu", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_normal_mode_parameters,
|
|
|
|
{ "normal-mode-parameters", "pres.normal_mode_parameters",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.T_normal_mode_parameters", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_protocol_version,
|
|
|
|
{ "protocol-version", "pres.protocol_version",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Protocol_version", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_calling_presentation_selector,
|
|
|
|
{ "calling-presentation-selector", "pres.calling_presentation_selector",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Calling_presentation_selector", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_called_presentation_selector,
|
|
|
|
{ "called-presentation-selector", "pres.called_presentation_selector",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Called_presentation_selector", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_presentation_context_definition_list,
|
|
|
|
{ "presentation-context-definition-list", "pres.presentation_context_definition_list",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_definition_list", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_default_context_name,
|
|
|
|
{ "default-context-name", "pres.default_context_name",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Default_context_name", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_presentation_requirements,
|
|
|
|
{ "presentation-requirements", "pres.presentation_requirements",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_requirements", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_user_session_requirements,
|
|
|
|
{ "user-session-requirements", "pres.user_session_requirements",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.User_session_requirements", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_protocol_options,
|
|
|
|
{ "protocol-options", "pres.protocol_options",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Protocol_options", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_initiators_nominated_context,
|
|
|
|
{ "initiators-nominated-context", "pres.initiators_nominated_context",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_identifier", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_extensions,
|
|
|
|
{ "extensions", "pres.extensions",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.T_extensions", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_user_data,
|
|
|
|
{ "user-data", "pres.user_data",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(pres_User_data_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.User_data", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_pres_cPR_PPDU_x400_mode_parameters,
|
2005-08-29 20:07:06 +00:00
|
|
|
{ "x410-mode-parameters", "pres.x410_mode_parameters",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"rtse.RTOACapdu", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_pres_cPU_PPDU_normal_mode_parameters,
|
2005-08-29 20:07:06 +00:00
|
|
|
{ "normal-mode-parameters", "pres.normal_mode_parameters",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.T_CPA_PPDU_normal_mode_parameters", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_responding_presentation_selector,
|
|
|
|
{ "responding-presentation-selector", "pres.responding_presentation_selector",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Responding_presentation_selector", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_presentation_context_definition_result_list,
|
|
|
|
{ "presentation-context-definition-result-list", "pres.presentation_context_definition_result_list",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_definition_result_list", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_responders_nominated_context,
|
|
|
|
{ "responders-nominated-context", "pres.responders_nominated_context",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_identifier", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_pres_cPU_PPDU_x400_mode_parameters,
|
2005-08-29 20:07:06 +00:00
|
|
|
{ "x400-mode-parameters", "pres.x400_mode_parameters",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"rtse.RTORJapdu", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_pres_cPR_PPDU_normal_mode_parameters,
|
2005-08-29 20:07:06 +00:00
|
|
|
{ "normal-mode-parameters", "pres.normal_mode_parameters",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.T_CPR_PPDU_normal_mode_parameters", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_default_context_result,
|
|
|
|
{ "default-context-result", "pres.default_context_result",
|
|
|
|
FT_INT32, BASE_DEC, VALS(pres_Result_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Default_context_result", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_pres_cPR_PPDU__provider_reason,
|
2005-08-29 20:07:06 +00:00
|
|
|
{ "provider-reason", "pres.provider_reason",
|
|
|
|
FT_INT32, BASE_DEC, VALS(pres_Provider_reason_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Provider_reason", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_aru_ppdu,
|
|
|
|
{ "aru-ppdu", "pres.aru_ppdu",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(pres_ARU_PPDU_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.ARU_PPDU", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_arp_ppdu,
|
|
|
|
{ "arp-ppdu", "pres.arp_ppdu",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.ARP_PPDU", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_pres_aRU_PPDU_x400_mode_parameters,
|
2005-08-29 20:07:06 +00:00
|
|
|
{ "x400-mode-parameters", "pres.x400_mode_parameters",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"rtse.RTABapdu", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_pres_aRU_PPDU_normal_mode_parameters,
|
2005-08-29 20:07:06 +00:00
|
|
|
{ "normal-mode-parameters", "pres.normal_mode_parameters",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.T_ARU_PPDU_normal_mode_parameters", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_presentation_context_identifier_list,
|
|
|
|
{ "presentation-context-identifier-list", "pres.presentation_context_identifier_list",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_identifier_list", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_pres_aRU_PPDU_provider_reason,
|
2005-08-29 20:07:06 +00:00
|
|
|
{ "provider-reason", "pres.provider_reason",
|
|
|
|
FT_INT32, BASE_DEC, VALS(pres_Abort_reason_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Abort_reason", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_event_identifier,
|
|
|
|
{ "event-identifier", "pres.event_identifier",
|
|
|
|
FT_INT32, BASE_DEC, VALS(pres_Event_identifier_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Event_identifier", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_acPPDU,
|
|
|
|
{ "acPPDU", "pres.acPPDU",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.AC_PPDU", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_acaPPDU,
|
|
|
|
{ "acaPPDU", "pres.acaPPDU",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.ACA_PPDU", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_ttdPPDU,
|
|
|
|
{ "ttdPPDU", "pres.ttdPPDU",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(pres_User_data_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.User_data", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_presentation_context_addition_list,
|
|
|
|
{ "presentation-context-addition-list", "pres.presentation_context_addition_list",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_addition_list", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_presentation_context_deletion_list,
|
|
|
|
{ "presentation-context-deletion-list", "pres.presentation_context_deletion_list",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_deletion_list", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_presentation_context_addition_result_list,
|
|
|
|
{ "presentation-context-addition-result-list", "pres.presentation_context_addition_result_list",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_addition_result_list", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_presentation_context_deletion_result_list,
|
|
|
|
{ "presentation-context-deletion-result-list", "pres.presentation_context_deletion_result_list",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_deletion_result_list", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_Context_list_item,
|
|
|
|
{ "Item", "pres.Context_list_item",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Context_list_item", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_presentation_context_identifier,
|
|
|
|
{ "presentation-context-identifier", "pres.presentation_context_identifier",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_identifier", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_abstract_syntax_name,
|
|
|
|
{ "abstract-syntax-name", "pres.abstract_syntax_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Abstract_syntax_name", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_transfer_syntax_name_list,
|
|
|
|
{ "transfer-syntax-name-list", "pres.transfer_syntax_name_list",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.SEQUENCE_OF_Transfer_syntax_name", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_transfer_syntax_name_list_item,
|
|
|
|
{ "Item", "pres.transfer_syntax_name_list_item",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Transfer_syntax_name", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_transfer_syntax_name,
|
|
|
|
{ "transfer-syntax-name", "pres.transfer_syntax_name",
|
2005-12-08 23:29:21 +00:00
|
|
|
FT_OID, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Transfer_syntax_name", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_mode_value,
|
|
|
|
{ "mode-value", "pres.mode_value",
|
|
|
|
FT_INT32, BASE_DEC, VALS(pres_T_mode_value_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.T_mode_value", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_Presentation_context_deletion_list_item,
|
|
|
|
{ "Item", "pres.Presentation_context_deletion_list_item",
|
|
|
|
FT_INT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_identifier", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_Presentation_context_deletion_result_list_item,
|
|
|
|
{ "Item", "pres.Presentation_context_deletion_result_list_item",
|
|
|
|
FT_INT32, BASE_DEC, VALS(pres_Presentation_context_deletion_result_list_item_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_deletion_result_list_item", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_Presentation_context_identifier_list_item,
|
|
|
|
{ "Item", "pres.Presentation_context_identifier_list_item",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Presentation_context_identifier_list_item", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_Result_list_item,
|
|
|
|
{ "Item", "pres.Result_list_item",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Result_list_item", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_result,
|
|
|
|
{ "result", "pres.result",
|
|
|
|
FT_INT32, BASE_DEC, VALS(pres_Result_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Result", HFILL }},
|
2005-08-31 20:20:56 +00:00
|
|
|
{ &hf_pres_provider_reason,
|
2005-08-29 20:07:06 +00:00
|
|
|
{ "provider-reason", "pres.provider_reason",
|
|
|
|
FT_INT32, BASE_DEC, VALS(pres_T_provider_reason_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.T_provider_reason", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_simply_encoded_data,
|
|
|
|
{ "simply-encoded-data", "pres.simply_encoded_data",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Simply_encoded_data", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_fully_encoded_data,
|
|
|
|
{ "fully-encoded-data", "pres.fully_encoded_data",
|
|
|
|
FT_UINT32, BASE_DEC, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.Fully_encoded_data", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_Fully_encoded_data_item,
|
|
|
|
{ "Item", "pres.Fully_encoded_data_item",
|
|
|
|
FT_NONE, BASE_NONE, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.PDV_list", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_presentation_data_values,
|
|
|
|
{ "presentation-data-values", "pres.presentation_data_values",
|
|
|
|
FT_UINT32, BASE_DEC, VALS(pres_T_presentation_data_values_vals), 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.T_presentation_data_values", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_single_ASN1_type,
|
|
|
|
{ "single-ASN1-type", "pres.single_ASN1_type",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.T_single_ASN1_type", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_octet_aligned,
|
|
|
|
{ "octet-aligned", "pres.octet_aligned",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.T_octet_aligned", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_arbitrary,
|
|
|
|
{ "arbitrary", "pres.arbitrary",
|
|
|
|
FT_BYTES, BASE_HEX, NULL, 0,
|
2006-08-16 05:58:39 +00:00
|
|
|
"pres.BIT_STRING", HFILL }},
|
2005-08-29 20:07:06 +00:00
|
|
|
{ &hf_pres_Presentation_requirements_context_management,
|
|
|
|
{ "context-management", "pres.context-management",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x80,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_Presentation_requirements_restoration,
|
|
|
|
{ "restoration", "pres.restoration",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x40,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_Protocol_options_nominated_context,
|
|
|
|
{ "nominated-context", "pres.nominated-context",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x80,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_Protocol_options_short_encoding,
|
|
|
|
{ "short-encoding", "pres.short-encoding",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x40,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_Protocol_options_packed_encoding_rules,
|
|
|
|
{ "packed-encoding-rules", "pres.packed-encoding-rules",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x20,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_Protocol_version_version_1,
|
|
|
|
{ "version-1", "pres.version-1",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x80,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_half_duplex,
|
|
|
|
{ "half-duplex", "pres.half-duplex",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x80,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_duplex,
|
|
|
|
{ "duplex", "pres.duplex",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x40,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_expedited_data,
|
|
|
|
{ "expedited-data", "pres.expedited-data",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x20,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_minor_synchronize,
|
|
|
|
{ "minor-synchronize", "pres.minor-synchronize",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x10,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_major_synchronize,
|
|
|
|
{ "major-synchronize", "pres.major-synchronize",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x08,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_resynchronize,
|
|
|
|
{ "resynchronize", "pres.resynchronize",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x04,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_activity_management,
|
|
|
|
{ "activity-management", "pres.activity-management",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x02,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_negotiated_release,
|
|
|
|
{ "negotiated-release", "pres.negotiated-release",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x01,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_capability_data,
|
|
|
|
{ "capability-data", "pres.capability-data",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x80,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_exceptions,
|
|
|
|
{ "exceptions", "pres.exceptions",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x40,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_typed_data,
|
|
|
|
{ "typed-data", "pres.typed-data",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x20,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_symmetric_synchronize,
|
|
|
|
{ "symmetric-synchronize", "pres.symmetric-synchronize",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x10,
|
|
|
|
"", HFILL }},
|
|
|
|
{ &hf_pres_User_session_requirements_data_separation,
|
|
|
|
{ "data-separation", "pres.data-separation",
|
|
|
|
FT_BOOLEAN, 8, NULL, 0x08,
|
|
|
|
"", HFILL }},
|
|
|
|
|
|
|
|
/*--- End of included file: packet-pres-hfarr.c ---*/
|
2007-06-27 17:51:19 +00:00
|
|
|
#line 322 "packet-pres-template.c"
|
2005-08-29 20:07:06 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
/* List of subtrees */
|
|
|
|
static gint *ett[] = {
|
2004-01-13 02:10:25 +00:00
|
|
|
&ett_pres,
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
/*--- Included file: packet-pres-ettarr.c ---*/
|
2005-12-08 23:29:21 +00:00
|
|
|
#line 1 "packet-pres-ettarr.c"
|
2005-08-29 20:07:06 +00:00
|
|
|
&ett_pres_CP_type,
|
|
|
|
&ett_pres_T_normal_mode_parameters,
|
|
|
|
&ett_pres_T_extensions,
|
|
|
|
&ett_pres_CPA_PPDU,
|
2005-08-31 20:20:56 +00:00
|
|
|
&ett_pres_T_CPA_PPDU_normal_mode_parameters,
|
2005-08-29 20:07:06 +00:00
|
|
|
&ett_pres_CPR_PPDU,
|
2005-08-31 20:20:56 +00:00
|
|
|
&ett_pres_T_CPR_PPDU_normal_mode_parameters,
|
2005-08-29 20:07:06 +00:00
|
|
|
&ett_pres_Abort_type,
|
|
|
|
&ett_pres_ARU_PPDU,
|
2005-08-31 20:20:56 +00:00
|
|
|
&ett_pres_T_ARU_PPDU_normal_mode_parameters,
|
2005-08-29 20:07:06 +00:00
|
|
|
&ett_pres_ARP_PPDU,
|
|
|
|
&ett_pres_Typed_data_type,
|
|
|
|
&ett_pres_AC_PPDU,
|
|
|
|
&ett_pres_ACA_PPDU,
|
|
|
|
&ett_pres_RS_PPDU,
|
|
|
|
&ett_pres_RSA_PPDU,
|
|
|
|
&ett_pres_Context_list,
|
|
|
|
&ett_pres_Context_list_item,
|
|
|
|
&ett_pres_SEQUENCE_OF_Transfer_syntax_name,
|
|
|
|
&ett_pres_Default_context_name,
|
|
|
|
&ett_pres_Mode_selector,
|
|
|
|
&ett_pres_Presentation_context_deletion_list,
|
|
|
|
&ett_pres_Presentation_context_deletion_result_list,
|
|
|
|
&ett_pres_Presentation_context_identifier_list,
|
|
|
|
&ett_pres_Presentation_context_identifier_list_item,
|
|
|
|
&ett_pres_Presentation_requirements,
|
|
|
|
&ett_pres_Protocol_options,
|
|
|
|
&ett_pres_Protocol_version,
|
|
|
|
&ett_pres_Result_list,
|
|
|
|
&ett_pres_Result_list_item,
|
|
|
|
&ett_pres_User_data,
|
|
|
|
&ett_pres_Fully_encoded_data,
|
|
|
|
&ett_pres_PDV_list,
|
|
|
|
&ett_pres_T_presentation_data_values,
|
|
|
|
&ett_pres_User_session_requirements,
|
|
|
|
|
|
|
|
/*--- End of included file: packet-pres-ettarr.c ---*/
|
2007-06-27 17:51:19 +00:00
|
|
|
#line 328 "packet-pres-template.c"
|
2005-08-29 20:07:06 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
/* Register protocol */
|
|
|
|
proto_pres = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
|
|
|
register_dissector("pres", dissect_pres, proto_pres);
|
|
|
|
/* Register fields and subtrees */
|
|
|
|
proto_register_field_array(proto_pres, hf, array_length(hf));
|
|
|
|
proto_register_subtree_array(ett, array_length(ett));
|
2005-08-31 20:20:56 +00:00
|
|
|
register_init_routine(pres_init);
|
2005-08-29 20:07:06 +00:00
|
|
|
|
|
|
|
}
|
2004-01-13 02:10:25 +00:00
|
|
|
|
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
/*--- proto_reg_handoff_pres ---------------------------------------*/
|
|
|
|
void proto_reg_handoff_pres(void) {
|
2004-01-13 02:10:25 +00:00
|
|
|
|
2005-08-29 20:07:06 +00:00
|
|
|
/* register_ber_oid_dissector("0.4.0.0.1.1.1.1", dissect_pres, proto_pres,
|
|
|
|
"itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) abstractSyntax(1) pres(1) version1(1)"); */
|
2004-01-13 02:10:25 +00:00
|
|
|
|
|
|
|
data_handle = find_dissector("data");
|
2005-09-04 09:00:01 +00:00
|
|
|
|
2004-01-13 02:10:25 +00:00
|
|
|
}
|