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