f0e9d57bea9e567ec8821a6bed439b8b905d2fe6
[obnox/wireshark/wip.git] / epan / dissectors / packet-p7.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-p7.c                                                                */
4 /* ../../tools/asn2wrs.py -b -e -L -p p7 -c p7.cnf -s packet-p7-template MSAbstractService.asn MSGeneralAttributeTypes.asn MSAccessProtocol.asn */
5
6 /* Input file: packet-p7-template.c */
7
8 #line 1 "packet-p7-template.c"
9 /* packet-p7.c
10  * Routines for X.413 (P7) packet dissection
11  * Graeme Lunt 2007
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  */
33
34 #ifdef HAVE_CONFIG_H
35 # include "config.h"
36 #endif
37
38 #include <glib.h>
39 #include <epan/packet.h>
40 #include <epan/prefs.h>
41 #include <epan/conversation.h>
42 #include <epan/oids.h>
43 #include <epan/asn1.h>
44
45 #include <stdio.h>
46 #include <string.h>
47
48 #include "packet-ber.h"
49 #include "packet-acse.h"
50 #include "packet-ros.h"
51 #include "packet-rtse.h"
52
53 #include "packet-x411.h"
54 #include <epan/strutil.h>
55
56 #define PNAME  "X.413 Message Store Service"
57 #define PSNAME "P7"
58 #define PFNAME "p7"
59
60 static guint global_p7_tcp_port = 102;
61 static dissector_handle_t tpkt_handle;
62 static const char *object_identifier_id = NULL; /* attribute identifier */
63 static int seqno = 0;
64
65 void prefs_register_p7(void); /* forward declaration for use in preferences registration */
66
67
68 /* Initialize the protocol and registered fields */
69 int proto_p7 = -1;
70
71
72 /*--- Included file: packet-p7-hf.c ---*/
73 #line 1 "packet-p7-hf.c"
74 static int hf_p7_AutoActionType_PDU = -1;         /* AutoActionType */
75 static int hf_p7_AutoActionError_PDU = -1;        /* AutoActionError */
76 static int hf_p7_EntryType_PDU = -1;              /* EntryType */
77 static int hf_p7_SequenceNumber_PDU = -1;         /* SequenceNumber */
78 static int hf_p7_RetrievalStatus_PDU = -1;        /* RetrievalStatus */
79 static int hf_p7_MessageGroupName_PDU = -1;       /* MessageGroupName */
80 static int hf_p7_MSBindArgument_PDU = -1;         /* MSBindArgument */
81 static int hf_p7_MSBindResult_PDU = -1;           /* MSBindResult */
82 static int hf_p7_MS_EIT_PDU = -1;                 /* MS_EIT */
83 static int hf_p7_ChangeCredentialsAlgorithms_PDU = -1;  /* ChangeCredentialsAlgorithms */
84 static int hf_p7_PAR_ms_bind_error_PDU = -1;      /* PAR_ms_bind_error */
85 static int hf_p7_CreationTime_PDU = -1;           /* CreationTime */
86 static int hf_p7_OriginatorToken_PDU = -1;        /* OriginatorToken */
87 static int hf_p7_SummarizeArgument_PDU = -1;      /* SummarizeArgument */
88 static int hf_p7_SummarizeResult_PDU = -1;        /* SummarizeResult */
89 static int hf_p7_ListArgument_PDU = -1;           /* ListArgument */
90 static int hf_p7_ListResult_PDU = -1;             /* ListResult */
91 static int hf_p7_FetchArgument_PDU = -1;          /* FetchArgument */
92 static int hf_p7_FetchResult_PDU = -1;            /* FetchResult */
93 static int hf_p7_DeleteArgument_PDU = -1;         /* DeleteArgument */
94 static int hf_p7_DeleteResult_PDU = -1;           /* DeleteResult */
95 static int hf_p7_Register_MSArgument_PDU = -1;    /* Register_MSArgument */
96 static int hf_p7_Register_MSResult_PDU = -1;      /* Register_MSResult */
97 static int hf_p7_ProtectedChangeCredentials_PDU = -1;  /* ProtectedChangeCredentials */
98 static int hf_p7_AlertArgument_PDU = -1;          /* AlertArgument */
99 static int hf_p7_AlertResult_PDU = -1;            /* AlertResult */
100 static int hf_p7_ModifyArgument_PDU = -1;         /* ModifyArgument */
101 static int hf_p7_ModifyResult_PDU = -1;           /* ModifyResult */
102 static int hf_p7_MSMessageSubmissionArgument_PDU = -1;  /* MSMessageSubmissionArgument */
103 static int hf_p7_MSMessageSubmissionResult_PDU = -1;  /* MSMessageSubmissionResult */
104 static int hf_p7_MSProbeSubmissionArgument_PDU = -1;  /* MSProbeSubmissionArgument */
105 static int hf_p7_MSProbeSubmissionResult_PDU = -1;  /* MSProbeSubmissionResult */
106 static int hf_p7_PAR_attribute_error_PDU = -1;    /* PAR_attribute_error */
107 static int hf_p7_PAR_auto_action_request_error_PDU = -1;  /* PAR_auto_action_request_error */
108 static int hf_p7_PAR_delete_error_PDU = -1;       /* PAR_delete_error */
109 static int hf_p7_PAR_fetch_restriction_error_PDU = -1;  /* PAR_fetch_restriction_error */
110 static int hf_p7_PAR_invalid_parameters_error_PDU = -1;  /* PAR_invalid_parameters_error */
111 static int hf_p7_PAR_range_error_PDU = -1;        /* PAR_range_error */
112 static int hf_p7_PAR_sequence_number_error_PDU = -1;  /* PAR_sequence_number_error */
113 static int hf_p7_ServiceErrorParameter_PDU = -1;  /* ServiceErrorParameter */
114 static int hf_p7_MessageGroupErrorParameter_PDU = -1;  /* MessageGroupErrorParameter */
115 static int hf_p7_MSExtensionErrorParameter_PDU = -1;  /* MSExtensionErrorParameter */
116 static int hf_p7_PAR_register_ms_error_PDU = -1;  /* PAR_register_ms_error */
117 static int hf_p7_ModifyErrorParameter_PDU = -1;   /* ModifyErrorParameter */
118 static int hf_p7_EntryClassErrorParameter_PDU = -1;  /* EntryClassErrorParameter */
119 static int hf_p7_ReportLocation_PDU = -1;         /* ReportLocation */
120 static int hf_p7_PerRecipientReport_PDU = -1;     /* PerRecipientReport */
121 static int hf_p7_ReportSummary_PDU = -1;          /* ReportSummary */
122 static int hf_p7_DeferredDeliveryCancellationTime_PDU = -1;  /* DeferredDeliveryCancellationTime */
123 static int hf_p7_DeletionTime_PDU = -1;           /* DeletionTime */
124 static int hf_p7_SubmissionError_PDU = -1;        /* SubmissionError */
125 static int hf_p7_SignatureVerificationStatus_PDU = -1;  /* SignatureVerificationStatus */
126 static int hf_p7_StoragePeriod_PDU = -1;          /* StoragePeriod */
127 static int hf_p7_StorageTime_PDU = -1;            /* StorageTime */
128 static int hf_p7_RTSE_apdus_PDU = -1;             /* RTSE_apdus */
129 static int hf_p7_attribute_type = -1;             /* AttributeType */
130 static int hf_p7_attribute_values = -1;           /* AttributeValues */
131 static int hf_p7_attribute_values_item = -1;      /* AttributeItem */
132 static int hf_p7_auto_action_type = -1;           /* AutoActionType */
133 static int hf_p7_registration_identifier = -1;    /* INTEGER_1_ub_per_auto_action */
134 static int hf_p7_registration_parameter = -1;     /* T_registration_parameter */
135 static int hf_p7_error_code = -1;                 /* T_error_code */
136 static int hf_p7_error_parameter = -1;            /* T_error_parameter */
137 static int hf_p7_MSExtensions_item = -1;          /* MSExtensionItem */
138 static int hf_p7_MessageGroupName_item = -1;      /* GroupNamePart */
139 static int hf_p7_initiator_name = -1;             /* T_initiator_name */
140 static int hf_p7_initiator_credentials = -1;      /* InitiatorCredentials */
141 static int hf_p7_security_context = -1;           /* SecurityContext */
142 static int hf_p7_fetch_restrictions = -1;         /* Restrictions */
143 static int hf_p7_ms_configuration_request = -1;   /* BOOLEAN */
144 static int hf_p7_ua_registration_identifier = -1;  /* RegistrationIdentifier */
145 static int hf_p7_bind_extensions = -1;            /* MSExtensions */
146 static int hf_p7_allowed_content_types = -1;      /* T_allowed_content_types */
147 static int hf_p7_allowed_content_types_item = -1;  /* OBJECT_IDENTIFIER */
148 static int hf_p7_allowed_EITs = -1;               /* MS_EITs */
149 static int hf_p7_maximum_attribute_length = -1;   /* INTEGER */
150 static int hf_p7_MS_EITs_item = -1;               /* MS_EIT */
151 static int hf_p7_responder_credentials = -1;      /* ResponderCredentials */
152 static int hf_p7_available_auto_actions = -1;     /* SET_SIZE_1_ub_auto_actions_OF_AutoActionType */
153 static int hf_p7_available_auto_actions_item = -1;  /* AutoActionType */
154 static int hf_p7_available_attribute_types = -1;  /* SET_SIZE_1_ub_attributes_supported_OF_AttributeType */
155 static int hf_p7_available_attribute_types_item = -1;  /* AttributeType */
156 static int hf_p7_alert_indication = -1;           /* BOOLEAN */
157 static int hf_p7_content_types_supported = -1;    /* T_content_types_supported */
158 static int hf_p7_content_types_supported_item = -1;  /* OBJECT_IDENTIFIER */
159 static int hf_p7_entry_classes_supported = -1;    /* SET_SIZE_1_ub_entry_classes_OF_EntryClass */
160 static int hf_p7_entry_classes_supported_item = -1;  /* EntryClass */
161 static int hf_p7_matching_rules_supported = -1;   /* T_matching_rules_supported */
162 static int hf_p7_matching_rules_supported_item = -1;  /* OBJECT_IDENTIFIER */
163 static int hf_p7_bind_result_extensions = -1;     /* MSExtensions */
164 static int hf_p7_message_group_depth = -1;        /* INTEGER_1_ub_group_depth */
165 static int hf_p7_auto_action_error_indication = -1;  /* AutoActionErrorIndication */
166 static int hf_p7_unsupported_extensions = -1;     /* T_unsupported_extensions */
167 static int hf_p7_unsupported_extensions_item = -1;  /* OBJECT_IDENTIFIER */
168 static int hf_p7_ua_registration_id_unknown = -1;  /* BOOLEAN */
169 static int hf_p7_service_information = -1;        /* GeneralString_SIZE_1_ub_service_information_length */
170 static int hf_p7_ChangeCredentialsAlgorithms_item = -1;  /* OBJECT_IDENTIFIER */
171 static int hf_p7_indication_only = -1;            /* NULL */
172 static int hf_p7_auto_action_log_entry = -1;      /* SequenceNumber */
173 static int hf_p7_unqualified_error = -1;          /* BindProblem */
174 static int hf_p7_qualified_error = -1;            /* T_qualified_error */
175 static int hf_p7_bind_problem = -1;               /* BindProblem */
176 static int hf_p7_supplementary_information = -1;  /* GeneralString_SIZE_1_ub_supplementary_info_length */
177 static int hf_p7_bind_extension_errors = -1;      /* T_bind_extension_errors */
178 static int hf_p7_bind_extension_errors_item = -1;  /* OBJECT_IDENTIFIER */
179 static int hf_p7_sequence_number_range = -1;      /* NumberRange */
180 static int hf_p7_creation_time_range = -1;        /* TimeRange */
181 static int hf_p7_from_number = -1;                /* T_from_number */
182 static int hf_p7_to_number = -1;                  /* T_to_number */
183 static int hf_p7_from_time = -1;                  /* CreationTime */
184 static int hf_p7_to_time = -1;                    /* CreationTime */
185 static int hf_p7_filter_item = -1;                /* FilterItem */
186 static int hf_p7_and = -1;                        /* SET_OF_Filter */
187 static int hf_p7_and_item = -1;                   /* Filter */
188 static int hf_p7_or = -1;                         /* SET_OF_Filter */
189 static int hf_p7_or_item = -1;                    /* Filter */
190 static int hf_p7_not = -1;                        /* Filter */
191 static int hf_p7_equality = -1;                   /* AttributeValueAssertion */
192 static int hf_p7_substrings = -1;                 /* T_substrings */
193 static int hf_p7_type = -1;                       /* AttributeType */
194 static int hf_p7_strings = -1;                    /* T_strings */
195 static int hf_p7_strings_item = -1;               /* T_strings_item */
196 static int hf_p7_initial = -1;                    /* T_initial */
197 static int hf_p7_any = -1;                        /* T_any */
198 static int hf_p7_final = -1;                      /* T_final */
199 static int hf_p7_greater_or_equal = -1;           /* AttributeValueAssertion */
200 static int hf_p7_less_or_equal = -1;              /* AttributeValueAssertion */
201 static int hf_p7_present = -1;                    /* AttributeType */
202 static int hf_p7_approximate_match = -1;          /* AttributeValueAssertion */
203 static int hf_p7_other_match = -1;                /* MatchingRuleAssertion */
204 static int hf_p7_matching_rule = -1;              /* OBJECT_IDENTIFIER */
205 static int hf_p7_match_value = -1;                /* T_match_value */
206 static int hf_p7_attribute_value = -1;            /* T_attribute_value */
207 static int hf_p7_child_entries = -1;              /* BOOLEAN */
208 static int hf_p7_range = -1;                      /* Range */
209 static int hf_p7_filter = -1;                     /* Filter */
210 static int hf_p7_limit = -1;                      /* INTEGER_1_ub_messages */
211 static int hf_p7_override = -1;                   /* OverrideRestrictions */
212 static int hf_p7_EntryInformationSelection_item = -1;  /* AttributeSelection */
213 static int hf_p7_from = -1;                       /* INTEGER_1_ub_attribute_values */
214 static int hf_p7_selection_count = -1;            /* INTEGER_0_ub_attribute_values */
215 static int hf_p7_sequence_number = -1;            /* SequenceNumber */
216 static int hf_p7_attributes = -1;                 /* SET_SIZE_1_ub_per_entry_OF_Attribute */
217 static int hf_p7_attributes_item = -1;            /* Attribute */
218 static int hf_p7_value_count_exceeded = -1;       /* SET_SIZE_1_ub_per_entry_OF_AttributeValueCount */
219 static int hf_p7_value_count_exceeded_item = -1;  /* AttributeValueCount */
220 static int hf_p7_total = -1;                      /* INTEGER */
221 static int hf_p7_object_entry_class = -1;         /* EntryClass */
222 static int hf_p7_disable_auto_modify = -1;        /* BOOLEAN */
223 static int hf_p7_add_message_group_names = -1;    /* SET_SIZE_1_ub_message_groups_OF_MessageGroupName */
224 static int hf_p7_add_message_group_names_item = -1;  /* MessageGroupName */
225 static int hf_p7_ms_submission_extensions = -1;   /* MSExtensions */
226 static int hf_p7_created_entry = -1;              /* SequenceNumber */
227 static int hf_p7_ms_submission_result_extensions = -1;  /* MSExtensions */
228 static int hf_p7_entry_class = -1;                /* EntryClass */
229 static int hf_p7_selector = -1;                   /* Selector */
230 static int hf_p7_summary_requests = -1;           /* SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType */
231 static int hf_p7_summary_requests_item = -1;      /* AttributeType */
232 static int hf_p7_summarize_extensions = -1;       /* MSExtensions */
233 static int hf_p7_next = -1;                       /* SequenceNumber */
234 static int hf_p7_count = -1;                      /* T_count */
235 static int hf_p7_span = -1;                       /* Span */
236 static int hf_p7_summaries = -1;                  /* SEQUENCE_SIZE_1_ub_summaries_OF_Summary */
237 static int hf_p7_summaries_item = -1;             /* Summary */
238 static int hf_p7_summarize_result_extensions = -1;  /* MSExtensions */
239 static int hf_p7_lowest = -1;                     /* SequenceNumber */
240 static int hf_p7_highest = -1;                    /* SequenceNumber */
241 static int hf_p7_absent = -1;                     /* INTEGER_1_ub_messages */
242 static int hf_p7_summary_present = -1;            /* T_summary_present */
243 static int hf_p7_summary_present_item = -1;       /* T_summary_present_item */
244 static int hf_p7_value = -1;                      /* SummaryPresentItemValue */
245 static int hf_p7_summary_count = -1;              /* INTEGER_1_ub_messages */
246 static int hf_p7_requested_attributes = -1;       /* EntryInformationSelection */
247 static int hf_p7_list_extensions = -1;            /* MSExtensions */
248 static int hf_p7_requested = -1;                  /* SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation */
249 static int hf_p7_requested_item = -1;             /* EntryInformation */
250 static int hf_p7_list_result_extensions = -1;     /* MSExtensions */
251 static int hf_p7_item = -1;                       /* T_item */
252 static int hf_p7_search = -1;                     /* Selector */
253 static int hf_p7_precise = -1;                    /* SequenceNumber */
254 static int hf_p7_fetch_extensions = -1;           /* MSExtensions */
255 static int hf_p7_entry_information = -1;          /* EntryInformation */
256 static int hf_p7_list = -1;                       /* SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber */
257 static int hf_p7_list_item = -1;                  /* SequenceNumber */
258 static int hf_p7_fetch_result_extensions = -1;    /* MSExtensions */
259 static int hf_p7_items = -1;                      /* T_items */
260 static int hf_p7_sequence_numbers = -1;           /* SET_SIZE_1_ub_messages_OF_SequenceNumber */
261 static int hf_p7_sequence_numbers_item = -1;      /* SequenceNumber */
262 static int hf_p7_delete_extensions = -1;          /* MSExtensions */
263 static int hf_p7_delete_result_88 = -1;           /* NULL */
264 static int hf_p7_delete_result_94 = -1;           /* T_delete_result_94 */
265 static int hf_p7_entries_deleted_94 = -1;         /* SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber */
266 static int hf_p7_entries_deleted_94_item = -1;    /* SequenceNumber */
267 static int hf_p7_delete_result_extensions = -1;   /* MSExtensions */
268 static int hf_p7_auto_action_registrations = -1;  /* SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration */
269 static int hf_p7_auto_action_registrations_item = -1;  /* AutoActionRegistration */
270 static int hf_p7_auto_action_deregistrations = -1;  /* SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration */
271 static int hf_p7_auto_action_deregistrations_item = -1;  /* AutoActionDeregistration */
272 static int hf_p7_list_attribute_defaults = -1;    /* SET_SIZE_0_ub_default_registrations_OF_AttributeType */
273 static int hf_p7_list_attribute_defaults_item = -1;  /* AttributeType */
274 static int hf_p7_fetch_attribute_defaults = -1;   /* SET_SIZE_0_ub_default_registrations_OF_AttributeType */
275 static int hf_p7_fetch_attribute_defaults_item = -1;  /* AttributeType */
276 static int hf_p7_change_credentials = -1;         /* T_change_credentials */
277 static int hf_p7_register_old_credentials = -1;   /* Credentials */
278 static int hf_p7_new_credentials = -1;            /* Credentials */
279 static int hf_p7_user_security_labels = -1;       /* SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel */
280 static int hf_p7_user_security_labels_item = -1;  /* SecurityLabel */
281 static int hf_p7_ua_registrations = -1;           /* SET_SIZE_1_ub_ua_registrations_OF_UARegistration */
282 static int hf_p7_ua_registrations_item = -1;      /* UARegistration */
283 static int hf_p7_submission_defaults = -1;        /* MSSubmissionOptions */
284 static int hf_p7_message_group_registrations = -1;  /* MessageGroupRegistrations */
285 static int hf_p7_registration_status_request = -1;  /* RegistrationTypes */
286 static int hf_p7_register_ms_extensions = -1;     /* MSExtensions */
287 static int hf_p7_ua_list_attribute_defaults = -1;  /* SET_SIZE_0_ub_default_registrations_OF_AttributeType */
288 static int hf_p7_ua_list_attribute_defaults_item = -1;  /* AttributeType */
289 static int hf_p7_ua_fetch_attribute_defaults = -1;  /* SET_SIZE_0_ub_default_registrations_OF_AttributeType */
290 static int hf_p7_ua_fetch_attribute_defaults_item = -1;  /* AttributeType */
291 static int hf_p7_ua_submission_defaults = -1;     /* MSSubmissionOptions */
292 static int hf_p7_content_specific_defaults = -1;  /* MSExtensions */
293 static int hf_p7_MessageGroupRegistrations_item = -1;  /* MessageGroupRegistrations_item */
294 static int hf_p7_register_group = -1;             /* MessageGroupNameAndDescriptor */
295 static int hf_p7_deregister_group = -1;           /* MessageGroupName */
296 static int hf_p7_change_descriptors = -1;         /* MessageGroupNameAndDescriptor */
297 static int hf_p7_message_group_name = -1;         /* MessageGroupName */
298 static int hf_p7_message_group_descriptor = -1;   /* GeneralString_SIZE_1_ub_group_descriptor_length */
299 static int hf_p7_registrations = -1;              /* T_registrations */
300 static int hf_p7_extended_registrations = -1;     /* T_extended_registrations */
301 static int hf_p7_extended_registrations_item = -1;  /* T_extended_registrations_item */
302 static int hf_p7_restrict_message_groups = -1;    /* MessageGroupsRestriction */
303 static int hf_p7_parent_group = -1;               /* MessageGroupName */
304 static int hf_p7_immediate_descendants_only = -1;  /* BOOLEAN */
305 static int hf_p7_omit_descriptors = -1;           /* BOOLEAN */
306 static int hf_p7_algorithm_identifier = -1;       /* OBJECT_IDENTIFIER */
307 static int hf_p7_old_credentials = -1;            /* InitiatorCredentials */
308 static int hf_p7_password_delta = -1;             /* BIT_STRING */
309 static int hf_p7_no_status_information = -1;      /* NULL */
310 static int hf_p7_registered_information = -1;     /* T_registered_information */
311 static int hf_p7_registered_list_attribute_defaults = -1;  /* SET_SIZE_1_ub_default_registrations_OF_AttributeType */
312 static int hf_p7_registered_list_attribute_defaults_item = -1;  /* AttributeType */
313 static int hf_p7_registered_fetch_attribute_defaults = -1;  /* SET_SIZE_1_ub_default_registrations_OF_AttributeType */
314 static int hf_p7_registered_fetch_attribute_defaults_item = -1;  /* AttributeType */
315 static int hf_p7_registered_message_group_registrations = -1;  /* SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor */
316 static int hf_p7_registered_message_group_registrations_item = -1;  /* MessageGroupNameAndDescriptor */
317 static int hf_p7_register_ms_result_extensions = -1;  /* MSExtensions */
318 static int hf_p7_alert_registration_identifier = -1;  /* INTEGER_1_ub_auto_actions */
319 static int hf_p7_new_entry = -1;                  /* EntryInformation */
320 static int hf_p7_entries = -1;                    /* T_entries */
321 static int hf_p7_specific_entries = -1;           /* SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber */
322 static int hf_p7_specific_entries_item = -1;      /* SequenceNumber */
323 static int hf_p7_modifications = -1;              /* SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification */
324 static int hf_p7_modifications_item = -1;         /* EntryModification */
325 static int hf_p7_modify_extensions = -1;          /* MSExtensions */
326 static int hf_p7_strict = -1;                     /* BOOLEAN */
327 static int hf_p7_modification = -1;               /* T_modification */
328 static int hf_p7_add_attribute = -1;              /* Attribute */
329 static int hf_p7_remove_attribute = -1;           /* AttributeType */
330 static int hf_p7_add_values = -1;                 /* OrderedAttribute */
331 static int hf_p7_remove_values = -1;              /* OrderedAttribute */
332 static int hf_p7_ordered_attribute_values = -1;   /* OrderedAttributeValues */
333 static int hf_p7_ordered_attribute_values_item = -1;  /* OrderedAttributeItem */
334 static int hf_p7_ordered_attribute_value = -1;    /* OrderedAttributeValue */
335 static int hf_p7_ordered_position = -1;           /* INTEGER_1_ub_attribute_values */
336 static int hf_p7_entries_modified = -1;           /* SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber */
337 static int hf_p7_entries_modified_item = -1;      /* SequenceNumber */
338 static int hf_p7_modify_result_extensions = -1;   /* MSExtensions */
339 static int hf_p7_envelope = -1;                   /* MessageSubmissionEnvelope */
340 static int hf_p7_content = -1;                    /* Content */
341 static int hf_p7_submission_options = -1;         /* MSSubmissionOptions */
342 static int hf_p7_mts_result = -1;                 /* T_mts_result */
343 static int hf_p7_message_submission_identifier = -1;  /* MessageSubmissionIdentifier */
344 static int hf_p7_message_submission_time = -1;    /* MessageSubmissionTime */
345 static int hf_p7_content_identifier = -1;         /* ContentIdentifier */
346 static int hf_p7_extensions = -1;                 /* SET_OF_ExtensionField */
347 static int hf_p7_extensions_item = -1;            /* ExtensionField */
348 static int hf_p7_ms_message_result = -1;          /* CommonSubmissionResults */
349 static int hf_p7_store_draft_result = -1;         /* CommonSubmissionResults */
350 static int hf_p7_originator_name = -1;            /* MTSOriginatorName */
351 static int hf_p7_original_encoded_information_types = -1;  /* OriginalEncodedInformationTypes */
352 static int hf_p7_content_type = -1;               /* ContentType */
353 static int hf_p7_content_length = -1;             /* ContentLength */
354 static int hf_p7_per_message_indicators = -1;     /* PerMessageIndicators */
355 static int hf_p7_per_recipient_fields = -1;       /* SEQUENCE_OF_PerRecipientProbeSubmissionFields */
356 static int hf_p7_per_recipient_fields_item = -1;  /* PerRecipientProbeSubmissionFields */
357 static int hf_p7_probe_submission_identifier = -1;  /* ProbeSubmissionIdentifier */
358 static int hf_p7_probe_submission_time = -1;      /* ProbeSubmissionTime */
359 static int hf_p7_ms_probe_result = -1;            /* CommonSubmissionResults */
360 static int hf_p7_attribute_problems = -1;         /* AttributeProblems */
361 static int hf_p7_attribute_problem_item = -1;     /* AttributeProblemItem */
362 static int hf_p7_attribute_problem = -1;          /* AttributeProblem */
363 static int hf_p7_attr_value = -1;                 /* T_attr_value */
364 static int hf_p7_auto_action_request_problems = -1;  /* AutoActionRequestProblems */
365 static int hf_p7_auto_action_request_problem_item = -1;  /* AutoActionRequestProblemItem */
366 static int hf_p7_auto_action_request_problem = -1;  /* AutoActionRequestProblem */
367 static int hf_p7_delete_problems = -1;            /* DeleteProblems */
368 static int hf_p7_delete_problem_item = -1;        /* DeleteProblemItem */
369 static int hf_p7_delete_problem = -1;             /* DeleteProblem */
370 static int hf_p7_entries_deleted = -1;            /* SET_SIZE_1_ub_messages_OF_SequenceNumber */
371 static int hf_p7_entries_deleted_item = -1;       /* SequenceNumber */
372 static int hf_p7_fetch_restriction_problems = -1;  /* FetchRestrictionProblems */
373 static int hf_p7_fetch_restriction_problem_item = -1;  /* FetchRestrictionProblemItem */
374 static int hf_p7_fetch_restriction_problem = -1;  /* FetchRestrictionProblem */
375 static int hf_p7_restriction = -1;                /* T_restriction */
376 static int hf_p7_extended_content_type = -1;      /* OBJECT_IDENTIFIER */
377 static int hf_p7_eit = -1;                        /* MS_EITs */
378 static int hf_p7_attribute_length = -1;           /* INTEGER */
379 static int hf_p7_range_problem = -1;              /* RangeProblem */
380 static int hf_p7_sequence_number_problems = -1;   /* SequenceNumberProblems */
381 static int hf_p7_sequence_number_problem_item = -1;  /* SequenceNumberProblemItem */
382 static int hf_p7_sequence_number_problem = -1;    /* SequenceNumberProblem */
383 static int hf_p7_service_problem = -1;            /* ServiceProblem */
384 static int hf_p7_message_group_problem = -1;      /* MessageGroupProblem */
385 static int hf_p7_name = -1;                       /* MessageGroupName */
386 static int hf_p7_ms_extension_problem = -1;       /* MSExtensionItem */
387 static int hf_p7_unknown_ms_extension = -1;       /* OBJECT_IDENTIFIER */
388 static int hf_p7_register_ms_problem = -1;        /* RegistrationProblem */
389 static int hf_p7_registration_type = -1;          /* RegistrationTypes */
390 static int hf_p7_failing_entry = -1;              /* SequenceNumber */
391 static int hf_p7_modification_number = -1;        /* INTEGER */
392 static int hf_p7_modify_problem = -1;             /* ModifyProblem */
393 static int hf_p7_entry_class_problem = -1;        /* T_entry_class_problem */
394 static int hf_p7_no_correlated_reports = -1;      /* NULL */
395 static int hf_p7_location = -1;                   /* SEQUENCE_OF_PerRecipientReport */
396 static int hf_p7_location_item = -1;              /* PerRecipientReport */
397 static int hf_p7_report_entry = -1;               /* SequenceNumber */
398 static int hf_p7_position = -1;                   /* INTEGER_1_ub_recipients */
399 static int hf_p7_submission_control_violated = -1;  /* NULL */
400 static int hf_p7_originator_invalid = -1;         /* NULL */
401 static int hf_p7_recipient_improperly_specified = -1;  /* ImproperlySpecifiedRecipients */
402 static int hf_p7_element_of_service_not_subscribed = -1;  /* NULL */
403 static int hf_p7_inconsistent_request = -1;       /* NULL */
404 static int hf_p7_security_error = -1;             /* SecurityProblem */
405 static int hf_p7_unsupported_critical_function = -1;  /* NULL */
406 static int hf_p7_remote_bind_error = -1;          /* NULL */
407 static int hf_p7_service_error = -1;              /* ServiceErrorParameter */
408 static int hf_p7_message_group_error = -1;        /* MessageGroupErrorParameter */
409 static int hf_p7_ms_extension_error = -1;         /* MSExtensionErrorParameter */
410 static int hf_p7_entry_class_error = -1;          /* EntryClassErrorParameter */
411 static int hf_p7_content_integrity_check = -1;    /* SignatureStatus */
412 static int hf_p7_message_origin_authentication_check = -1;  /* SignatureStatus */
413 static int hf_p7_message_token = -1;              /* SignatureStatus */
414 static int hf_p7_report_origin_authentication_check = -1;  /* SignatureStatus */
415 static int hf_p7_proof_of_delivery = -1;          /* SignatureStatus */
416 static int hf_p7_proof_of_submission = -1;        /* SignatureStatus */
417 static int hf_p7_rtorq_apdu = -1;                 /* RTORQapdu */
418 static int hf_p7_rtoac_apdu = -1;                 /* RTOACapdu */
419 static int hf_p7_rtorj_apdu = -1;                 /* RTORJapdu */
420 static int hf_p7_rttp_apdu = -1;                  /* RTTPapdu */
421 static int hf_p7_rttr_apdu = -1;                  /* RTTRapdu */
422 static int hf_p7_rtab_apdu = -1;                  /* RTABapdu */
423 static int hf_p7_abortReason = -1;                /* AbortReason */
424 static int hf_p7_reflectedParameter = -1;         /* BIT_STRING */
425 static int hf_p7_userdataAB = -1;                 /* T_userdataAB */
426 /* named bits */
427 static int hf_p7_OverrideRestrictions_override_content_types_restriction = -1;
428 static int hf_p7_OverrideRestrictions_override_EITs_restriction = -1;
429 static int hf_p7_OverrideRestrictions_override_attribute_length_restriction = -1;
430 static int hf_p7_T_registrations_auto_action_registrations = -1;
431 static int hf_p7_T_registrations_list_attribute_defaults = -1;
432 static int hf_p7_T_registrations_fetch_attribute_defaults = -1;
433 static int hf_p7_T_registrations_ua_registrations = -1;
434 static int hf_p7_T_registrations_submission_defaults = -1;
435 static int hf_p7_T_registrations_message_group_registrations = -1;
436 static int hf_p7_T_entry_class_problem_unsupported_entry_class = -1;
437 static int hf_p7_T_entry_class_problem_entry_class_not_subscribed = -1;
438 static int hf_p7_T_entry_class_problem_inappropriate_entry_class = -1;
439
440 /*--- End of included file: packet-p7-hf.c ---*/
441 #line 64 "packet-p7-template.c"
442
443 /* Initialize the subtree pointers */
444 static gint ett_p7 = -1;
445
446 /*--- Included file: packet-p7-ett.c ---*/
447 #line 1 "packet-p7-ett.c"
448 static gint ett_p7_Attribute = -1;
449 static gint ett_p7_AttributeValues = -1;
450 static gint ett_p7_AutoActionRegistration = -1;
451 static gint ett_p7_AutoActionError = -1;
452 static gint ett_p7_MSExtensions = -1;
453 static gint ett_p7_MessageGroupName = -1;
454 static gint ett_p7_MSBindArgument = -1;
455 static gint ett_p7_Restrictions = -1;
456 static gint ett_p7_T_allowed_content_types = -1;
457 static gint ett_p7_MS_EITs = -1;
458 static gint ett_p7_MSBindResult = -1;
459 static gint ett_p7_SET_SIZE_1_ub_auto_actions_OF_AutoActionType = -1;
460 static gint ett_p7_SET_SIZE_1_ub_attributes_supported_OF_AttributeType = -1;
461 static gint ett_p7_T_content_types_supported = -1;
462 static gint ett_p7_SET_SIZE_1_ub_entry_classes_OF_EntryClass = -1;
463 static gint ett_p7_T_matching_rules_supported = -1;
464 static gint ett_p7_T_unsupported_extensions = -1;
465 static gint ett_p7_ChangeCredentialsAlgorithms = -1;
466 static gint ett_p7_AutoActionErrorIndication = -1;
467 static gint ett_p7_PAR_ms_bind_error = -1;
468 static gint ett_p7_T_qualified_error = -1;
469 static gint ett_p7_T_bind_extension_errors = -1;
470 static gint ett_p7_Range = -1;
471 static gint ett_p7_NumberRange = -1;
472 static gint ett_p7_TimeRange = -1;
473 static gint ett_p7_Filter = -1;
474 static gint ett_p7_SET_OF_Filter = -1;
475 static gint ett_p7_FilterItem = -1;
476 static gint ett_p7_T_substrings = -1;
477 static gint ett_p7_T_strings = -1;
478 static gint ett_p7_T_strings_item = -1;
479 static gint ett_p7_MatchingRuleAssertion = -1;
480 static gint ett_p7_AttributeValueAssertion = -1;
481 static gint ett_p7_Selector = -1;
482 static gint ett_p7_OverrideRestrictions = -1;
483 static gint ett_p7_EntryInformationSelection = -1;
484 static gint ett_p7_AttributeSelection = -1;
485 static gint ett_p7_EntryInformation = -1;
486 static gint ett_p7_SET_SIZE_1_ub_per_entry_OF_Attribute = -1;
487 static gint ett_p7_SET_SIZE_1_ub_per_entry_OF_AttributeValueCount = -1;
488 static gint ett_p7_AttributeValueCount = -1;
489 static gint ett_p7_MSSubmissionOptions = -1;
490 static gint ett_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupName = -1;
491 static gint ett_p7_CommonSubmissionResults = -1;
492 static gint ett_p7_SummarizeArgument = -1;
493 static gint ett_p7_SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType = -1;
494 static gint ett_p7_SummarizeResult = -1;
495 static gint ett_p7_SEQUENCE_SIZE_1_ub_summaries_OF_Summary = -1;
496 static gint ett_p7_Span = -1;
497 static gint ett_p7_Summary = -1;
498 static gint ett_p7_T_summary_present = -1;
499 static gint ett_p7_T_summary_present_item = -1;
500 static gint ett_p7_ListArgument = -1;
501 static gint ett_p7_ListResult = -1;
502 static gint ett_p7_SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation = -1;
503 static gint ett_p7_FetchArgument = -1;
504 static gint ett_p7_T_item = -1;
505 static gint ett_p7_FetchResult = -1;
506 static gint ett_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber = -1;
507 static gint ett_p7_DeleteArgument = -1;
508 static gint ett_p7_T_items = -1;
509 static gint ett_p7_SET_SIZE_1_ub_messages_OF_SequenceNumber = -1;
510 static gint ett_p7_DeleteResult = -1;
511 static gint ett_p7_T_delete_result_94 = -1;
512 static gint ett_p7_Register_MSArgument = -1;
513 static gint ett_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration = -1;
514 static gint ett_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration = -1;
515 static gint ett_p7_SET_SIZE_0_ub_default_registrations_OF_AttributeType = -1;
516 static gint ett_p7_T_change_credentials = -1;
517 static gint ett_p7_SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel = -1;
518 static gint ett_p7_SET_SIZE_1_ub_ua_registrations_OF_UARegistration = -1;
519 static gint ett_p7_AutoActionDeregistration = -1;
520 static gint ett_p7_UARegistration = -1;
521 static gint ett_p7_MessageGroupRegistrations = -1;
522 static gint ett_p7_MessageGroupRegistrations_item = -1;
523 static gint ett_p7_MessageGroupNameAndDescriptor = -1;
524 static gint ett_p7_RegistrationTypes = -1;
525 static gint ett_p7_T_registrations = -1;
526 static gint ett_p7_T_extended_registrations = -1;
527 static gint ett_p7_MessageGroupsRestriction = -1;
528 static gint ett_p7_ProtectedChangeCredentials = -1;
529 static gint ett_p7_Register_MSResult = -1;
530 static gint ett_p7_T_registered_information = -1;
531 static gint ett_p7_SET_SIZE_1_ub_default_registrations_OF_AttributeType = -1;
532 static gint ett_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor = -1;
533 static gint ett_p7_AlertArgument = -1;
534 static gint ett_p7_ModifyArgument = -1;
535 static gint ett_p7_T_entries = -1;
536 static gint ett_p7_SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification = -1;
537 static gint ett_p7_EntryModification = -1;
538 static gint ett_p7_T_modification = -1;
539 static gint ett_p7_OrderedAttribute = -1;
540 static gint ett_p7_OrderedAttributeValues = -1;
541 static gint ett_p7_OrderedAttributeItem = -1;
542 static gint ett_p7_ModifyResult = -1;
543 static gint ett_p7_MSMessageSubmissionArgument = -1;
544 static gint ett_p7_MSMessageSubmissionResult = -1;
545 static gint ett_p7_T_mts_result = -1;
546 static gint ett_p7_SET_OF_ExtensionField = -1;
547 static gint ett_p7_MSProbeSubmissionArgument = -1;
548 static gint ett_p7_SEQUENCE_OF_PerRecipientProbeSubmissionFields = -1;
549 static gint ett_p7_MSProbeSubmissionResult = -1;
550 static gint ett_p7_PAR_attribute_error = -1;
551 static gint ett_p7_AttributeProblems = -1;
552 static gint ett_p7_AttributeProblemItem = -1;
553 static gint ett_p7_PAR_auto_action_request_error = -1;
554 static gint ett_p7_AutoActionRequestProblems = -1;
555 static gint ett_p7_AutoActionRequestProblemItem = -1;
556 static gint ett_p7_PAR_delete_error = -1;
557 static gint ett_p7_DeleteProblems = -1;
558 static gint ett_p7_DeleteProblemItem = -1;
559 static gint ett_p7_PAR_fetch_restriction_error = -1;
560 static gint ett_p7_FetchRestrictionProblems = -1;
561 static gint ett_p7_FetchRestrictionProblemItem = -1;
562 static gint ett_p7_T_restriction = -1;
563 static gint ett_p7_PAR_range_error = -1;
564 static gint ett_p7_PAR_sequence_number_error = -1;
565 static gint ett_p7_SequenceNumberProblems = -1;
566 static gint ett_p7_SequenceNumberProblemItem = -1;
567 static gint ett_p7_ServiceErrorParameter = -1;
568 static gint ett_p7_MessageGroupErrorParameter = -1;
569 static gint ett_p7_MSExtensionErrorParameter = -1;
570 static gint ett_p7_PAR_register_ms_error = -1;
571 static gint ett_p7_ModifyErrorParameter = -1;
572 static gint ett_p7_EntryClassErrorParameter = -1;
573 static gint ett_p7_T_entry_class_problem = -1;
574 static gint ett_p7_ReportLocation = -1;
575 static gint ett_p7_SEQUENCE_OF_PerRecipientReport = -1;
576 static gint ett_p7_PerRecipientReport = -1;
577 static gint ett_p7_SubmissionError = -1;
578 static gint ett_p7_SignatureVerificationStatus = -1;
579 static gint ett_p7_RTSE_apdus = -1;
580 static gint ett_p7_RTABapdu = -1;
581
582 /*--- End of included file: packet-p7-ett.c ---*/
583 #line 68 "packet-p7-template.c"
584
585
586 /*--- Included file: packet-p7-val.h ---*/
587 #line 1 "packet-p7-val.h"
588 #define op_ms_submission_control       2
589 #define op_ms_message_submission       3
590 #define op_ms_probe_submission         4
591 #define op_ms_cancel_deferred_delivery 7
592 #define op_summarize                   20
593 #define op_list                        21
594 #define op_fetch                       22
595 #define op_delete                      23
596 #define op_register_ms                 24
597 #define op_alert                       25
598 #define op_modify                      26
599 #define err_attribute_error            21
600 #define err_auto_action_request_error  22
601 #define err_delete_error               23
602 #define err_fetch_restriction_error    24
603 #define err_range_error                25
604 #define err_security_error             26
605 #define err_service_error              27
606 #define err_sequence_number_error      28
607 #define err_invalid_parameters_error   29
608 #define err_message_group_error        30
609 #define err_ms_extension_error         31
610 #define err_register_ms_error          32
611 #define err_modify_error               33
612 #define err_entry_class_error          34
613
614 /*--- End of included file: packet-p7-val.h ---*/
615 #line 70 "packet-p7-template.c"
616
617
618 /*--- Included file: packet-p7-table.c ---*/
619 #line 1 "packet-p7-table.c"
620
621 /* P7 ABSTRACT-OPERATIONS */
622 const value_string p7_opr_code_string_vals[] = {
623         { op_ros_bind, "ms_bind" },
624         { op_summarize, "summarize" },
625         { op_list, "list" },
626         { op_fetch, "fetch" },
627         { op_delete, "delete" },
628         { op_register_ms, "register_MS" },
629         { op_alert, "alert" },
630         { op_modify, "modify" },
631         { op_ms_message_submission, "ms_message_submission" },
632         { op_ms_probe_submission, "ms_probe_submission" },
633         { 0, NULL }
634 };
635
636
637 /* P7 ERRORS */
638 static const value_string p7_err_code_string_vals[] = {
639         { err_ros_bind, "ms_bind_error" },  
640         { err_attribute_error, "attribute_error" },  
641         { err_auto_action_request_error, "auto_action_request_error" },  
642         { err_delete_error, "delete_error" },  
643         { err_fetch_restriction_error, "fetch_restriction_error" },  
644         { err_invalid_parameters_error, "invalid_parameters_error" },  
645         { err_range_error, "range_error" },  
646         { err_sequence_number_error, "sequence_number_error" },  
647         { err_service_error, "service_error" },  
648         { err_message_group_error, "message_group_error" },  
649         { err_ms_extension_error, "ms_extension_error" },  
650         { err_register_ms_error, "register_ms_error" },  
651         { err_modify_error, "modify_error" },  
652         { err_entry_class_error, "entry_class_error" },  
653           { 0, NULL }
654 };
655
656
657 /*--- End of included file: packet-p7-table.c ---*/
658 #line 72 "packet-p7-template.c"
659
660
661 /*--- Included file: packet-p7-fn.c ---*/
662 #line 1 "packet-p7-fn.c"
663 /*--- Cyclic dependencies ---*/
664
665 /* Filter -> Filter/and -> Filter */
666 /* Filter -> Filter */
667 static int dissect_p7_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
668
669
670
671
672 static int
673 dissect_p7_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
674   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
675
676   return offset;
677 }
678
679
680
681 static int
682 dissect_p7_AttributeItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
683         if(object_identifier_id) 
684            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
685
686
687   return offset;
688 }
689
690
691 static const ber_sequence_t AttributeValues_sequence_of[1] = {
692   { &hf_p7_attribute_values_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeItem },
693 };
694
695 static int
696 dissect_p7_AttributeValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
697   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
698                                       AttributeValues_sequence_of, hf_index, ett_p7_AttributeValues);
699
700   return offset;
701 }
702
703
704 static const ber_sequence_t Attribute_sequence[] = {
705   { &hf_p7_attribute_type   , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeType },
706   { &hf_p7_attribute_values , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeValues },
707   { NULL, 0, 0, 0, NULL }
708 };
709
710 static int
711 dissect_p7_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
712   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
713                                    Attribute_sequence, hf_index, ett_p7_Attribute);
714
715   return offset;
716 }
717
718
719
720 static int
721 dissect_p7_AutoActionType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
722   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
723
724   return offset;
725 }
726
727
728
729 static int
730 dissect_p7_INTEGER_1_ub_per_auto_action(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
731   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
732                                                 NULL);
733
734   return offset;
735 }
736
737
738
739 static int
740 dissect_p7_T_registration_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
741         if(object_identifier_id) 
742            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
743
744
745
746   return offset;
747 }
748
749
750 static const ber_sequence_t AutoActionRegistration_sequence[] = {
751   { &hf_p7_auto_action_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AutoActionType },
752   { &hf_p7_registration_identifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_INTEGER_1_ub_per_auto_action },
753   { &hf_p7_registration_parameter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_T_registration_parameter },
754   { NULL, 0, 0, 0, NULL }
755 };
756
757 static int
758 dissect_p7_AutoActionRegistration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
759   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
760                                    AutoActionRegistration_sequence, hf_index, ett_p7_AutoActionRegistration);
761
762   return offset;
763 }
764
765
766
767 static int
768 dissect_p7_T_error_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
769         /* XXX: Is this really the best way to do this? */
770         offset = dissect_ros_Code(implicit_tag, tvb, offset, actx, tree, hf_index);
771
772
773   return offset;
774 }
775
776
777
778 static int
779 dissect_p7_T_error_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
780         if(object_identifier_id) 
781            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
782
783
784   return offset;
785 }
786
787
788 static const ber_sequence_t AutoActionError_set[] = {
789   { &hf_p7_error_code       , BER_CLASS_CON, 0, 0, dissect_p7_T_error_code },
790   { &hf_p7_error_parameter  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_T_error_parameter },
791   { NULL, 0, 0, 0, NULL }
792 };
793
794 static int
795 dissect_p7_AutoActionError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
796   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
797                               AutoActionError_set, hf_index, ett_p7_AutoActionError);
798
799   return offset;
800 }
801
802
803
804 static int
805 dissect_p7_MSExtensionItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
806   offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
807
808   return offset;
809 }
810
811
812 static const ber_sequence_t MSExtensions_sequence_of[1] = {
813   { &hf_p7_MSExtensions_item, BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_p7_MSExtensionItem },
814 };
815
816 static int
817 dissect_p7_MSExtensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
818   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
819                                       MSExtensions_sequence_of, hf_index, ett_p7_MSExtensions);
820
821   return offset;
822 }
823
824
825 static const value_string p7_EntryClass_vals[] = {
826   {   0, "delivery" },
827   {   1, "submission" },
828   {   2, "draft" },
829   {   3, "stored-message" },
830   {   4, "delivery-log" },
831   {   5, "submission-log" },
832   {   6, "message-log" },
833   {   7, "auto-action-log" },
834   { 0, NULL }
835 };
836
837
838 static int
839 dissect_p7_EntryClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
840   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
841                                                 NULL);
842
843   return offset;
844 }
845
846
847 static const value_string p7_EntryType_vals[] = {
848   {   0, "delivered-message" },
849   {   1, "delivered-report" },
850   {   2, "returned-content" },
851   {   3, "submitted-message" },
852   {   4, "submitted-probe" },
853   {   5, "draft-message" },
854   {   6, "auto-action-event" },
855   { 0, NULL }
856 };
857
858
859 static int
860 dissect_p7_EntryType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
861   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
862                                                 NULL);
863
864   return offset;
865 }
866
867
868
869 int
870 dissect_p7_SequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
871   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
872                                                 &seqno);
873
874   return offset;
875 }
876
877
878 static const value_string p7_RetrievalStatus_vals[] = {
879   {   0, "new" },
880   {   1, "listed" },
881   {   2, "processed" },
882   { 0, NULL }
883 };
884
885
886 static int
887 dissect_p7_RetrievalStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
888   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
889                                                 NULL);
890
891   return offset;
892 }
893
894
895
896 static int
897 dissect_p7_GroupNamePart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
898   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
899                                             actx, tree, tvb, offset, hf_index,
900                                             NULL);
901
902   return offset;
903 }
904
905
906 static const ber_sequence_t MessageGroupName_sequence_of[1] = {
907   { &hf_p7_MessageGroupName_item, BER_CLASS_UNI, BER_UNI_TAG_GeneralString, BER_FLAGS_NOOWNTAG, dissect_p7_GroupNamePart },
908 };
909
910 static int
911 dissect_p7_MessageGroupName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
912   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
913                                       MessageGroupName_sequence_of, hf_index, ett_p7_MessageGroupName);
914
915   return offset;
916 }
917
918
919
920 static int
921 dissect_p7_T_initiator_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_) {
922         char *ora = NULL;
923         
924           offset = dissect_x411_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
925
926
927         if (check_col(actx->pinfo->cinfo, COL_INFO) && (ora = x411_get_last_oraddress())) {
928                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (initiator=%s)", ora);
929         }
930         
931
932   return offset;
933 }
934
935
936
937 static int
938 dissect_p7_OBJECT_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_) {
939   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
940
941   return offset;
942 }
943
944
945 static const ber_sequence_t T_allowed_content_types_set_of[1] = {
946   { &hf_p7_allowed_content_types_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_OBJECT_IDENTIFIER },
947 };
948
949 static int
950 dissect_p7_T_allowed_content_types(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
951   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
952                                  T_allowed_content_types_set_of, hf_index, ett_p7_T_allowed_content_types);
953
954   return offset;
955 }
956
957
958
959 static int
960 dissect_p7_MS_EIT(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
961   offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
962
963   return offset;
964 }
965
966
967 static const ber_sequence_t MS_EITs_set_of[1] = {
968   { &hf_p7_MS_EITs_item     , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_MS_EIT },
969 };
970
971 static int
972 dissect_p7_MS_EITs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
973   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
974                                  MS_EITs_set_of, hf_index, ett_p7_MS_EITs);
975
976   return offset;
977 }
978
979
980
981 static int
982 dissect_p7_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
983   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
984                                                 NULL);
985
986   return offset;
987 }
988
989
990 static const ber_sequence_t Restrictions_set[] = {
991   { &hf_p7_allowed_content_types, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_T_allowed_content_types },
992   { &hf_p7_allowed_EITs     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_MS_EITs },
993   { &hf_p7_maximum_attribute_length, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_INTEGER },
994   { NULL, 0, 0, 0, NULL }
995 };
996
997 static int
998 dissect_p7_Restrictions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
999   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1000                               Restrictions_set, hf_index, ett_p7_Restrictions);
1001
1002   return offset;
1003 }
1004
1005
1006
1007 static int
1008 dissect_p7_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1009   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1010
1011   return offset;
1012 }
1013
1014
1015
1016 static int
1017 dissect_p7_RegistrationIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1018   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
1019                                             actx, tree, tvb, offset, hf_index,
1020                                             NULL);
1021
1022   return offset;
1023 }
1024
1025
1026 static const ber_sequence_t MSBindArgument_set[] = {
1027   { &hf_p7_initiator_name   , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p7_T_initiator_name },
1028   { &hf_p7_initiator_credentials, BER_CLASS_CON, 2, 0, dissect_x411_InitiatorCredentials },
1029   { &hf_p7_security_context , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
1030   { &hf_p7_fetch_restrictions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_Restrictions },
1031   { &hf_p7_ms_configuration_request, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_p7_BOOLEAN },
1032   { &hf_p7_ua_registration_identifier, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_p7_RegistrationIdentifier },
1033   { &hf_p7_bind_extensions  , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
1034   { NULL, 0, 0, 0, NULL }
1035 };
1036
1037 static int
1038 dissect_p7_MSBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1039   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1040                               MSBindArgument_set, hf_index, ett_p7_MSBindArgument);
1041
1042   return offset;
1043 }
1044
1045
1046 static const ber_sequence_t SET_SIZE_1_ub_auto_actions_OF_AutoActionType_set_of[1] = {
1047   { &hf_p7_available_auto_actions_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AutoActionType },
1048 };
1049
1050 static int
1051 dissect_p7_SET_SIZE_1_ub_auto_actions_OF_AutoActionType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1052   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1053                                  SET_SIZE_1_ub_auto_actions_OF_AutoActionType_set_of, hf_index, ett_p7_SET_SIZE_1_ub_auto_actions_OF_AutoActionType);
1054
1055   return offset;
1056 }
1057
1058
1059 static const ber_sequence_t SET_SIZE_1_ub_attributes_supported_OF_AttributeType_set_of[1] = {
1060   { &hf_p7_available_attribute_types_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeType },
1061 };
1062
1063 static int
1064 dissect_p7_SET_SIZE_1_ub_attributes_supported_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1065   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1066                                  SET_SIZE_1_ub_attributes_supported_OF_AttributeType_set_of, hf_index, ett_p7_SET_SIZE_1_ub_attributes_supported_OF_AttributeType);
1067
1068   return offset;
1069 }
1070
1071
1072 static const ber_sequence_t T_content_types_supported_set_of[1] = {
1073   { &hf_p7_content_types_supported_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_OBJECT_IDENTIFIER },
1074 };
1075
1076 static int
1077 dissect_p7_T_content_types_supported(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1078   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1079                                  T_content_types_supported_set_of, hf_index, ett_p7_T_content_types_supported);
1080
1081   return offset;
1082 }
1083
1084
1085 static const ber_sequence_t SET_SIZE_1_ub_entry_classes_OF_EntryClass_set_of[1] = {
1086   { &hf_p7_entry_classes_supported_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p7_EntryClass },
1087 };
1088
1089 static int
1090 dissect_p7_SET_SIZE_1_ub_entry_classes_OF_EntryClass(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1091   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1092                                  SET_SIZE_1_ub_entry_classes_OF_EntryClass_set_of, hf_index, ett_p7_SET_SIZE_1_ub_entry_classes_OF_EntryClass);
1093
1094   return offset;
1095 }
1096
1097
1098 static const ber_sequence_t T_matching_rules_supported_set_of[1] = {
1099   { &hf_p7_matching_rules_supported_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_OBJECT_IDENTIFIER },
1100 };
1101
1102 static int
1103 dissect_p7_T_matching_rules_supported(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1104   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1105                                  T_matching_rules_supported_set_of, hf_index, ett_p7_T_matching_rules_supported);
1106
1107   return offset;
1108 }
1109
1110
1111
1112 static int
1113 dissect_p7_INTEGER_1_ub_group_depth(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1114   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1115                                                 NULL);
1116
1117   return offset;
1118 }
1119
1120
1121
1122 static int
1123 dissect_p7_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1124   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
1125
1126   return offset;
1127 }
1128
1129
1130 static const value_string p7_AutoActionErrorIndication_vals[] = {
1131   {   0, "indication-only" },
1132   {   1, "auto-action-log-entry" },
1133   { 0, NULL }
1134 };
1135
1136 static const ber_choice_t AutoActionErrorIndication_choice[] = {
1137   {   0, &hf_p7_indication_only  , BER_CLASS_CON, 0, 0, dissect_p7_NULL },
1138   {   1, &hf_p7_auto_action_log_entry, BER_CLASS_CON, 1, 0, dissect_p7_SequenceNumber },
1139   { 0, NULL, 0, 0, 0, NULL }
1140 };
1141
1142 static int
1143 dissect_p7_AutoActionErrorIndication(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1144   offset = dissect_ber_choice(actx, tree, tvb, offset,
1145                                  AutoActionErrorIndication_choice, hf_index, ett_p7_AutoActionErrorIndication,
1146                                  NULL);
1147
1148   return offset;
1149 }
1150
1151
1152 static const ber_sequence_t T_unsupported_extensions_set_of[1] = {
1153   { &hf_p7_unsupported_extensions_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_OBJECT_IDENTIFIER },
1154 };
1155
1156 static int
1157 dissect_p7_T_unsupported_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_) {
1158   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1159                                  T_unsupported_extensions_set_of, hf_index, ett_p7_T_unsupported_extensions);
1160
1161   return offset;
1162 }
1163
1164
1165
1166 static int
1167 dissect_p7_GeneralString_SIZE_1_ub_service_information_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1168   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
1169                                             actx, tree, tvb, offset, hf_index,
1170                                             NULL);
1171
1172   return offset;
1173 }
1174
1175
1176 static const ber_sequence_t MSBindResult_set[] = {
1177   { &hf_p7_responder_credentials, BER_CLASS_CON, 2, 0, dissect_x411_ResponderCredentials },
1178   { &hf_p7_available_auto_actions, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_auto_actions_OF_AutoActionType },
1179   { &hf_p7_available_attribute_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_attributes_supported_OF_AttributeType },
1180   { &hf_p7_alert_indication , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_p7_BOOLEAN },
1181   { &hf_p7_content_types_supported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_p7_T_content_types_supported },
1182   { &hf_p7_entry_classes_supported, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_entry_classes_OF_EntryClass },
1183   { &hf_p7_matching_rules_supported, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_p7_T_matching_rules_supported },
1184   { &hf_p7_bind_result_extensions, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
1185   { &hf_p7_message_group_depth, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_p7_INTEGER_1_ub_group_depth },
1186   { &hf_p7_auto_action_error_indication, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_p7_AutoActionErrorIndication },
1187   { &hf_p7_unsupported_extensions, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_p7_T_unsupported_extensions },
1188   { &hf_p7_ua_registration_id_unknown, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_p7_BOOLEAN },
1189   { &hf_p7_service_information, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_p7_GeneralString_SIZE_1_ub_service_information_length },
1190   { NULL, 0, 0, 0, NULL }
1191 };
1192
1193 static int
1194 dissect_p7_MSBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1195   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1196                               MSBindResult_set, hf_index, ett_p7_MSBindResult);
1197
1198   return offset;
1199 }
1200
1201
1202 static const ber_sequence_t ChangeCredentialsAlgorithms_set_of[1] = {
1203   { &hf_p7_ChangeCredentialsAlgorithms_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_OBJECT_IDENTIFIER },
1204 };
1205
1206 static int
1207 dissect_p7_ChangeCredentialsAlgorithms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1208   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1209                                  ChangeCredentialsAlgorithms_set_of, hf_index, ett_p7_ChangeCredentialsAlgorithms);
1210
1211   return offset;
1212 }
1213
1214
1215 static const value_string p7_BindProblem_vals[] = {
1216   {   0, "authentication-error" },
1217   {   1, "unacceptable-security-context" },
1218   {   2, "unable-to-establish-association" },
1219   {   3, "bind-extension-problem" },
1220   {   4, "inadequate-association-confidentiality" },
1221   { 0, NULL }
1222 };
1223
1224
1225 static int
1226 dissect_p7_BindProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1227   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1228                                   NULL);
1229
1230   return offset;
1231 }
1232
1233
1234
1235 static int
1236 dissect_p7_GeneralString_SIZE_1_ub_supplementary_info_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1237   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
1238                                             actx, tree, tvb, offset, hf_index,
1239                                             NULL);
1240
1241   return offset;
1242 }
1243
1244
1245 static const ber_sequence_t T_bind_extension_errors_set_of[1] = {
1246   { &hf_p7_bind_extension_errors_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_OBJECT_IDENTIFIER },
1247 };
1248
1249 static int
1250 dissect_p7_T_bind_extension_errors(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1251   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1252                                  T_bind_extension_errors_set_of, hf_index, ett_p7_T_bind_extension_errors);
1253
1254   return offset;
1255 }
1256
1257
1258 static const ber_sequence_t T_qualified_error_set[] = {
1259   { &hf_p7_bind_problem     , BER_CLASS_CON, 0, 0, dissect_p7_BindProblem },
1260   { &hf_p7_supplementary_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_GeneralString_SIZE_1_ub_supplementary_info_length },
1261   { &hf_p7_bind_extension_errors, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_T_bind_extension_errors },
1262   { NULL, 0, 0, 0, NULL }
1263 };
1264
1265 static int
1266 dissect_p7_T_qualified_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1267   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1268                               T_qualified_error_set, hf_index, ett_p7_T_qualified_error);
1269
1270   return offset;
1271 }
1272
1273
1274 static const value_string p7_PAR_ms_bind_error_vals[] = {
1275   {   0, "unqualified-error" },
1276   {   1, "qualified-error" },
1277   { 0, NULL }
1278 };
1279
1280 static const ber_choice_t PAR_ms_bind_error_choice[] = {
1281   {   0, &hf_p7_unqualified_error, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_p7_BindProblem },
1282   {   1, &hf_p7_qualified_error  , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_T_qualified_error },
1283   { 0, NULL, 0, 0, 0, NULL }
1284 };
1285
1286 static int
1287 dissect_p7_PAR_ms_bind_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1288   offset = dissect_ber_choice(actx, tree, tvb, offset,
1289                                  PAR_ms_bind_error_choice, hf_index, ett_p7_PAR_ms_bind_error,
1290                                  NULL);
1291
1292   return offset;
1293 }
1294
1295
1296
1297 static int
1298 dissect_p7_T_from_number(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1299   offset = dissect_p7_SequenceNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
1300
1301         if (check_col(actx->pinfo->cinfo, COL_INFO)) {
1302                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " from %d", seqno);
1303         }
1304
1305   return offset;
1306 }
1307
1308
1309
1310 static int
1311 dissect_p7_T_to_number(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1312   offset = dissect_p7_SequenceNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
1313
1314         if (check_col(actx->pinfo->cinfo, COL_INFO)) {
1315                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " to %d", seqno);
1316         }
1317         
1318   return offset;
1319 }
1320
1321
1322 static const ber_sequence_t NumberRange_sequence[] = {
1323   { &hf_p7_from_number      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_T_from_number },
1324   { &hf_p7_to_number        , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_T_to_number },
1325   { NULL, 0, 0, 0, NULL }
1326 };
1327
1328 static int
1329 dissect_p7_NumberRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1330         if (check_col(actx->pinfo->cinfo, COL_INFO)) {
1331                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (range=");
1332         }
1333           offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1334                                    NumberRange_sequence, hf_index, ett_p7_NumberRange);
1335
1336         if (check_col(actx->pinfo->cinfo, COL_INFO)) {
1337                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, ")");
1338         }
1339
1340
1341   return offset;
1342 }
1343
1344
1345
1346 static int
1347 dissect_p7_CreationTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1348   offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
1349
1350   return offset;
1351 }
1352
1353
1354 static const ber_sequence_t TimeRange_sequence[] = {
1355   { &hf_p7_from_time        , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_CreationTime },
1356   { &hf_p7_to_time          , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_CreationTime },
1357   { NULL, 0, 0, 0, NULL }
1358 };
1359
1360 static int
1361 dissect_p7_TimeRange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1362   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1363                                    TimeRange_sequence, hf_index, ett_p7_TimeRange);
1364
1365   return offset;
1366 }
1367
1368
1369 static const value_string p7_Range_vals[] = {
1370   {   0, "sequence-number-range" },
1371   {   1, "creation-time-range" },
1372   { 0, NULL }
1373 };
1374
1375 static const ber_choice_t Range_choice[] = {
1376   {   0, &hf_p7_sequence_number_range, BER_CLASS_CON, 0, 0, dissect_p7_NumberRange },
1377   {   1, &hf_p7_creation_time_range, BER_CLASS_CON, 1, 0, dissect_p7_TimeRange },
1378   { 0, NULL, 0, 0, 0, NULL }
1379 };
1380
1381 static int
1382 dissect_p7_Range(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1383   offset = dissect_ber_choice(actx, tree, tvb, offset,
1384                                  Range_choice, hf_index, ett_p7_Range,
1385                                  NULL);
1386
1387   return offset;
1388 }
1389
1390
1391
1392 static int
1393 dissect_p7_T_attribute_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_) {
1394         if(object_identifier_id) 
1395            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1396
1397
1398   return offset;
1399 }
1400
1401
1402 static const ber_sequence_t AttributeValueAssertion_sequence[] = {
1403   { &hf_p7_attribute_type   , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeType },
1404   { &hf_p7_attribute_value  , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_p7_T_attribute_value },
1405   { NULL, 0, 0, 0, NULL }
1406 };
1407
1408 static int
1409 dissect_p7_AttributeValueAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1410   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1411                                    AttributeValueAssertion_sequence, hf_index, ett_p7_AttributeValueAssertion);
1412
1413   return offset;
1414 }
1415
1416
1417
1418 static int
1419 dissect_p7_T_initial(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1420         if(object_identifier_id) 
1421            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1422
1423
1424   return offset;
1425 }
1426
1427
1428
1429 static int
1430 dissect_p7_T_any(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1431         if(object_identifier_id) 
1432            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1433
1434
1435   return offset;
1436 }
1437
1438
1439
1440 static int
1441 dissect_p7_T_final(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1442         if(object_identifier_id) 
1443            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1444
1445
1446   return offset;
1447 }
1448
1449
1450 static const value_string p7_T_strings_item_vals[] = {
1451   {   0, "initial" },
1452   {   1, "any" },
1453   {   2, "final" },
1454   { 0, NULL }
1455 };
1456
1457 static const ber_choice_t T_strings_item_choice[] = {
1458   {   0, &hf_p7_initial          , BER_CLASS_CON, 0, 0, dissect_p7_T_initial },
1459   {   1, &hf_p7_any              , BER_CLASS_CON, 1, 0, dissect_p7_T_any },
1460   {   2, &hf_p7_final            , BER_CLASS_CON, 2, 0, dissect_p7_T_final },
1461   { 0, NULL, 0, 0, 0, NULL }
1462 };
1463
1464 static int
1465 dissect_p7_T_strings_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_) {
1466   offset = dissect_ber_choice(actx, tree, tvb, offset,
1467                                  T_strings_item_choice, hf_index, ett_p7_T_strings_item,
1468                                  NULL);
1469
1470   return offset;
1471 }
1472
1473
1474 static const ber_sequence_t T_strings_sequence_of[1] = {
1475   { &hf_p7_strings_item     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p7_T_strings_item },
1476 };
1477
1478 static int
1479 dissect_p7_T_strings(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1480   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1481                                       T_strings_sequence_of, hf_index, ett_p7_T_strings);
1482
1483   return offset;
1484 }
1485
1486
1487 static const ber_sequence_t T_substrings_sequence[] = {
1488   { &hf_p7_type             , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeType },
1489   { &hf_p7_strings          , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_T_strings },
1490   { NULL, 0, 0, 0, NULL }
1491 };
1492
1493 static int
1494 dissect_p7_T_substrings(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1495   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1496                                    T_substrings_sequence, hf_index, ett_p7_T_substrings);
1497
1498   return offset;
1499 }
1500
1501
1502
1503 static int
1504 dissect_p7_T_match_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_) {
1505         if(object_identifier_id) 
1506            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1507
1508
1509   return offset;
1510 }
1511
1512
1513 static const ber_sequence_t MatchingRuleAssertion_sequence[] = {
1514   { &hf_p7_matching_rule    , BER_CLASS_CON, 0, 0, dissect_p7_OBJECT_IDENTIFIER },
1515   { &hf_p7_attribute_type   , BER_CLASS_CON, 1, 0, dissect_p7_AttributeType },
1516   { &hf_p7_match_value      , BER_CLASS_CON, 2, 0, dissect_p7_T_match_value },
1517   { NULL, 0, 0, 0, NULL }
1518 };
1519
1520 static int
1521 dissect_p7_MatchingRuleAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1522   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1523                                    MatchingRuleAssertion_sequence, hf_index, ett_p7_MatchingRuleAssertion);
1524
1525   return offset;
1526 }
1527
1528
1529 static const value_string p7_FilterItem_vals[] = {
1530   {   0, "equality" },
1531   {   1, "substrings" },
1532   {   2, "greater-or-equal" },
1533   {   3, "less-or-equal" },
1534   {   4, "present" },
1535   {   5, "approximate-match" },
1536   {   6, "other-match" },
1537   { 0, NULL }
1538 };
1539
1540 static const ber_choice_t FilterItem_choice[] = {
1541   {   0, &hf_p7_equality         , BER_CLASS_CON, 0, 0, dissect_p7_AttributeValueAssertion },
1542   {   1, &hf_p7_substrings       , BER_CLASS_CON, 1, 0, dissect_p7_T_substrings },
1543   {   2, &hf_p7_greater_or_equal , BER_CLASS_CON, 2, 0, dissect_p7_AttributeValueAssertion },
1544   {   3, &hf_p7_less_or_equal    , BER_CLASS_CON, 3, 0, dissect_p7_AttributeValueAssertion },
1545   {   4, &hf_p7_present          , BER_CLASS_CON, 4, 0, dissect_p7_AttributeType },
1546   {   5, &hf_p7_approximate_match, BER_CLASS_CON, 5, 0, dissect_p7_AttributeValueAssertion },
1547   {   6, &hf_p7_other_match      , BER_CLASS_CON, 6, 0, dissect_p7_MatchingRuleAssertion },
1548   { 0, NULL, 0, 0, 0, NULL }
1549 };
1550
1551 static int
1552 dissect_p7_FilterItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1553   offset = dissect_ber_choice(actx, tree, tvb, offset,
1554                                  FilterItem_choice, hf_index, ett_p7_FilterItem,
1555                                  NULL);
1556
1557   return offset;
1558 }
1559
1560
1561 static const ber_sequence_t SET_OF_Filter_set_of[1] = {
1562   { &hf_p7_and_item         , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p7_Filter },
1563 };
1564
1565 static int
1566 dissect_p7_SET_OF_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1567   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1568                                  SET_OF_Filter_set_of, hf_index, ett_p7_SET_OF_Filter);
1569
1570   return offset;
1571 }
1572
1573
1574 static const value_string p7_Filter_vals[] = {
1575   {   0, "item" },
1576   {   1, "and" },
1577   {   2, "or" },
1578   {   3, "not" },
1579   { 0, NULL }
1580 };
1581
1582 static const ber_choice_t Filter_choice[] = {
1583   {   0, &hf_p7_filter_item      , BER_CLASS_CON, 0, 0, dissect_p7_FilterItem },
1584   {   1, &hf_p7_and              , BER_CLASS_CON, 1, 0, dissect_p7_SET_OF_Filter },
1585   {   2, &hf_p7_or               , BER_CLASS_CON, 2, 0, dissect_p7_SET_OF_Filter },
1586   {   3, &hf_p7_not              , BER_CLASS_CON, 3, 0, dissect_p7_Filter },
1587   { 0, NULL, 0, 0, 0, NULL }
1588 };
1589
1590 static int
1591 dissect_p7_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1592   offset = dissect_ber_choice(actx, tree, tvb, offset,
1593                                  Filter_choice, hf_index, ett_p7_Filter,
1594                                  NULL);
1595
1596   return offset;
1597 }
1598
1599
1600
1601 static int
1602 dissect_p7_INTEGER_1_ub_messages(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1603   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1604                                                 NULL);
1605
1606   return offset;
1607 }
1608
1609
1610 static const asn_namedbit OverrideRestrictions_bits[] = {
1611   {  0, &hf_p7_OverrideRestrictions_override_content_types_restriction, -1, -1, "override-content-types-restriction", NULL },
1612   {  1, &hf_p7_OverrideRestrictions_override_EITs_restriction, -1, -1, "override-EITs-restriction", NULL },
1613   {  2, &hf_p7_OverrideRestrictions_override_attribute_length_restriction, -1, -1, "override-attribute-length-restriction", NULL },
1614   { 0, NULL, 0, 0, NULL, NULL }
1615 };
1616
1617 static int
1618 dissect_p7_OverrideRestrictions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1619   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
1620                                     OverrideRestrictions_bits, hf_index, ett_p7_OverrideRestrictions,
1621                                     NULL);
1622
1623   return offset;
1624 }
1625
1626
1627 static const ber_sequence_t Selector_set[] = {
1628   { &hf_p7_child_entries    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_BOOLEAN },
1629   { &hf_p7_range            , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_p7_Range },
1630   { &hf_p7_filter           , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_p7_Filter },
1631   { &hf_p7_limit            , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_INTEGER_1_ub_messages },
1632   { &hf_p7_override         , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_OverrideRestrictions },
1633   { NULL, 0, 0, 0, NULL }
1634 };
1635
1636 static int
1637 dissect_p7_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_) {
1638   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1639                               Selector_set, hf_index, ett_p7_Selector);
1640
1641   return offset;
1642 }
1643
1644
1645
1646 static int
1647 dissect_p7_INTEGER_1_ub_attribute_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_) {
1648   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1649                                                 NULL);
1650
1651   return offset;
1652 }
1653
1654
1655
1656 static int
1657 dissect_p7_INTEGER_0_ub_attribute_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_) {
1658   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1659                                                 NULL);
1660
1661   return offset;
1662 }
1663
1664
1665 static const ber_sequence_t AttributeSelection_set[] = {
1666   { &hf_p7_type             , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeType },
1667   { &hf_p7_from             , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_INTEGER_1_ub_attribute_values },
1668   { &hf_p7_selection_count  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_INTEGER_0_ub_attribute_values },
1669   { NULL, 0, 0, 0, NULL }
1670 };
1671
1672 static int
1673 dissect_p7_AttributeSelection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1674   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1675                               AttributeSelection_set, hf_index, ett_p7_AttributeSelection);
1676
1677   return offset;
1678 }
1679
1680
1681 static const ber_sequence_t EntryInformationSelection_set_of[1] = {
1682   { &hf_p7_EntryInformationSelection_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeSelection },
1683 };
1684
1685 static int
1686 dissect_p7_EntryInformationSelection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1687   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1688                                  EntryInformationSelection_set_of, hf_index, ett_p7_EntryInformationSelection);
1689
1690   return offset;
1691 }
1692
1693
1694 static const ber_sequence_t SET_SIZE_1_ub_per_entry_OF_Attribute_set_of[1] = {
1695   { &hf_p7_attributes_item  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_Attribute },
1696 };
1697
1698 static int
1699 dissect_p7_SET_SIZE_1_ub_per_entry_OF_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1700   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1701                                  SET_SIZE_1_ub_per_entry_OF_Attribute_set_of, hf_index, ett_p7_SET_SIZE_1_ub_per_entry_OF_Attribute);
1702
1703   return offset;
1704 }
1705
1706
1707 static const ber_sequence_t AttributeValueCount_sequence[] = {
1708   { &hf_p7_type             , BER_CLASS_CON, 0, 0, dissect_p7_AttributeType },
1709   { &hf_p7_total            , BER_CLASS_CON, 1, 0, dissect_p7_INTEGER },
1710   { NULL, 0, 0, 0, NULL }
1711 };
1712
1713 static int
1714 dissect_p7_AttributeValueCount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1715   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1716                                    AttributeValueCount_sequence, hf_index, ett_p7_AttributeValueCount);
1717
1718   return offset;
1719 }
1720
1721
1722 static const ber_sequence_t SET_SIZE_1_ub_per_entry_OF_AttributeValueCount_set_of[1] = {
1723   { &hf_p7_value_count_exceeded_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeValueCount },
1724 };
1725
1726 static int
1727 dissect_p7_SET_SIZE_1_ub_per_entry_OF_AttributeValueCount(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1728   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1729                                  SET_SIZE_1_ub_per_entry_OF_AttributeValueCount_set_of, hf_index, ett_p7_SET_SIZE_1_ub_per_entry_OF_AttributeValueCount);
1730
1731   return offset;
1732 }
1733
1734
1735 static const ber_sequence_t EntryInformation_sequence[] = {
1736   { &hf_p7_sequence_number  , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p7_SequenceNumber },
1737   { &hf_p7_attributes       , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p7_SET_SIZE_1_ub_per_entry_OF_Attribute },
1738   { &hf_p7_value_count_exceeded, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_per_entry_OF_AttributeValueCount },
1739   { NULL, 0, 0, 0, NULL }
1740 };
1741
1742 static int
1743 dissect_p7_EntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1744   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1745                                    EntryInformation_sequence, hf_index, ett_p7_EntryInformation);
1746
1747   return offset;
1748 }
1749
1750
1751 static const ber_sequence_t SET_SIZE_1_ub_message_groups_OF_MessageGroupName_set_of[1] = {
1752   { &hf_p7_add_message_group_names_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_MessageGroupName },
1753 };
1754
1755 static int
1756 dissect_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1757   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1758                                  SET_SIZE_1_ub_message_groups_OF_MessageGroupName_set_of, hf_index, ett_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupName);
1759
1760   return offset;
1761 }
1762
1763
1764 static const ber_sequence_t MSSubmissionOptions_set[] = {
1765   { &hf_p7_object_entry_class, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_EntryClass },
1766   { &hf_p7_disable_auto_modify, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_BOOLEAN },
1767   { &hf_p7_add_message_group_names, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupName },
1768   { &hf_p7_ms_submission_extensions, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
1769   { NULL, 0, 0, 0, NULL }
1770 };
1771
1772 static int
1773 dissect_p7_MSSubmissionOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1774   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1775                               MSSubmissionOptions_set, hf_index, ett_p7_MSSubmissionOptions);
1776
1777   return offset;
1778 }
1779
1780
1781
1782 static int
1783 dissect_p7_OriginatorToken(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1784   offset = dissect_x411_MessageToken(implicit_tag, tvb, offset, actx, tree, hf_index);
1785
1786   return offset;
1787 }
1788
1789
1790 static const ber_sequence_t CommonSubmissionResults_set[] = {
1791   { &hf_p7_created_entry    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_SequenceNumber },
1792   { &hf_p7_auto_action_error_indication, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_p7_AutoActionErrorIndication },
1793   { &hf_p7_ms_submission_result_extensions, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
1794   { NULL, 0, 0, 0, NULL }
1795 };
1796
1797 static int
1798 dissect_p7_CommonSubmissionResults(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1799   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1800                               CommonSubmissionResults_set, hf_index, ett_p7_CommonSubmissionResults);
1801
1802   return offset;
1803 }
1804
1805
1806 static const ber_sequence_t SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType_sequence_of[1] = {
1807   { &hf_p7_summary_requests_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeType },
1808 };
1809
1810 static int
1811 dissect_p7_SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1812   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1813                                       SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType_sequence_of, hf_index, ett_p7_SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType);
1814
1815   return offset;
1816 }
1817
1818
1819 static const ber_sequence_t SummarizeArgument_set[] = {
1820   { &hf_p7_entry_class      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_EntryClass },
1821   { &hf_p7_selector         , BER_CLASS_CON, 1, 0, dissect_p7_Selector },
1822   { &hf_p7_summary_requests , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType },
1823   { &hf_p7_summarize_extensions, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
1824   { NULL, 0, 0, 0, NULL }
1825 };
1826
1827 static int
1828 dissect_p7_SummarizeArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1829   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1830                               SummarizeArgument_set, hf_index, ett_p7_SummarizeArgument);
1831
1832   return offset;
1833 }
1834
1835
1836
1837 static int
1838 dissect_p7_T_count(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1839         int count = 0;
1840
1841           offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1842                                                 &count);
1843
1844
1845         if (check_col(actx->pinfo->cinfo, COL_INFO)) {
1846                 col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (count=%d)", count);
1847         }
1848
1849
1850   return offset;
1851 }
1852
1853
1854 static const ber_sequence_t Span_sequence[] = {
1855   { &hf_p7_lowest           , BER_CLASS_CON, 0, 0, dissect_p7_SequenceNumber },
1856   { &hf_p7_highest          , BER_CLASS_CON, 1, 0, dissect_p7_SequenceNumber },
1857   { NULL, 0, 0, 0, NULL }
1858 };
1859
1860 static int
1861 dissect_p7_Span(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1862   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1863                                    Span_sequence, hf_index, ett_p7_Span);
1864
1865   return offset;
1866 }
1867
1868
1869
1870 static int
1871 dissect_p7_SummaryPresentItemValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1872         if(object_identifier_id) 
1873            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
1874
1875
1876   return offset;
1877 }
1878
1879
1880 static const ber_sequence_t T_summary_present_item_sequence[] = {
1881   { &hf_p7_type             , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeType },
1882   { &hf_p7_value            , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_p7_SummaryPresentItemValue },
1883   { &hf_p7_summary_count    , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p7_INTEGER_1_ub_messages },
1884   { NULL, 0, 0, 0, NULL }
1885 };
1886
1887 static int
1888 dissect_p7_T_summary_present_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_) {
1889   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1890                                    T_summary_present_item_sequence, hf_index, ett_p7_T_summary_present_item);
1891
1892   return offset;
1893 }
1894
1895
1896 static const ber_sequence_t T_summary_present_set_of[1] = {
1897   { &hf_p7_summary_present_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_T_summary_present_item },
1898 };
1899
1900 static int
1901 dissect_p7_T_summary_present(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1902   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
1903                                  T_summary_present_set_of, hf_index, ett_p7_T_summary_present);
1904
1905   return offset;
1906 }
1907
1908
1909 static const ber_sequence_t Summary_set[] = {
1910   { &hf_p7_absent           , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_INTEGER_1_ub_messages },
1911   { &hf_p7_summary_present  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_T_summary_present },
1912   { NULL, 0, 0, 0, NULL }
1913 };
1914
1915 static int
1916 dissect_p7_Summary(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1917   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1918                               Summary_set, hf_index, ett_p7_Summary);
1919
1920   return offset;
1921 }
1922
1923
1924 static const ber_sequence_t SEQUENCE_SIZE_1_ub_summaries_OF_Summary_sequence_of[1] = {
1925   { &hf_p7_summaries_item   , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_Summary },
1926 };
1927
1928 static int
1929 dissect_p7_SEQUENCE_SIZE_1_ub_summaries_OF_Summary(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1930   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1931                                       SEQUENCE_SIZE_1_ub_summaries_OF_Summary_sequence_of, hf_index, ett_p7_SEQUENCE_SIZE_1_ub_summaries_OF_Summary);
1932
1933   return offset;
1934 }
1935
1936
1937 static const ber_sequence_t SummarizeResult_set[] = {
1938   { &hf_p7_next             , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_SequenceNumber },
1939   { &hf_p7_count            , BER_CLASS_CON, 1, 0, dissect_p7_T_count },
1940   { &hf_p7_span             , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_Span },
1941   { &hf_p7_summaries        , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_SEQUENCE_SIZE_1_ub_summaries_OF_Summary },
1942   { &hf_p7_summarize_result_extensions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
1943   { NULL, 0, 0, 0, NULL }
1944 };
1945
1946 static int
1947 dissect_p7_SummarizeResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1948   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1949                               SummarizeResult_set, hf_index, ett_p7_SummarizeResult);
1950
1951   return offset;
1952 }
1953
1954
1955 static const ber_sequence_t ListArgument_set[] = {
1956   { &hf_p7_entry_class      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_EntryClass },
1957   { &hf_p7_selector         , BER_CLASS_CON, 1, 0, dissect_p7_Selector },
1958   { &hf_p7_requested_attributes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_EntryInformationSelection },
1959   { &hf_p7_list_extensions  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
1960   { NULL, 0, 0, 0, NULL }
1961 };
1962
1963 static int
1964 dissect_p7_ListArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1965   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1966                               ListArgument_set, hf_index, ett_p7_ListArgument);
1967
1968   return offset;
1969 }
1970
1971
1972 static const ber_sequence_t SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation_sequence_of[1] = {
1973   { &hf_p7_requested_item   , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_EntryInformation },
1974 };
1975
1976 static int
1977 dissect_p7_SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1978   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1979                                       SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation_sequence_of, hf_index, ett_p7_SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation);
1980
1981   return offset;
1982 }
1983
1984
1985 static const ber_sequence_t ListResult_set[] = {
1986   { &hf_p7_next             , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_SequenceNumber },
1987   { &hf_p7_requested        , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation },
1988   { &hf_p7_list_result_extensions, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
1989   { NULL, 0, 0, 0, NULL }
1990 };
1991
1992 static int
1993 dissect_p7_ListResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1994   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
1995                               ListResult_set, hf_index, ett_p7_ListResult);
1996
1997   return offset;
1998 }
1999
2000
2001 static const value_string p7_T_item_vals[] = {
2002   {   1, "search" },
2003   {   2, "precise" },
2004   { 0, NULL }
2005 };
2006
2007 static const ber_choice_t T_item_choice[] = {
2008   {   1, &hf_p7_search           , BER_CLASS_CON, 1, 0, dissect_p7_Selector },
2009   {   2, &hf_p7_precise          , BER_CLASS_CON, 2, 0, dissect_p7_SequenceNumber },
2010   { 0, NULL, 0, 0, 0, NULL }
2011 };
2012
2013 static int
2014 dissect_p7_T_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_) {
2015   offset = dissect_ber_choice(actx, tree, tvb, offset,
2016                                  T_item_choice, hf_index, ett_p7_T_item,
2017                                  NULL);
2018
2019   return offset;
2020 }
2021
2022
2023 static const ber_sequence_t FetchArgument_set[] = {
2024   { &hf_p7_entry_class      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_EntryClass },
2025   { &hf_p7_item             , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p7_T_item },
2026   { &hf_p7_requested_attributes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_EntryInformationSelection },
2027   { &hf_p7_fetch_extensions , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
2028   { NULL, 0, 0, 0, NULL }
2029 };
2030
2031 static int
2032 dissect_p7_FetchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2033   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2034                               FetchArgument_set, hf_index, ett_p7_FetchArgument);
2035
2036   return offset;
2037 }
2038
2039
2040 static const ber_sequence_t SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber_sequence_of[1] = {
2041   { &hf_p7_list_item        , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p7_SequenceNumber },
2042 };
2043
2044 static int
2045 dissect_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2046   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2047                                       SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber_sequence_of, hf_index, ett_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber);
2048
2049   return offset;
2050 }
2051
2052
2053 static const ber_sequence_t FetchResult_set[] = {
2054   { &hf_p7_entry_information, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_EntryInformation },
2055   { &hf_p7_list             , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber },
2056   { &hf_p7_next             , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_SequenceNumber },
2057   { &hf_p7_fetch_result_extensions, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
2058   { NULL, 0, 0, 0, NULL }
2059 };
2060
2061 static int
2062 dissect_p7_FetchResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2063   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2064                               FetchResult_set, hf_index, ett_p7_FetchResult);
2065
2066   return offset;
2067 }
2068
2069
2070 static const ber_sequence_t SET_SIZE_1_ub_messages_OF_SequenceNumber_set_of[1] = {
2071   { &hf_p7_sequence_numbers_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p7_SequenceNumber },
2072 };
2073
2074 static int
2075 dissect_p7_SET_SIZE_1_ub_messages_OF_SequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2076   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2077                                  SET_SIZE_1_ub_messages_OF_SequenceNumber_set_of, hf_index, ett_p7_SET_SIZE_1_ub_messages_OF_SequenceNumber);
2078
2079   return offset;
2080 }
2081
2082
2083 static const value_string p7_T_items_vals[] = {
2084   {   1, "selector" },
2085   {   2, "sequence-numbers" },
2086   { 0, NULL }
2087 };
2088
2089 static const ber_choice_t T_items_choice[] = {
2090   {   1, &hf_p7_selector         , BER_CLASS_CON, 1, 0, dissect_p7_Selector },
2091   {   2, &hf_p7_sequence_numbers , BER_CLASS_CON, 2, 0, dissect_p7_SET_SIZE_1_ub_messages_OF_SequenceNumber },
2092   { 0, NULL, 0, 0, 0, NULL }
2093 };
2094
2095 static int
2096 dissect_p7_T_items(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2097   offset = dissect_ber_choice(actx, tree, tvb, offset,
2098                                  T_items_choice, hf_index, ett_p7_T_items,
2099                                  NULL);
2100
2101   return offset;
2102 }
2103
2104
2105 static const ber_sequence_t DeleteArgument_set[] = {
2106   { &hf_p7_entry_class      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_EntryClass },
2107   { &hf_p7_items            , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p7_T_items },
2108   { &hf_p7_delete_extensions, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
2109   { NULL, 0, 0, 0, NULL }
2110 };
2111
2112 static int
2113 dissect_p7_DeleteArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2114   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2115                               DeleteArgument_set, hf_index, ett_p7_DeleteArgument);
2116
2117   return offset;
2118 }
2119
2120
2121 static const ber_sequence_t T_delete_result_94_set[] = {
2122   { &hf_p7_entries_deleted_94, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber },
2123   { &hf_p7_delete_result_extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
2124   { NULL, 0, 0, 0, NULL }
2125 };
2126
2127 static int
2128 dissect_p7_T_delete_result_94(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2129   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2130                               T_delete_result_94_set, hf_index, ett_p7_T_delete_result_94);
2131
2132   return offset;
2133 }
2134
2135
2136 static const value_string p7_DeleteResult_vals[] = {
2137   {   0, "delete-result-88" },
2138   {   1, "delete-result-94" },
2139   { 0, NULL }
2140 };
2141
2142 static const ber_choice_t DeleteResult_choice[] = {
2143   {   0, &hf_p7_delete_result_88 , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p7_NULL },
2144   {   1, &hf_p7_delete_result_94 , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_T_delete_result_94 },
2145   { 0, NULL, 0, 0, 0, NULL }
2146 };
2147
2148 static int
2149 dissect_p7_DeleteResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2150   offset = dissect_ber_choice(actx, tree, tvb, offset,
2151                                  DeleteResult_choice, hf_index, ett_p7_DeleteResult,
2152                                  NULL);
2153
2154   return offset;
2155 }
2156
2157
2158 static const ber_sequence_t SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration_set_of[1] = {
2159   { &hf_p7_auto_action_registrations_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_AutoActionRegistration },
2160 };
2161
2162 static int
2163 dissect_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2164   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2165                                  SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration_set_of, hf_index, ett_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration);
2166
2167   return offset;
2168 }
2169
2170
2171 static const ber_sequence_t AutoActionDeregistration_sequence[] = {
2172   { &hf_p7_auto_action_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AutoActionType },
2173   { &hf_p7_registration_identifier, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_INTEGER_1_ub_per_auto_action },
2174   { NULL, 0, 0, 0, NULL }
2175 };
2176
2177 static int
2178 dissect_p7_AutoActionDeregistration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2179   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2180                                    AutoActionDeregistration_sequence, hf_index, ett_p7_AutoActionDeregistration);
2181
2182   return offset;
2183 }
2184
2185
2186 static const ber_sequence_t SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration_set_of[1] = {
2187   { &hf_p7_auto_action_deregistrations_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_AutoActionDeregistration },
2188 };
2189
2190 static int
2191 dissect_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2192   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2193                                  SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration_set_of, hf_index, ett_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration);
2194
2195   return offset;
2196 }
2197
2198
2199 static const ber_sequence_t SET_SIZE_0_ub_default_registrations_OF_AttributeType_set_of[1] = {
2200   { &hf_p7_list_attribute_defaults_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeType },
2201 };
2202
2203 static int
2204 dissect_p7_SET_SIZE_0_ub_default_registrations_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2205   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2206                                  SET_SIZE_0_ub_default_registrations_OF_AttributeType_set_of, hf_index, ett_p7_SET_SIZE_0_ub_default_registrations_OF_AttributeType);
2207
2208   return offset;
2209 }
2210
2211
2212 static const ber_sequence_t T_change_credentials_sequence[] = {
2213   { &hf_p7_register_old_credentials, BER_CLASS_CON, 0, 0, dissect_x411_Credentials },
2214   { &hf_p7_new_credentials  , BER_CLASS_CON, 1, 0, dissect_x411_Credentials },
2215   { NULL, 0, 0, 0, NULL }
2216 };
2217
2218 static int
2219 dissect_p7_T_change_credentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2220   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2221                                    T_change_credentials_sequence, hf_index, ett_p7_T_change_credentials);
2222
2223   return offset;
2224 }
2225
2226
2227 static const ber_sequence_t SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel_set_of[1] = {
2228   { &hf_p7_user_security_labels_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_SecurityLabel },
2229 };
2230
2231 static int
2232 dissect_p7_SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2233   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2234                                  SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel_set_of, hf_index, ett_p7_SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel);
2235
2236   return offset;
2237 }
2238
2239
2240 static const ber_sequence_t UARegistration_set[] = {
2241   { &hf_p7_ua_registration_identifier, BER_CLASS_CON, 0, 0, dissect_p7_RegistrationIdentifier },
2242   { &hf_p7_ua_list_attribute_defaults, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_0_ub_default_registrations_OF_AttributeType },
2243   { &hf_p7_ua_fetch_attribute_defaults, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_0_ub_default_registrations_OF_AttributeType },
2244   { &hf_p7_ua_submission_defaults, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_MSSubmissionOptions },
2245   { &hf_p7_content_specific_defaults, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
2246   { NULL, 0, 0, 0, NULL }
2247 };
2248
2249 static int
2250 dissect_p7_UARegistration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2251   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2252                               UARegistration_set, hf_index, ett_p7_UARegistration);
2253
2254   return offset;
2255 }
2256
2257
2258 static const ber_sequence_t SET_SIZE_1_ub_ua_registrations_OF_UARegistration_set_of[1] = {
2259   { &hf_p7_ua_registrations_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_UARegistration },
2260 };
2261
2262 static int
2263 dissect_p7_SET_SIZE_1_ub_ua_registrations_OF_UARegistration(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2264   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2265                                  SET_SIZE_1_ub_ua_registrations_OF_UARegistration_set_of, hf_index, ett_p7_SET_SIZE_1_ub_ua_registrations_OF_UARegistration);
2266
2267   return offset;
2268 }
2269
2270
2271
2272 static int
2273 dissect_p7_GeneralString_SIZE_1_ub_group_descriptor_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2274   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
2275                                             actx, tree, tvb, offset, hf_index,
2276                                             NULL);
2277
2278   return offset;
2279 }
2280
2281
2282 static const ber_sequence_t MessageGroupNameAndDescriptor_set[] = {
2283   { &hf_p7_message_group_name, BER_CLASS_CON, 0, 0, dissect_p7_MessageGroupName },
2284   { &hf_p7_message_group_descriptor, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_GeneralString_SIZE_1_ub_group_descriptor_length },
2285   { NULL, 0, 0, 0, NULL }
2286 };
2287
2288 static int
2289 dissect_p7_MessageGroupNameAndDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2290   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2291                               MessageGroupNameAndDescriptor_set, hf_index, ett_p7_MessageGroupNameAndDescriptor);
2292
2293   return offset;
2294 }
2295
2296
2297 static const value_string p7_MessageGroupRegistrations_item_vals[] = {
2298   {   0, "register-group" },
2299   {   1, "deregister-group" },
2300   {   2, "change-descriptors" },
2301   { 0, NULL }
2302 };
2303
2304 static const ber_choice_t MessageGroupRegistrations_item_choice[] = {
2305   {   0, &hf_p7_register_group   , BER_CLASS_CON, 0, 0, dissect_p7_MessageGroupNameAndDescriptor },
2306   {   1, &hf_p7_deregister_group , BER_CLASS_CON, 1, 0, dissect_p7_MessageGroupName },
2307   {   2, &hf_p7_change_descriptors, BER_CLASS_CON, 2, 0, dissect_p7_MessageGroupNameAndDescriptor },
2308   { 0, NULL, 0, 0, 0, NULL }
2309 };
2310
2311 static int
2312 dissect_p7_MessageGroupRegistrations_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_) {
2313   offset = dissect_ber_choice(actx, tree, tvb, offset,
2314                                  MessageGroupRegistrations_item_choice, hf_index, ett_p7_MessageGroupRegistrations_item,
2315                                  NULL);
2316
2317   return offset;
2318 }
2319
2320
2321 static const ber_sequence_t MessageGroupRegistrations_sequence_of[1] = {
2322   { &hf_p7_MessageGroupRegistrations_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p7_MessageGroupRegistrations_item },
2323 };
2324
2325 static int
2326 dissect_p7_MessageGroupRegistrations(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2327   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2328                                       MessageGroupRegistrations_sequence_of, hf_index, ett_p7_MessageGroupRegistrations);
2329
2330   return offset;
2331 }
2332
2333
2334 static const asn_namedbit T_registrations_bits[] = {
2335   {  0, &hf_p7_T_registrations_auto_action_registrations, -1, -1, "auto-action-registrations", NULL },
2336   {  1, &hf_p7_T_registrations_list_attribute_defaults, -1, -1, "list-attribute-defaults", NULL },
2337   {  2, &hf_p7_T_registrations_fetch_attribute_defaults, -1, -1, "fetch-attribute-defaults", NULL },
2338   {  3, &hf_p7_T_registrations_ua_registrations, -1, -1, "ua-registrations", NULL },
2339   {  4, &hf_p7_T_registrations_submission_defaults, -1, -1, "submission-defaults", NULL },
2340   {  5, &hf_p7_T_registrations_message_group_registrations, -1, -1, "message-group-registrations", NULL },
2341   { 0, NULL, 0, 0, NULL, NULL }
2342 };
2343
2344 static int
2345 dissect_p7_T_registrations(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2346   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2347                                     T_registrations_bits, hf_index, ett_p7_T_registrations,
2348                                     NULL);
2349
2350   return offset;
2351 }
2352
2353
2354
2355 static int
2356 dissect_p7_T_extended_registrations_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_) {
2357         /* XXX: Is this really the best way to do this? */
2358         offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
2359
2360
2361   return offset;
2362 }
2363
2364
2365 static const ber_sequence_t T_extended_registrations_set_of[1] = {
2366   { &hf_p7_extended_registrations_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_p7_T_extended_registrations_item },
2367 };
2368
2369 static int
2370 dissect_p7_T_extended_registrations(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2371   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2372                                  T_extended_registrations_set_of, hf_index, ett_p7_T_extended_registrations);
2373
2374   return offset;
2375 }
2376
2377
2378 static const ber_sequence_t MessageGroupsRestriction_set[] = {
2379   { &hf_p7_parent_group     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_MessageGroupName },
2380   { &hf_p7_immediate_descendants_only, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_BOOLEAN },
2381   { &hf_p7_omit_descriptors , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_BOOLEAN },
2382   { NULL, 0, 0, 0, NULL }
2383 };
2384
2385 static int
2386 dissect_p7_MessageGroupsRestriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2387   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2388                               MessageGroupsRestriction_set, hf_index, ett_p7_MessageGroupsRestriction);
2389
2390   return offset;
2391 }
2392
2393
2394 static const ber_sequence_t RegistrationTypes_set[] = {
2395   { &hf_p7_registrations    , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_T_registrations },
2396   { &hf_p7_extended_registrations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_T_extended_registrations },
2397   { &hf_p7_restrict_message_groups, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_MessageGroupsRestriction },
2398   { NULL, 0, 0, 0, NULL }
2399 };
2400
2401 static int
2402 dissect_p7_RegistrationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2403   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2404                               RegistrationTypes_set, hf_index, ett_p7_RegistrationTypes);
2405
2406   return offset;
2407 }
2408
2409
2410 static const ber_sequence_t Register_MSArgument_set[] = {
2411   { &hf_p7_auto_action_registrations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration },
2412   { &hf_p7_auto_action_deregistrations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration },
2413   { &hf_p7_list_attribute_defaults, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_0_ub_default_registrations_OF_AttributeType },
2414   { &hf_p7_fetch_attribute_defaults, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_0_ub_default_registrations_OF_AttributeType },
2415   { &hf_p7_change_credentials, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_T_change_credentials },
2416   { &hf_p7_user_security_labels, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel },
2417   { &hf_p7_ua_registrations , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_ua_registrations_OF_UARegistration },
2418   { &hf_p7_submission_defaults, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_p7_MSSubmissionOptions },
2419   { &hf_p7_message_group_registrations, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_p7_MessageGroupRegistrations },
2420   { &hf_p7_registration_status_request, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_p7_RegistrationTypes },
2421   { &hf_p7_register_ms_extensions, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
2422   { NULL, 0, 0, 0, NULL }
2423 };
2424
2425 static int
2426 dissect_p7_Register_MSArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2427   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2428                               Register_MSArgument_set, hf_index, ett_p7_Register_MSArgument);
2429
2430   return offset;
2431 }
2432
2433
2434
2435 static int
2436 dissect_p7_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_) {
2437   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
2438                                     NULL, hf_index, -1,
2439                                     NULL);
2440
2441   return offset;
2442 }
2443
2444
2445 static const ber_sequence_t ProtectedChangeCredentials_sequence[] = {
2446   { &hf_p7_algorithm_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p7_OBJECT_IDENTIFIER },
2447   { &hf_p7_old_credentials  , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x411_InitiatorCredentials },
2448   { &hf_p7_password_delta   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p7_BIT_STRING },
2449   { NULL, 0, 0, 0, NULL }
2450 };
2451
2452 static int
2453 dissect_p7_ProtectedChangeCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2454   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2455                                    ProtectedChangeCredentials_sequence, hf_index, ett_p7_ProtectedChangeCredentials);
2456
2457   return offset;
2458 }
2459
2460
2461 static const ber_sequence_t SET_SIZE_1_ub_default_registrations_OF_AttributeType_set_of[1] = {
2462   { &hf_p7_registered_list_attribute_defaults_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeType },
2463 };
2464
2465 static int
2466 dissect_p7_SET_SIZE_1_ub_default_registrations_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2467   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2468                                  SET_SIZE_1_ub_default_registrations_OF_AttributeType_set_of, hf_index, ett_p7_SET_SIZE_1_ub_default_registrations_OF_AttributeType);
2469
2470   return offset;
2471 }
2472
2473
2474 static const ber_sequence_t SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor_set_of[1] = {
2475   { &hf_p7_registered_message_group_registrations_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_MessageGroupNameAndDescriptor },
2476 };
2477
2478 static int
2479 dissect_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2480   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2481                                  SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor_set_of, hf_index, ett_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor);
2482
2483   return offset;
2484 }
2485
2486
2487 static const ber_sequence_t T_registered_information_set[] = {
2488   { &hf_p7_auto_action_registrations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration },
2489   { &hf_p7_registered_list_attribute_defaults, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_default_registrations_OF_AttributeType },
2490   { &hf_p7_registered_fetch_attribute_defaults, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_default_registrations_OF_AttributeType },
2491   { &hf_p7_ua_registrations , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_ua_registrations_OF_UARegistration },
2492   { &hf_p7_submission_defaults, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_MSSubmissionOptions },
2493   { &hf_p7_registered_message_group_registrations, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor },
2494   { &hf_p7_register_ms_result_extensions, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
2495   { NULL, 0, 0, 0, NULL }
2496 };
2497
2498 static int
2499 dissect_p7_T_registered_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2500   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2501                               T_registered_information_set, hf_index, ett_p7_T_registered_information);
2502
2503   return offset;
2504 }
2505
2506
2507 static const value_string p7_Register_MSResult_vals[] = {
2508   {   0, "no-status-information" },
2509   {   1, "registered-information" },
2510   { 0, NULL }
2511 };
2512
2513 static const ber_choice_t Register_MSResult_choice[] = {
2514   {   0, &hf_p7_no_status_information, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p7_NULL },
2515   {   1, &hf_p7_registered_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_T_registered_information },
2516   { 0, NULL, 0, 0, 0, NULL }
2517 };
2518
2519 static int
2520 dissect_p7_Register_MSResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2521   offset = dissect_ber_choice(actx, tree, tvb, offset,
2522                                  Register_MSResult_choice, hf_index, ett_p7_Register_MSResult,
2523                                  NULL);
2524
2525   return offset;
2526 }
2527
2528
2529
2530 static int
2531 dissect_p7_INTEGER_1_ub_auto_actions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2532   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2533                                                 NULL);
2534
2535   return offset;
2536 }
2537
2538
2539 static const ber_sequence_t AlertArgument_set[] = {
2540   { &hf_p7_alert_registration_identifier, BER_CLASS_CON, 0, 0, dissect_p7_INTEGER_1_ub_auto_actions },
2541   { &hf_p7_new_entry        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_EntryInformation },
2542   { NULL, 0, 0, 0, NULL }
2543 };
2544
2545 static int
2546 dissect_p7_AlertArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2547   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2548                               AlertArgument_set, hf_index, ett_p7_AlertArgument);
2549
2550   return offset;
2551 }
2552
2553
2554
2555 static int
2556 dissect_p7_AlertResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2557   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
2558
2559   return offset;
2560 }
2561
2562
2563 static const value_string p7_T_entries_vals[] = {
2564   {   1, "selector" },
2565   {   2, "specific-entries" },
2566   { 0, NULL }
2567 };
2568
2569 static const ber_choice_t T_entries_choice[] = {
2570   {   1, &hf_p7_selector         , BER_CLASS_CON, 1, 0, dissect_p7_Selector },
2571   {   2, &hf_p7_specific_entries , BER_CLASS_CON, 2, 0, dissect_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber },
2572   { 0, NULL, 0, 0, 0, NULL }
2573 };
2574
2575 static int
2576 dissect_p7_T_entries(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2577   offset = dissect_ber_choice(actx, tree, tvb, offset,
2578                                  T_entries_choice, hf_index, ett_p7_T_entries,
2579                                  NULL);
2580
2581   return offset;
2582 }
2583
2584
2585
2586 static int
2587 dissect_p7_OrderedAttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2588         if(object_identifier_id) 
2589            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
2590
2591
2592   return offset;
2593 }
2594
2595
2596 static const ber_sequence_t OrderedAttributeItem_sequence[] = {
2597   { &hf_p7_ordered_attribute_value, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_OrderedAttributeValue },
2598   { &hf_p7_ordered_position , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_INTEGER_1_ub_attribute_values },
2599   { NULL, 0, 0, 0, NULL }
2600 };
2601
2602 static int
2603 dissect_p7_OrderedAttributeItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2604   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2605                                    OrderedAttributeItem_sequence, hf_index, ett_p7_OrderedAttributeItem);
2606
2607   return offset;
2608 }
2609
2610
2611 static const ber_sequence_t OrderedAttributeValues_sequence_of[1] = {
2612   { &hf_p7_ordered_attribute_values_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_OrderedAttributeItem },
2613 };
2614
2615 static int
2616 dissect_p7_OrderedAttributeValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2617   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2618                                       OrderedAttributeValues_sequence_of, hf_index, ett_p7_OrderedAttributeValues);
2619
2620   return offset;
2621 }
2622
2623
2624 static const ber_sequence_t OrderedAttribute_sequence[] = {
2625   { &hf_p7_attribute_type   , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeType },
2626   { &hf_p7_ordered_attribute_values, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_OrderedAttributeValues },
2627   { NULL, 0, 0, 0, NULL }
2628 };
2629
2630 static int
2631 dissect_p7_OrderedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2632   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2633                                    OrderedAttribute_sequence, hf_index, ett_p7_OrderedAttribute);
2634
2635   return offset;
2636 }
2637
2638
2639 static const value_string p7_T_modification_vals[] = {
2640   {   1, "add-attribute" },
2641   {   2, "remove-attribute" },
2642   {   3, "add-values" },
2643   {   4, "remove-values" },
2644   { 0, NULL }
2645 };
2646
2647 static const ber_choice_t T_modification_choice[] = {
2648   {   1, &hf_p7_add_attribute    , BER_CLASS_CON, 1, 0, dissect_p7_Attribute },
2649   {   2, &hf_p7_remove_attribute , BER_CLASS_CON, 2, 0, dissect_p7_AttributeType },
2650   {   3, &hf_p7_add_values       , BER_CLASS_CON, 3, 0, dissect_p7_OrderedAttribute },
2651   {   4, &hf_p7_remove_values    , BER_CLASS_CON, 4, 0, dissect_p7_OrderedAttribute },
2652   { 0, NULL, 0, 0, 0, NULL }
2653 };
2654
2655 static int
2656 dissect_p7_T_modification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2657   offset = dissect_ber_choice(actx, tree, tvb, offset,
2658                                  T_modification_choice, hf_index, ett_p7_T_modification,
2659                                  NULL);
2660
2661   return offset;
2662 }
2663
2664
2665 static const ber_sequence_t EntryModification_set[] = {
2666   { &hf_p7_strict           , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_BOOLEAN },
2667   { &hf_p7_modification     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p7_T_modification },
2668   { NULL, 0, 0, 0, NULL }
2669 };
2670
2671 static int
2672 dissect_p7_EntryModification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2673   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2674                               EntryModification_set, hf_index, ett_p7_EntryModification);
2675
2676   return offset;
2677 }
2678
2679
2680 static const ber_sequence_t SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification_sequence_of[1] = {
2681   { &hf_p7_modifications_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_EntryModification },
2682 };
2683
2684 static int
2685 dissect_p7_SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2686   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2687                                       SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification_sequence_of, hf_index, ett_p7_SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification);
2688
2689   return offset;
2690 }
2691
2692
2693 static const ber_sequence_t ModifyArgument_set[] = {
2694   { &hf_p7_entry_class      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_EntryClass },
2695   { &hf_p7_entries          , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p7_T_entries },
2696   { &hf_p7_modifications    , BER_CLASS_CON, 3, 0, dissect_p7_SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification },
2697   { &hf_p7_modify_extensions, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
2698   { NULL, 0, 0, 0, NULL }
2699 };
2700
2701 static int
2702 dissect_p7_ModifyArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2703   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2704                               ModifyArgument_set, hf_index, ett_p7_ModifyArgument);
2705
2706   return offset;
2707 }
2708
2709
2710 static const ber_sequence_t ModifyResult_set[] = {
2711   { &hf_p7_entries_modified , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber },
2712   { &hf_p7_modify_result_extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_MSExtensions },
2713   { NULL, 0, 0, 0, NULL }
2714 };
2715
2716 static int
2717 dissect_p7_ModifyResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2718   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2719                               ModifyResult_set, hf_index, ett_p7_ModifyResult);
2720
2721   return offset;
2722 }
2723
2724
2725 static const ber_sequence_t MSMessageSubmissionArgument_sequence[] = {
2726   { &hf_p7_envelope         , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_MessageSubmissionEnvelope },
2727   { &hf_p7_content          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_x411_Content },
2728   { &hf_p7_submission_options, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_MSSubmissionOptions },
2729   { NULL, 0, 0, 0, NULL }
2730 };
2731
2732 static int
2733 dissect_p7_MSMessageSubmissionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2734   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2735                                    MSMessageSubmissionArgument_sequence, hf_index, ett_p7_MSMessageSubmissionArgument);
2736
2737   return offset;
2738 }
2739
2740
2741 static const ber_sequence_t SET_OF_ExtensionField_set_of[1] = {
2742   { &hf_p7_extensions_item  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_ExtensionField },
2743 };
2744
2745 static int
2746 dissect_p7_SET_OF_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2747   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2748                                  SET_OF_ExtensionField_set_of, hf_index, ett_p7_SET_OF_ExtensionField);
2749
2750   return offset;
2751 }
2752
2753
2754 static const ber_sequence_t T_mts_result_set[] = {
2755   { &hf_p7_message_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_MessageSubmissionIdentifier },
2756   { &hf_p7_message_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_MessageSubmissionTime },
2757   { &hf_p7_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
2758   { &hf_p7_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_SET_OF_ExtensionField },
2759   { &hf_p7_ms_message_result, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_CommonSubmissionResults },
2760   { NULL, 0, 0, 0, NULL }
2761 };
2762
2763 static int
2764 dissect_p7_T_mts_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_) {
2765   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2766                               T_mts_result_set, hf_index, ett_p7_T_mts_result);
2767
2768   return offset;
2769 }
2770
2771
2772 static const value_string p7_MSMessageSubmissionResult_vals[] = {
2773   {   0, "mts-result" },
2774   {   1, "store-draft-result" },
2775   { 0, NULL }
2776 };
2777
2778 static const ber_choice_t MSMessageSubmissionResult_choice[] = {
2779   {   0, &hf_p7_mts_result       , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_T_mts_result },
2780   {   1, &hf_p7_store_draft_result, BER_CLASS_CON, 4, 0, dissect_p7_CommonSubmissionResults },
2781   { 0, NULL, 0, 0, 0, NULL }
2782 };
2783
2784 static int
2785 dissect_p7_MSMessageSubmissionResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2786   offset = dissect_ber_choice(actx, tree, tvb, offset,
2787                                  MSMessageSubmissionResult_choice, hf_index, ett_p7_MSMessageSubmissionResult,
2788                                  NULL);
2789
2790   return offset;
2791 }
2792
2793
2794 static const ber_sequence_t SEQUENCE_OF_PerRecipientProbeSubmissionFields_sequence_of[1] = {
2795   { &hf_p7_per_recipient_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x411_PerRecipientProbeSubmissionFields },
2796 };
2797
2798 static int
2799 dissect_p7_SEQUENCE_OF_PerRecipientProbeSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2800   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2801                                       SEQUENCE_OF_PerRecipientProbeSubmissionFields_sequence_of, hf_index, ett_p7_SEQUENCE_OF_PerRecipientProbeSubmissionFields);
2802
2803   return offset;
2804 }
2805
2806
2807 static const ber_sequence_t MSProbeSubmissionArgument_set[] = {
2808   { &hf_p7_originator_name  , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_x411_MTSOriginatorName },
2809   { &hf_p7_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_OriginalEncodedInformationTypes },
2810   { &hf_p7_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x411_ContentType },
2811   { &hf_p7_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
2812   { &hf_p7_content_length   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x411_ContentLength },
2813   { &hf_p7_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_PerMessageIndicators },
2814   { &hf_p7_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_SET_OF_ExtensionField },
2815   { &hf_p7_per_recipient_fields, BER_CLASS_CON, 3, 0, dissect_p7_SEQUENCE_OF_PerRecipientProbeSubmissionFields },
2816   { &hf_p7_submission_options, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_MSSubmissionOptions },
2817   { NULL, 0, 0, 0, NULL }
2818 };
2819
2820 static int
2821 dissect_p7_MSProbeSubmissionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2822   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2823                               MSProbeSubmissionArgument_set, hf_index, ett_p7_MSProbeSubmissionArgument);
2824
2825   return offset;
2826 }
2827
2828
2829 static const ber_sequence_t MSProbeSubmissionResult_set[] = {
2830   { &hf_p7_probe_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_x411_ProbeSubmissionIdentifier },
2831   { &hf_p7_probe_submission_time, BER_CLASS_CON, 0, 0, dissect_x411_ProbeSubmissionTime },
2832   { &hf_p7_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x411_ContentIdentifier },
2833   { &hf_p7_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_SET_OF_ExtensionField },
2834   { &hf_p7_ms_probe_result  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_CommonSubmissionResults },
2835   { NULL, 0, 0, 0, NULL }
2836 };
2837
2838 static int
2839 dissect_p7_MSProbeSubmissionResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2840   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2841                               MSProbeSubmissionResult_set, hf_index, ett_p7_MSProbeSubmissionResult);
2842
2843   return offset;
2844 }
2845
2846
2847 static const value_string p7_AttributeProblem_vals[] = {
2848   {   0, "invalid-attribute-value" },
2849   {   1, "unavailable-attribute-type" },
2850   {   2, "inappropriate-matching" },
2851   {   3, "attribute-type-not-subscribed" },
2852   {   4, "inappropriate-for-operation" },
2853   {   5, "inappropriate-modification" },
2854   {   6, "single-valued-attribute" },
2855   { 0, NULL }
2856 };
2857
2858
2859 static int
2860 dissect_p7_AttributeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2861   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2862                                                 NULL);
2863
2864   return offset;
2865 }
2866
2867
2868
2869 static int
2870 dissect_p7_T_attr_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_) {
2871         if(object_identifier_id) 
2872            call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
2873
2874
2875
2876   return offset;
2877 }
2878
2879
2880 static const ber_sequence_t AttributeProblemItem_set[] = {
2881   { &hf_p7_attribute_problem, BER_CLASS_CON, 0, 0, dissect_p7_AttributeProblem },
2882   { &hf_p7_type             , BER_CLASS_CON, 1, 0, dissect_p7_AttributeType },
2883   { &hf_p7_attr_value       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_T_attr_value },
2884   { NULL, 0, 0, 0, NULL }
2885 };
2886
2887 static int
2888 dissect_p7_AttributeProblemItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2889   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2890                               AttributeProblemItem_set, hf_index, ett_p7_AttributeProblemItem);
2891
2892   return offset;
2893 }
2894
2895
2896 static const ber_sequence_t AttributeProblems_set_of[1] = {
2897   { &hf_p7_attribute_problem_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_AttributeProblemItem },
2898 };
2899
2900 static int
2901 dissect_p7_AttributeProblems(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2902   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2903                                  AttributeProblems_set_of, hf_index, ett_p7_AttributeProblems);
2904
2905   return offset;
2906 }
2907
2908
2909 static const ber_sequence_t PAR_attribute_error_set[] = {
2910   { &hf_p7_attribute_problems, BER_CLASS_CON, 0, 0, dissect_p7_AttributeProblems },
2911   { NULL, 0, 0, 0, NULL }
2912 };
2913
2914 static int
2915 dissect_p7_PAR_attribute_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2916   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2917                               PAR_attribute_error_set, hf_index, ett_p7_PAR_attribute_error);
2918
2919   return offset;
2920 }
2921
2922
2923 static const value_string p7_AutoActionRequestProblem_vals[] = {
2924   {   0, "unavailable-auto-action-type" },
2925   {   1, "auto-action-type-not-subscribed" },
2926   {   2, "not-willing-to-perform" },
2927   { 0, NULL }
2928 };
2929
2930
2931 static int
2932 dissect_p7_AutoActionRequestProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2933   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2934                                                 NULL);
2935
2936   return offset;
2937 }
2938
2939
2940 static const ber_sequence_t AutoActionRequestProblemItem_set[] = {
2941   { &hf_p7_auto_action_request_problem, BER_CLASS_CON, 0, 0, dissect_p7_AutoActionRequestProblem },
2942   { &hf_p7_auto_action_type , BER_CLASS_CON, 1, 0, dissect_p7_AutoActionType },
2943   { NULL, 0, 0, 0, NULL }
2944 };
2945
2946 static int
2947 dissect_p7_AutoActionRequestProblemItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2948   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2949                               AutoActionRequestProblemItem_set, hf_index, ett_p7_AutoActionRequestProblemItem);
2950
2951   return offset;
2952 }
2953
2954
2955 static const ber_sequence_t AutoActionRequestProblems_set_of[1] = {
2956   { &hf_p7_auto_action_request_problem_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_AutoActionRequestProblemItem },
2957 };
2958
2959 static int
2960 dissect_p7_AutoActionRequestProblems(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2961   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
2962                                  AutoActionRequestProblems_set_of, hf_index, ett_p7_AutoActionRequestProblems);
2963
2964   return offset;
2965 }
2966
2967
2968 static const ber_sequence_t PAR_auto_action_request_error_set[] = {
2969   { &hf_p7_auto_action_request_problems, BER_CLASS_CON, 0, 0, dissect_p7_AutoActionRequestProblems },
2970   { NULL, 0, 0, 0, NULL }
2971 };
2972
2973 static int
2974 dissect_p7_PAR_auto_action_request_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2975   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
2976                               PAR_auto_action_request_error_set, hf_index, ett_p7_PAR_auto_action_request_error);
2977
2978   return offset;
2979 }
2980
2981
2982 static const value_string p7_DeleteProblem_vals[] = {
2983   {   0, "child-entry-specified" },
2984   {   1, "delete-restriction-problem" },
2985   {   2, "new-entry-specified" },
2986   {   3, "entry-class-restriction" },
2987   {   4, "stored-message-exists" },
2988   { 0, NULL }
2989 };
2990
2991
2992 static int
2993 dissect_p7_DeleteProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2994   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2995                                                 NULL);
2996
2997   return offset;
2998 }
2999
3000
3001 static const ber_sequence_t DeleteProblemItem_set[] = {
3002   { &hf_p7_delete_problem   , BER_CLASS_CON, 0, 0, dissect_p7_DeleteProblem },
3003   { &hf_p7_sequence_number  , BER_CLASS_CON, 1, 0, dissect_p7_SequenceNumber },
3004   { NULL, 0, 0, 0, NULL }
3005 };
3006
3007 static int
3008 dissect_p7_DeleteProblemItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3009   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3010                               DeleteProblemItem_set, hf_index, ett_p7_DeleteProblemItem);
3011
3012   return offset;
3013 }
3014
3015
3016 static const ber_sequence_t DeleteProblems_set_of[1] = {
3017   { &hf_p7_delete_problem_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_DeleteProblemItem },
3018 };
3019
3020 static int
3021 dissect_p7_DeleteProblems(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3022   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3023                                  DeleteProblems_set_of, hf_index, ett_p7_DeleteProblems);
3024
3025   return offset;
3026 }
3027
3028
3029 static const ber_sequence_t PAR_delete_error_set[] = {
3030   { &hf_p7_delete_problems  , BER_CLASS_CON, 0, 0, dissect_p7_DeleteProblems },
3031   { &hf_p7_entries_deleted  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_SET_SIZE_1_ub_messages_OF_SequenceNumber },
3032   { NULL, 0, 0, 0, NULL }
3033 };
3034
3035 static int
3036 dissect_p7_PAR_delete_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3037   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3038                               PAR_delete_error_set, hf_index, ett_p7_PAR_delete_error);
3039
3040   return offset;
3041 }
3042
3043
3044 static const value_string p7_FetchRestrictionProblem_vals[] = {
3045   {   1, "content-type-problem" },
3046   {   2, "eit-problem" },
3047   {   3, "maximum-length-problem" },
3048   { 0, NULL }
3049 };
3050
3051
3052 static int
3053 dissect_p7_FetchRestrictionProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3054   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3055                                                 NULL);
3056
3057   return offset;
3058 }
3059
3060
3061 static const value_string p7_T_restriction_vals[] = {
3062   {   0, "content-type" },
3063   {   1, "eit" },
3064   {   2, "attribute-length" },
3065   { 0, NULL }
3066 };
3067
3068 static const ber_choice_t T_restriction_choice[] = {
3069   {   0, &hf_p7_extended_content_type, BER_CLASS_CON, 0, 0, dissect_p7_OBJECT_IDENTIFIER },
3070   {   1, &hf_p7_eit              , BER_CLASS_CON, 1, 0, dissect_p7_MS_EITs },
3071   {   2, &hf_p7_attribute_length , BER_CLASS_CON, 2, 0, dissect_p7_INTEGER },
3072   { 0, NULL, 0, 0, 0, NULL }
3073 };
3074
3075 static int
3076 dissect_p7_T_restriction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3077   offset = dissect_ber_choice(actx, tree, tvb, offset,
3078                                  T_restriction_choice, hf_index, ett_p7_T_restriction,
3079                                  NULL);
3080
3081   return offset;
3082 }
3083
3084
3085 static const ber_sequence_t FetchRestrictionProblemItem_set[] = {
3086   { &hf_p7_fetch_restriction_problem, BER_CLASS_CON, 3, 0, dissect_p7_FetchRestrictionProblem },
3087   { &hf_p7_restriction      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p7_T_restriction },
3088   { NULL, 0, 0, 0, NULL }
3089 };
3090
3091 static int
3092 dissect_p7_FetchRestrictionProblemItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3093   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3094                               FetchRestrictionProblemItem_set, hf_index, ett_p7_FetchRestrictionProblemItem);
3095
3096   return offset;
3097 }
3098
3099
3100 static const ber_sequence_t FetchRestrictionProblems_set_of[1] = {
3101   { &hf_p7_fetch_restriction_problem_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_FetchRestrictionProblemItem },
3102 };
3103
3104 static int
3105 dissect_p7_FetchRestrictionProblems(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3106   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3107                                  FetchRestrictionProblems_set_of, hf_index, ett_p7_FetchRestrictionProblems);
3108
3109   return offset;
3110 }
3111
3112
3113 static const ber_sequence_t PAR_fetch_restriction_error_set[] = {
3114   { &hf_p7_fetch_restriction_problems, BER_CLASS_CON, 0, 0, dissect_p7_FetchRestrictionProblems },
3115   { NULL, 0, 0, 0, NULL }
3116 };
3117
3118 static int
3119 dissect_p7_PAR_fetch_restriction_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3120   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3121                               PAR_fetch_restriction_error_set, hf_index, ett_p7_PAR_fetch_restriction_error);
3122
3123   return offset;
3124 }
3125
3126
3127
3128 static int
3129 dissect_p7_PAR_invalid_parameters_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3130   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
3131
3132   return offset;
3133 }
3134
3135
3136 static const value_string p7_RangeProblem_vals[] = {
3137   {   0, "reversed" },
3138   { 0, NULL }
3139 };
3140
3141
3142 static int
3143 dissect_p7_RangeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3144   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3145                                                 NULL);
3146
3147   return offset;
3148 }
3149
3150
3151 static const ber_sequence_t PAR_range_error_set[] = {
3152   { &hf_p7_range_problem    , BER_CLASS_CON, 0, 0, dissect_p7_RangeProblem },
3153   { NULL, 0, 0, 0, NULL }
3154 };
3155
3156 static int
3157 dissect_p7_PAR_range_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3158   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3159                               PAR_range_error_set, hf_index, ett_p7_PAR_range_error);
3160
3161   return offset;
3162 }
3163
3164
3165 static const value_string p7_SequenceNumberProblem_vals[] = {
3166   {   0, "no-such-entry" },
3167   { 0, NULL }
3168 };
3169
3170
3171 static int
3172 dissect_p7_SequenceNumberProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3173   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3174                                                 NULL);
3175
3176   return offset;
3177 }
3178
3179
3180 static const ber_sequence_t SequenceNumberProblemItem_set[] = {
3181   { &hf_p7_sequence_number_problem, BER_CLASS_CON, 0, 0, dissect_p7_SequenceNumberProblem },
3182   { &hf_p7_sequence_number  , BER_CLASS_CON, 1, 0, dissect_p7_SequenceNumber },
3183   { NULL, 0, 0, 0, NULL }
3184 };
3185
3186 static int
3187 dissect_p7_SequenceNumberProblemItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3188   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3189                               SequenceNumberProblemItem_set, hf_index, ett_p7_SequenceNumberProblemItem);
3190
3191   return offset;
3192 }
3193
3194
3195 static const ber_sequence_t SequenceNumberProblems_set_of[1] = {
3196   { &hf_p7_sequence_number_problem_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p7_SequenceNumberProblemItem },
3197 };
3198
3199 static int
3200 dissect_p7_SequenceNumberProblems(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3201   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
3202                                  SequenceNumberProblems_set_of, hf_index, ett_p7_SequenceNumberProblems);
3203
3204   return offset;
3205 }
3206
3207
3208 static const ber_sequence_t PAR_sequence_number_error_set[] = {
3209   { &hf_p7_sequence_number_problems, BER_CLASS_CON, 1, 0, dissect_p7_SequenceNumberProblems },
3210   { NULL, 0, 0, 0, NULL }
3211 };
3212
3213 static int
3214 dissect_p7_PAR_sequence_number_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3215   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3216                               PAR_sequence_number_error_set, hf_index, ett_p7_PAR_sequence_number_error);
3217
3218   return offset;
3219 }
3220
3221
3222 static const value_string p7_ServiceProblem_vals[] = {
3223   {   0, "busy" },
3224   {   1, "unavailable" },
3225   {   2, "unwilling-to-perform" },
3226   { 0, NULL }
3227 };
3228
3229
3230 static int
3231 dissect_p7_ServiceProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3232   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3233                                                 NULL);
3234
3235   return offset;
3236 }
3237
3238
3239 static const ber_sequence_t ServiceErrorParameter_set[] = {
3240   { &hf_p7_service_problem  , BER_CLASS_CON, 0, 0, dissect_p7_ServiceProblem },
3241   { &hf_p7_supplementary_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_GeneralString_SIZE_1_ub_supplementary_info_length },
3242   { NULL, 0, 0, 0, NULL }
3243 };
3244
3245 static int
3246 dissect_p7_ServiceErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3247   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3248                               ServiceErrorParameter_set, hf_index, ett_p7_ServiceErrorParameter);
3249
3250   return offset;
3251 }
3252
3253
3254 static const value_string p7_MessageGroupProblem_vals[] = {
3255   {   0, "name-not-registered" },
3256   {   1, "name-already-registered" },
3257   {   2, "parent-not-registered" },
3258   {   3, "group-not-empty" },
3259   {   4, "name-in-use" },
3260   {   5, "child-group-registered" },
3261   {   6, "group-depth-exceeded" },
3262   { 0, NULL }
3263 };
3264
3265
3266 static int
3267 dissect_p7_MessageGroupProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3268   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3269                                                 NULL);
3270
3271   return offset;
3272 }
3273
3274
3275 static const ber_sequence_t MessageGroupErrorParameter_set[] = {
3276   { &hf_p7_message_group_problem, BER_CLASS_CON, 0, 0, dissect_p7_MessageGroupProblem },
3277   { &hf_p7_name             , BER_CLASS_CON, 1, 0, dissect_p7_MessageGroupName },
3278   { NULL, 0, 0, 0, NULL }
3279 };
3280
3281 static int
3282 dissect_p7_MessageGroupErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3283   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3284                               MessageGroupErrorParameter_set, hf_index, ett_p7_MessageGroupErrorParameter);
3285
3286   return offset;
3287 }
3288
3289
3290 static const value_string p7_MSExtensionErrorParameter_vals[] = {
3291   {   0, "ms-extension-problem" },
3292   {   1, "unknown-ms-extension" },
3293   { 0, NULL }
3294 };
3295
3296 static const ber_choice_t MSExtensionErrorParameter_choice[] = {
3297   {   0, &hf_p7_ms_extension_problem, BER_CLASS_CON, 0, 0, dissect_p7_MSExtensionItem },
3298   {   1, &hf_p7_unknown_ms_extension, BER_CLASS_CON, 1, 0, dissect_p7_OBJECT_IDENTIFIER },
3299   { 0, NULL, 0, 0, 0, NULL }
3300 };
3301
3302 static int
3303 dissect_p7_MSExtensionErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3304   offset = dissect_ber_choice(actx, tree, tvb, offset,
3305                                  MSExtensionErrorParameter_choice, hf_index, ett_p7_MSExtensionErrorParameter,
3306                                  NULL);
3307
3308   return offset;
3309 }
3310
3311
3312 static const value_string p7_RegistrationProblem_vals[] = {
3313   {   0, "registration-not-supported" },
3314   {   1, "registration-improperly-specified" },
3315   {   2, "registration-limit-exceeded" },
3316   { 0, NULL }
3317 };
3318
3319
3320 static int
3321 dissect_p7_RegistrationProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3322   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3323                                   NULL);
3324
3325   return offset;
3326 }
3327
3328
3329 static const ber_sequence_t PAR_register_ms_error_set[] = {
3330   { &hf_p7_register_ms_problem, BER_CLASS_CON, 0, 0, dissect_p7_RegistrationProblem },
3331   { &hf_p7_registration_type, BER_CLASS_CON, 1, 0, dissect_p7_RegistrationTypes },
3332   { NULL, 0, 0, 0, NULL }
3333 };
3334
3335 static int
3336 dissect_p7_PAR_register_ms_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3337   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3338                               PAR_register_ms_error_set, hf_index, ett_p7_PAR_register_ms_error);
3339
3340   return offset;
3341 }
3342
3343
3344 static const value_string p7_ModifyProblem_vals[] = {
3345   {   0, "attribute-not-present" },
3346   {   1, "value-not-present" },
3347   {   2, "attribute-or-value-already-exists" },
3348   {   3, "invalid-position" },
3349   {   4, "modify-restriction-problem" },
3350   { 0, NULL }
3351 };
3352
3353
3354 static int
3355 dissect_p7_ModifyProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3356   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3357                                                 NULL);
3358
3359   return offset;
3360 }
3361
3362
3363 static const ber_sequence_t ModifyErrorParameter_set[] = {
3364   { &hf_p7_entries_modified , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber },
3365   { &hf_p7_failing_entry    , BER_CLASS_CON, 1, 0, dissect_p7_SequenceNumber },
3366   { &hf_p7_modification_number, BER_CLASS_CON, 2, 0, dissect_p7_INTEGER },
3367   { &hf_p7_modify_problem   , BER_CLASS_CON, 3, 0, dissect_p7_ModifyProblem },
3368   { NULL, 0, 0, 0, NULL }
3369 };
3370
3371 static int
3372 dissect_p7_ModifyErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3373   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3374                               ModifyErrorParameter_set, hf_index, ett_p7_ModifyErrorParameter);
3375
3376   return offset;
3377 }
3378
3379
3380 static const asn_namedbit T_entry_class_problem_bits[] = {
3381   {  0, &hf_p7_T_entry_class_problem_unsupported_entry_class, -1, -1, "unsupported-entry-class", NULL },
3382   {  1, &hf_p7_T_entry_class_problem_entry_class_not_subscribed, -1, -1, "entry-class-not-subscribed", NULL },
3383   {  2, &hf_p7_T_entry_class_problem_inappropriate_entry_class, -1, -1, "inappropriate-entry-class", NULL },
3384   { 0, NULL, 0, 0, NULL, NULL }
3385 };
3386
3387 static int
3388 dissect_p7_T_entry_class_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3389   offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3390                                     T_entry_class_problem_bits, hf_index, ett_p7_T_entry_class_problem,
3391                                     NULL);
3392
3393   return offset;
3394 }
3395
3396
3397 static const ber_sequence_t EntryClassErrorParameter_set[] = {
3398   { &hf_p7_entry_class      , BER_CLASS_CON, 0, 0, dissect_p7_EntryClass },
3399   { &hf_p7_entry_class_problem, BER_CLASS_CON, 1, 0, dissect_p7_T_entry_class_problem },
3400   { NULL, 0, 0, 0, NULL }
3401 };
3402
3403 static int
3404 dissect_p7_EntryClassErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3405   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3406                               EntryClassErrorParameter_set, hf_index, ett_p7_EntryClassErrorParameter);
3407
3408   return offset;
3409 }
3410
3411
3412
3413 static int
3414 dissect_p7_INTEGER_1_ub_recipients(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3415   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3416                                                 NULL);
3417
3418   return offset;
3419 }
3420
3421
3422 static const ber_sequence_t PerRecipientReport_sequence[] = {
3423   { &hf_p7_report_entry     , BER_CLASS_CON, 0, 0, dissect_p7_SequenceNumber },
3424   { &hf_p7_position         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_INTEGER_1_ub_recipients },
3425   { NULL, 0, 0, 0, NULL }
3426 };
3427
3428 static int
3429 dissect_p7_PerRecipientReport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3430   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3431                                    PerRecipientReport_sequence, hf_index, ett_p7_PerRecipientReport);
3432
3433   return offset;
3434 }
3435
3436
3437 static const ber_sequence_t SEQUENCE_OF_PerRecipientReport_sequence_of[1] = {
3438   { &hf_p7_location_item    , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p7_PerRecipientReport },
3439 };
3440
3441 static int
3442 dissect_p7_SEQUENCE_OF_PerRecipientReport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3443   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3444                                       SEQUENCE_OF_PerRecipientReport_sequence_of, hf_index, ett_p7_SEQUENCE_OF_PerRecipientReport);
3445
3446   return offset;
3447 }
3448
3449
3450 static const value_string p7_ReportLocation_vals[] = {
3451   {   0, "no-correlated-reports" },
3452   {   1, "location" },
3453   { 0, NULL }
3454 };
3455
3456 static const ber_choice_t ReportLocation_choice[] = {
3457   {   0, &hf_p7_no_correlated_reports, BER_CLASS_CON, 0, 0, dissect_p7_NULL },
3458   {   1, &hf_p7_location         , BER_CLASS_CON, 1, 0, dissect_p7_SEQUENCE_OF_PerRecipientReport },
3459   { 0, NULL, 0, 0, 0, NULL }
3460 };
3461
3462 static int
3463 dissect_p7_ReportLocation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3464   offset = dissect_ber_choice(actx, tree, tvb, offset,
3465                                  ReportLocation_choice, hf_index, ett_p7_ReportLocation,
3466                                  NULL);
3467
3468   return offset;
3469 }
3470
3471
3472 static const value_string p7_ReportSummary_vals[] = {
3473   {   0, "no-report-requested" },
3474   {   1, "no-report-received" },
3475   {   2, "report-outstanding" },
3476   {   3, "delivery-cancelled" },
3477   {   4, "delivery-report-from-another-recipient" },
3478   {   5, "non-delivery-report-from-another-recipient" },
3479   {   6, "delivery-report-from-intended-recipient" },
3480   {   7, "non-delivery-report-from-intended-recipient" },
3481   { 0, NULL }
3482 };
3483
3484
3485 static int
3486 dissect_p7_ReportSummary(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3487   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3488                                   NULL);
3489
3490   return offset;
3491 }
3492
3493
3494
3495 static int
3496 dissect_p7_DeferredDeliveryCancellationTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3497   offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
3498
3499   return offset;
3500 }
3501
3502
3503
3504 static int
3505 dissect_p7_DeletionTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3506   offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
3507
3508   return offset;
3509 }
3510
3511
3512 static const value_string p7_SubmissionError_vals[] = {
3513   {   1, "submission-control-violated" },
3514   {   2, "originator-invalid" },
3515   {   3, "recipient-improperly-specified" },
3516   {   4, "element-of-service-not-subscribed" },
3517   {  11, "inconsistent-request" },
3518   {  12, "security-error" },
3519   {  13, "unsupported-critical-function" },
3520   {  15, "remote-bind-error" },
3521   {  27, "service-error" },
3522   {  30, "message-group-error" },
3523   {  31, "ms-extension-error" },
3524   {  34, "entry-class-error" },
3525   { 0, NULL }
3526 };
3527
3528 static const ber_choice_t SubmissionError_choice[] = {
3529   {   1, &hf_p7_submission_control_violated, BER_CLASS_CON, 1, 0, dissect_p7_NULL },
3530   {   2, &hf_p7_originator_invalid, BER_CLASS_CON, 2, 0, dissect_p7_NULL },
3531   {   3, &hf_p7_recipient_improperly_specified, BER_CLASS_CON, 3, 0, dissect_x411_ImproperlySpecifiedRecipients },
3532   {   4, &hf_p7_element_of_service_not_subscribed, BER_CLASS_CON, 4, 0, dissect_p7_NULL },
3533   {  11, &hf_p7_inconsistent_request, BER_CLASS_CON, 11, 0, dissect_p7_NULL },
3534   {  12, &hf_p7_security_error   , BER_CLASS_CON, 12, 0, dissect_x411_SecurityProblem },
3535   {  13, &hf_p7_unsupported_critical_function, BER_CLASS_CON, 13, 0, dissect_p7_NULL },
3536   {  15, &hf_p7_remote_bind_error, BER_CLASS_CON, 15, 0, dissect_p7_NULL },
3537   {  27, &hf_p7_service_error    , BER_CLASS_CON, 27, 0, dissect_p7_ServiceErrorParameter },
3538   {  30, &hf_p7_message_group_error, BER_CLASS_CON, 30, 0, dissect_p7_MessageGroupErrorParameter },
3539   {  31, &hf_p7_ms_extension_error, BER_CLASS_CON, 31, 0, dissect_p7_MSExtensionErrorParameter },
3540   {  34, &hf_p7_entry_class_error, BER_CLASS_CON, 34, 0, dissect_p7_EntryClassErrorParameter },
3541   { 0, NULL, 0, 0, 0, NULL }
3542 };
3543
3544 static int
3545 dissect_p7_SubmissionError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3546   offset = dissect_ber_choice(actx, tree, tvb, offset,
3547                                  SubmissionError_choice, hf_index, ett_p7_SubmissionError,
3548                                  NULL);
3549
3550   return offset;
3551 }
3552
3553
3554 const value_string p7_SignatureStatus_vals[] = {
3555   {   0, "signature-absent" },
3556   {   1, "verification-in-progress" },
3557   {   2, "verification-succeeded" },
3558   {   3, "verification-not-possible" },
3559   {   4, "content-converted" },
3560   {   5, "signature-encrypted" },
3561   {   6, "algorithm-not-supported" },
3562   {   7, "certificate-not-obtainable" },
3563   {   8, "verification-failed" },
3564   { 0, NULL }
3565 };
3566
3567
3568 int
3569 dissect_p7_SignatureStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3570   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3571                                                 NULL);
3572
3573   return offset;
3574 }
3575
3576
3577 static const ber_sequence_t SignatureVerificationStatus_set[] = {
3578   { &hf_p7_content_integrity_check, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_p7_SignatureStatus },
3579   { &hf_p7_message_origin_authentication_check, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p7_SignatureStatus },
3580   { &hf_p7_message_token    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_SignatureStatus },
3581   { &hf_p7_report_origin_authentication_check, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_p7_SignatureStatus },
3582   { &hf_p7_proof_of_delivery, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_p7_SignatureStatus },
3583   { &hf_p7_proof_of_submission, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_p7_SignatureStatus },
3584   { NULL, 0, 0, 0, NULL }
3585 };
3586
3587 static int
3588 dissect_p7_SignatureVerificationStatus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3589   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3590                               SignatureVerificationStatus_set, hf_index, ett_p7_SignatureVerificationStatus);
3591
3592   return offset;
3593 }
3594
3595
3596
3597 static int
3598 dissect_p7_StoragePeriod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3599   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3600                                                 NULL);
3601
3602   return offset;
3603 }
3604
3605
3606
3607 static int
3608 dissect_p7_StorageTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3609   offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
3610
3611   return offset;
3612 }
3613
3614
3615
3616 static int
3617 dissect_p7_RTTPapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3618   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3619                                                 NULL);
3620
3621   return offset;
3622 }
3623
3624
3625
3626 static int
3627 dissect_p7_RTTRapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3628   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3629                                        NULL);
3630
3631   return offset;
3632 }
3633
3634
3635 static const value_string p7_AbortReason_vals[] = {
3636   {   0, "localSystemProblem" },
3637   {   1, "invalidParameter" },
3638   {   2, "unrecognizedActivity" },
3639   {   3, "temporaryProblem" },
3640   {   4, "protocolError" },
3641   {   5, "permanentProblem" },
3642   {   6, "userError" },
3643   {   7, "transferCompleted" },
3644   { 0, NULL }
3645 };
3646
3647
3648 static int
3649 dissect_p7_AbortReason(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3650   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3651                                                 NULL);
3652
3653   return offset;
3654 }
3655
3656
3657
3658 static int
3659 dissect_p7_T_userdataAB(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3660         offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
3661
3662
3663   return offset;
3664 }
3665
3666
3667 static const ber_sequence_t RTABapdu_set[] = {
3668   { &hf_p7_abortReason      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p7_AbortReason },
3669   { &hf_p7_reflectedParameter, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p7_BIT_STRING },
3670   { &hf_p7_userdataAB       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_p7_T_userdataAB },
3671   { NULL, 0, 0, 0, NULL }
3672 };
3673
3674 static int
3675 dissect_p7_RTABapdu(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3676   offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
3677                               RTABapdu_set, hf_index, ett_p7_RTABapdu);
3678
3679   return offset;
3680 }
3681
3682
3683 static const value_string p7_RTSE_apdus_vals[] = {
3684   {   0, "rtorq-apdu" },
3685   {   1, "rtoac-apdu" },
3686   {   2, "rtorj-apdu" },
3687   {   3, "rttp-apdu" },
3688   {   4, "rttr-apdu" },
3689   {   5, "rtab-apdu" },
3690   { 0, NULL }
3691 };
3692
3693 static const ber_choice_t RTSE_apdus_choice[] = {
3694   {   0, &hf_p7_rtorq_apdu       , BER_CLASS_CON, 16, BER_FLAGS_IMPLTAG, dissect_rtse_RTORQapdu },
3695   {   1, &hf_p7_rtoac_apdu       , BER_CLASS_CON, 17, BER_FLAGS_IMPLTAG, dissect_rtse_RTOACapdu },
3696   {   2, &hf_p7_rtorj_apdu       , BER_CLASS_CON, 18, BER_FLAGS_IMPLTAG, dissect_rtse_RTORJapdu },
3697   {   3, &hf_p7_rttp_apdu        , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_p7_RTTPapdu },
3698   {   4, &hf_p7_rttr_apdu        , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p7_RTTRapdu },
3699   {   5, &hf_p7_rtab_apdu        , BER_CLASS_CON, 22, BER_FLAGS_IMPLTAG, dissect_p7_RTABapdu },
3700   { 0, NULL, 0, 0, 0, NULL }
3701 };
3702
3703 static int
3704 dissect_p7_RTSE_apdus(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3705   offset = dissect_ber_choice(actx, tree, tvb, offset,
3706                                  RTSE_apdus_choice, hf_index, ett_p7_RTSE_apdus,
3707                                  NULL);
3708
3709   return offset;
3710 }
3711
3712 /*--- PDUs ---*/
3713
3714 static void dissect_AutoActionType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3715   asn1_ctx_t asn1_ctx;
3716   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3717   dissect_p7_AutoActionType(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_AutoActionType_PDU);
3718 }
3719 static void dissect_AutoActionError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3720   asn1_ctx_t asn1_ctx;
3721   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3722   dissect_p7_AutoActionError(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_AutoActionError_PDU);
3723 }
3724 static void dissect_EntryType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3725   asn1_ctx_t asn1_ctx;
3726   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3727   dissect_p7_EntryType(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_EntryType_PDU);
3728 }
3729 static void dissect_SequenceNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3730   asn1_ctx_t asn1_ctx;
3731   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3732   dissect_p7_SequenceNumber(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_SequenceNumber_PDU);
3733 }
3734 static void dissect_RetrievalStatus_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3735   asn1_ctx_t asn1_ctx;
3736   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3737   dissect_p7_RetrievalStatus(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_RetrievalStatus_PDU);
3738 }
3739 static void dissect_MessageGroupName_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3740   asn1_ctx_t asn1_ctx;
3741   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3742   dissect_p7_MessageGroupName(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_MessageGroupName_PDU);
3743 }
3744 static int dissect_MSBindArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3745   int offset = 0;
3746   asn1_ctx_t asn1_ctx;
3747   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3748   offset = dissect_p7_MSBindArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_MSBindArgument_PDU);
3749   return offset;
3750 }
3751 static int dissect_MSBindResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3752   int offset = 0;
3753   asn1_ctx_t asn1_ctx;
3754   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3755   offset = dissect_p7_MSBindResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_MSBindResult_PDU);
3756   return offset;
3757 }
3758 static void dissect_MS_EIT_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3759   asn1_ctx_t asn1_ctx;
3760   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3761   dissect_p7_MS_EIT(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_MS_EIT_PDU);
3762 }
3763 static void dissect_ChangeCredentialsAlgorithms_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3764   asn1_ctx_t asn1_ctx;
3765   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3766   dissect_p7_ChangeCredentialsAlgorithms(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_ChangeCredentialsAlgorithms_PDU);
3767 }
3768 static int dissect_PAR_ms_bind_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3769   int offset = 0;
3770   asn1_ctx_t asn1_ctx;
3771   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3772   offset = dissect_p7_PAR_ms_bind_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_PAR_ms_bind_error_PDU);
3773   return offset;
3774 }
3775 static void dissect_CreationTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3776   asn1_ctx_t asn1_ctx;
3777   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3778   dissect_p7_CreationTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_CreationTime_PDU);
3779 }
3780 static void dissect_OriginatorToken_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3781   asn1_ctx_t asn1_ctx;
3782   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3783   dissect_p7_OriginatorToken(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_OriginatorToken_PDU);
3784 }
3785 static int dissect_SummarizeArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3786   int offset = 0;
3787   asn1_ctx_t asn1_ctx;
3788   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3789   offset = dissect_p7_SummarizeArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_SummarizeArgument_PDU);
3790   return offset;
3791 }
3792 static int dissect_SummarizeResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3793   int offset = 0;
3794   asn1_ctx_t asn1_ctx;
3795   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3796   offset = dissect_p7_SummarizeResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_SummarizeResult_PDU);
3797   return offset;
3798 }
3799 static int dissect_ListArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3800   int offset = 0;
3801   asn1_ctx_t asn1_ctx;
3802   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3803   offset = dissect_p7_ListArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_ListArgument_PDU);
3804   return offset;
3805 }
3806 static int dissect_ListResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3807   int offset = 0;
3808   asn1_ctx_t asn1_ctx;
3809   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3810   offset = dissect_p7_ListResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_ListResult_PDU);
3811   return offset;
3812 }
3813 static int dissect_FetchArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3814   int offset = 0;
3815   asn1_ctx_t asn1_ctx;
3816   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3817   offset = dissect_p7_FetchArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_FetchArgument_PDU);
3818   return offset;
3819 }
3820 static int dissect_FetchResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3821   int offset = 0;
3822   asn1_ctx_t asn1_ctx;
3823   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3824   offset = dissect_p7_FetchResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_FetchResult_PDU);
3825   return offset;
3826 }
3827 static int dissect_DeleteArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3828   int offset = 0;
3829   asn1_ctx_t asn1_ctx;
3830   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3831   offset = dissect_p7_DeleteArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_DeleteArgument_PDU);
3832   return offset;
3833 }
3834 static int dissect_DeleteResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3835   int offset = 0;
3836   asn1_ctx_t asn1_ctx;
3837   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3838   offset = dissect_p7_DeleteResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_DeleteResult_PDU);
3839   return offset;
3840 }
3841 static int dissect_Register_MSArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3842   int offset = 0;
3843   asn1_ctx_t asn1_ctx;
3844   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3845   offset = dissect_p7_Register_MSArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_Register_MSArgument_PDU);
3846   return offset;
3847 }
3848 static int dissect_Register_MSResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3849   int offset = 0;
3850   asn1_ctx_t asn1_ctx;
3851   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3852   offset = dissect_p7_Register_MSResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_Register_MSResult_PDU);
3853   return offset;
3854 }
3855 static void dissect_ProtectedChangeCredentials_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3856   asn1_ctx_t asn1_ctx;
3857   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3858   dissect_p7_ProtectedChangeCredentials(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_ProtectedChangeCredentials_PDU);
3859 }
3860 static int dissect_AlertArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3861   int offset = 0;
3862   asn1_ctx_t asn1_ctx;
3863   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3864   offset = dissect_p7_AlertArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_AlertArgument_PDU);
3865   return offset;
3866 }
3867 static int dissect_AlertResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3868   int offset = 0;
3869   asn1_ctx_t asn1_ctx;
3870   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3871   offset = dissect_p7_AlertResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_AlertResult_PDU);
3872   return offset;
3873 }
3874 static int dissect_ModifyArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3875   int offset = 0;
3876   asn1_ctx_t asn1_ctx;
3877   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3878   offset = dissect_p7_ModifyArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_ModifyArgument_PDU);
3879   return offset;
3880 }
3881 static int dissect_ModifyResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3882   int offset = 0;
3883   asn1_ctx_t asn1_ctx;
3884   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3885   offset = dissect_p7_ModifyResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_ModifyResult_PDU);
3886   return offset;
3887 }
3888 static int dissect_MSMessageSubmissionArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3889   int offset = 0;
3890   asn1_ctx_t asn1_ctx;
3891   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3892   offset = dissect_p7_MSMessageSubmissionArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_MSMessageSubmissionArgument_PDU);
3893   return offset;
3894 }
3895 static int dissect_MSMessageSubmissionResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3896   int offset = 0;
3897   asn1_ctx_t asn1_ctx;
3898   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3899   offset = dissect_p7_MSMessageSubmissionResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_MSMessageSubmissionResult_PDU);
3900   return offset;
3901 }
3902 static int dissect_MSProbeSubmissionArgument_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3903   int offset = 0;
3904   asn1_ctx_t asn1_ctx;
3905   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3906   offset = dissect_p7_MSProbeSubmissionArgument(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_MSProbeSubmissionArgument_PDU);
3907   return offset;
3908 }
3909 static int dissect_MSProbeSubmissionResult_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3910   int offset = 0;
3911   asn1_ctx_t asn1_ctx;
3912   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3913   offset = dissect_p7_MSProbeSubmissionResult(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_MSProbeSubmissionResult_PDU);
3914   return offset;
3915 }
3916 static int dissect_PAR_attribute_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3917   int offset = 0;
3918   asn1_ctx_t asn1_ctx;
3919   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3920   offset = dissect_p7_PAR_attribute_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_PAR_attribute_error_PDU);
3921   return offset;
3922 }
3923 static int dissect_PAR_auto_action_request_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3924   int offset = 0;
3925   asn1_ctx_t asn1_ctx;
3926   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3927   offset = dissect_p7_PAR_auto_action_request_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_PAR_auto_action_request_error_PDU);
3928   return offset;
3929 }
3930 static int dissect_PAR_delete_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3931   int offset = 0;
3932   asn1_ctx_t asn1_ctx;
3933   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3934   offset = dissect_p7_PAR_delete_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_PAR_delete_error_PDU);
3935   return offset;
3936 }
3937 static int dissect_PAR_fetch_restriction_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3938   int offset = 0;
3939   asn1_ctx_t asn1_ctx;
3940   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3941   offset = dissect_p7_PAR_fetch_restriction_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_PAR_fetch_restriction_error_PDU);
3942   return offset;
3943 }
3944 static int dissect_PAR_invalid_parameters_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3945   int offset = 0;
3946   asn1_ctx_t asn1_ctx;
3947   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3948   offset = dissect_p7_PAR_invalid_parameters_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_PAR_invalid_parameters_error_PDU);
3949   return offset;
3950 }
3951 static int dissect_PAR_range_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3952   int offset = 0;
3953   asn1_ctx_t asn1_ctx;
3954   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3955   offset = dissect_p7_PAR_range_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_PAR_range_error_PDU);
3956   return offset;
3957 }
3958 static int dissect_PAR_sequence_number_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3959   int offset = 0;
3960   asn1_ctx_t asn1_ctx;
3961   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3962   offset = dissect_p7_PAR_sequence_number_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_PAR_sequence_number_error_PDU);
3963   return offset;
3964 }
3965 static int dissect_ServiceErrorParameter_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3966   int offset = 0;
3967   asn1_ctx_t asn1_ctx;
3968   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3969   offset = dissect_p7_ServiceErrorParameter(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_ServiceErrorParameter_PDU);
3970   return offset;
3971 }
3972 static int dissect_MessageGroupErrorParameter_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3973   int offset = 0;
3974   asn1_ctx_t asn1_ctx;
3975   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3976   offset = dissect_p7_MessageGroupErrorParameter(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_MessageGroupErrorParameter_PDU);
3977   return offset;
3978 }
3979 static int dissect_MSExtensionErrorParameter_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3980   int offset = 0;
3981   asn1_ctx_t asn1_ctx;
3982   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3983   offset = dissect_p7_MSExtensionErrorParameter(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_MSExtensionErrorParameter_PDU);
3984   return offset;
3985 }
3986 static int dissect_PAR_register_ms_error_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3987   int offset = 0;
3988   asn1_ctx_t asn1_ctx;
3989   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3990   offset = dissect_p7_PAR_register_ms_error(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_PAR_register_ms_error_PDU);
3991   return offset;
3992 }
3993 static int dissect_ModifyErrorParameter_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
3994   int offset = 0;
3995   asn1_ctx_t asn1_ctx;
3996   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
3997   offset = dissect_p7_ModifyErrorParameter(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_ModifyErrorParameter_PDU);
3998   return offset;
3999 }
4000 static int dissect_EntryClassErrorParameter_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4001   int offset = 0;
4002   asn1_ctx_t asn1_ctx;
4003   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4004   offset = dissect_p7_EntryClassErrorParameter(FALSE, tvb, offset, &asn1_ctx, tree, hf_p7_EntryClassErrorParameter_PDU);
4005   return offset;
4006 }
4007 static void dissect_ReportLocation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4008   asn1_ctx_t asn1_ctx;
4009   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4010   dissect_p7_ReportLocation(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_ReportLocation_PDU);
4011 }
4012 static void dissect_PerRecipientReport_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4013   asn1_ctx_t asn1_ctx;
4014   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4015   dissect_p7_PerRecipientReport(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_PerRecipientReport_PDU);
4016 }
4017 static void dissect_ReportSummary_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4018   asn1_ctx_t asn1_ctx;
4019   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4020   dissect_p7_ReportSummary(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_ReportSummary_PDU);
4021 }
4022 static void dissect_DeferredDeliveryCancellationTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4023   asn1_ctx_t asn1_ctx;
4024   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4025   dissect_p7_DeferredDeliveryCancellationTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_DeferredDeliveryCancellationTime_PDU);
4026 }
4027 static void dissect_DeletionTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4028   asn1_ctx_t asn1_ctx;
4029   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4030   dissect_p7_DeletionTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_DeletionTime_PDU);
4031 }
4032 static void dissect_SubmissionError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4033   asn1_ctx_t asn1_ctx;
4034   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4035   dissect_p7_SubmissionError(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_SubmissionError_PDU);
4036 }
4037 static void dissect_SignatureVerificationStatus_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4038   asn1_ctx_t asn1_ctx;
4039   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4040   dissect_p7_SignatureVerificationStatus(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_SignatureVerificationStatus_PDU);
4041 }
4042 static void dissect_StoragePeriod_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4043   asn1_ctx_t asn1_ctx;
4044   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4045   dissect_p7_StoragePeriod(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_StoragePeriod_PDU);
4046 }
4047 static void dissect_StorageTime_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4048   asn1_ctx_t asn1_ctx;
4049   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4050   dissect_p7_StorageTime(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_StorageTime_PDU);
4051 }
4052 static void dissect_RTSE_apdus_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
4053   asn1_ctx_t asn1_ctx;
4054   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
4055   dissect_p7_RTSE_apdus(FALSE, tvb, 0, &asn1_ctx, tree, hf_p7_RTSE_apdus_PDU);
4056 }
4057
4058
4059 /*--- End of included file: packet-p7-fn.c ---*/
4060 #line 74 "packet-p7-template.c"
4061
4062
4063 /*--- Included file: packet-p7-table11.c ---*/
4064 #line 1 "packet-p7-table11.c"
4065
4066 static const ros_opr_t p7_opr_tab[] = {
4067   /* ms-bind */ 
4068   { op_ros_bind              ,  dissect_MSBindArgument_PDU,     dissect_MSBindResult_PDU }, 
4069   /* summarize */ 
4070   { op_summarize             ,  dissect_SummarizeArgument_PDU,  dissect_SummarizeResult_PDU }, 
4071   /* list */ 
4072   { op_list                  ,  dissect_ListArgument_PDU,       dissect_ListResult_PDU }, 
4073   /* fetch */ 
4074   { op_fetch                 ,  dissect_FetchArgument_PDU,      dissect_FetchResult_PDU }, 
4075   /* delete */ 
4076   { op_delete                ,  dissect_DeleteArgument_PDU,     dissect_DeleteResult_PDU }, 
4077   /* register-MS */ 
4078   { op_register_ms           ,  dissect_Register_MSArgument_PDU,        dissect_Register_MSResult_PDU }, 
4079   /* alert */ 
4080   { op_alert                 ,  dissect_AlertArgument_PDU,      dissect_AlertResult_PDU }, 
4081   /* modify */ 
4082   { op_modify                ,  dissect_ModifyArgument_PDU,     dissect_ModifyResult_PDU }, 
4083   /* ms-message-submission */ 
4084   { op_ms_message_submission ,  dissect_MSMessageSubmissionArgument_PDU,        dissect_MSMessageSubmissionResult_PDU }, 
4085   /* ms-probe-submission */ 
4086   { op_ms_probe_submission   ,  dissect_MSProbeSubmissionArgument_PDU,  dissect_MSProbeSubmissionResult_PDU }, 
4087   { 0,                          (new_dissector_t)(-1),  (new_dissector_t)(-1) },
4088 };
4089
4090
4091 /*--- End of included file: packet-p7-table11.c ---*/
4092 #line 76 "packet-p7-template.c"
4093
4094 /*--- Included file: packet-p7-table21.c ---*/
4095 #line 1 "packet-p7-table21.c"
4096
4097 static const ros_err_t p7_err_tab[] = {
4098   /* ms-bind-error*/ 
4099   { err_ros_bind,       dissect_PAR_ms_bind_error_PDU },
4100   /* attribute-error*/ 
4101   { err_attribute_error,        dissect_PAR_attribute_error_PDU },
4102   /* auto-action-request-error*/ 
4103   { err_auto_action_request_error,      dissect_PAR_auto_action_request_error_PDU },
4104   /* delete-error*/ 
4105   { err_delete_error,   dissect_PAR_delete_error_PDU },
4106   /* fetch-restriction-error*/ 
4107   { err_fetch_restriction_error,        dissect_PAR_fetch_restriction_error_PDU },
4108   /* invalid-parameters-error*/ 
4109   { err_invalid_parameters_error,       dissect_PAR_invalid_parameters_error_PDU },
4110   /* range-error*/ 
4111   { err_range_error,    dissect_PAR_range_error_PDU },
4112   /* sequence-number-error*/ 
4113   { err_sequence_number_error,  dissect_PAR_sequence_number_error_PDU },
4114   /* service-error*/ 
4115   { err_service_error,  dissect_ServiceErrorParameter_PDU },
4116   /* message-group-error*/ 
4117   { err_message_group_error,    dissect_MessageGroupErrorParameter_PDU },
4118   /* ms-extension-error*/ 
4119   { err_ms_extension_error,     dissect_MSExtensionErrorParameter_PDU },
4120   /* register-ms-error*/ 
4121   { err_register_ms_error,      dissect_PAR_register_ms_error_PDU },
4122   /* modify-error*/ 
4123   { err_modify_error,   dissect_ModifyErrorParameter_PDU },
4124   /* entry-class-error*/ 
4125   { err_entry_class_error,      dissect_EntryClassErrorParameter_PDU },
4126   { 0,  (new_dissector_t)(-1) },
4127 };
4128
4129
4130 /*--- End of included file: packet-p7-table21.c ---*/
4131 #line 77 "packet-p7-template.c"
4132
4133 static const ros_info_t p7_ros_info = {
4134   "P7",
4135   &proto_p7,
4136   &ett_p7,
4137   p7_opr_code_string_vals,
4138   p7_opr_tab,
4139   p7_err_code_string_vals,
4140   p7_err_tab
4141 };
4142
4143
4144 /*--- proto_register_p7 -------------------------------------------*/
4145 void proto_register_p7(void) {
4146
4147   /* List of fields */
4148   static hf_register_info hf[] =
4149   {
4150
4151 /*--- Included file: packet-p7-hfarr.c ---*/
4152 #line 1 "packet-p7-hfarr.c"
4153     { &hf_p7_AutoActionType_PDU,
4154       { "AutoActionType", "p7.AutoActionType",
4155         FT_OID, BASE_NONE, NULL, 0,
4156         "p7.AutoActionType", HFILL }},
4157     { &hf_p7_AutoActionError_PDU,
4158       { "AutoActionError", "p7.AutoActionError",
4159         FT_NONE, BASE_NONE, NULL, 0,
4160         "p7.AutoActionError", HFILL }},
4161     { &hf_p7_EntryType_PDU,
4162       { "EntryType", "p7.EntryType",
4163         FT_INT32, BASE_DEC, VALS(p7_EntryType_vals), 0,
4164         "p7.EntryType", HFILL }},
4165     { &hf_p7_SequenceNumber_PDU,
4166       { "SequenceNumber", "p7.SequenceNumber",
4167         FT_UINT32, BASE_DEC, NULL, 0,
4168         "p7.SequenceNumber", HFILL }},
4169     { &hf_p7_RetrievalStatus_PDU,
4170       { "RetrievalStatus", "p7.RetrievalStatus",
4171         FT_INT32, BASE_DEC, VALS(p7_RetrievalStatus_vals), 0,
4172         "p7.RetrievalStatus", HFILL }},
4173     { &hf_p7_MessageGroupName_PDU,
4174       { "MessageGroupName", "p7.MessageGroupName",
4175         FT_UINT32, BASE_DEC, NULL, 0,
4176         "p7.MessageGroupName", HFILL }},
4177     { &hf_p7_MSBindArgument_PDU,
4178       { "MSBindArgument", "p7.MSBindArgument",
4179         FT_NONE, BASE_NONE, NULL, 0,
4180         "p7.MSBindArgument", HFILL }},
4181     { &hf_p7_MSBindResult_PDU,
4182       { "MSBindResult", "p7.MSBindResult",
4183         FT_NONE, BASE_NONE, NULL, 0,
4184         "p7.MSBindResult", HFILL }},
4185     { &hf_p7_MS_EIT_PDU,
4186       { "MS-EIT", "p7.MS_EIT",
4187         FT_OID, BASE_NONE, NULL, 0,
4188         "p7.MS_EIT", HFILL }},
4189     { &hf_p7_ChangeCredentialsAlgorithms_PDU,
4190       { "ChangeCredentialsAlgorithms", "p7.ChangeCredentialsAlgorithms",
4191         FT_UINT32, BASE_DEC, NULL, 0,
4192         "p7.ChangeCredentialsAlgorithms", HFILL }},
4193     { &hf_p7_PAR_ms_bind_error_PDU,
4194       { "PAR-ms-bind-error", "p7.PAR_ms_bind_error",
4195         FT_UINT32, BASE_DEC, VALS(p7_PAR_ms_bind_error_vals), 0,
4196         "p7.PAR_ms_bind_error", HFILL }},
4197     { &hf_p7_CreationTime_PDU,
4198       { "CreationTime", "p7.CreationTime",
4199         FT_STRING, BASE_NONE, NULL, 0,
4200         "p7.CreationTime", HFILL }},
4201     { &hf_p7_OriginatorToken_PDU,
4202       { "OriginatorToken", "p7.OriginatorToken",
4203         FT_NONE, BASE_NONE, NULL, 0,
4204         "p7.OriginatorToken", HFILL }},
4205     { &hf_p7_SummarizeArgument_PDU,
4206       { "SummarizeArgument", "p7.SummarizeArgument",
4207         FT_NONE, BASE_NONE, NULL, 0,
4208         "p7.SummarizeArgument", HFILL }},
4209     { &hf_p7_SummarizeResult_PDU,
4210       { "SummarizeResult", "p7.SummarizeResult",
4211         FT_NONE, BASE_NONE, NULL, 0,
4212         "p7.SummarizeResult", HFILL }},
4213     { &hf_p7_ListArgument_PDU,
4214       { "ListArgument", "p7.ListArgument",
4215         FT_NONE, BASE_NONE, NULL, 0,
4216         "p7.ListArgument", HFILL }},
4217     { &hf_p7_ListResult_PDU,
4218       { "ListResult", "p7.ListResult",
4219         FT_NONE, BASE_NONE, NULL, 0,
4220         "p7.ListResult", HFILL }},
4221     { &hf_p7_FetchArgument_PDU,
4222       { "FetchArgument", "p7.FetchArgument",
4223         FT_NONE, BASE_NONE, NULL, 0,
4224         "p7.FetchArgument", HFILL }},
4225     { &hf_p7_FetchResult_PDU,
4226       { "FetchResult", "p7.FetchResult",
4227         FT_NONE, BASE_NONE, NULL, 0,
4228         "p7.FetchResult", HFILL }},
4229     { &hf_p7_DeleteArgument_PDU,
4230       { "DeleteArgument", "p7.DeleteArgument",
4231         FT_NONE, BASE_NONE, NULL, 0,
4232         "p7.DeleteArgument", HFILL }},
4233     { &hf_p7_DeleteResult_PDU,
4234       { "DeleteResult", "p7.DeleteResult",
4235         FT_UINT32, BASE_DEC, VALS(p7_DeleteResult_vals), 0,
4236         "p7.DeleteResult", HFILL }},
4237     { &hf_p7_Register_MSArgument_PDU,
4238       { "Register-MSArgument", "p7.Register_MSArgument",
4239         FT_NONE, BASE_NONE, NULL, 0,
4240         "p7.Register_MSArgument", HFILL }},
4241     { &hf_p7_Register_MSResult_PDU,
4242       { "Register-MSResult", "p7.Register_MSResult",
4243         FT_UINT32, BASE_DEC, VALS(p7_Register_MSResult_vals), 0,
4244         "p7.Register_MSResult", HFILL }},
4245     { &hf_p7_ProtectedChangeCredentials_PDU,
4246       { "ProtectedChangeCredentials", "p7.ProtectedChangeCredentials",
4247         FT_NONE, BASE_NONE, NULL, 0,
4248         "p7.ProtectedChangeCredentials", HFILL }},
4249     { &hf_p7_AlertArgument_PDU,
4250       { "AlertArgument", "p7.AlertArgument",
4251         FT_NONE, BASE_NONE, NULL, 0,
4252         "p7.AlertArgument", HFILL }},
4253     { &hf_p7_AlertResult_PDU,
4254       { "AlertResult", "p7.AlertResult",
4255         FT_NONE, BASE_NONE, NULL, 0,
4256         "p7.AlertResult", HFILL }},
4257     { &hf_p7_ModifyArgument_PDU,
4258       { "ModifyArgument", "p7.ModifyArgument",
4259         FT_NONE, BASE_NONE, NULL, 0,
4260         "p7.ModifyArgument", HFILL }},
4261     { &hf_p7_ModifyResult_PDU,
4262       { "ModifyResult", "p7.ModifyResult",
4263         FT_NONE, BASE_NONE, NULL, 0,
4264         "p7.ModifyResult", HFILL }},
4265     { &hf_p7_MSMessageSubmissionArgument_PDU,
4266       { "MSMessageSubmissionArgument", "p7.MSMessageSubmissionArgument",
4267         FT_NONE, BASE_NONE, NULL, 0,
4268         "p7.MSMessageSubmissionArgument", HFILL }},
4269     { &hf_p7_MSMessageSubmissionResult_PDU,
4270       { "MSMessageSubmissionResult", "p7.MSMessageSubmissionResult",
4271         FT_UINT32, BASE_DEC, VALS(p7_MSMessageSubmissionResult_vals), 0,
4272         "p7.MSMessageSubmissionResult", HFILL }},
4273     { &hf_p7_MSProbeSubmissionArgument_PDU,
4274       { "MSProbeSubmissionArgument", "p7.MSProbeSubmissionArgument",
4275         FT_NONE, BASE_NONE, NULL, 0,
4276         "p7.MSProbeSubmissionArgument", HFILL }},
4277     { &hf_p7_MSProbeSubmissionResult_PDU,
4278       { "MSProbeSubmissionResult", "p7.MSProbeSubmissionResult",
4279         FT_NONE, BASE_NONE, NULL, 0,
4280         "p7.MSProbeSubmissionResult", HFILL }},
4281     { &hf_p7_PAR_attribute_error_PDU,
4282       { "PAR-attribute-error", "p7.PAR_attribute_error",
4283         FT_NONE, BASE_NONE, NULL, 0,
4284         "p7.PAR_attribute_error", HFILL }},
4285     { &hf_p7_PAR_auto_action_request_error_PDU,
4286       { "PAR-auto-action-request-error", "p7.PAR_auto_action_request_error",
4287         FT_NONE, BASE_NONE, NULL, 0,
4288         "p7.PAR_auto_action_request_error", HFILL }},
4289     { &hf_p7_PAR_delete_error_PDU,
4290       { "PAR-delete-error", "p7.PAR_delete_error",
4291         FT_NONE, BASE_NONE, NULL, 0,
4292         "p7.PAR_delete_error", HFILL }},
4293     { &hf_p7_PAR_fetch_restriction_error_PDU,
4294       { "PAR-fetch-restriction-error", "p7.PAR_fetch_restriction_error",
4295         FT_NONE, BASE_NONE, NULL, 0,
4296         "p7.PAR_fetch_restriction_error", HFILL }},
4297     { &hf_p7_PAR_invalid_parameters_error_PDU,
4298       { "PAR-invalid-parameters-error", "p7.PAR_invalid_parameters_error",
4299         FT_NONE, BASE_NONE, NULL, 0,
4300         "p7.PAR_invalid_parameters_error", HFILL }},
4301     { &hf_p7_PAR_range_error_PDU,
4302       { "PAR-range-error", "p7.PAR_range_error",
4303         FT_NONE, BASE_NONE, NULL, 0,
4304         "p7.PAR_range_error", HFILL }},
4305     { &hf_p7_PAR_sequence_number_error_PDU,
4306       { "PAR-sequence-number-error", "p7.PAR_sequence_number_error",
4307         FT_NONE, BASE_NONE, NULL, 0,
4308         "p7.PAR_sequence_number_error", HFILL }},
4309     { &hf_p7_ServiceErrorParameter_PDU,
4310       { "ServiceErrorParameter", "p7.ServiceErrorParameter",
4311         FT_NONE, BASE_NONE, NULL, 0,
4312         "p7.ServiceErrorParameter", HFILL }},
4313     { &hf_p7_MessageGroupErrorParameter_PDU,
4314       { "MessageGroupErrorParameter", "p7.MessageGroupErrorParameter",
4315         FT_NONE, BASE_NONE, NULL, 0,
4316         "p7.MessageGroupErrorParameter", HFILL }},
4317     { &hf_p7_MSExtensionErrorParameter_PDU,
4318       { "MSExtensionErrorParameter", "p7.MSExtensionErrorParameter",
4319         FT_UINT32, BASE_DEC, VALS(p7_MSExtensionErrorParameter_vals), 0,
4320         "p7.MSExtensionErrorParameter", HFILL }},
4321     { &hf_p7_PAR_register_ms_error_PDU,
4322       { "PAR-register-ms-error", "p7.PAR_register_ms_error",
4323         FT_NONE, BASE_NONE, NULL, 0,
4324         "p7.PAR_register_ms_error", HFILL }},
4325     { &hf_p7_ModifyErrorParameter_PDU,
4326       { "ModifyErrorParameter", "p7.ModifyErrorParameter",
4327         FT_NONE, BASE_NONE, NULL, 0,
4328         "p7.ModifyErrorParameter", HFILL }},
4329     { &hf_p7_EntryClassErrorParameter_PDU,
4330       { "EntryClassErrorParameter", "p7.EntryClassErrorParameter",
4331         FT_NONE, BASE_NONE, NULL, 0,
4332         "p7.EntryClassErrorParameter", HFILL }},
4333     { &hf_p7_ReportLocation_PDU,
4334       { "ReportLocation", "p7.ReportLocation",
4335         FT_UINT32, BASE_DEC, VALS(p7_ReportLocation_vals), 0,
4336         "p7.ReportLocation", HFILL }},
4337     { &hf_p7_PerRecipientReport_PDU,
4338       { "PerRecipientReport", "p7.PerRecipientReport",
4339         FT_NONE, BASE_NONE, NULL, 0,
4340         "p7.PerRecipientReport", HFILL }},
4341     { &hf_p7_ReportSummary_PDU,
4342       { "ReportSummary", "p7.ReportSummary",
4343         FT_UINT32, BASE_DEC, VALS(p7_ReportSummary_vals), 0,
4344         "p7.ReportSummary", HFILL }},
4345     { &hf_p7_DeferredDeliveryCancellationTime_PDU,
4346       { "DeferredDeliveryCancellationTime", "p7.DeferredDeliveryCancellationTime",
4347         FT_STRING, BASE_NONE, NULL, 0,
4348         "p7.DeferredDeliveryCancellationTime", HFILL }},
4349     { &hf_p7_DeletionTime_PDU,
4350       { "DeletionTime", "p7.DeletionTime",
4351         FT_STRING, BASE_NONE, NULL, 0,
4352         "p7.DeletionTime", HFILL }},
4353     { &hf_p7_SubmissionError_PDU,
4354       { "SubmissionError", "p7.SubmissionError",
4355         FT_UINT32, BASE_DEC, VALS(p7_SubmissionError_vals), 0,
4356         "p7.SubmissionError", HFILL }},
4357     { &hf_p7_SignatureVerificationStatus_PDU,
4358       { "SignatureVerificationStatus", "p7.SignatureVerificationStatus",
4359         FT_NONE, BASE_NONE, NULL, 0,
4360         "p7.SignatureVerificationStatus", HFILL }},
4361     { &hf_p7_StoragePeriod_PDU,
4362       { "StoragePeriod", "p7.StoragePeriod",
4363         FT_INT32, BASE_DEC, NULL, 0,
4364         "p7.StoragePeriod", HFILL }},
4365     { &hf_p7_StorageTime_PDU,
4366       { "StorageTime", "p7.StorageTime",
4367         FT_STRING, BASE_NONE, NULL, 0,
4368         "p7.StorageTime", HFILL }},
4369     { &hf_p7_RTSE_apdus_PDU,
4370       { "RTSE-apdus", "p7.RTSE_apdus",
4371         FT_UINT32, BASE_DEC, VALS(p7_RTSE_apdus_vals), 0,
4372         "p7.RTSE_apdus", HFILL }},
4373     { &hf_p7_attribute_type,
4374       { "attribute-type", "p7.attribute_type",
4375         FT_OID, BASE_NONE, NULL, 0,
4376         "p7.AttributeType", HFILL }},
4377     { &hf_p7_attribute_values,
4378       { "attribute-values", "p7.attribute_values",
4379         FT_UINT32, BASE_DEC, NULL, 0,
4380         "p7.AttributeValues", HFILL }},
4381     { &hf_p7_attribute_values_item,
4382       { "attribute-values", "p7.attribute_values_item",
4383         FT_NONE, BASE_NONE, NULL, 0,
4384         "p7.AttributeItem", HFILL }},
4385     { &hf_p7_auto_action_type,
4386       { "auto-action-type", "p7.auto_action_type",
4387         FT_OID, BASE_NONE, NULL, 0,
4388         "p7.AutoActionType", HFILL }},
4389     { &hf_p7_registration_identifier,
4390       { "registration-identifier", "p7.registration_identifier",
4391         FT_UINT32, BASE_DEC, NULL, 0,
4392         "p7.INTEGER_1_ub_per_auto_action", HFILL }},
4393     { &hf_p7_registration_parameter,
4394       { "registration-parameter", "p7.registration_parameter",
4395         FT_NONE, BASE_NONE, NULL, 0,
4396         "p7.T_registration_parameter", HFILL }},
4397     { &hf_p7_error_code,
4398       { "error-code", "p7.error_code",
4399         FT_NONE, BASE_NONE, NULL, 0,
4400         "p7.T_error_code", HFILL }},
4401     { &hf_p7_error_parameter,
4402       { "error-parameter", "p7.error_parameter",
4403         FT_NONE, BASE_NONE, NULL, 0,
4404         "p7.T_error_parameter", HFILL }},
4405     { &hf_p7_MSExtensions_item,
4406       { "MSExtensions", "p7.MSExtensions_item",
4407         FT_NONE, BASE_NONE, NULL, 0,
4408         "p7.MSExtensionItem", HFILL }},
4409     { &hf_p7_MessageGroupName_item,
4410       { "MessageGroupName", "p7.MessageGroupName_item",
4411         FT_STRING, BASE_NONE, NULL, 0,
4412         "p7.GroupNamePart", HFILL }},
4413     { &hf_p7_initiator_name,
4414       { "initiator-name", "p7.initiator_name",
4415         FT_NONE, BASE_NONE, NULL, 0,
4416         "p7.T_initiator_name", HFILL }},
4417     { &hf_p7_initiator_credentials,
4418       { "initiator-credentials", "p7.initiator_credentials",
4419         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
4420         "x411.InitiatorCredentials", HFILL }},
4421     { &hf_p7_security_context,
4422       { "security-context", "p7.security_context",
4423         FT_UINT32, BASE_DEC, NULL, 0,
4424         "x411.SecurityContext", HFILL }},
4425     { &hf_p7_fetch_restrictions,
4426       { "fetch-restrictions", "p7.fetch_restrictions",
4427         FT_NONE, BASE_NONE, NULL, 0,
4428         "p7.Restrictions", HFILL }},
4429     { &hf_p7_ms_configuration_request,
4430       { "ms-configuration-request", "p7.ms_configuration_request",
4431         FT_BOOLEAN, 8, NULL, 0,
4432         "p7.BOOLEAN", HFILL }},
4433     { &hf_p7_ua_registration_identifier,
4434       { "ua-registration-identifier", "p7.ua_registration_identifier",
4435         FT_STRING, BASE_NONE, NULL, 0,
4436         "p7.RegistrationIdentifier", HFILL }},
4437     { &hf_p7_bind_extensions,
4438       { "bind-extensions", "p7.bind_extensions",
4439         FT_UINT32, BASE_DEC, NULL, 0,
4440         "p7.MSExtensions", HFILL }},
4441     { &hf_p7_allowed_content_types,
4442       { "allowed-content-types", "p7.allowed_content_types",
4443         FT_UINT32, BASE_DEC, NULL, 0,
4444         "p7.T_allowed_content_types", HFILL }},
4445     { &hf_p7_allowed_content_types_item,
4446       { "allowed-content-types", "p7.allowed_content_types_item",
4447         FT_OID, BASE_NONE, NULL, 0,
4448         "p7.OBJECT_IDENTIFIER", HFILL }},
4449     { &hf_p7_allowed_EITs,
4450       { "allowed-EITs", "p7.allowed_EITs",
4451         FT_UINT32, BASE_DEC, NULL, 0,
4452         "p7.MS_EITs", HFILL }},
4453     { &hf_p7_maximum_attribute_length,
4454       { "maximum-attribute-length", "p7.maximum_attribute_length",
4455         FT_INT32, BASE_DEC, NULL, 0,
4456         "p7.INTEGER", HFILL }},
4457     { &hf_p7_MS_EITs_item,
4458       { "MS-EITs", "p7.MS_EITs_item",
4459         FT_OID, BASE_NONE, NULL, 0,
4460         "p7.MS_EIT", HFILL }},
4461     { &hf_p7_responder_credentials,
4462       { "responder-credentials", "p7.responder_credentials",
4463         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
4464         "x411.ResponderCredentials", HFILL }},
4465     { &hf_p7_available_auto_actions,
4466       { "available-auto-actions", "p7.available_auto_actions",
4467         FT_UINT32, BASE_DEC, NULL, 0,
4468         "p7.SET_SIZE_1_ub_auto_actions_OF_AutoActionType", HFILL }},
4469     { &hf_p7_available_auto_actions_item,
4470       { "available-auto-actions", "p7.available_auto_actions_item",
4471         FT_OID, BASE_NONE, NULL, 0,
4472         "p7.AutoActionType", HFILL }},
4473     { &hf_p7_available_attribute_types,
4474       { "available-attribute-types", "p7.available_attribute_types",
4475         FT_UINT32, BASE_DEC, NULL, 0,
4476         "p7.SET_SIZE_1_ub_attributes_supported_OF_AttributeType", HFILL }},
4477     { &hf_p7_available_attribute_types_item,
4478       { "available-attribute-types", "p7.available_attribute_types_item",
4479         FT_OID, BASE_NONE, NULL, 0,
4480         "p7.AttributeType", HFILL }},
4481     { &hf_p7_alert_indication,
4482       { "alert-indication", "p7.alert_indication",
4483         FT_BOOLEAN, 8, NULL, 0,
4484         "p7.BOOLEAN", HFILL }},
4485     { &hf_p7_content_types_supported,
4486       { "content-types-supported", "p7.content_types_supported",
4487         FT_UINT32, BASE_DEC, NULL, 0,
4488         "p7.T_content_types_supported", HFILL }},
4489     { &hf_p7_content_types_supported_item,
4490       { "content-types-supported", "p7.content_types_supported_item",
4491         FT_OID, BASE_NONE, NULL, 0,
4492         "p7.OBJECT_IDENTIFIER", HFILL }},
4493     { &hf_p7_entry_classes_supported,
4494       { "entry-classes-supported", "p7.entry_classes_supported",
4495         FT_UINT32, BASE_DEC, NULL, 0,
4496         "p7.SET_SIZE_1_ub_entry_classes_OF_EntryClass", HFILL }},
4497     { &hf_p7_entry_classes_supported_item,
4498       { "entry-classes-supported", "p7.entry_classes_supported_item",
4499         FT_UINT32, BASE_DEC, VALS(p7_EntryClass_vals), 0,
4500         "p7.EntryClass", HFILL }},
4501     { &hf_p7_matching_rules_supported,
4502       { "matching-rules-supported", "p7.matching_rules_supported",
4503         FT_UINT32, BASE_DEC, NULL, 0,
4504         "p7.T_matching_rules_supported", HFILL }},
4505     { &hf_p7_matching_rules_supported_item,
4506       { "matching-rules-supported", "p7.matching_rules_supported_item",
4507         FT_OID, BASE_NONE, NULL, 0,
4508         "p7.OBJECT_IDENTIFIER", HFILL }},
4509     { &hf_p7_bind_result_extensions,
4510       { "bind-result-extensions", "p7.bind_result_extensions",
4511         FT_UINT32, BASE_DEC, NULL, 0,
4512         "p7.MSExtensions", HFILL }},
4513     { &hf_p7_message_group_depth,
4514       { "message-group-depth", "p7.message_group_depth",
4515         FT_UINT32, BASE_DEC, NULL, 0,
4516         "p7.INTEGER_1_ub_group_depth", HFILL }},
4517     { &hf_p7_auto_action_error_indication,
4518       { "auto-action-error-indication", "p7.auto_action_error_indication",
4519         FT_UINT32, BASE_DEC, VALS(p7_AutoActionErrorIndication_vals), 0,
4520         "p7.AutoActionErrorIndication", HFILL }},
4521     { &hf_p7_unsupported_extensions,
4522       { "unsupported-extensions", "p7.unsupported_extensions",
4523         FT_UINT32, BASE_DEC, NULL, 0,
4524         "p7.T_unsupported_extensions", HFILL }},
4525     { &hf_p7_unsupported_extensions_item,
4526       { "unsupported-extensions", "p7.unsupported_extensions_item",
4527         FT_OID, BASE_NONE, NULL, 0,
4528         "p7.OBJECT_IDENTIFIER", HFILL }},
4529     { &hf_p7_ua_registration_id_unknown,
4530       { "ua-registration-id-unknown", "p7.ua_registration_id_unknown",
4531         FT_BOOLEAN, 8, NULL, 0,
4532         "p7.BOOLEAN", HFILL }},
4533     { &hf_p7_service_information,
4534       { "service-information", "p7.service_information",
4535         FT_STRING, BASE_NONE, NULL, 0,
4536         "p7.GeneralString_SIZE_1_ub_service_information_length", HFILL }},
4537     { &hf_p7_ChangeCredentialsAlgorithms_item,
4538       { "ChangeCredentialsAlgorithms", "p7.ChangeCredentialsAlgorithms_item",
4539         FT_OID, BASE_NONE, NULL, 0,
4540         "p7.OBJECT_IDENTIFIER", HFILL }},
4541     { &hf_p7_indication_only,
4542       { "indication-only", "p7.indication_only",
4543         FT_NONE, BASE_NONE, NULL, 0,
4544         "p7.NULL", HFILL }},
4545     { &hf_p7_auto_action_log_entry,
4546       { "auto-action-log-entry", "p7.auto_action_log_entry",
4547         FT_UINT32, BASE_DEC, NULL, 0,
4548         "p7.SequenceNumber", HFILL }},
4549     { &hf_p7_unqualified_error,
4550       { "unqualified-error", "p7.unqualified_error",
4551         FT_UINT32, BASE_DEC, VALS(p7_BindProblem_vals), 0,
4552         "p7.BindProblem", HFILL }},
4553     { &hf_p7_qualified_error,
4554       { "qualified-error", "p7.qualified_error",
4555         FT_NONE, BASE_NONE, NULL, 0,
4556         "p7.T_qualified_error", HFILL }},
4557     { &hf_p7_bind_problem,
4558       { "bind-problem", "p7.bind_problem",
4559         FT_UINT32, BASE_DEC, VALS(p7_BindProblem_vals), 0,
4560         "p7.BindProblem", HFILL }},
4561     { &hf_p7_supplementary_information,
4562       { "supplementary-information", "p7.supplementary_information",
4563         FT_STRING, BASE_NONE, NULL, 0,
4564         "p7.GeneralString_SIZE_1_ub_supplementary_info_length", HFILL }},
4565     { &hf_p7_bind_extension_errors,
4566       { "bind-extension-errors", "p7.bind_extension_errors",
4567         FT_UINT32, BASE_DEC, NULL, 0,
4568         "p7.T_bind_extension_errors", HFILL }},
4569     { &hf_p7_bind_extension_errors_item,
4570       { "bind-extension-errors", "p7.bind_extension_errors_item",
4571         FT_OID, BASE_NONE, NULL, 0,
4572         "p7.OBJECT_IDENTIFIER", HFILL }},
4573     { &hf_p7_sequence_number_range,
4574       { "sequence-number-range", "p7.sequence_number_range",
4575         FT_NONE, BASE_NONE, NULL, 0,
4576         "p7.NumberRange", HFILL }},
4577     { &hf_p7_creation_time_range,
4578       { "creation-time-range", "p7.creation_time_range",
4579         FT_NONE, BASE_NONE, NULL, 0,
4580         "p7.TimeRange", HFILL }},
4581     { &hf_p7_from_number,
4582       { "from", "p7.from",
4583         FT_UINT32, BASE_DEC, NULL, 0,
4584         "p7.T_from_number", HFILL }},
4585     { &hf_p7_to_number,
4586       { "to", "p7.to",
4587         FT_UINT32, BASE_DEC, NULL, 0,
4588         "p7.T_to_number", HFILL }},
4589     { &hf_p7_from_time,
4590       { "from", "p7.from",
4591         FT_STRING, BASE_NONE, NULL, 0,
4592         "p7.CreationTime", HFILL }},
4593     { &hf_p7_to_time,
4594       { "to", "p7.to",
4595         FT_STRING, BASE_NONE, NULL, 0,
4596         "p7.CreationTime", HFILL }},
4597     { &hf_p7_filter_item,
4598       { "item", "p7.item",
4599         FT_UINT32, BASE_DEC, VALS(p7_FilterItem_vals), 0,
4600         "p7.FilterItem", HFILL }},
4601     { &hf_p7_and,
4602       { "and", "p7.and",
4603         FT_UINT32, BASE_DEC, NULL, 0,
4604         "p7.SET_OF_Filter", HFILL }},
4605     { &hf_p7_and_item,
4606       { "and", "p7.and_item",
4607         FT_UINT32, BASE_DEC, VALS(p7_Filter_vals), 0,
4608         "p7.Filter", HFILL }},
4609     { &hf_p7_or,
4610       { "or", "p7.or",
4611         FT_UINT32, BASE_DEC, NULL, 0,
4612         "p7.SET_OF_Filter", HFILL }},
4613     { &hf_p7_or_item,
4614       { "or", "p7.or_item",
4615         FT_UINT32, BASE_DEC, VALS(p7_Filter_vals), 0,
4616         "p7.Filter", HFILL }},
4617     { &hf_p7_not,
4618       { "not", "p7.not",
4619         FT_UINT32, BASE_DEC, VALS(p7_Filter_vals), 0,
4620         "p7.Filter", HFILL }},
4621     { &hf_p7_equality,
4622       { "equality", "p7.equality",
4623         FT_NONE, BASE_NONE, NULL, 0,
4624         "p7.AttributeValueAssertion", HFILL }},
4625     { &hf_p7_substrings,
4626       { "substrings", "p7.substrings",
4627         FT_NONE, BASE_NONE, NULL, 0,
4628         "p7.T_substrings", HFILL }},
4629     { &hf_p7_type,
4630       { "type", "p7.type",
4631         FT_OID, BASE_NONE, NULL, 0,
4632         "p7.AttributeType", HFILL }},
4633     { &hf_p7_strings,
4634       { "strings", "p7.strings",
4635         FT_UINT32, BASE_DEC, NULL, 0,
4636         "p7.T_strings", HFILL }},
4637     { &hf_p7_strings_item,
4638       { "strings", "p7.strings_item",
4639         FT_UINT32, BASE_DEC, VALS(p7_T_strings_item_vals), 0,
4640         "p7.T_strings_item", HFILL }},
4641     { &hf_p7_initial,
4642       { "initial", "p7.initial",
4643         FT_NONE, BASE_NONE, NULL, 0,
4644         "p7.T_initial", HFILL }},
4645     { &hf_p7_any,
4646       { "any", "p7.any",
4647         FT_NONE, BASE_NONE, NULL, 0,
4648         "p7.T_any", HFILL }},
4649     { &hf_p7_final,
4650       { "final", "p7.final",
4651         FT_NONE, BASE_NONE, NULL, 0,
4652         "p7.T_final", HFILL }},
4653     { &hf_p7_greater_or_equal,
4654       { "greater-or-equal", "p7.greater_or_equal",
4655         FT_NONE, BASE_NONE, NULL, 0,
4656         "p7.AttributeValueAssertion", HFILL }},
4657     { &hf_p7_less_or_equal,
4658       { "less-or-equal", "p7.less_or_equal",
4659         FT_NONE, BASE_NONE, NULL, 0,
4660         "p7.AttributeValueAssertion", HFILL }},
4661     { &hf_p7_present,
4662       { "present", "p7.present",
4663         FT_OID, BASE_NONE, NULL, 0,
4664         "p7.AttributeType", HFILL }},
4665     { &hf_p7_approximate_match,
4666       { "approximate-match", "p7.approximate_match",
4667         FT_NONE, BASE_NONE, NULL, 0,
4668         "p7.AttributeValueAssertion", HFILL }},
4669     { &hf_p7_other_match,
4670       { "other-match", "p7.other_match",
4671         FT_NONE, BASE_NONE, NULL, 0,
4672         "p7.MatchingRuleAssertion", HFILL }},
4673     { &hf_p7_matching_rule,
4674       { "matching-rule", "p7.matching_rule",
4675         FT_OID, BASE_NONE, NULL, 0,
4676         "p7.OBJECT_IDENTIFIER", HFILL }},
4677     { &hf_p7_match_value,
4678       { "match-value", "p7.match_value",
4679         FT_NONE, BASE_NONE, NULL, 0,
4680         "p7.T_match_value", HFILL }},
4681     { &hf_p7_attribute_value,
4682       { "attribute-value", "p7.attribute_value",
4683         FT_NONE, BASE_NONE, NULL, 0,
4684         "p7.T_attribute_value", HFILL }},
4685     { &hf_p7_child_entries,
4686       { "child-entries", "p7.child_entries",
4687         FT_BOOLEAN, 8, NULL, 0,
4688         "p7.BOOLEAN", HFILL }},
4689     { &hf_p7_range,
4690       { "range", "p7.range",
4691         FT_UINT32, BASE_DEC, VALS(p7_Range_vals), 0,
4692         "p7.Range", HFILL }},
4693     { &hf_p7_filter,
4694       { "filter", "p7.filter",
4695         FT_UINT32, BASE_DEC, VALS(p7_Filter_vals), 0,
4696         "p7.Filter", HFILL }},
4697     { &hf_p7_limit,
4698       { "limit", "p7.limit",
4699         FT_UINT32, BASE_DEC, NULL, 0,
4700         "p7.INTEGER_1_ub_messages", HFILL }},
4701     { &hf_p7_override,
4702       { "override", "p7.override",
4703         FT_BYTES, BASE_HEX, NULL, 0,
4704         "p7.OverrideRestrictions", HFILL }},
4705     { &hf_p7_EntryInformationSelection_item,
4706       { "EntryInformationSelection", "p7.EntryInformationSelection_item",
4707         FT_NONE, BASE_NONE, NULL, 0,
4708         "p7.AttributeSelection", HFILL }},
4709     { &hf_p7_from,
4710       { "from", "p7.from",
4711         FT_UINT32, BASE_DEC, NULL, 0,
4712         "p7.INTEGER_1_ub_attribute_values", HFILL }},
4713     { &hf_p7_selection_count,
4714       { "count", "p7.count",
4715         FT_UINT32, BASE_DEC, NULL, 0,
4716         "p7.INTEGER_0_ub_attribute_values", HFILL }},
4717     { &hf_p7_sequence_number,
4718       { "sequence-number", "p7.sequence_number",
4719         FT_UINT32, BASE_DEC, NULL, 0,
4720         "p7.SequenceNumber", HFILL }},
4721     { &hf_p7_attributes,
4722       { "attributes", "p7.attributes",
4723         FT_UINT32, BASE_DEC, NULL, 0,
4724         "p7.SET_SIZE_1_ub_per_entry_OF_Attribute", HFILL }},
4725     { &hf_p7_attributes_item,
4726       { "attributes", "p7.attributes_item",
4727         FT_NONE, BASE_NONE, NULL, 0,
4728         "p7.Attribute", HFILL }},
4729     { &hf_p7_value_count_exceeded,
4730       { "value-count-exceeded", "p7.value_count_exceeded",
4731         FT_UINT32, BASE_DEC, NULL, 0,
4732         "p7.SET_SIZE_1_ub_per_entry_OF_AttributeValueCount", HFILL }},
4733     { &hf_p7_value_count_exceeded_item,
4734       { "value-count-exceeded", "p7.value_count_exceeded_item",
4735         FT_NONE, BASE_NONE, NULL, 0,
4736         "p7.AttributeValueCount", HFILL }},
4737     { &hf_p7_total,
4738       { "total", "p7.total",
4739         FT_INT32, BASE_DEC, NULL, 0,
4740         "p7.INTEGER", HFILL }},
4741     { &hf_p7_object_entry_class,
4742       { "object-entry-class", "p7.object_entry_class",
4743         FT_UINT32, BASE_DEC, VALS(p7_EntryClass_vals), 0,
4744         "p7.EntryClass", HFILL }},
4745     { &hf_p7_disable_auto_modify,
4746       { "disable-auto-modify", "p7.disable_auto_modify",
4747         FT_BOOLEAN, 8, NULL, 0,
4748         "p7.BOOLEAN", HFILL }},
4749     { &hf_p7_add_message_group_names,
4750       { "add-message-group-names", "p7.add_message_group_names",
4751         FT_UINT32, BASE_DEC, NULL, 0,
4752         "p7.SET_SIZE_1_ub_message_groups_OF_MessageGroupName", HFILL }},
4753     { &hf_p7_add_message_group_names_item,
4754       { "add-message-group-names", "p7.add_message_group_names_item",
4755         FT_UINT32, BASE_DEC, NULL, 0,
4756         "p7.MessageGroupName", HFILL }},
4757     { &hf_p7_ms_submission_extensions,
4758       { "ms-submission-extensions", "p7.ms_submission_extensions",
4759         FT_UINT32, BASE_DEC, NULL, 0,
4760         "p7.MSExtensions", HFILL }},
4761     { &hf_p7_created_entry,
4762       { "created-entry", "p7.created_entry",
4763         FT_UINT32, BASE_DEC, NULL, 0,
4764         "p7.SequenceNumber", HFILL }},
4765     { &hf_p7_ms_submission_result_extensions,
4766       { "ms-submission-result-extensions", "p7.ms_submission_result_extensions",
4767         FT_UINT32, BASE_DEC, NULL, 0,
4768         "p7.MSExtensions", HFILL }},
4769     { &hf_p7_entry_class,
4770       { "entry-class", "p7.entry_class",
4771         FT_UINT32, BASE_DEC, VALS(p7_EntryClass_vals), 0,
4772         "p7.EntryClass", HFILL }},
4773     { &hf_p7_selector,
4774       { "selector", "p7.selector",
4775         FT_NONE, BASE_NONE, NULL, 0,
4776         "p7.Selector", HFILL }},
4777     { &hf_p7_summary_requests,
4778       { "summary-requests", "p7.summary_requests",
4779         FT_UINT32, BASE_DEC, NULL, 0,
4780         "p7.SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType", HFILL }},
4781     { &hf_p7_summary_requests_item,
4782       { "summary-requests", "p7.summary_requests_item",
4783         FT_OID, BASE_NONE, NULL, 0,
4784         "p7.AttributeType", HFILL }},
4785     { &hf_p7_summarize_extensions,
4786       { "summarize-extensions", "p7.summarize_extensions",
4787         FT_UINT32, BASE_DEC, NULL, 0,
4788         "p7.MSExtensions", HFILL }},
4789     { &hf_p7_next,
4790       { "next", "p7.next",
4791         FT_UINT32, BASE_DEC, NULL, 0,
4792         "p7.SequenceNumber", HFILL }},
4793     { &hf_p7_count,
4794       { "count", "p7.count",
4795         FT_UINT32, BASE_DEC, NULL, 0,
4796         "p7.T_count", HFILL }},
4797     { &hf_p7_span,
4798       { "span", "p7.span",
4799         FT_NONE, BASE_NONE, NULL, 0,
4800         "p7.Span", HFILL }},
4801     { &hf_p7_summaries,
4802       { "summaries", "p7.summaries",
4803         FT_UINT32, BASE_DEC, NULL, 0,
4804         "p7.SEQUENCE_SIZE_1_ub_summaries_OF_Summary", HFILL }},
4805     { &hf_p7_summaries_item,
4806       { "summaries", "p7.summaries_item",
4807         FT_NONE, BASE_NONE, NULL, 0,
4808         "p7.Summary", HFILL }},
4809     { &hf_p7_summarize_result_extensions,
4810       { "summarize-result-extensions", "p7.summarize_result_extensions",
4811         FT_UINT32, BASE_DEC, NULL, 0,
4812         "p7.MSExtensions", HFILL }},
4813     { &hf_p7_lowest,
4814       { "lowest", "p7.lowest",
4815         FT_UINT32, BASE_DEC, NULL, 0,
4816         "p7.SequenceNumber", HFILL }},
4817     { &hf_p7_highest,
4818       { "highest", "p7.highest",
4819         FT_UINT32, BASE_DEC, NULL, 0,
4820         "p7.SequenceNumber", HFILL }},
4821     { &hf_p7_absent,
4822       { "absent", "p7.absent",
4823         FT_UINT32, BASE_DEC, NULL, 0,
4824         "p7.INTEGER_1_ub_messages", HFILL }},
4825     { &hf_p7_summary_present,
4826       { "present", "p7.present",
4827         FT_UINT32, BASE_DEC, NULL, 0,
4828         "p7.T_summary_present", HFILL }},
4829     { &hf_p7_summary_present_item,
4830       { "present", "p7.present_item",
4831         FT_NONE, BASE_NONE, NULL, 0,
4832         "p7.T_summary_present_item", HFILL }},
4833     { &hf_p7_value,
4834       { "value", "p7.value",
4835         FT_NONE, BASE_NONE, NULL, 0,
4836         "p7.SummaryPresentItemValue", HFILL }},
4837     { &hf_p7_summary_count,
4838       { "count", "p7.count",
4839         FT_UINT32, BASE_DEC, NULL, 0,
4840         "p7.INTEGER_1_ub_messages", HFILL }},
4841     { &hf_p7_requested_attributes,
4842       { "requested-attributes", "p7.requested_attributes",
4843         FT_UINT32, BASE_DEC, NULL, 0,
4844         "p7.EntryInformationSelection", HFILL }},
4845     { &hf_p7_list_extensions,
4846       { "list-extensions", "p7.list_extensions",
4847         FT_UINT32, BASE_DEC, NULL, 0,
4848         "p7.MSExtensions", HFILL }},
4849     { &hf_p7_requested,
4850       { "requested", "p7.requested",
4851         FT_UINT32, BASE_DEC, NULL, 0,
4852         "p7.SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation", HFILL }},
4853     { &hf_p7_requested_item,
4854       { "requested", "p7.requested_item",
4855         FT_NONE, BASE_NONE, NULL, 0,
4856         "p7.EntryInformation", HFILL }},
4857     { &hf_p7_list_result_extensions,
4858       { "list-result-extensions", "p7.list_result_extensions",
4859         FT_UINT32, BASE_DEC, NULL, 0,
4860         "p7.MSExtensions", HFILL }},
4861     { &hf_p7_item,
4862       { "item", "p7.item",
4863         FT_UINT32, BASE_DEC, VALS(p7_T_item_vals), 0,
4864         "p7.T_item", HFILL }},
4865     { &hf_p7_search,
4866       { "search", "p7.search",
4867         FT_NONE, BASE_NONE, NULL, 0,
4868         "p7.Selector", HFILL }},
4869     { &hf_p7_precise,
4870       { "precise", "p7.precise",
4871         FT_UINT32, BASE_DEC, NULL, 0,
4872         "p7.SequenceNumber", HFILL }},
4873     { &hf_p7_fetch_extensions,
4874       { "fetch-extensions", "p7.fetch_extensions",
4875         FT_UINT32, BASE_DEC, NULL, 0,
4876         "p7.MSExtensions", HFILL }},
4877     { &hf_p7_entry_information,
4878       { "entry-information", "p7.entry_information",
4879         FT_NONE, BASE_NONE, NULL, 0,
4880         "p7.EntryInformation", HFILL }},
4881     { &hf_p7_list,
4882       { "list", "p7.list",
4883         FT_UINT32, BASE_DEC, NULL, 0,
4884         "p7.SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber", HFILL }},
4885     { &hf_p7_list_item,
4886       { "list", "p7.list_item",
4887         FT_UINT32, BASE_DEC, NULL, 0,
4888         "p7.SequenceNumber", HFILL }},
4889     { &hf_p7_fetch_result_extensions,
4890       { "fetch-result-extensions", "p7.fetch_result_extensions",
4891         FT_UINT32, BASE_DEC, NULL, 0,
4892         "p7.MSExtensions", HFILL }},
4893     { &hf_p7_items,
4894       { "items", "p7.items",
4895         FT_UINT32, BASE_DEC, VALS(p7_T_items_vals), 0,
4896         "p7.T_items", HFILL }},
4897     { &hf_p7_sequence_numbers,
4898       { "sequence-numbers", "p7.sequence_numbers",
4899         FT_UINT32, BASE_DEC, NULL, 0,
4900         "p7.SET_SIZE_1_ub_messages_OF_SequenceNumber", HFILL }},
4901     { &hf_p7_sequence_numbers_item,
4902       { "sequence-numbers", "p7.sequence_numbers_item",
4903         FT_UINT32, BASE_DEC, NULL, 0,
4904         "p7.SequenceNumber", HFILL }},
4905     { &hf_p7_delete_extensions,
4906       { "delete-extensions", "p7.delete_extensions",
4907         FT_UINT32, BASE_DEC, NULL, 0,
4908         "p7.MSExtensions", HFILL }},
4909     { &hf_p7_delete_result_88,
4910       { "delete-result-88", "p7.delete_result_88",
4911         FT_NONE, BASE_NONE, NULL, 0,
4912         "p7.NULL", HFILL }},
4913     { &hf_p7_delete_result_94,
4914       { "delete-result-94", "p7.delete_result_94",
4915         FT_NONE, BASE_NONE, NULL, 0,
4916         "p7.T_delete_result_94", HFILL }},
4917     { &hf_p7_entries_deleted_94,
4918       { "entries-deleted", "p7.entries_deleted",
4919         FT_UINT32, BASE_DEC, NULL, 0,
4920         "p7.SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber", HFILL }},
4921     { &hf_p7_entries_deleted_94_item,
4922       { "entries-deleted", "p7.entries_deleted_item",
4923         FT_UINT32, BASE_DEC, NULL, 0,
4924         "p7.SequenceNumber", HFILL }},
4925     { &hf_p7_delete_result_extensions,
4926       { "delete-result-extensions", "p7.delete_result_extensions",
4927         FT_UINT32, BASE_DEC, NULL, 0,
4928         "p7.MSExtensions", HFILL }},
4929     { &hf_p7_auto_action_registrations,
4930       { "auto-action-registrations", "p7.auto_action_registrations",
4931         FT_UINT32, BASE_DEC, NULL, 0,
4932         "p7.SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration", HFILL }},
4933     { &hf_p7_auto_action_registrations_item,
4934       { "auto-action-registrations", "p7.auto_action_registrations_item",
4935         FT_NONE, BASE_NONE, NULL, 0,
4936         "p7.AutoActionRegistration", HFILL }},
4937     { &hf_p7_auto_action_deregistrations,
4938       { "auto-action-deregistrations", "p7.auto_action_deregistrations",
4939         FT_UINT32, BASE_DEC, NULL, 0,
4940         "p7.SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration", HFILL }},
4941     { &hf_p7_auto_action_deregistrations_item,
4942       { "auto-action-deregistrations", "p7.auto_action_deregistrations_item",
4943         FT_NONE, BASE_NONE, NULL, 0,
4944         "p7.AutoActionDeregistration", HFILL }},
4945     { &hf_p7_list_attribute_defaults,
4946       { "list-attribute-defaults", "p7.list_attribute_defaults",
4947         FT_UINT32, BASE_DEC, NULL, 0,
4948         "p7.SET_SIZE_0_ub_default_registrations_OF_AttributeType", HFILL }},
4949     { &hf_p7_list_attribute_defaults_item,
4950       { "list-attribute-defaults", "p7.list_attribute_defaults_item",
4951         FT_OID, BASE_NONE, NULL, 0,
4952         "p7.AttributeType", HFILL }},
4953     { &hf_p7_fetch_attribute_defaults,
4954       { "fetch-attribute-defaults", "p7.fetch_attribute_defaults",
4955         FT_UINT32, BASE_DEC, NULL, 0,
4956         "p7.SET_SIZE_0_ub_default_registrations_OF_AttributeType", HFILL }},
4957     { &hf_p7_fetch_attribute_defaults_item,
4958       { "fetch-attribute-defaults", "p7.fetch_attribute_defaults_item",
4959         FT_OID, BASE_NONE, NULL, 0,
4960         "p7.AttributeType", HFILL }},
4961     { &hf_p7_change_credentials,
4962       { "change-credentials", "p7.change_credentials",
4963         FT_NONE, BASE_NONE, NULL, 0,
4964         "p7.T_change_credentials", HFILL }},
4965     { &hf_p7_register_old_credentials,
4966       { "old-credentials", "p7.old_credentials",
4967         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
4968         "x411.Credentials", HFILL }},
4969     { &hf_p7_new_credentials,
4970       { "new-credentials", "p7.new_credentials",
4971         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
4972         "x411.Credentials", HFILL }},
4973     { &hf_p7_user_security_labels,
4974       { "user-security-labels", "p7.user_security_labels",
4975         FT_UINT32, BASE_DEC, NULL, 0,
4976         "p7.SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel", HFILL }},
4977     { &hf_p7_user_security_labels_item,
4978       { "user-security-labels", "p7.user_security_labels_item",
4979         FT_NONE, BASE_NONE, NULL, 0,
4980         "x411.SecurityLabel", HFILL }},
4981     { &hf_p7_ua_registrations,
4982       { "ua-registrations", "p7.ua_registrations",
4983         FT_UINT32, BASE_DEC, NULL, 0,
4984         "p7.SET_SIZE_1_ub_ua_registrations_OF_UARegistration", HFILL }},
4985     { &hf_p7_ua_registrations_item,
4986       { "ua-registrations", "p7.ua_registrations_item",
4987         FT_NONE, BASE_NONE, NULL, 0,
4988         "p7.UARegistration", HFILL }},
4989     { &hf_p7_submission_defaults,
4990       { "submission-defaults", "p7.submission_defaults",
4991         FT_NONE, BASE_NONE, NULL, 0,
4992         "p7.MSSubmissionOptions", HFILL }},
4993     { &hf_p7_message_group_registrations,
4994       { "message-group-registrations", "p7.message_group_registrations",
4995         FT_UINT32, BASE_DEC, NULL, 0,
4996         "p7.MessageGroupRegistrations", HFILL }},
4997     { &hf_p7_registration_status_request,
4998       { "registration-status-request", "p7.registration_status_request",
4999         FT_NONE, BASE_NONE, NULL, 0,
5000         "p7.RegistrationTypes", HFILL }},
5001     { &hf_p7_register_ms_extensions,
5002       { "register-ms-extensions", "p7.register_ms_extensions",
5003         FT_UINT32, BASE_DEC, NULL, 0,
5004         "p7.MSExtensions", HFILL }},
5005     { &hf_p7_ua_list_attribute_defaults,
5006       { "ua-list-attribute-defaults", "p7.ua_list_attribute_defaults",
5007         FT_UINT32, BASE_DEC, NULL, 0,
5008         "p7.SET_SIZE_0_ub_default_registrations_OF_AttributeType", HFILL }},
5009     { &hf_p7_ua_list_attribute_defaults_item,
5010       { "ua-list-attribute-defaults", "p7.ua_list_attribute_defaults_item",
5011         FT_OID, BASE_NONE, NULL, 0,
5012         "p7.AttributeType", HFILL }},
5013     { &hf_p7_ua_fetch_attribute_defaults,
5014       { "ua-fetch-attribute-defaults", "p7.ua_fetch_attribute_defaults",
5015         FT_UINT32, BASE_DEC, NULL, 0,
5016         "p7.SET_SIZE_0_ub_default_registrations_OF_AttributeType", HFILL }},
5017     { &hf_p7_ua_fetch_attribute_defaults_item,
5018       { "ua-fetch-attribute-defaults", "p7.ua_fetch_attribute_defaults_item",
5019         FT_OID, BASE_NONE, NULL, 0,
5020         "p7.AttributeType", HFILL }},
5021     { &hf_p7_ua_submission_defaults,
5022       { "ua-submission-defaults", "p7.ua_submission_defaults",
5023         FT_NONE, BASE_NONE, NULL, 0,
5024         "p7.MSSubmissionOptions", HFILL }},
5025     { &hf_p7_content_specific_defaults,
5026       { "content-specific-defaults", "p7.content_specific_defaults",
5027         FT_UINT32, BASE_DEC, NULL, 0,
5028         "p7.MSExtensions", HFILL }},
5029     { &hf_p7_MessageGroupRegistrations_item,
5030       { "MessageGroupRegistrations", "p7.MessageGroupRegistrations_item",
5031         FT_UINT32, BASE_DEC, VALS(p7_MessageGroupRegistrations_item_vals), 0,
5032         "p7.MessageGroupRegistrations_item", HFILL }},
5033     { &hf_p7_register_group,
5034       { "register-group", "p7.register_group",
5035         FT_NONE, BASE_NONE, NULL, 0,
5036         "p7.MessageGroupNameAndDescriptor", HFILL }},
5037     { &hf_p7_deregister_group,
5038       { "deregister-group", "p7.deregister_group",
5039         FT_UINT32, BASE_DEC, NULL, 0,
5040         "p7.MessageGroupName", HFILL }},
5041     { &hf_p7_change_descriptors,
5042       { "change-descriptors", "p7.change_descriptors",
5043         FT_NONE, BASE_NONE, NULL, 0,
5044         "p7.MessageGroupNameAndDescriptor", HFILL }},
5045     { &hf_p7_message_group_name,
5046       { "message-group-name", "p7.message_group_name",
5047         FT_UINT32, BASE_DEC, NULL, 0,
5048         "p7.MessageGroupName", HFILL }},
5049     { &hf_p7_message_group_descriptor,
5050       { "message-group-descriptor", "p7.message_group_descriptor",
5051         FT_STRING, BASE_NONE, NULL, 0,
5052         "p7.GeneralString_SIZE_1_ub_group_descriptor_length", HFILL }},
5053     { &hf_p7_registrations,
5054       { "registrations", "p7.registrations",
5055         FT_BYTES, BASE_HEX, NULL, 0,
5056         "p7.T_registrations", HFILL }},
5057     { &hf_p7_extended_registrations,
5058       { "extended-registrations", "p7.extended_registrations",
5059         FT_UINT32, BASE_DEC, NULL, 0,
5060         "p7.T_extended_registrations", HFILL }},
5061     { &hf_p7_extended_registrations_item,
5062       { "extended-registrations", "p7.extended_registrations_item",
5063         FT_NONE, BASE_NONE, NULL, 0,
5064         "p7.T_extended_registrations_item", HFILL }},
5065     { &hf_p7_restrict_message_groups,
5066       { "restrict-message-groups", "p7.restrict_message_groups",
5067         FT_NONE, BASE_NONE, NULL, 0,
5068         "p7.MessageGroupsRestriction", HFILL }},
5069     { &hf_p7_parent_group,
5070       { "parent-group", "p7.parent_group",
5071         FT_UINT32, BASE_DEC, NULL, 0,
5072         "p7.MessageGroupName", HFILL }},
5073     { &hf_p7_immediate_descendants_only,
5074       { "immediate-descendants-only", "p7.immediate_descendants_only",
5075         FT_BOOLEAN, 8, NULL, 0,
5076         "p7.BOOLEAN", HFILL }},
5077     { &hf_p7_omit_descriptors,
5078       { "omit-descriptors", "p7.omit_descriptors",
5079         FT_BOOLEAN, 8, NULL, 0,
5080         "p7.BOOLEAN", HFILL }},
5081     { &hf_p7_algorithm_identifier,
5082       { "algorithm-identifier", "p7.algorithm_identifier",
5083         FT_OID, BASE_NONE, NULL, 0,
5084         "p7.OBJECT_IDENTIFIER", HFILL }},
5085     { &hf_p7_old_credentials,
5086       { "old-credentials", "p7.old_credentials",
5087         FT_UINT32, BASE_DEC, VALS(x411_Credentials_vals), 0,
5088         "x411.InitiatorCredentials", HFILL }},
5089     { &hf_p7_password_delta,
5090       { "password-delta", "p7.password_delta",
5091         FT_BYTES, BASE_HEX, NULL, 0,
5092         "p7.BIT_STRING", HFILL }},
5093     { &hf_p7_no_status_information,
5094       { "no-status-information", "p7.no_status_information",
5095         FT_NONE, BASE_NONE, NULL, 0,
5096         "p7.NULL", HFILL }},
5097     { &hf_p7_registered_information,
5098       { "registered-information", "p7.registered_information",
5099         FT_NONE, BASE_NONE, NULL, 0,
5100         "p7.T_registered_information", HFILL }},
5101     { &hf_p7_registered_list_attribute_defaults,
5102       { "list-attribute-defaults", "p7.list_attribute_defaults",
5103         FT_UINT32, BASE_DEC, NULL, 0,
5104         "p7.SET_SIZE_1_ub_default_registrations_OF_AttributeType", HFILL }},
5105     { &hf_p7_registered_list_attribute_defaults_item,
5106       { "list-attribute-defaults", "p7.list_attribute_defaults_item",
5107         FT_OID, BASE_NONE, NULL, 0,
5108         "p7.AttributeType", HFILL }},
5109     { &hf_p7_registered_fetch_attribute_defaults,
5110       { "fetch-attribute-defaults", "p7.fetch_attribute_defaults",
5111         FT_UINT32, BASE_DEC, NULL, 0,
5112         "p7.SET_SIZE_1_ub_default_registrations_OF_AttributeType", HFILL }},
5113     { &hf_p7_registered_fetch_attribute_defaults_item,
5114       { "fetch-attribute-defaults", "p7.fetch_attribute_defaults_item",
5115         FT_OID, BASE_NONE, NULL, 0,
5116         "p7.AttributeType", HFILL }},
5117     { &hf_p7_registered_message_group_registrations,
5118       { "message-group-registrations", "p7.message_group_registrations",
5119         FT_UINT32, BASE_DEC, NULL, 0,
5120         "p7.SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor", HFILL }},
5121     { &hf_p7_registered_message_group_registrations_item,
5122       { "message-group-registrations", "p7.message_group_registrations_item",
5123         FT_NONE, BASE_NONE, NULL, 0,
5124         "p7.MessageGroupNameAndDescriptor", HFILL }},
5125     { &hf_p7_register_ms_result_extensions,
5126       { "register-ms-result-extensions", "p7.register_ms_result_extensions",
5127         FT_UINT32, BASE_DEC, NULL, 0,
5128         "p7.MSExtensions", HFILL }},
5129     { &hf_p7_alert_registration_identifier,
5130       { "alert-registration-identifier", "p7.alert_registration_identifier",
5131         FT_UINT32, BASE_DEC, NULL, 0,
5132         "p7.INTEGER_1_ub_auto_actions", HFILL }},
5133     { &hf_p7_new_entry,
5134       { "new-entry", "p7.new_entry",
5135         FT_NONE, BASE_NONE, NULL, 0,
5136         "p7.EntryInformation", HFILL }},
5137     { &hf_p7_entries,
5138       { "entries", "p7.entries",
5139         FT_UINT32, BASE_DEC, VALS(p7_T_entries_vals), 0,
5140         "p7.T_entries", HFILL }},
5141     { &hf_p7_specific_entries,
5142       { "specific-entries", "p7.specific_entries",
5143         FT_UINT32, BASE_DEC, NULL, 0,
5144         "p7.SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber", HFILL }},
5145     { &hf_p7_specific_entries_item,
5146       { "specific-entries", "p7.specific_entries_item",
5147         FT_UINT32, BASE_DEC, NULL, 0,
5148         "p7.SequenceNumber", HFILL }},
5149     { &hf_p7_modifications,
5150       { "modifications", "p7.modifications",
5151         FT_UINT32, BASE_DEC, NULL, 0,
5152         "p7.SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification", HFILL }},
5153     { &hf_p7_modifications_item,
5154       { "modifications", "p7.modifications_item",
5155         FT_NONE, BASE_NONE, NULL, 0,
5156         "p7.EntryModification", HFILL }},
5157     { &hf_p7_modify_extensions,
5158       { "modify-extensions", "p7.modify_extensions",
5159         FT_UINT32, BASE_DEC, NULL, 0,
5160         "p7.MSExtensions", HFILL }},
5161     { &hf_p7_strict,
5162       { "strict", "p7.strict",
5163         FT_BOOLEAN, 8, NULL, 0,
5164         "p7.BOOLEAN", HFILL }},
5165     { &hf_p7_modification,
5166       { "modification", "p7.modification",
5167         FT_UINT32, BASE_DEC, VALS(p7_T_modification_vals), 0,
5168         "p7.T_modification", HFILL }},
5169     { &hf_p7_add_attribute,
5170       { "add-attribute", "p7.add_attribute",
5171         FT_NONE, BASE_NONE, NULL, 0,
5172         "p7.Attribute", HFILL }},
5173     { &hf_p7_remove_attribute,
5174       { "remove-attribute", "p7.remove_attribute",
5175         FT_OID, BASE_NONE, NULL, 0,
5176         "p7.AttributeType", HFILL }},
5177     { &hf_p7_add_values,
5178       { "add-values", "p7.add_values",
5179         FT_NONE, BASE_NONE, NULL, 0,
5180         "p7.OrderedAttribute", HFILL }},
5181     { &hf_p7_remove_values,
5182       { "remove-values", "p7.remove_values",
5183         FT_NONE, BASE_NONE, NULL, 0,
5184         "p7.OrderedAttribute", HFILL }},
5185     { &hf_p7_ordered_attribute_values,
5186       { "attribute-values", "p7.attribute_values",
5187         FT_UINT32, BASE_DEC, NULL, 0,
5188         "p7.OrderedAttributeValues", HFILL }},
5189     { &hf_p7_ordered_attribute_values_item,
5190       { "attribute-values", "p7.attribute_values_item",
5191         FT_NONE, BASE_NONE, NULL, 0,
5192         "p7.OrderedAttributeItem", HFILL }},
5193     { &hf_p7_ordered_attribute_value,
5194       { "value", "p7.value",
5195         FT_NONE, BASE_NONE, NULL, 0,
5196         "p7.OrderedAttributeValue", HFILL }},
5197     { &hf_p7_ordered_position,
5198       { "position", "p7.position",
5199         FT_UINT32, BASE_DEC, NULL, 0,
5200         "p7.INTEGER_1_ub_attribute_values", HFILL }},
5201     { &hf_p7_entries_modified,
5202       { "entries-modified", "p7.entries_modified",
5203         FT_UINT32, BASE_DEC, NULL, 0,
5204         "p7.SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber", HFILL }},
5205     { &hf_p7_entries_modified_item,
5206       { "entries-modified", "p7.entries_modified_item",
5207         FT_UINT32, BASE_DEC, NULL, 0,
5208         "p7.SequenceNumber", HFILL }},
5209     { &hf_p7_modify_result_extensions,
5210       { "modify-result-extensions", "p7.modify_result_extensions",
5211         FT_UINT32, BASE_DEC, NULL, 0,
5212         "p7.MSExtensions", HFILL }},
5213     { &hf_p7_envelope,
5214       { "envelope", "p7.envelope",
5215         FT_NONE, BASE_NONE, NULL, 0,
5216         "x411.MessageSubmissionEnvelope", HFILL }},
5217     { &hf_p7_content,
5218       { "content", "p7.content",
5219         FT_BYTES, BASE_HEX, NULL, 0,
5220         "x411.Content", HFILL }},
5221     { &hf_p7_submission_options,
5222       { "submission-options", "p7.submission_options",
5223         FT_NONE, BASE_NONE, NULL, 0,
5224         "p7.MSSubmissionOptions", HFILL }},
5225     { &hf_p7_mts_result,
5226       { "mts-result", "p7.mts_result",
5227         FT_NONE, BASE_NONE, NULL, 0,
5228         "p7.T_mts_result", HFILL }},
5229     { &hf_p7_message_submission_identifier,
5230       { "message-submission-identifier", "p7.message_submission_identifier",
5231         FT_NONE, BASE_NONE, NULL, 0,
5232         "x411.MessageSubmissionIdentifier", HFILL }},
5233     { &hf_p7_message_submission_time,
5234       { "message-submission-time", "p7.message_submission_time",
5235         FT_STRING, BASE_NONE, NULL, 0,
5236         "x411.MessageSubmissionTime", HFILL }},
5237     { &hf_p7_content_identifier,
5238       { "content-identifier", "p7.content_identifier",
5239         FT_STRING, BASE_NONE, NULL, 0,
5240         "x411.ContentIdentifier", HFILL }},
5241     { &hf_p7_extensions,
5242       { "extensions", "p7.extensions",
5243         FT_UINT32, BASE_DEC, NULL, 0,
5244         "p7.SET_OF_ExtensionField", HFILL }},
5245     { &hf_p7_extensions_item,
5246       { "extensions", "p7.extensions_item",
5247         FT_NONE, BASE_NONE, NULL, 0,
5248         "x411.ExtensionField", HFILL }},
5249     { &hf_p7_ms_message_result,
5250       { "ms-message-result", "p7.ms_message_result",
5251         FT_NONE, BASE_NONE, NULL, 0,
5252         "p7.CommonSubmissionResults", HFILL }},
5253     { &hf_p7_store_draft_result,
5254       { "store-draft-result", "p7.store_draft_result",
5255         FT_NONE, BASE_NONE, NULL, 0,
5256         "p7.CommonSubmissionResults", HFILL }},
5257     { &hf_p7_originator_name,
5258       { "originator-name", "p7.originator_name",
5259         FT_NONE, BASE_NONE, NULL, 0,
5260         "x411.MTSOriginatorName", HFILL }},
5261     { &hf_p7_original_encoded_information_types,
5262       { "original-encoded-information-types", "p7.original_encoded_information_types",
5263         FT_NONE, BASE_NONE, NULL, 0,
5264         "x411.OriginalEncodedInformationTypes", HFILL }},
5265     { &hf_p7_content_type,
5266       { "content-type", "p7.content_type",
5267         FT_UINT32, BASE_DEC, VALS(x411_ContentType_vals), 0,
5268         "x411.ContentType", HFILL }},
5269     { &hf_p7_content_length,
5270       { "content-length", "p7.content_length",
5271         FT_UINT32, BASE_DEC, NULL, 0,
5272         "x411.ContentLength", HFILL }},
5273     { &hf_p7_per_message_indicators,
5274       { "per-message-indicators", "p7.per_message_indicators",
5275         FT_BYTES, BASE_HEX, NULL, 0,
5276         "x411.PerMessageIndicators", HFILL }},
5277     { &hf_p7_per_recipient_fields,
5278       { "per-recipient-fields", "p7.per_recipient_fields",
5279         FT_UINT32, BASE_DEC, NULL, 0,
5280         "p7.SEQUENCE_OF_PerRecipientProbeSubmissionFields", HFILL }},
5281     { &hf_p7_per_recipient_fields_item,
5282       { "per-recipient-fields", "p7.per_recipient_fields_item",
5283         FT_NONE, BASE_NONE, NULL, 0,
5284         "x411.PerRecipientProbeSubmissionFields", HFILL }},
5285     { &hf_p7_probe_submission_identifier,
5286       { "probe-submission-identifier", "p7.probe_submission_identifier",
5287         FT_NONE, BASE_NONE, NULL, 0,
5288         "x411.ProbeSubmissionIdentifier", HFILL }},
5289     { &hf_p7_probe_submission_time,
5290       { "probe-submission-time", "p7.probe_submission_time",
5291         FT_STRING, BASE_NONE, NULL, 0,
5292         "x411.ProbeSubmissionTime", HFILL }},
5293     { &hf_p7_ms_probe_result,
5294       { "ms-probe-result", "p7.ms_probe_result",
5295         FT_NONE, BASE_NONE, NULL, 0,
5296         "p7.CommonSubmissionResults", HFILL }},
5297     { &hf_p7_attribute_problems,
5298       { "problems", "p7.problems",
5299         FT_UINT32, BASE_DEC, NULL, 0,
5300         "p7.AttributeProblems", HFILL }},
5301     { &hf_p7_attribute_problem_item,
5302       { "problems", "p7.problems_item",
5303         FT_NONE, BASE_NONE, NULL, 0,
5304         "p7.AttributeProblemItem", HFILL }},
5305     { &hf_p7_attribute_problem,
5306       { "problem", "p7.problem",
5307         FT_UINT32, BASE_DEC, VALS(p7_AttributeProblem_vals), 0,
5308         "p7.AttributeProblem", HFILL }},
5309     { &hf_p7_attr_value,
5310       { "value", "p7.value",
5311         FT_NONE, BASE_NONE, NULL, 0,
5312         "p7.T_attr_value", HFILL }},
5313     { &hf_p7_auto_action_request_problems,
5314       { "problems", "p7.problems",
5315         FT_UINT32, BASE_DEC, NULL, 0,
5316         "p7.AutoActionRequestProblems", HFILL }},
5317     { &hf_p7_auto_action_request_problem_item,
5318       { "problems", "p7.problems_item",
5319         FT_NONE, BASE_NONE, NULL, 0,
5320         "p7.AutoActionRequestProblemItem", HFILL }},
5321     { &hf_p7_auto_action_request_problem,
5322       { "problem", "p7.problem",
5323         FT_UINT32, BASE_DEC, VALS(p7_AutoActionRequestProblem_vals), 0,
5324         "p7.AutoActionRequestProblem", HFILL }},
5325     { &hf_p7_delete_problems,
5326       { "problems", "p7.problems",
5327         FT_UINT32, BASE_DEC, NULL, 0,
5328         "p7.DeleteProblems", HFILL }},
5329     { &hf_p7_delete_problem_item,
5330       { "problems", "p7.problems_item",
5331         FT_NONE, BASE_NONE, NULL, 0,
5332         "p7.DeleteProblemItem", HFILL }},
5333     { &hf_p7_delete_problem,
5334       { "problem", "p7.problem",
5335         FT_UINT32, BASE_DEC, VALS(p7_DeleteProblem_vals), 0,
5336         "p7.DeleteProblem", HFILL }},
5337     { &hf_p7_entries_deleted,
5338       { "entries-deleted", "p7.entries_deleted",
5339         FT_UINT32, BASE_DEC, NULL, 0,
5340         "p7.SET_SIZE_1_ub_messages_OF_SequenceNumber", HFILL }},
5341     { &hf_p7_entries_deleted_item,
5342       { "entries-deleted", "p7.entries_deleted_item",
5343         FT_UINT32, BASE_DEC, NULL, 0,
5344         "p7.SequenceNumber", HFILL }},
5345     { &hf_p7_fetch_restriction_problems,
5346       { "problems", "p7.problems",
5347         FT_UINT32, BASE_DEC, NULL, 0,
5348         "p7.FetchRestrictionProblems", HFILL }},
5349     { &hf_p7_fetch_restriction_problem_item,
5350       { "problems", "p7.problems_item",
5351         FT_NONE, BASE_NONE, NULL, 0,
5352         "p7.FetchRestrictionProblemItem", HFILL }},
5353     { &hf_p7_fetch_restriction_problem,
5354       { "problem", "p7.problem",
5355         FT_UINT32, BASE_DEC, VALS(p7_FetchRestrictionProblem_vals), 0,
5356         "p7.FetchRestrictionProblem", HFILL }},
5357     { &hf_p7_restriction,
5358       { "restriction", "p7.restriction",
5359         FT_UINT32, BASE_DEC, VALS(p7_T_restriction_vals), 0,
5360         "p7.T_restriction", HFILL }},
5361     { &hf_p7_extended_content_type,
5362       { "content-type", "p7.content_type",
5363         FT_OID, BASE_NONE, NULL, 0,
5364         "p7.OBJECT_IDENTIFIER", HFILL }},
5365     { &hf_p7_eit,
5366       { "eit", "p7.eit",
5367         FT_UINT32, BASE_DEC, NULL, 0,
5368         "p7.MS_EITs", HFILL }},
5369     { &hf_p7_attribute_length,
5370       { "attribute-length", "p7.attribute_length",
5371         FT_INT32, BASE_DEC, NULL, 0,
5372         "p7.INTEGER", HFILL }},
5373     { &hf_p7_range_problem,
5374       { "problem", "p7.problem",
5375         FT_UINT32, BASE_DEC, VALS(p7_RangeProblem_vals), 0,
5376         "p7.RangeProblem", HFILL }},
5377     { &hf_p7_sequence_number_problems,
5378       { "problems", "p7.problems",
5379         FT_UINT32, BASE_DEC, NULL, 0,
5380         "p7.SequenceNumberProblems", HFILL }},
5381     { &hf_p7_sequence_number_problem_item,
5382       { "problems", "p7.problems_item",
5383         FT_NONE, BASE_NONE, NULL, 0,
5384         "p7.SequenceNumberProblemItem", HFILL }},
5385     { &hf_p7_sequence_number_problem,
5386       { "problem", "p7.problem",
5387         FT_UINT32, BASE_DEC, VALS(p7_SequenceNumberProblem_vals), 0,
5388         "p7.SequenceNumberProblem", HFILL }},
5389     { &hf_p7_service_problem,
5390       { "problem", "p7.problem",
5391         FT_UINT32, BASE_DEC, VALS(p7_ServiceProblem_vals), 0,
5392         "p7.ServiceProblem", HFILL }},
5393     { &hf_p7_message_group_problem,
5394       { "problem", "p7.problem",
5395         FT_UINT32, BASE_DEC, VALS(p7_MessageGroupProblem_vals), 0,
5396         "p7.MessageGroupProblem", HFILL }},
5397     { &hf_p7_name,
5398       { "name", "p7.name",
5399         FT_UINT32, BASE_DEC, NULL, 0,
5400         "p7.MessageGroupName", HFILL }},
5401     { &hf_p7_ms_extension_problem,
5402       { "ms-extension-problem", "p7.ms_extension_problem",
5403         FT_NONE, BASE_NONE, NULL, 0,
5404         "p7.MSExtensionItem", HFILL }},
5405     { &hf_p7_unknown_ms_extension,
5406       { "unknown-ms-extension", "p7.unknown_ms_extension",
5407         FT_OID, BASE_NONE, NULL, 0,
5408         "p7.OBJECT_IDENTIFIER", HFILL }},
5409     { &hf_p7_register_ms_problem,
5410       { "problem", "p7.problem",
5411         FT_UINT32, BASE_DEC, VALS(p7_RegistrationProblem_vals), 0,
5412         "p7.RegistrationProblem", HFILL }},
5413     { &hf_p7_registration_type,
5414       { "registration-type", "p7.registration_type",
5415         FT_NONE, BASE_NONE, NULL, 0,
5416         "p7.RegistrationTypes", HFILL }},
5417     { &hf_p7_failing_entry,
5418       { "failing-entry", "p7.failing_entry",
5419         FT_UINT32, BASE_DEC, NULL, 0,
5420         "p7.SequenceNumber", HFILL }},
5421     { &hf_p7_modification_number,
5422       { "modification-number", "p7.modification_number",
5423         FT_INT32, BASE_DEC, NULL, 0,
5424         "p7.INTEGER", HFILL }},
5425     { &hf_p7_modify_problem,
5426       { "problem", "p7.problem",
5427         FT_UINT32, BASE_DEC, VALS(p7_ModifyProblem_vals), 0,
5428         "p7.ModifyProblem", HFILL }},
5429     { &hf_p7_entry_class_problem,
5430       { "problem", "p7.problem",
5431         FT_BYTES, BASE_HEX, NULL, 0,
5432         "p7.T_entry_class_problem", HFILL }},
5433     { &hf_p7_no_correlated_reports,
5434       { "no-correlated-reports", "p7.no_correlated_reports",
5435         FT_NONE, BASE_NONE, NULL, 0,
5436         "p7.NULL", HFILL }},
5437     { &hf_p7_location,
5438       { "location", "p7.location",
5439         FT_UINT32, BASE_DEC, NULL, 0,
5440         "p7.SEQUENCE_OF_PerRecipientReport", HFILL }},
5441     { &hf_p7_location_item,
5442       { "location", "p7.location_item",
5443         FT_NONE, BASE_NONE, NULL, 0,
5444         "p7.PerRecipientReport", HFILL }},
5445     { &hf_p7_report_entry,
5446       { "report-entry", "p7.report_entry",
5447         FT_UINT32, BASE_DEC, NULL, 0,
5448         "p7.SequenceNumber", HFILL }},
5449     { &hf_p7_position,
5450       { "position", "p7.position",
5451         FT_UINT32, BASE_DEC, NULL, 0,
5452         "p7.INTEGER_1_ub_recipients", HFILL }},
5453     { &hf_p7_submission_control_violated,
5454       { "submission-control-violated", "p7.submission_control_violated",
5455         FT_NONE, BASE_NONE, NULL, 0,
5456         "p7.NULL", HFILL }},
5457     { &hf_p7_originator_invalid,
5458       { "originator-invalid", "p7.originator_invalid",
5459         FT_NONE, BASE_NONE, NULL, 0,
5460         "p7.NULL", HFILL }},
5461     { &hf_p7_recipient_improperly_specified,
5462       { "recipient-improperly-specified", "p7.recipient_improperly_specified",
5463         FT_UINT32, BASE_DEC, NULL, 0,
5464         "x411.ImproperlySpecifiedRecipients", HFILL }},
5465     { &hf_p7_element_of_service_not_subscribed,
5466       { "element-of-service-not-subscribed", "p7.element_of_service_not_subscribed",
5467         FT_NONE, BASE_NONE, NULL, 0,
5468         "p7.NULL", HFILL }},
5469     { &hf_p7_inconsistent_request,
5470       { "inconsistent-request", "p7.inconsistent_request",
5471         FT_NONE, BASE_NONE, NULL, 0,
5472         "p7.NULL", HFILL }},
5473     { &hf_p7_security_error,
5474       { "security-error", "p7.security_error",
5475         FT_UINT32, BASE_DEC, VALS(x411_SecurityProblem_vals), 0,
5476         "x411.SecurityProblem", HFILL }},
5477     { &hf_p7_unsupported_critical_function,
5478       { "unsupported-critical-function", "p7.unsupported_critical_function",
5479         FT_NONE, BASE_NONE, NULL, 0,
5480         "p7.NULL", HFILL }},
5481     { &hf_p7_remote_bind_error,
5482       { "remote-bind-error", "p7.remote_bind_error",
5483         FT_NONE, BASE_NONE, NULL, 0,
5484         "p7.NULL", HFILL }},
5485     { &hf_p7_service_error,
5486       { "service-error", "p7.service_error",
5487         FT_NONE, BASE_NONE, NULL, 0,
5488         "p7.ServiceErrorParameter", HFILL }},
5489     { &hf_p7_message_group_error,
5490       { "message-group-error", "p7.message_group_error",
5491         FT_NONE, BASE_NONE, NULL, 0,
5492         "p7.MessageGroupErrorParameter", HFILL }},
5493     { &hf_p7_ms_extension_error,
5494       { "ms-extension-error", "p7.ms_extension_error",
5495         FT_UINT32, BASE_DEC, VALS(p7_MSExtensionErrorParameter_vals), 0,
5496         "p7.MSExtensionErrorParameter", HFILL }},
5497     { &hf_p7_entry_class_error,
5498       { "entry-class-error", "p7.entry_class_error",
5499         FT_NONE, BASE_NONE, NULL, 0,
5500         "p7.EntryClassErrorParameter", HFILL }},
5501     { &hf_p7_content_integrity_check,
5502       { "content-integrity-check", "p7.content_integrity_check",
5503         FT_INT32, BASE_DEC, VALS(p7_SignatureStatus_vals), 0,
5504         "p7.SignatureStatus", HFILL }},
5505     { &hf_p7_message_origin_authentication_check,
5506       { "message-origin-authentication-check", "p7.message_origin_authentication_check",
5507         FT_INT32, BASE_DEC, VALS(p7_SignatureStatus_vals), 0,
5508         "p7.SignatureStatus", HFILL }},
5509     { &hf_p7_message_token,
5510       { "message-token", "p7.message_token",
5511         FT_INT32, BASE_DEC, VALS(p7_SignatureStatus_vals), 0,
5512         "p7.SignatureStatus", HFILL }},
5513     { &hf_p7_report_origin_authentication_check,
5514       { "report-origin-authentication-check", "p7.report_origin_authentication_check",
5515         FT_INT32, BASE_DEC, VALS(p7_SignatureStatus_vals), 0,
5516         "p7.SignatureStatus", HFILL }},
5517     { &hf_p7_proof_of_delivery,
5518       { "proof-of-delivery", "p7.proof_of_delivery",
5519         FT_INT32, BASE_DEC, VALS(p7_SignatureStatus_vals), 0,
5520         "p7.SignatureStatus", HFILL }},
5521     { &hf_p7_proof_of_submission,
5522       { "proof-of-submission", "p7.proof_of_submission",
5523         FT_INT32, BASE_DEC, VALS(p7_SignatureStatus_vals), 0,
5524         "p7.SignatureStatus", HFILL }},
5525     { &hf_p7_rtorq_apdu,
5526       { "rtorq-apdu", "p7.rtorq_apdu",
5527         FT_NONE, BASE_NONE, NULL, 0,
5528         "rtse.RTORQapdu", HFILL }},
5529     { &hf_p7_rtoac_apdu,
5530       { "rtoac-apdu", "p7.rtoac_apdu",
5531         FT_NONE, BASE_NONE, NULL, 0,
5532         "rtse.RTOACapdu", HFILL }},
5533     { &hf_p7_rtorj_apdu,
5534       { "rtorj-apdu", "p7.rtorj_apdu",
5535         FT_NONE, BASE_NONE, NULL, 0,
5536         "rtse.RTORJapdu", HFILL }},
5537     { &hf_p7_rttp_apdu,
5538       { "rttp-apdu", "p7.rttp_apdu",
5539         FT_INT32, BASE_DEC, NULL, 0,
5540         "p7.RTTPapdu", HFILL }},
5541     { &hf_p7_rttr_apdu,
5542       { "rttr-apdu", "p7.rttr_apdu",
5543         FT_BYTES, BASE_HEX, NULL, 0,
5544         "p7.RTTRapdu", HFILL }},
5545     { &hf_p7_rtab_apdu,
5546       { "rtab-apdu", "p7.rtab_apdu",
5547         FT_NONE, BASE_NONE, NULL, 0,
5548         "p7.RTABapdu", HFILL }},
5549     { &hf_p7_abortReason,
5550       { "abortReason", "p7.abortReason",
5551         FT_INT32, BASE_DEC, VALS(p7_AbortReason_vals), 0,
5552         "p7.AbortReason", HFILL }},
5553     { &hf_p7_reflectedParameter,
5554       { "reflectedParameter", "p7.reflectedParameter",
5555         FT_BYTES, BASE_HEX, NULL, 0,
5556         "p7.BIT_STRING", HFILL }},
5557     { &hf_p7_userdataAB,
5558       { "userdataAB", "p7.userdataAB",
5559         FT_NONE, BASE_NONE, NULL, 0,
5560         "p7.T_userdataAB", HFILL }},
5561     { &hf_p7_OverrideRestrictions_override_content_types_restriction,
5562       { "override-content-types-restriction", "p7.override-content-types-restriction",
5563         FT_BOOLEAN, 8, NULL, 0x80,
5564         "", HFILL }},
5565     { &hf_p7_OverrideRestrictions_override_EITs_restriction,
5566       { "override-EITs-restriction", "p7.override-EITs-restriction",
5567         FT_BOOLEAN, 8, NULL, 0x40,
5568         "", HFILL }},
5569     { &hf_p7_OverrideRestrictions_override_attribute_length_restriction,
5570       { "override-attribute-length-restriction", "p7.override-attribute-length-restriction",
5571         FT_BOOLEAN, 8, NULL, 0x20,
5572         "", HFILL }},
5573     { &hf_p7_T_registrations_auto_action_registrations,
5574       { "auto-action-registrations", "p7.auto-action-registrations",
5575         FT_BOOLEAN, 8, NULL, 0x80,
5576         "", HFILL }},
5577     { &hf_p7_T_registrations_list_attribute_defaults,
5578       { "list-attribute-defaults", "p7.list-attribute-defaults",
5579         FT_BOOLEAN, 8, NULL, 0x40,
5580         "", HFILL }},
5581     { &hf_p7_T_registrations_fetch_attribute_defaults,
5582       { "fetch-attribute-defaults", "p7.fetch-attribute-defaults",
5583         FT_BOOLEAN, 8, NULL, 0x20,
5584         "", HFILL }},
5585     { &hf_p7_T_registrations_ua_registrations,
5586       { "ua-registrations", "p7.ua-registrations",
5587         FT_BOOLEAN, 8, NULL, 0x10,
5588         "", HFILL }},
5589     { &hf_p7_T_registrations_submission_defaults,
5590       { "submission-defaults", "p7.submission-defaults",
5591         FT_BOOLEAN, 8, NULL, 0x08,
5592         "", HFILL }},
5593     { &hf_p7_T_registrations_message_group_registrations,
5594       { "message-group-registrations", "p7.message-group-registrations",
5595         FT_BOOLEAN, 8, NULL, 0x04,
5596         "", HFILL }},
5597     { &hf_p7_T_entry_class_problem_unsupported_entry_class,
5598       { "unsupported-entry-class", "p7.unsupported-entry-class",
5599         FT_BOOLEAN, 8, NULL, 0x80,
5600         "", HFILL }},
5601     { &hf_p7_T_entry_class_problem_entry_class_not_subscribed,
5602       { "entry-class-not-subscribed", "p7.entry-class-not-subscribed",
5603         FT_BOOLEAN, 8, NULL, 0x40,
5604         "", HFILL }},
5605     { &hf_p7_T_entry_class_problem_inappropriate_entry_class,
5606       { "inappropriate-entry-class", "p7.inappropriate-entry-class",
5607         FT_BOOLEAN, 8, NULL, 0x20,
5608         "", HFILL }},
5609
5610 /*--- End of included file: packet-p7-hfarr.c ---*/
5611 #line 96 "packet-p7-template.c"
5612   };
5613
5614   /* List of subtrees */
5615   static gint *ett[] = {
5616     &ett_p7,
5617
5618 /*--- Included file: packet-p7-ettarr.c ---*/
5619 #line 1 "packet-p7-ettarr.c"
5620     &ett_p7_Attribute,
5621     &ett_p7_AttributeValues,
5622     &ett_p7_AutoActionRegistration,
5623     &ett_p7_AutoActionError,
5624     &ett_p7_MSExtensions,
5625     &ett_p7_MessageGroupName,
5626     &ett_p7_MSBindArgument,
5627     &ett_p7_Restrictions,
5628     &ett_p7_T_allowed_content_types,
5629     &ett_p7_MS_EITs,
5630     &ett_p7_MSBindResult,
5631     &ett_p7_SET_SIZE_1_ub_auto_actions_OF_AutoActionType,
5632     &ett_p7_SET_SIZE_1_ub_attributes_supported_OF_AttributeType,
5633     &ett_p7_T_content_types_supported,
5634     &ett_p7_SET_SIZE_1_ub_entry_classes_OF_EntryClass,
5635     &ett_p7_T_matching_rules_supported,
5636     &ett_p7_T_unsupported_extensions,
5637     &ett_p7_ChangeCredentialsAlgorithms,
5638     &ett_p7_AutoActionErrorIndication,
5639     &ett_p7_PAR_ms_bind_error,
5640     &ett_p7_T_qualified_error,
5641     &ett_p7_T_bind_extension_errors,
5642     &ett_p7_Range,
5643     &ett_p7_NumberRange,
5644     &ett_p7_TimeRange,
5645     &ett_p7_Filter,
5646     &ett_p7_SET_OF_Filter,
5647     &ett_p7_FilterItem,
5648     &ett_p7_T_substrings,
5649     &ett_p7_T_strings,
5650     &ett_p7_T_strings_item,
5651     &ett_p7_MatchingRuleAssertion,
5652     &ett_p7_AttributeValueAssertion,
5653     &ett_p7_Selector,
5654     &ett_p7_OverrideRestrictions,
5655     &ett_p7_EntryInformationSelection,
5656     &ett_p7_AttributeSelection,
5657     &ett_p7_EntryInformation,
5658     &ett_p7_SET_SIZE_1_ub_per_entry_OF_Attribute,
5659     &ett_p7_SET_SIZE_1_ub_per_entry_OF_AttributeValueCount,
5660     &ett_p7_AttributeValueCount,
5661     &ett_p7_MSSubmissionOptions,
5662     &ett_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupName,
5663     &ett_p7_CommonSubmissionResults,
5664     &ett_p7_SummarizeArgument,
5665     &ett_p7_SEQUENCE_SIZE_1_ub_summaries_OF_AttributeType,
5666     &ett_p7_SummarizeResult,
5667     &ett_p7_SEQUENCE_SIZE_1_ub_summaries_OF_Summary,
5668     &ett_p7_Span,
5669     &ett_p7_Summary,
5670     &ett_p7_T_summary_present,
5671     &ett_p7_T_summary_present_item,
5672     &ett_p7_ListArgument,
5673     &ett_p7_ListResult,
5674     &ett_p7_SEQUENCE_SIZE_1_ub_messages_OF_EntryInformation,
5675     &ett_p7_FetchArgument,
5676     &ett_p7_T_item,
5677     &ett_p7_FetchResult,
5678     &ett_p7_SEQUENCE_SIZE_1_ub_messages_OF_SequenceNumber,
5679     &ett_p7_DeleteArgument,
5680     &ett_p7_T_items,
5681     &ett_p7_SET_SIZE_1_ub_messages_OF_SequenceNumber,
5682     &ett_p7_DeleteResult,
5683     &ett_p7_T_delete_result_94,
5684     &ett_p7_Register_MSArgument,
5685     &ett_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionRegistration,
5686     &ett_p7_SET_SIZE_1_ub_auto_registrations_OF_AutoActionDeregistration,
5687     &ett_p7_SET_SIZE_0_ub_default_registrations_OF_AttributeType,
5688     &ett_p7_T_change_credentials,
5689     &ett_p7_SET_SIZE_1_ub_labels_and_redirections_OF_SecurityLabel,
5690     &ett_p7_SET_SIZE_1_ub_ua_registrations_OF_UARegistration,
5691     &ett_p7_AutoActionDeregistration,
5692     &ett_p7_UARegistration,
5693     &ett_p7_MessageGroupRegistrations,
5694     &ett_p7_MessageGroupRegistrations_item,
5695     &ett_p7_MessageGroupNameAndDescriptor,
5696     &ett_p7_RegistrationTypes,
5697     &ett_p7_T_registrations,
5698     &ett_p7_T_extended_registrations,
5699     &ett_p7_MessageGroupsRestriction,
5700     &ett_p7_ProtectedChangeCredentials,
5701     &ett_p7_Register_MSResult,
5702     &ett_p7_T_registered_information,
5703     &ett_p7_SET_SIZE_1_ub_default_registrations_OF_AttributeType,
5704     &ett_p7_SET_SIZE_1_ub_message_groups_OF_MessageGroupNameAndDescriptor,
5705     &ett_p7_AlertArgument,
5706     &ett_p7_ModifyArgument,
5707     &ett_p7_T_entries,
5708     &ett_p7_SEQUENCE_SIZE_1_ub_modifications_OF_EntryModification,
5709     &ett_p7_EntryModification,
5710     &ett_p7_T_modification,
5711     &ett_p7_OrderedAttribute,
5712     &ett_p7_OrderedAttributeValues,
5713     &ett_p7_OrderedAttributeItem,
5714     &ett_p7_ModifyResult,
5715     &ett_p7_MSMessageSubmissionArgument,
5716     &ett_p7_MSMessageSubmissionResult,
5717     &ett_p7_T_mts_result,
5718     &ett_p7_SET_OF_ExtensionField,
5719     &ett_p7_MSProbeSubmissionArgument,
5720     &ett_p7_SEQUENCE_OF_PerRecipientProbeSubmissionFields,
5721     &ett_p7_MSProbeSubmissionResult,
5722     &ett_p7_PAR_attribute_error,
5723     &ett_p7_AttributeProblems,
5724     &ett_p7_AttributeProblemItem,
5725     &ett_p7_PAR_auto_action_request_error,
5726     &ett_p7_AutoActionRequestProblems,
5727     &ett_p7_AutoActionRequestProblemItem,
5728     &ett_p7_PAR_delete_error,
5729     &ett_p7_DeleteProblems,
5730     &ett_p7_DeleteProblemItem,
5731     &ett_p7_PAR_fetch_restriction_error,
5732     &ett_p7_FetchRestrictionProblems,
5733     &ett_p7_FetchRestrictionProblemItem,
5734     &ett_p7_T_restriction,
5735     &ett_p7_PAR_range_error,
5736     &ett_p7_PAR_sequence_number_error,
5737     &ett_p7_SequenceNumberProblems,
5738     &ett_p7_SequenceNumberProblemItem,
5739     &ett_p7_ServiceErrorParameter,
5740     &ett_p7_MessageGroupErrorParameter,
5741     &ett_p7_MSExtensionErrorParameter,
5742     &ett_p7_PAR_register_ms_error,
5743     &ett_p7_ModifyErrorParameter,
5744     &ett_p7_EntryClassErrorParameter,
5745     &ett_p7_T_entry_class_problem,
5746     &ett_p7_ReportLocation,
5747     &ett_p7_SEQUENCE_OF_PerRecipientReport,
5748     &ett_p7_PerRecipientReport,
5749     &ett_p7_SubmissionError,
5750     &ett_p7_SignatureVerificationStatus,
5751     &ett_p7_RTSE_apdus,
5752     &ett_p7_RTABapdu,
5753
5754 /*--- End of included file: packet-p7-ettarr.c ---*/
5755 #line 102 "packet-p7-template.c"
5756   };
5757   module_t *p7_module;
5758
5759   /* Register protocol */
5760   proto_p7 = proto_register_protocol(PNAME, PSNAME, PFNAME);
5761
5762   /* Register fields and subtrees */
5763   proto_register_field_array(proto_p7, hf, array_length(hf));
5764   proto_register_subtree_array(ett, array_length(ett));
5765
5766   /* Register our configuration options for P7, particularly our port */
5767
5768   p7_module = prefs_register_protocol_subtree("OSI/X.400", proto_p7, prefs_register_p7);
5769
5770   prefs_register_uint_preference(p7_module, "tcp.port", "P7 TCP Port",
5771                                  "Set the port for P7 operations (if other"
5772                                  " than the default of 102)",
5773                                  10, &global_p7_tcp_port);
5774
5775 }
5776
5777
5778 /*--- proto_reg_handoff_p7 --- */
5779 void proto_reg_handoff_p7(void) {
5780
5781
5782 /*--- Included file: packet-p7-dis-tab.c ---*/
5783 #line 1 "packet-p7-dis-tab.c"
5784   register_ber_oid_dissector("2.6.4.3.42", dissect_ReportLocation_PDU, proto_p7, "id-att-ac-correlated-report-list");
5785   register_ber_oid_dissector("2.6.4.3.76", dissect_SequenceNumber_PDU, proto_p7, "id-att-ac-report-subject-entry");
5786   register_ber_oid_dissector("2.6.4.3.43", dissect_ReportSummary_PDU, proto_p7, "id-att-ac-report-summary");
5787   register_ber_oid_dissector("2.6.4.3.44", dissect_PerRecipientReport_PDU, proto_p7, "id-att-ac-uncorrelated-report-list");
5788   register_ber_oid_dissector("2.6.4.3.46", dissect_AutoActionError_PDU, proto_p7, "id-att-auto-action-error");
5789   register_ber_oid_dissector("2.6.4.3.48", dissect_SequenceNumber_PDU, proto_p7, "id-att-auto-action-subject-entry");
5790   register_ber_oid_dissector("2.6.4.3.49", dissect_AutoActionType_PDU, proto_p7, "id-att-auto-action-type");
5791   register_ber_oid_dissector("2.6.4.3.0", dissect_SequenceNumber_PDU, proto_p7, "id-att-child-sequence-numbers");
5792   register_ber_oid_dissector("2.6.4.3.10", dissect_MS_EIT_PDU, proto_p7, "id-att-converted-EITs");
5793   register_ber_oid_dissector("2.6.4.3.11", dissect_CreationTime_PDU, proto_p7, "id-att-creation-time");
5794   register_ber_oid_dissector("2.6.4.3.50", dissect_DeferredDeliveryCancellationTime_PDU, proto_p7, "id-att-deferred-delivery-cancellation-time");
5795   register_ber_oid_dissector("2.6.4.3.52", dissect_DeletionTime_PDU, proto_p7, "id-att-deletion-time");
5796   register_ber_oid_dissector("2.6.4.3.12", dissect_MS_EIT_PDU, proto_p7, "id-att-delivered-EITs");
5797   register_ber_oid_dissector("2.6.4.3.16", dissect_EntryType_PDU, proto_p7, "id-att-entry-type");
5798   register_ber_oid_dissector("2.6.4.3.57", dissect_MessageGroupName_PDU, proto_p7, "id-att-message-group-name");
5799   register_ber_oid_dissector("2.6.4.3.61", dissect_SubmissionError_PDU, proto_p7, "id-att-ms-submission-error");
5800   register_ber_oid_dissector("2.6.4.3.25", dissect_MS_EIT_PDU, proto_p7, "id-att-original-EITs");
5801   register_ber_oid_dissector("2.6.4.3.29", dissect_SequenceNumber_PDU, proto_p7, "id-att-parent-sequence-number");
5802   register_ber_oid_dissector("2.6.4.3.15", dissect_RetrievalStatus_PDU, proto_p7, "id-att-retrieval-status");
5803   register_ber_oid_dissector("2.6.4.3.39", dissect_SequenceNumber_PDU, proto_p7, "id-att-sequence-number");
5804   register_ber_oid_dissector("2.6.4.3.79", dissect_SignatureVerificationStatus_PDU, proto_p7, "id-att-signature-verification-status");
5805   register_ber_oid_dissector("2.6.4.3.73", dissect_StoragePeriod_PDU, proto_p7, "id-att-storage-period");
5806   register_ber_oid_dissector("2.6.4.3.74", dissect_StorageTime_PDU, proto_p7, "id-att-storage-time");
5807   register_ber_oid_dissector("2.6.4.9.5", dissect_ChangeCredentialsAlgorithms_PDU, proto_p7, "id-ext-protected-change-credentials-capability");
5808   register_ber_oid_dissector("2.6.4.9.3", dissect_OriginatorToken_PDU, proto_p7, "id-ext-originator-token");
5809   register_ber_oid_dissector("2.6.4.9.4", dissect_ProtectedChangeCredentials_PDU, proto_p7, "id-ext-protected-change-credentials");
5810   register_ber_oid_dissector("2.6.0.2.10""id-as-ms-rtse", dissect_RTSE_apdus_PDU, proto_p7, "");
5811
5812
5813 /*--- End of included file: packet-p7-dis-tab.c ---*/
5814 #line 128 "packet-p7-template.c"
5815
5816   /* APPLICATION CONTEXT */
5817
5818   oid_add_from_string("id-ac-ms-access","2.6.0.1.11");
5819   oid_add_from_string("id-ac-ms-reliable-access","2.6.0.1.12");
5820
5821   /* ABSTRACT SYNTAXES */
5822
5823   /* Register P7 with ROS (with no use of RTSE) */
5824   register_ros_protocol_info("2.6.0.2.9", &p7_ros_info, 0, "id-as-ms", FALSE); 
5825   register_ros_protocol_info("2.6.0.2.5", &p7_ros_info, 0, "id-as-mrse", FALSE); 
5826   register_ros_protocol_info("2.6.0.2.1", &p7_ros_info, 0, "id-as-msse", FALSE); 
5827
5828   /* remember the tpkt handler for change in preferences */
5829   tpkt_handle = find_dissector("tpkt");
5830 }
5831
5832
5833 void prefs_register_p7(void) {
5834   static guint tcp_port = 0;
5835
5836   /* de-register the old port */
5837   /* port 102 is registered by TPKT - don't undo this! */
5838   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
5839     dissector_delete("tcp.port", tcp_port, tpkt_handle);
5840
5841   /* Set our port number for future use */
5842   tcp_port = global_p7_tcp_port;
5843
5844   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
5845     dissector_add("tcp.port", global_p7_tcp_port, tpkt_handle);
5846
5847 }