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