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