/src/wireshark/epan/dissectors/packet-p772.c
Line | Count | Source |
1 | | /* Do not modify this file. Changes will be overwritten. */ |
2 | | /* Generated automatically by the ASN.1 to Wireshark dissector compiler */ |
3 | | /* packet-p772.c */ |
4 | | /* asn2wrs.py -b -q -L -p p772 -c ./p772.cnf -s ./packet-p772-template -D . -O ../.. MMSAbstractService.asn MMSInformationObjects.asn MMSOtherNotificationTypeExtensions.asn MMSObjectIdentifiers.asn MMSHeadingExtensions.asn MMSUpperBounds.asn MMSExtendedBodyPartTypes.asn MMSPerRecipientSpecifierExtensions.asn */ |
5 | | |
6 | | /* packet-p772.c |
7 | | * Routines for STANAG 4406 (X.400 Military Message Extensions) packet dissection |
8 | | * Graeme Lunt 2005 |
9 | | * |
10 | | * Wireshark - Network traffic analyzer |
11 | | * By Gerald Combs <gerald@wireshark.org> |
12 | | * Copyright 1998 Gerald Combs |
13 | | * |
14 | | * SPDX-License-Identifier: GPL-2.0-or-later |
15 | | */ |
16 | | |
17 | | #include "config.h" |
18 | | |
19 | | #include <epan/packet.h> |
20 | | #include <epan/asn1.h> |
21 | | #include <wsutil/array.h> |
22 | | |
23 | | #include "packet-ber.h" |
24 | | |
25 | | #include "packet-x509if.h" |
26 | | |
27 | | #include "packet-p772.h" |
28 | | #include "packet-p1.h" |
29 | | #include "packet-p22.h" |
30 | | |
31 | 14 | #define PNAME "STANAG 4406 Message" |
32 | 14 | #define PSNAME "P772" |
33 | 14 | #define PFNAME "p772" |
34 | | |
35 | | void proto_register_p772(void); |
36 | | void proto_reg_handoff_p772(void); |
37 | | |
38 | | |
39 | | /* Initialize the protocol and registered fields */ |
40 | | static int proto_p772; |
41 | | |
42 | 140 | #define id_mmhs "1.3.26.0.4406.0" |
43 | | #define id_mod id_mmhs".0" |
44 | | #define id_mm id_mmhs".2" |
45 | | #define id_hat id_mmhs".3" |
46 | | #define id_mcont id_mmhs".4" |
47 | | #define id_policy id_mmhs".5" |
48 | | #define id_cat id_mmhs".6" |
49 | 140 | #define id_et id_mmhs".7" |
50 | | #define id_mmts id_mmhs".8" |
51 | | #define id_nat id_mmhs".9" |
52 | | #define id_mot id_mmhs".10" |
53 | | #define id_mpt id_mmhs".11" |
54 | | #define id_ref id_mmhs".12" |
55 | | #define id_informationlabel id_mmhs".13" |
56 | | #define id_mod_upper_bounds id_mod".0" |
57 | | #define id_mod_mms id_mod".1" |
58 | | #define id_mod_functional_objects id_mod".2" |
59 | | #define id_mod_abstract_service id_mod".3" |
60 | | #define id_mod_heading_extension id_mod".6" |
61 | | #define id_mod_extended_body_part_types id_mod".7" |
62 | | #define id_mod_message_store_attributes id_mod".8" |
63 | | #define id_mod_per_recipient_specifier_extensions id_mod".11" |
64 | | #define id_mod_other_notification_type_extensions id_mod".12" |
65 | | #define id_mot_mmme id_mot".0" |
66 | | #define id_mot_mms_user id_mot".1" |
67 | | #define id_mot_mms id_mot".2" |
68 | | #define id_mot_mms_ua id_mot".3" |
69 | | #define id_mot_mms_ms id_mot".4" |
70 | | #define id_mot_acp127au id_mot".5" |
71 | | #define id_mot_pdau id_mot".6" |
72 | | #define id_mpt_origination id_mpt".0" |
73 | | #define id_mpt_reception id_mpt".1" |
74 | | #define id_mpt_management id_mpt".2" |
75 | | #define id_ref_primary id_ref".0" |
76 | | #define id_ref_secondary id_ref".1" |
77 | 14 | #define id_nato_mmhs_et_adatp3 id_et".0" |
78 | 14 | #define id_nato_mmhs_et_corrections id_et".1" |
79 | 14 | #define id_nato_mmhs_et_adatp3_parameters id_et".2" |
80 | 14 | #define id_nato_mmhs_et_corrections_parameters id_et".3" |
81 | 14 | #define id_nato_mmhs_et_forwarded_encrypted id_et".6" |
82 | 14 | #define id_nato_mmhs_et_forwarded_encrypted_parameters id_et".7" |
83 | 14 | #define id_nato_mmhs_et_mm_message id_et".9" |
84 | 14 | #define id_nato_mmhs_et_mm_message_parameters id_et".10" |
85 | 14 | #define id_nato_mmhs_et_mm_acp127data id_et".12" |
86 | 14 | #define id_nato_mmhs_et_mm_acp127data_parameters id_et".13" |
87 | | #define id_nato_mmhs_mm_primary_precedence id_mm".0" |
88 | | #define id_nato_mmhs_mm_copy_precedence id_mm".1" |
89 | | #define id_nato_mmhs_mm_message_type id_mm".2" |
90 | | #define id_nato_mmhs_mm_address_list_indicator id_mm".3" |
91 | | #define id_nato_mmhs_mm_exempted_address id_mm".4" |
92 | | #define id_nato_mmhs_mm_extended_authorisation_info id_mm".5" |
93 | | #define id_nato_mmhs_mm_distribution_codes id_mm".6" |
94 | | #define id_nato_mmhs_mm_handling_instructions id_mm".7" |
95 | | #define id_nato_mmhs_mm_message_instructions id_mm".8" |
96 | | #define id_nato_mmhs_mm_codress_message id_mm".9" |
97 | | #define id_nato_mmhs_mm_originator_reference id_mm".10" |
98 | | #define id_nato_mmhs_mm_other_recipients_indicator id_mm".11" |
99 | | #define id_nato_mmhs_mm_pilot_forwarding_info id_mm".12" |
100 | | #define id_nato_mmhs_mm_acp127_message_identifier id_mm".13" |
101 | | #define id_nato_mmhs_mm_originator_plad id_mm".14" |
102 | | #define id_nato_mmhs_mm_information_labels id_mm".17" |
103 | | #define id_nato_mmhs_mm_acp127_notification_request id_mm".15" |
104 | | #define id_nato_mmhs_mm_acp127_notification_response id_mm".16" |
105 | | #define id_nato_mmhs_hat_primary_precedence id_hat".0" |
106 | | #define id_nato_mmhs_hat_copy_precedence id_hat".1" |
107 | | #define id_nato_mmhs_hat_message_type id_hat".2" |
108 | | #define id_nato_mmhs_hat_address_list_indicator id_hat".3" |
109 | | #define id_nato_mmhs_hat_exempted_address id_hat".4" |
110 | | #define id_nato_mmhs_hat_extended_authorisation_info id_hat".5" |
111 | | #define id_nato_mmhs_hat_distribution_codes id_hat".6" |
112 | | #define id_nato_mmhs_hat_handling_instructions id_hat".7" |
113 | | #define id_nato_mmhs_hat_message_instructions id_hat".8" |
114 | | #define id_nato_mmhs_hat_codress_message id_hat".9" |
115 | | #define id_nato_mmhs_hat_originator_reference id_hat".10" |
116 | | #define id_nato_mmhs_hat_other_recipients_indicator id_hat".11" |
117 | | #define id_nato_mmhs_hat_pilot_forwarding_info id_hat".12" |
118 | | #define id_nato_mmhs_hat_acp127_message_identifier id_hat".13" |
119 | | #define id_nato_mmhs_hat_originator_plad id_hat".14" |
120 | | #define id_nato_mmhs_hat_acp127_notification_request id_hat".15" |
121 | | #define id_nato_mmhs_hat_sic_codes id_hat".16" |
122 | | #define id_nato_mmhs_hat_distribution_extensions id_hat".17" |
123 | | #define id_nato_mmhs_hat_body_part_information_label id_hat".18" |
124 | | #define id_nato_mmhs_hat_security_information_labels id_hat".19" |
125 | | #define id_nato_mmhs_cat id_cat".0" |
126 | | #define id_nato_mmhs_cat_atomal id_cat".1" |
127 | | #define id_nato_mmhs_cat_cryptosecurity id_cat".2" |
128 | | #define id_nato_mmhs_cat_specialhandlingintel id_cat".3" |
129 | | #define id_nato_mmhs_cat_ussiopesi id_cat".4" |
130 | | #define id_nato_mmhs_cat_eyesonly id_cat".5" |
131 | | #define id_nato_mmhs_cat_exclusive id_cat".6" |
132 | | #define id_nato_mmhs_cat_information_label id_cat".7" |
133 | | #define id_nato_mmhs_informationlabel_atomal id_informationlabel".1" |
134 | | #define id_nato_mmhs_informationlabel_cryptosecurity id_informationlabel".2" |
135 | | #define id_nato_mmhs_informationlabel_specialhandlingintel id_informationlabel".3" |
136 | | #define id_nato_mmhs_informationlabel_ussiopesi id_informationlabel".4" |
137 | | #define id_nato_mmhs_informationlabel_eyesonly id_informationlabel".5" |
138 | | #define id_nato_mmhs_informationlabel_exclusive id_informationlabel".6" |
139 | | #define id_nato_mmhs_nat_acp127_notification_response id_nat".0" |
140 | | #define id_mct_p772 id_mcont".1" |
141 | 0 | #define ub_military_string 69 |
142 | 0 | #define ub_military_number_of_sics 8 |
143 | 0 | #define lb_military_sic 3 |
144 | 0 | #define ub_military_sic 8 |
145 | 0 | #define ub_military_bigstring 128 |
146 | 0 | #define ub_data_size 65535 |
147 | | |
148 | | static int hf_p772_InformationObject_PDU; /* InformationObject */ |
149 | | static int hf_p772_Acp127NotificationResponse_PDU; /* Acp127NotificationResponse */ |
150 | | static int hf_p772_ExemptedAddressSeq_PDU; /* ExemptedAddressSeq */ |
151 | | static int hf_p772_ExtendedAuthorisationInfo_PDU; /* ExtendedAuthorisationInfo */ |
152 | | static int hf_p772_DistributionCodes_PDU; /* DistributionCodes */ |
153 | | static int hf_p772_HandlingInstructions_PDU; /* HandlingInstructions */ |
154 | | static int hf_p772_MessageInstructions_PDU; /* MessageInstructions */ |
155 | | static int hf_p772_CodressMessage_PDU; /* CodressMessage */ |
156 | | static int hf_p772_OriginatorReference_PDU; /* OriginatorReference */ |
157 | | static int hf_p772_PrimaryPrecedence_PDU; /* PrimaryPrecedence */ |
158 | | static int hf_p772_CopyPrecedence_PDU; /* CopyPrecedence */ |
159 | | static int hf_p772_MessageType_PDU; /* MessageType */ |
160 | | static int hf_p772_AddressListDesignatorSeq_PDU; /* AddressListDesignatorSeq */ |
161 | | static int hf_p772_OtherRecipientDesignatorSeq_PDU; /* OtherRecipientDesignatorSeq */ |
162 | | static int hf_p772_PilotInformationSeq_PDU; /* PilotInformationSeq */ |
163 | | static int hf_p772_Acp127MessageIdentifier_PDU; /* Acp127MessageIdentifier */ |
164 | | static int hf_p772_OriginatorPlad_PDU; /* OriginatorPlad */ |
165 | | static int hf_p772_SecurityInformationLabels_PDU; /* SecurityInformationLabels */ |
166 | | static int hf_p772_PriorityLevelQualifier_PDU; /* PriorityLevelQualifier */ |
167 | | static int hf_p772_ADatP3Parameters_PDU; /* ADatP3Parameters */ |
168 | | static int hf_p772_ADatP3Data_PDU; /* ADatP3Data */ |
169 | | static int hf_p772_CorrectionsParameters_PDU; /* CorrectionsParameters */ |
170 | | static int hf_p772_CorrectionsData_PDU; /* CorrectionsData */ |
171 | | static int hf_p772_ForwardedEncryptedParameters_PDU; /* ForwardedEncryptedParameters */ |
172 | | static int hf_p772_ForwardedEncryptedData_PDU; /* ForwardedEncryptedData */ |
173 | | static int hf_p772_MMMessageParameters_PDU; /* MMMessageParameters */ |
174 | | static int hf_p772_MMMessageData_PDU; /* MMMessageData */ |
175 | | static int hf_p772_ACP127DataParameters_PDU; /* ACP127DataParameters */ |
176 | | static int hf_p772_ACP127DataData_PDU; /* ACP127DataData */ |
177 | | static int hf_p772_Acp127NotificationType_PDU; /* Acp127NotificationType */ |
178 | | static int hf_p772_mm; /* IPM */ |
179 | | static int hf_p772_mn; /* IPN */ |
180 | | static int hf_p772_acp127_notification_type; /* Acp127NotificationType */ |
181 | | static int hf_p772_receipt_time; /* ReceiptTimeField */ |
182 | | static int hf_p772_addressListIndicator; /* AddressListIndicator */ |
183 | | static int hf_p772_acp127_recipient; /* Acp127Recipient */ |
184 | | static int hf_p772_acp127_supp_info; /* Acp127SuppInfo */ |
185 | | static int hf_p772_AddressListIndicator_item; /* AddressListDesignator */ |
186 | | static int hf_p772_ExemptedAddressSeq_item; /* ExemptedAddress */ |
187 | | static int hf_p772_sics; /* SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic */ |
188 | | static int hf_p772_sics_item; /* Sic */ |
189 | | static int hf_p772_dist_Extensions; /* SEQUENCE_OF_DistributionExtensionField */ |
190 | | static int hf_p772_dist_Extensions_item; /* DistributionExtensionField */ |
191 | | static int hf_p772_dist_type; /* OBJECT_IDENTIFIER */ |
192 | | static int hf_p772_dist_value; /* T_dist_value */ |
193 | | static int hf_p772_HandlingInstructions_item; /* MilitaryString */ |
194 | | static int hf_p772_MessageInstructions_item; /* MilitaryString */ |
195 | | static int hf_p772_message_type_type; /* TypeMessage */ |
196 | | static int hf_p772_identifier; /* MessageIdentifier */ |
197 | | static int hf_p772_AddressListDesignatorSeq_item; /* AddressListDesignator */ |
198 | | static int hf_p772_address_list_type; /* AddressListType */ |
199 | | static int hf_p772_listName; /* ORDescriptor */ |
200 | | static int hf_p772_notificationRequest; /* AddressListRequest */ |
201 | | static int hf_p772_replyRequest; /* AddressListRequest */ |
202 | | static int hf_p772_OtherRecipientDesignatorSeq_item; /* OtherRecipientDesignator */ |
203 | | static int hf_p772_other_recipient_type; /* OtherRecipientType */ |
204 | | static int hf_p772_designator; /* MilitaryString */ |
205 | | static int hf_p772_PilotInformationSeq_item; /* PilotInformation */ |
206 | | static int hf_p772_pilotPrecedence; /* MMHSPrecedence */ |
207 | | static int hf_p772_pilotRecipient; /* SEQUENCE_OF_ORDescriptor */ |
208 | | static int hf_p772_pilotRecipient_item; /* ORDescriptor */ |
209 | | static int hf_p772_pilotSecurity; /* SecurityLabel */ |
210 | | static int hf_p772_pilotHandling; /* SEQUENCE_OF_MilitaryString */ |
211 | | static int hf_p772_pilotHandling_item; /* MilitaryString */ |
212 | | static int hf_p772_content_security_label; /* SecurityLabel */ |
213 | | static int hf_p772_heading_security_label; /* SecurityLabel */ |
214 | | static int hf_p772_body_part_security_labels; /* SEQUENCE_OF_BodyPartSecurityLabel */ |
215 | | static int hf_p772_body_part_security_labels_item; /* BodyPartSecurityLabel */ |
216 | | static int hf_p772_body_part_security_label; /* SecurityLabel */ |
217 | | static int hf_p772_body_part_sequence_number; /* BodyPartSequenceNumber */ |
218 | | static int hf_p772_lineOriented; /* IA5String */ |
219 | | static int hf_p772_setOriented; /* T_setOriented */ |
220 | | static int hf_p772_setOriented_item; /* IA5String */ |
221 | | static int hf_p772_delivery_time; /* MessageDeliveryTime */ |
222 | | static int hf_p772_delivery_envelope; /* OtherMessageDeliveryFields */ |
223 | | /* named bits */ |
224 | | static int hf_p772_Acp127NotificationType_acp127_nn; |
225 | | static int hf_p772_Acp127NotificationType_acp127_pn; |
226 | | static int hf_p772_Acp127NotificationType_acp127_tn; |
227 | | |
228 | | /* Initialize the subtree pointers */ |
229 | | static int ett_p772; |
230 | | static int ett_p772_InformationObject; |
231 | | static int ett_p772_Acp127NotificationResponse; |
232 | | static int ett_p772_AddressListIndicator; |
233 | | static int ett_p772_ExemptedAddressSeq; |
234 | | static int ett_p772_DistributionCodes; |
235 | | static int ett_p772_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic; |
236 | | static int ett_p772_SEQUENCE_OF_DistributionExtensionField; |
237 | | static int ett_p772_DistributionExtensionField; |
238 | | static int ett_p772_HandlingInstructions; |
239 | | static int ett_p772_MessageInstructions; |
240 | | static int ett_p772_MessageType; |
241 | | static int ett_p772_AddressListDesignatorSeq; |
242 | | static int ett_p772_AddressListDesignator; |
243 | | static int ett_p772_OtherRecipientDesignatorSeq; |
244 | | static int ett_p772_OtherRecipientDesignator; |
245 | | static int ett_p772_PilotInformationSeq; |
246 | | static int ett_p772_PilotInformation; |
247 | | static int ett_p772_SEQUENCE_OF_ORDescriptor; |
248 | | static int ett_p772_SEQUENCE_OF_MilitaryString; |
249 | | static int ett_p772_SecurityInformationLabels; |
250 | | static int ett_p772_SEQUENCE_OF_BodyPartSecurityLabel; |
251 | | static int ett_p772_BodyPartSecurityLabel; |
252 | | static int ett_p772_ADatP3Data; |
253 | | static int ett_p772_T_setOriented; |
254 | | static int ett_p772_ForwardedEncryptedParameters; |
255 | | static int ett_p772_MMMessageParameters; |
256 | | static int ett_p772_Acp127NotificationType; |
257 | | |
258 | | |
259 | | static const ber_choice_t InformationObject_choice[] = { |
260 | | { 0, &hf_p772_mm , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p22_IPM }, |
261 | | { 1, &hf_p772_mn , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p22_IPN }, |
262 | | { 0, NULL, 0, 0, 0, NULL } |
263 | | }; |
264 | | |
265 | | static unsigned |
266 | 0 | dissect_p772_InformationObject(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
267 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
268 | 0 | InformationObject_choice, hf_index, ett_p772_InformationObject, |
269 | 0 | NULL); |
270 | |
|
271 | 0 | return offset; |
272 | 0 | } |
273 | | |
274 | | |
275 | | static int * const Acp127NotificationType_bits[] = { |
276 | | &hf_p772_Acp127NotificationType_acp127_nn, |
277 | | &hf_p772_Acp127NotificationType_acp127_pn, |
278 | | &hf_p772_Acp127NotificationType_acp127_tn, |
279 | | NULL |
280 | | }; |
281 | | |
282 | | static unsigned |
283 | 0 | dissect_p772_Acp127NotificationType(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
284 | 0 | offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, |
285 | 0 | Acp127NotificationType_bits, 3, hf_index, ett_p772_Acp127NotificationType, |
286 | 0 | NULL); |
287 | |
|
288 | 0 | return offset; |
289 | 0 | } |
290 | | |
291 | | |
292 | | static const value_string p772_AddressListType_vals[] = { |
293 | | { 0, "primaryAddressList" }, |
294 | | { 1, "copyAddressList" }, |
295 | | { 0, NULL } |
296 | | }; |
297 | | |
298 | | |
299 | | static unsigned |
300 | 0 | dissect_p772_AddressListType(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
301 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
302 | 0 | NULL); |
303 | |
|
304 | 0 | return offset; |
305 | 0 | } |
306 | | |
307 | | |
308 | | static const value_string p772_AddressListRequest_vals[] = { |
309 | | { 0, "action" }, |
310 | | { 1, "info" }, |
311 | | { 2, "both" }, |
312 | | { 0, NULL } |
313 | | }; |
314 | | |
315 | | |
316 | | static unsigned |
317 | 0 | dissect_p772_AddressListRequest(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
318 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
319 | 0 | NULL); |
320 | |
|
321 | 0 | return offset; |
322 | 0 | } |
323 | | |
324 | | |
325 | | static const ber_sequence_t AddressListDesignator_set[] = { |
326 | | { &hf_p772_address_list_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p772_AddressListType }, |
327 | | { &hf_p772_listName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p22_ORDescriptor }, |
328 | | { &hf_p772_notificationRequest, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_AddressListRequest }, |
329 | | { &hf_p772_replyRequest , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_AddressListRequest }, |
330 | | { NULL, 0, 0, 0, NULL } |
331 | | }; |
332 | | |
333 | | static unsigned |
334 | 0 | dissect_p772_AddressListDesignator(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
335 | 0 | offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, |
336 | 0 | AddressListDesignator_set, hf_index, ett_p772_AddressListDesignator); |
337 | |
|
338 | 0 | return offset; |
339 | 0 | } |
340 | | |
341 | | |
342 | | static const ber_sequence_t AddressListIndicator_sequence_of[1] = { |
343 | | { &hf_p772_AddressListIndicator_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p772_AddressListDesignator }, |
344 | | }; |
345 | | |
346 | | static unsigned |
347 | 0 | dissect_p772_AddressListIndicator(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
348 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
349 | 0 | AddressListIndicator_sequence_of, hf_index, ett_p772_AddressListIndicator); |
350 | |
|
351 | 0 | return offset; |
352 | 0 | } |
353 | | |
354 | | |
355 | | |
356 | | static unsigned |
357 | 0 | dissect_p772_Acp127Recipient(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
358 | 0 | offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, |
359 | 0 | actx, tree, tvb, offset, |
360 | 0 | 1, ub_military_bigstring, hf_index, NULL); |
361 | |
|
362 | 0 | return offset; |
363 | 0 | } |
364 | | |
365 | | |
366 | | |
367 | | static unsigned |
368 | 0 | dissect_p772_Acp127SuppInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
369 | 0 | offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, |
370 | 0 | actx, tree, tvb, offset, |
371 | 0 | 1, ub_military_bigstring, hf_index, NULL); |
372 | |
|
373 | 0 | return offset; |
374 | 0 | } |
375 | | |
376 | | |
377 | | static const ber_sequence_t Acp127NotificationResponse_set[] = { |
378 | | { &hf_p772_acp127_notification_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p772_Acp127NotificationType }, |
379 | | { &hf_p772_receipt_time , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p22_ReceiptTimeField }, |
380 | | { &hf_p772_addressListIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_AddressListIndicator }, |
381 | | { &hf_p772_acp127_recipient, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_Acp127Recipient }, |
382 | | { &hf_p772_acp127_supp_info, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_Acp127SuppInfo }, |
383 | | { NULL, 0, 0, 0, NULL } |
384 | | }; |
385 | | |
386 | | static unsigned |
387 | 0 | dissect_p772_Acp127NotificationResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
388 | 0 | offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, |
389 | 0 | Acp127NotificationResponse_set, hf_index, ett_p772_Acp127NotificationResponse); |
390 | |
|
391 | 0 | return offset; |
392 | 0 | } |
393 | | |
394 | | |
395 | | |
396 | | static unsigned |
397 | 0 | dissect_p772_ExemptedAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
398 | 0 | offset = dissect_p22_ORDescriptor(implicit_tag, tvb, offset, actx, tree, hf_index); |
399 | |
|
400 | 0 | return offset; |
401 | 0 | } |
402 | | |
403 | | |
404 | | static const ber_sequence_t ExemptedAddressSeq_sequence_of[1] = { |
405 | | { &hf_p772_ExemptedAddressSeq_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p772_ExemptedAddress }, |
406 | | }; |
407 | | |
408 | | static unsigned |
409 | 0 | dissect_p772_ExemptedAddressSeq(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
410 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
411 | 0 | ExemptedAddressSeq_sequence_of, hf_index, ett_p772_ExemptedAddressSeq); |
412 | |
|
413 | 0 | return offset; |
414 | 0 | } |
415 | | |
416 | | |
417 | | |
418 | | static unsigned |
419 | 0 | dissect_p772_ExtendedAuthorisationInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
420 | 0 | offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index, NULL, NULL); |
421 | |
|
422 | 0 | return offset; |
423 | 0 | } |
424 | | |
425 | | |
426 | | |
427 | | static unsigned |
428 | 0 | dissect_p772_Sic(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
429 | 0 | offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, |
430 | 0 | actx, tree, tvb, offset, |
431 | 0 | lb_military_sic, ub_military_sic, hf_index, NULL); |
432 | |
|
433 | 0 | return offset; |
434 | 0 | } |
435 | | |
436 | | |
437 | | static const ber_sequence_t SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic_sequence_of[1] = { |
438 | | { &hf_p772_sics_item , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p772_Sic }, |
439 | | }; |
440 | | |
441 | | static unsigned |
442 | 0 | dissect_p772_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
443 | 0 | offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset, |
444 | 0 | 1, ub_military_number_of_sics, SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic_sequence_of, hf_index, ett_p772_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic); |
445 | |
|
446 | 0 | return offset; |
447 | 0 | } |
448 | | |
449 | | |
450 | | |
451 | | static unsigned |
452 | 0 | dissect_p772_OBJECT_IDENTIFIER(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
453 | 0 | offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); |
454 | |
|
455 | 0 | return offset; |
456 | 0 | } |
457 | | |
458 | | |
459 | | |
460 | | static unsigned |
461 | 0 | dissect_p772_T_dist_value(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
462 | | /* XXX: not implemented */ |
463 | 0 | offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree); |
464 | | |
465 | |
|
466 | 0 | return offset; |
467 | 0 | } |
468 | | |
469 | | |
470 | | static const ber_sequence_t DistributionExtensionField_sequence[] = { |
471 | | { &hf_p772_dist_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p772_OBJECT_IDENTIFIER }, |
472 | | { &hf_p772_dist_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_p772_T_dist_value }, |
473 | | { NULL, 0, 0, 0, NULL } |
474 | | }; |
475 | | |
476 | | static unsigned |
477 | 0 | dissect_p772_DistributionExtensionField(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
478 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
479 | 0 | DistributionExtensionField_sequence, hf_index, ett_p772_DistributionExtensionField); |
480 | |
|
481 | 0 | return offset; |
482 | 0 | } |
483 | | |
484 | | |
485 | | static const ber_sequence_t SEQUENCE_OF_DistributionExtensionField_sequence_of[1] = { |
486 | | { &hf_p772_dist_Extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p772_DistributionExtensionField }, |
487 | | }; |
488 | | |
489 | | static unsigned |
490 | 0 | dissect_p772_SEQUENCE_OF_DistributionExtensionField(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
491 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
492 | 0 | SEQUENCE_OF_DistributionExtensionField_sequence_of, hf_index, ett_p772_SEQUENCE_OF_DistributionExtensionField); |
493 | |
|
494 | 0 | return offset; |
495 | 0 | } |
496 | | |
497 | | |
498 | | static const ber_sequence_t DistributionCodes_set[] = { |
499 | | { &hf_p772_sics , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic }, |
500 | | { &hf_p772_dist_Extensions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_SEQUENCE_OF_DistributionExtensionField }, |
501 | | { NULL, 0, 0, 0, NULL } |
502 | | }; |
503 | | |
504 | | static unsigned |
505 | 0 | dissect_p772_DistributionCodes(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
506 | 0 | offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, |
507 | 0 | DistributionCodes_set, hf_index, ett_p772_DistributionCodes); |
508 | |
|
509 | 0 | return offset; |
510 | 0 | } |
511 | | |
512 | | |
513 | | |
514 | | static unsigned |
515 | 0 | dissect_p772_MilitaryString(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
516 | 0 | offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, |
517 | 0 | actx, tree, tvb, offset, |
518 | 0 | 1, ub_military_string, hf_index, NULL); |
519 | |
|
520 | 0 | return offset; |
521 | 0 | } |
522 | | |
523 | | |
524 | | static const ber_sequence_t HandlingInstructions_sequence_of[1] = { |
525 | | { &hf_p772_HandlingInstructions_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p772_MilitaryString }, |
526 | | }; |
527 | | |
528 | | static unsigned |
529 | 0 | dissect_p772_HandlingInstructions(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
530 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
531 | 0 | HandlingInstructions_sequence_of, hf_index, ett_p772_HandlingInstructions); |
532 | |
|
533 | 0 | return offset; |
534 | 0 | } |
535 | | |
536 | | |
537 | | static const ber_sequence_t MessageInstructions_sequence_of[1] = { |
538 | | { &hf_p772_MessageInstructions_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p772_MilitaryString }, |
539 | | }; |
540 | | |
541 | | static unsigned |
542 | 0 | dissect_p772_MessageInstructions(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
543 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
544 | 0 | MessageInstructions_sequence_of, hf_index, ett_p772_MessageInstructions); |
545 | |
|
546 | 0 | return offset; |
547 | 0 | } |
548 | | |
549 | | |
550 | | |
551 | | static unsigned |
552 | 0 | dissect_p772_CodressMessage(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
553 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
554 | 0 | NULL); |
555 | |
|
556 | 0 | return offset; |
557 | 0 | } |
558 | | |
559 | | |
560 | | |
561 | | static unsigned |
562 | 0 | dissect_p772_OriginatorReference(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
563 | 0 | offset = dissect_p772_MilitaryString(implicit_tag, tvb, offset, actx, tree, hf_index); |
564 | |
|
565 | 0 | return offset; |
566 | 0 | } |
567 | | |
568 | | |
569 | | static const value_string p772_MMHSPrecedence_vals[] = { |
570 | | { 0, "deferred" }, |
571 | | { 1, "routine" }, |
572 | | { 2, "priority" }, |
573 | | { 3, "immediate" }, |
574 | | { 4, "flash" }, |
575 | | { 5, "override" }, |
576 | | { 16, "ecp" }, |
577 | | { 17, "critic" }, |
578 | | { 18, "override" }, |
579 | | { 0, NULL } |
580 | | }; |
581 | | |
582 | | |
583 | | static unsigned |
584 | 0 | dissect_p772_MMHSPrecedence(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
585 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
586 | 0 | NULL); |
587 | |
|
588 | 0 | return offset; |
589 | 0 | } |
590 | | |
591 | | |
592 | | static const value_string p772_PrimaryPrecedence_vals[] = { |
593 | | { 0, "deferred" }, |
594 | | { 1, "routine" }, |
595 | | { 2, "priority" }, |
596 | | { 3, "immediate" }, |
597 | | { 4, "flash" }, |
598 | | { 5, "override" }, |
599 | | { 16, "ecp" }, |
600 | | { 17, "critic" }, |
601 | | { 18, "override" }, |
602 | | { 0, NULL } |
603 | | }; |
604 | | |
605 | | |
606 | | static unsigned |
607 | 0 | dissect_p772_PrimaryPrecedence(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
608 | 0 | int32_t precedence; |
609 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
610 | 0 | (uint32_t*)&precedence); |
611 | |
|
612 | 0 | col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (primary=%s)", val_to_str(actx->pinfo->pool, precedence, p772_PrimaryPrecedence_vals, "precedence(%d)")); |
613 | | |
614 | |
|
615 | 0 | return offset; |
616 | 0 | } |
617 | | |
618 | | |
619 | | static const value_string p772_CopyPrecedence_vals[] = { |
620 | | { 0, "deferred" }, |
621 | | { 1, "routine" }, |
622 | | { 2, "priority" }, |
623 | | { 3, "immediate" }, |
624 | | { 4, "flash" }, |
625 | | { 5, "override" }, |
626 | | { 16, "ecp" }, |
627 | | { 17, "critic" }, |
628 | | { 18, "override" }, |
629 | | { 0, NULL } |
630 | | }; |
631 | | |
632 | | |
633 | | static unsigned |
634 | 0 | dissect_p772_CopyPrecedence(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
635 | 0 | int32_t precedence; |
636 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
637 | 0 | (uint32_t*)&precedence); |
638 | |
|
639 | 0 | col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (copy=%s)", val_to_str(actx->pinfo->pool, precedence, p772_CopyPrecedence_vals, "precedence(%d)")); |
640 | |
|
641 | 0 | return offset; |
642 | 0 | } |
643 | | |
644 | | |
645 | | static const value_string p772_TypeMessage_vals[] = { |
646 | | { 0, "exercise" }, |
647 | | { 1, "operation" }, |
648 | | { 2, "project" }, |
649 | | { 3, "drill" }, |
650 | | { 0, NULL } |
651 | | }; |
652 | | |
653 | | |
654 | | static unsigned |
655 | 0 | dissect_p772_TypeMessage(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
656 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
657 | 0 | NULL); |
658 | |
|
659 | 0 | return offset; |
660 | 0 | } |
661 | | |
662 | | |
663 | | |
664 | | static unsigned |
665 | 0 | dissect_p772_MessageIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
666 | 0 | offset = dissect_p772_MilitaryString(implicit_tag, tvb, offset, actx, tree, hf_index); |
667 | |
|
668 | 0 | return offset; |
669 | 0 | } |
670 | | |
671 | | |
672 | | static const ber_sequence_t MessageType_set[] = { |
673 | | { &hf_p772_message_type_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p772_TypeMessage }, |
674 | | { &hf_p772_identifier , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_MessageIdentifier }, |
675 | | { NULL, 0, 0, 0, NULL } |
676 | | }; |
677 | | |
678 | | static unsigned |
679 | 0 | dissect_p772_MessageType(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
680 | 0 | offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, |
681 | 0 | MessageType_set, hf_index, ett_p772_MessageType); |
682 | |
|
683 | 0 | return offset; |
684 | 0 | } |
685 | | |
686 | | |
687 | | static const ber_sequence_t AddressListDesignatorSeq_sequence_of[1] = { |
688 | | { &hf_p772_AddressListDesignatorSeq_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p772_AddressListDesignator }, |
689 | | }; |
690 | | |
691 | | static unsigned |
692 | 0 | dissect_p772_AddressListDesignatorSeq(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
693 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
694 | 0 | AddressListDesignatorSeq_sequence_of, hf_index, ett_p772_AddressListDesignatorSeq); |
695 | |
|
696 | 0 | return offset; |
697 | 0 | } |
698 | | |
699 | | |
700 | | static const value_string p772_OtherRecipientType_vals[] = { |
701 | | { 0, "primary" }, |
702 | | { 1, "copy" }, |
703 | | { 0, NULL } |
704 | | }; |
705 | | |
706 | | |
707 | | static unsigned |
708 | 0 | dissect_p772_OtherRecipientType(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
709 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
710 | 0 | NULL); |
711 | |
|
712 | 0 | return offset; |
713 | 0 | } |
714 | | |
715 | | |
716 | | static const ber_sequence_t OtherRecipientDesignator_set[] = { |
717 | | { &hf_p772_other_recipient_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p772_OtherRecipientType }, |
718 | | { &hf_p772_designator , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p772_MilitaryString }, |
719 | | { NULL, 0, 0, 0, NULL } |
720 | | }; |
721 | | |
722 | | static unsigned |
723 | 0 | dissect_p772_OtherRecipientDesignator(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
724 | 0 | offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, |
725 | 0 | OtherRecipientDesignator_set, hf_index, ett_p772_OtherRecipientDesignator); |
726 | |
|
727 | 0 | return offset; |
728 | 0 | } |
729 | | |
730 | | |
731 | | static const ber_sequence_t OtherRecipientDesignatorSeq_sequence_of[1] = { |
732 | | { &hf_p772_OtherRecipientDesignatorSeq_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p772_OtherRecipientDesignator }, |
733 | | }; |
734 | | |
735 | | static unsigned |
736 | 0 | dissect_p772_OtherRecipientDesignatorSeq(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
737 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
738 | 0 | OtherRecipientDesignatorSeq_sequence_of, hf_index, ett_p772_OtherRecipientDesignatorSeq); |
739 | |
|
740 | 0 | return offset; |
741 | 0 | } |
742 | | |
743 | | |
744 | | static const ber_sequence_t SEQUENCE_OF_ORDescriptor_sequence_of[1] = { |
745 | | { &hf_p772_pilotRecipient_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p22_ORDescriptor }, |
746 | | }; |
747 | | |
748 | | static unsigned |
749 | 0 | dissect_p772_SEQUENCE_OF_ORDescriptor(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
750 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
751 | 0 | SEQUENCE_OF_ORDescriptor_sequence_of, hf_index, ett_p772_SEQUENCE_OF_ORDescriptor); |
752 | |
|
753 | 0 | return offset; |
754 | 0 | } |
755 | | |
756 | | |
757 | | static const ber_sequence_t SEQUENCE_OF_MilitaryString_sequence_of[1] = { |
758 | | { &hf_p772_pilotHandling_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p772_MilitaryString }, |
759 | | }; |
760 | | |
761 | | static unsigned |
762 | 0 | dissect_p772_SEQUENCE_OF_MilitaryString(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
763 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
764 | 0 | SEQUENCE_OF_MilitaryString_sequence_of, hf_index, ett_p772_SEQUENCE_OF_MilitaryString); |
765 | |
|
766 | 0 | return offset; |
767 | 0 | } |
768 | | |
769 | | |
770 | | static const ber_sequence_t PilotInformation_sequence[] = { |
771 | | { &hf_p772_pilotPrecedence, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_MMHSPrecedence }, |
772 | | { &hf_p772_pilotRecipient , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_SEQUENCE_OF_ORDescriptor }, |
773 | | { &hf_p772_pilotSecurity , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityLabel }, |
774 | | { &hf_p772_pilotHandling , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_SEQUENCE_OF_MilitaryString }, |
775 | | { NULL, 0, 0, 0, NULL } |
776 | | }; |
777 | | |
778 | | static unsigned |
779 | 0 | dissect_p772_PilotInformation(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
780 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
781 | 0 | PilotInformation_sequence, hf_index, ett_p772_PilotInformation); |
782 | |
|
783 | 0 | return offset; |
784 | 0 | } |
785 | | |
786 | | |
787 | | static const ber_sequence_t PilotInformationSeq_sequence_of[1] = { |
788 | | { &hf_p772_PilotInformationSeq_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p772_PilotInformation }, |
789 | | }; |
790 | | |
791 | | static unsigned |
792 | 0 | dissect_p772_PilotInformationSeq(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
793 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
794 | 0 | PilotInformationSeq_sequence_of, hf_index, ett_p772_PilotInformationSeq); |
795 | |
|
796 | 0 | return offset; |
797 | 0 | } |
798 | | |
799 | | |
800 | | |
801 | | static unsigned |
802 | 0 | dissect_p772_Acp127MessageIdentifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
803 | 0 | offset = dissect_p772_MilitaryString(implicit_tag, tvb, offset, actx, tree, hf_index); |
804 | |
|
805 | 0 | return offset; |
806 | 0 | } |
807 | | |
808 | | |
809 | | |
810 | | static unsigned |
811 | 0 | dissect_p772_OriginatorPlad(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
812 | 0 | offset = dissect_p772_MilitaryString(implicit_tag, tvb, offset, actx, tree, hf_index); |
813 | |
|
814 | 0 | return offset; |
815 | 0 | } |
816 | | |
817 | | |
818 | | |
819 | | static unsigned |
820 | 0 | dissect_p772_BodyPartSequenceNumber(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
821 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
822 | 0 | NULL); |
823 | |
|
824 | 0 | return offset; |
825 | 0 | } |
826 | | |
827 | | |
828 | | static const ber_sequence_t BodyPartSecurityLabel_set[] = { |
829 | | { &hf_p772_body_part_security_label, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_SecurityLabel }, |
830 | | { &hf_p772_body_part_sequence_number, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_BodyPartSequenceNumber }, |
831 | | { NULL, 0, 0, 0, NULL } |
832 | | }; |
833 | | |
834 | | static unsigned |
835 | 0 | dissect_p772_BodyPartSecurityLabel(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
836 | 0 | offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, |
837 | 0 | BodyPartSecurityLabel_set, hf_index, ett_p772_BodyPartSecurityLabel); |
838 | |
|
839 | 0 | return offset; |
840 | 0 | } |
841 | | |
842 | | |
843 | | static const ber_sequence_t SEQUENCE_OF_BodyPartSecurityLabel_sequence_of[1] = { |
844 | | { &hf_p772_body_part_security_labels_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p772_BodyPartSecurityLabel }, |
845 | | }; |
846 | | |
847 | | static unsigned |
848 | 0 | dissect_p772_SEQUENCE_OF_BodyPartSecurityLabel(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
849 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
850 | 0 | SEQUENCE_OF_BodyPartSecurityLabel_sequence_of, hf_index, ett_p772_SEQUENCE_OF_BodyPartSecurityLabel); |
851 | |
|
852 | 0 | return offset; |
853 | 0 | } |
854 | | |
855 | | |
856 | | static const ber_sequence_t SecurityInformationLabels_sequence[] = { |
857 | | { &hf_p772_content_security_label, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_SecurityLabel }, |
858 | | { &hf_p772_heading_security_label, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityLabel }, |
859 | | { &hf_p772_body_part_security_labels, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p772_SEQUENCE_OF_BodyPartSecurityLabel }, |
860 | | { NULL, 0, 0, 0, NULL } |
861 | | }; |
862 | | |
863 | | static unsigned |
864 | 0 | dissect_p772_SecurityInformationLabels(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
865 | 0 | offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, |
866 | 0 | SecurityInformationLabels_sequence, hf_index, ett_p772_SecurityInformationLabels); |
867 | |
|
868 | 0 | return offset; |
869 | 0 | } |
870 | | |
871 | | |
872 | | static const value_string p772_PriorityLevelQualifier_vals[] = { |
873 | | { 0, "low" }, |
874 | | { 1, "high" }, |
875 | | { 0, NULL } |
876 | | }; |
877 | | |
878 | | |
879 | | static unsigned |
880 | 0 | dissect_p772_PriorityLevelQualifier(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
881 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
882 | 0 | NULL); |
883 | |
|
884 | 0 | return offset; |
885 | 0 | } |
886 | | |
887 | | |
888 | | |
889 | | static unsigned |
890 | 0 | dissect_p772_ADatP3Parameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
891 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
892 | 0 | NULL); |
893 | |
|
894 | 0 | return offset; |
895 | 0 | } |
896 | | |
897 | | |
898 | | |
899 | | static unsigned |
900 | 0 | dissect_p772_IA5String(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
901 | 0 | offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String, |
902 | 0 | actx, tree, tvb, offset, hf_index, |
903 | 0 | NULL); |
904 | |
|
905 | 0 | return offset; |
906 | 0 | } |
907 | | |
908 | | |
909 | | static const ber_sequence_t T_setOriented_sequence_of[1] = { |
910 | | { &hf_p772_setOriented_item, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p772_IA5String }, |
911 | | }; |
912 | | |
913 | | static unsigned |
914 | 0 | dissect_p772_T_setOriented(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
915 | 0 | offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset, |
916 | 0 | T_setOriented_sequence_of, hf_index, ett_p772_T_setOriented); |
917 | |
|
918 | 0 | return offset; |
919 | 0 | } |
920 | | |
921 | | |
922 | | static const value_string p772_ADatP3Data_vals[] = { |
923 | | { 0, "lineOriented" }, |
924 | | { 1, "setOriented" }, |
925 | | { 0, NULL } |
926 | | }; |
927 | | |
928 | | static const ber_choice_t ADatP3Data_choice[] = { |
929 | | { 0, &hf_p772_lineOriented , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p772_IA5String }, |
930 | | { 1, &hf_p772_setOriented , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p772_T_setOriented }, |
931 | | { 0, NULL, 0, 0, 0, NULL } |
932 | | }; |
933 | | |
934 | | static unsigned |
935 | 0 | dissect_p772_ADatP3Data(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
936 | 0 | offset = dissect_ber_choice(actx, tree, tvb, offset, |
937 | 0 | ADatP3Data_choice, hf_index, ett_p772_ADatP3Data, |
938 | 0 | NULL); |
939 | |
|
940 | 0 | return offset; |
941 | 0 | } |
942 | | |
943 | | |
944 | | |
945 | | static unsigned |
946 | 0 | dissect_p772_CorrectionsParameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
947 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
948 | 0 | NULL); |
949 | |
|
950 | 0 | return offset; |
951 | 0 | } |
952 | | |
953 | | |
954 | | |
955 | | static unsigned |
956 | 0 | dissect_p772_CorrectionsData(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
957 | 0 | offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String, |
958 | 0 | actx, tree, tvb, offset, hf_index, |
959 | 0 | NULL); |
960 | |
|
961 | 0 | return offset; |
962 | 0 | } |
963 | | |
964 | | |
965 | | static const ber_sequence_t ForwardedEncryptedParameters_set[] = { |
966 | | { &hf_p772_delivery_time , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_MessageDeliveryTime }, |
967 | | { &hf_p772_delivery_envelope, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_OtherMessageDeliveryFields }, |
968 | | { NULL, 0, 0, 0, NULL } |
969 | | }; |
970 | | |
971 | | static unsigned |
972 | 0 | dissect_p772_ForwardedEncryptedParameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
973 | 0 | offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, |
974 | 0 | ForwardedEncryptedParameters_set, hf_index, ett_p772_ForwardedEncryptedParameters); |
975 | |
|
976 | 0 | return offset; |
977 | 0 | } |
978 | | |
979 | | |
980 | | |
981 | | static unsigned |
982 | 0 | dissect_p772_ForwardedEncryptedData(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
983 | 0 | offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset, |
984 | 0 | NULL, 0, hf_index, -1, |
985 | 0 | NULL); |
986 | |
|
987 | 0 | return offset; |
988 | 0 | } |
989 | | |
990 | | |
991 | | static const ber_sequence_t MMMessageParameters_set[] = { |
992 | | { &hf_p772_delivery_time , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_MessageDeliveryTime }, |
993 | | { &hf_p772_delivery_envelope, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_OtherMessageDeliveryFields }, |
994 | | { NULL, 0, 0, 0, NULL } |
995 | | }; |
996 | | |
997 | | static unsigned |
998 | 0 | dissect_p772_MMMessageParameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
999 | 0 | offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, |
1000 | 0 | MMMessageParameters_set, hf_index, ett_p772_MMMessageParameters); |
1001 | |
|
1002 | 0 | return offset; |
1003 | 0 | } |
1004 | | |
1005 | | |
1006 | | |
1007 | | static unsigned |
1008 | 0 | dissect_p772_MMMessageData(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1009 | 0 | offset = dissect_p22_IPM(implicit_tag, tvb, offset, actx, tree, hf_index); |
1010 | |
|
1011 | 0 | return offset; |
1012 | 0 | } |
1013 | | |
1014 | | |
1015 | | |
1016 | | static unsigned |
1017 | 0 | dissect_p772_ACP127DataParameters(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1018 | 0 | offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, |
1019 | 0 | NULL); |
1020 | |
|
1021 | 0 | return offset; |
1022 | 0 | } |
1023 | | |
1024 | | |
1025 | | |
1026 | | static unsigned |
1027 | 0 | dissect_p772_ACP127DataData(bool implicit_tag _U_, tvbuff_t *tvb _U_, unsigned offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
1028 | 0 | offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String, |
1029 | 0 | actx, tree, tvb, offset, |
1030 | 0 | 1, ub_data_size, hf_index, NULL); |
1031 | |
|
1032 | 0 | return offset; |
1033 | 0 | } |
1034 | | |
1035 | | /*--- PDUs ---*/ |
1036 | | |
1037 | 0 | static int dissect_InformationObject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1038 | 0 | unsigned offset = 0; |
1039 | 0 | asn1_ctx_t asn1_ctx; |
1040 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1041 | 0 | offset = dissect_p772_InformationObject(false, tvb, offset, &asn1_ctx, tree, hf_p772_InformationObject_PDU); |
1042 | 0 | return offset; |
1043 | 0 | } |
1044 | 0 | static int dissect_Acp127NotificationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1045 | 0 | unsigned offset = 0; |
1046 | 0 | asn1_ctx_t asn1_ctx; |
1047 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1048 | 0 | offset = dissect_p772_Acp127NotificationResponse(false, tvb, offset, &asn1_ctx, tree, hf_p772_Acp127NotificationResponse_PDU); |
1049 | 0 | return offset; |
1050 | 0 | } |
1051 | 0 | static int dissect_ExemptedAddressSeq_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1052 | 0 | unsigned offset = 0; |
1053 | 0 | asn1_ctx_t asn1_ctx; |
1054 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1055 | 0 | offset = dissect_p772_ExemptedAddressSeq(false, tvb, offset, &asn1_ctx, tree, hf_p772_ExemptedAddressSeq_PDU); |
1056 | 0 | return offset; |
1057 | 0 | } |
1058 | 0 | static int dissect_ExtendedAuthorisationInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1059 | 0 | unsigned offset = 0; |
1060 | 0 | asn1_ctx_t asn1_ctx; |
1061 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1062 | 0 | offset = dissect_p772_ExtendedAuthorisationInfo(false, tvb, offset, &asn1_ctx, tree, hf_p772_ExtendedAuthorisationInfo_PDU); |
1063 | 0 | return offset; |
1064 | 0 | } |
1065 | 0 | static int dissect_DistributionCodes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1066 | 0 | unsigned offset = 0; |
1067 | 0 | asn1_ctx_t asn1_ctx; |
1068 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1069 | 0 | offset = dissect_p772_DistributionCodes(false, tvb, offset, &asn1_ctx, tree, hf_p772_DistributionCodes_PDU); |
1070 | 0 | return offset; |
1071 | 0 | } |
1072 | 0 | static int dissect_HandlingInstructions_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1073 | 0 | unsigned offset = 0; |
1074 | 0 | asn1_ctx_t asn1_ctx; |
1075 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1076 | 0 | offset = dissect_p772_HandlingInstructions(false, tvb, offset, &asn1_ctx, tree, hf_p772_HandlingInstructions_PDU); |
1077 | 0 | return offset; |
1078 | 0 | } |
1079 | 0 | static int dissect_MessageInstructions_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1080 | 0 | unsigned offset = 0; |
1081 | 0 | asn1_ctx_t asn1_ctx; |
1082 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1083 | 0 | offset = dissect_p772_MessageInstructions(false, tvb, offset, &asn1_ctx, tree, hf_p772_MessageInstructions_PDU); |
1084 | 0 | return offset; |
1085 | 0 | } |
1086 | 0 | static int dissect_CodressMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1087 | 0 | unsigned offset = 0; |
1088 | 0 | asn1_ctx_t asn1_ctx; |
1089 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1090 | 0 | offset = dissect_p772_CodressMessage(false, tvb, offset, &asn1_ctx, tree, hf_p772_CodressMessage_PDU); |
1091 | 0 | return offset; |
1092 | 0 | } |
1093 | 0 | static int dissect_OriginatorReference_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1094 | 0 | unsigned offset = 0; |
1095 | 0 | asn1_ctx_t asn1_ctx; |
1096 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1097 | 0 | offset = dissect_p772_OriginatorReference(false, tvb, offset, &asn1_ctx, tree, hf_p772_OriginatorReference_PDU); |
1098 | 0 | return offset; |
1099 | 0 | } |
1100 | 0 | static int dissect_PrimaryPrecedence_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1101 | 0 | unsigned offset = 0; |
1102 | 0 | asn1_ctx_t asn1_ctx; |
1103 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1104 | 0 | offset = dissect_p772_PrimaryPrecedence(false, tvb, offset, &asn1_ctx, tree, hf_p772_PrimaryPrecedence_PDU); |
1105 | 0 | return offset; |
1106 | 0 | } |
1107 | 0 | static int dissect_CopyPrecedence_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1108 | 0 | unsigned offset = 0; |
1109 | 0 | asn1_ctx_t asn1_ctx; |
1110 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1111 | 0 | offset = dissect_p772_CopyPrecedence(false, tvb, offset, &asn1_ctx, tree, hf_p772_CopyPrecedence_PDU); |
1112 | 0 | return offset; |
1113 | 0 | } |
1114 | 0 | static int dissect_MessageType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1115 | 0 | unsigned offset = 0; |
1116 | 0 | asn1_ctx_t asn1_ctx; |
1117 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1118 | 0 | offset = dissect_p772_MessageType(false, tvb, offset, &asn1_ctx, tree, hf_p772_MessageType_PDU); |
1119 | 0 | return offset; |
1120 | 0 | } |
1121 | 0 | static int dissect_AddressListDesignatorSeq_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1122 | 0 | unsigned offset = 0; |
1123 | 0 | asn1_ctx_t asn1_ctx; |
1124 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1125 | 0 | offset = dissect_p772_AddressListDesignatorSeq(false, tvb, offset, &asn1_ctx, tree, hf_p772_AddressListDesignatorSeq_PDU); |
1126 | 0 | return offset; |
1127 | 0 | } |
1128 | 0 | static int dissect_OtherRecipientDesignatorSeq_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1129 | 0 | unsigned offset = 0; |
1130 | 0 | asn1_ctx_t asn1_ctx; |
1131 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1132 | 0 | offset = dissect_p772_OtherRecipientDesignatorSeq(false, tvb, offset, &asn1_ctx, tree, hf_p772_OtherRecipientDesignatorSeq_PDU); |
1133 | 0 | return offset; |
1134 | 0 | } |
1135 | 0 | static int dissect_PilotInformationSeq_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1136 | 0 | unsigned offset = 0; |
1137 | 0 | asn1_ctx_t asn1_ctx; |
1138 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1139 | 0 | offset = dissect_p772_PilotInformationSeq(false, tvb, offset, &asn1_ctx, tree, hf_p772_PilotInformationSeq_PDU); |
1140 | 0 | return offset; |
1141 | 0 | } |
1142 | 0 | static int dissect_Acp127MessageIdentifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1143 | 0 | unsigned offset = 0; |
1144 | 0 | asn1_ctx_t asn1_ctx; |
1145 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1146 | 0 | offset = dissect_p772_Acp127MessageIdentifier(false, tvb, offset, &asn1_ctx, tree, hf_p772_Acp127MessageIdentifier_PDU); |
1147 | 0 | return offset; |
1148 | 0 | } |
1149 | 0 | static int dissect_OriginatorPlad_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1150 | 0 | unsigned offset = 0; |
1151 | 0 | asn1_ctx_t asn1_ctx; |
1152 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1153 | 0 | offset = dissect_p772_OriginatorPlad(false, tvb, offset, &asn1_ctx, tree, hf_p772_OriginatorPlad_PDU); |
1154 | 0 | return offset; |
1155 | 0 | } |
1156 | 0 | static int dissect_SecurityInformationLabels_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1157 | 0 | unsigned offset = 0; |
1158 | 0 | asn1_ctx_t asn1_ctx; |
1159 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1160 | 0 | offset = dissect_p772_SecurityInformationLabels(false, tvb, offset, &asn1_ctx, tree, hf_p772_SecurityInformationLabels_PDU); |
1161 | 0 | return offset; |
1162 | 0 | } |
1163 | 0 | static int dissect_PriorityLevelQualifier_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1164 | 0 | unsigned offset = 0; |
1165 | 0 | asn1_ctx_t asn1_ctx; |
1166 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1167 | 0 | offset = dissect_p772_PriorityLevelQualifier(false, tvb, offset, &asn1_ctx, tree, hf_p772_PriorityLevelQualifier_PDU); |
1168 | 0 | return offset; |
1169 | 0 | } |
1170 | 0 | static int dissect_ADatP3Parameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1171 | 0 | unsigned offset = 0; |
1172 | 0 | asn1_ctx_t asn1_ctx; |
1173 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1174 | 0 | offset = dissect_p772_ADatP3Parameters(false, tvb, offset, &asn1_ctx, tree, hf_p772_ADatP3Parameters_PDU); |
1175 | 0 | return offset; |
1176 | 0 | } |
1177 | 0 | static int dissect_ADatP3Data_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1178 | 0 | unsigned offset = 0; |
1179 | 0 | asn1_ctx_t asn1_ctx; |
1180 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1181 | 0 | offset = dissect_p772_ADatP3Data(false, tvb, offset, &asn1_ctx, tree, hf_p772_ADatP3Data_PDU); |
1182 | 0 | return offset; |
1183 | 0 | } |
1184 | 0 | static int dissect_CorrectionsParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1185 | 0 | unsigned offset = 0; |
1186 | 0 | asn1_ctx_t asn1_ctx; |
1187 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1188 | 0 | offset = dissect_p772_CorrectionsParameters(false, tvb, offset, &asn1_ctx, tree, hf_p772_CorrectionsParameters_PDU); |
1189 | 0 | return offset; |
1190 | 0 | } |
1191 | 0 | static int dissect_CorrectionsData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1192 | 0 | unsigned offset = 0; |
1193 | 0 | asn1_ctx_t asn1_ctx; |
1194 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1195 | 0 | offset = dissect_p772_CorrectionsData(false, tvb, offset, &asn1_ctx, tree, hf_p772_CorrectionsData_PDU); |
1196 | 0 | return offset; |
1197 | 0 | } |
1198 | 0 | static int dissect_ForwardedEncryptedParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1199 | 0 | unsigned offset = 0; |
1200 | 0 | asn1_ctx_t asn1_ctx; |
1201 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1202 | 0 | offset = dissect_p772_ForwardedEncryptedParameters(false, tvb, offset, &asn1_ctx, tree, hf_p772_ForwardedEncryptedParameters_PDU); |
1203 | 0 | return offset; |
1204 | 0 | } |
1205 | 0 | static int dissect_ForwardedEncryptedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1206 | 0 | unsigned offset = 0; |
1207 | 0 | asn1_ctx_t asn1_ctx; |
1208 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1209 | 0 | offset = dissect_p772_ForwardedEncryptedData(false, tvb, offset, &asn1_ctx, tree, hf_p772_ForwardedEncryptedData_PDU); |
1210 | 0 | return offset; |
1211 | 0 | } |
1212 | 0 | static int dissect_MMMessageParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1213 | 0 | unsigned offset = 0; |
1214 | 0 | asn1_ctx_t asn1_ctx; |
1215 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1216 | 0 | offset = dissect_p772_MMMessageParameters(false, tvb, offset, &asn1_ctx, tree, hf_p772_MMMessageParameters_PDU); |
1217 | 0 | return offset; |
1218 | 0 | } |
1219 | 0 | static int dissect_MMMessageData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1220 | 0 | unsigned offset = 0; |
1221 | 0 | asn1_ctx_t asn1_ctx; |
1222 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1223 | 0 | offset = dissect_p772_MMMessageData(false, tvb, offset, &asn1_ctx, tree, hf_p772_MMMessageData_PDU); |
1224 | 0 | return offset; |
1225 | 0 | } |
1226 | 0 | static int dissect_ACP127DataParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1227 | 0 | unsigned offset = 0; |
1228 | 0 | asn1_ctx_t asn1_ctx; |
1229 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1230 | 0 | offset = dissect_p772_ACP127DataParameters(false, tvb, offset, &asn1_ctx, tree, hf_p772_ACP127DataParameters_PDU); |
1231 | 0 | return offset; |
1232 | 0 | } |
1233 | 0 | static int dissect_ACP127DataData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1234 | 0 | unsigned offset = 0; |
1235 | 0 | asn1_ctx_t asn1_ctx; |
1236 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1237 | 0 | offset = dissect_p772_ACP127DataData(false, tvb, offset, &asn1_ctx, tree, hf_p772_ACP127DataData_PDU); |
1238 | 0 | return offset; |
1239 | 0 | } |
1240 | 0 | static int dissect_Acp127NotificationType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { |
1241 | 0 | unsigned offset = 0; |
1242 | 0 | asn1_ctx_t asn1_ctx; |
1243 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1244 | 0 | offset = dissect_p772_Acp127NotificationType(false, tvb, offset, &asn1_ctx, tree, hf_p772_Acp127NotificationType_PDU); |
1245 | 0 | return offset; |
1246 | 0 | } |
1247 | | |
1248 | | |
1249 | | |
1250 | | /* |
1251 | | * Dissect STANAG 4406 PDUs inside a PPDU. |
1252 | | */ |
1253 | | static int |
1254 | | dissect_p772(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_) |
1255 | 0 | { |
1256 | 0 | int offset = 0; |
1257 | 0 | proto_item *item=NULL; |
1258 | 0 | proto_tree *tree=NULL; |
1259 | 0 | asn1_ctx_t asn1_ctx; |
1260 | 0 | asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, true, pinfo); |
1261 | |
|
1262 | 0 | if (parent_tree) { |
1263 | 0 | item = proto_tree_add_item(parent_tree, proto_p772, tvb, 0, -1, ENC_NA); |
1264 | 0 | tree = proto_item_add_subtree(item, ett_p772); |
1265 | 0 | } |
1266 | |
|
1267 | 0 | col_set_str(pinfo->cinfo, COL_PROTOCOL, "P772"); |
1268 | 0 | col_set_str(pinfo->cinfo, COL_INFO, "Military"); |
1269 | |
|
1270 | 0 | dissect_p772_InformationObject(true, tvb, offset, &asn1_ctx , tree, -1); |
1271 | 0 | return tvb_captured_length(tvb); |
1272 | 0 | } |
1273 | | |
1274 | | |
1275 | | |
1276 | | /*--- proto_register_p772 -------------------------------------------*/ |
1277 | 14 | void proto_register_p772(void) { |
1278 | | |
1279 | | /* List of fields */ |
1280 | 14 | static hf_register_info hf[] = |
1281 | 14 | { |
1282 | 14 | { &hf_p772_InformationObject_PDU, |
1283 | 14 | { "InformationObject", "p772.InformationObject", |
1284 | 14 | FT_UINT32, BASE_DEC, VALS(p22_InformationObject_vals), 0, |
1285 | 14 | NULL, HFILL }}, |
1286 | 14 | { &hf_p772_Acp127NotificationResponse_PDU, |
1287 | 14 | { "Acp127NotificationResponse", "p772.Acp127NotificationResponse_element", |
1288 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1289 | 14 | NULL, HFILL }}, |
1290 | 14 | { &hf_p772_ExemptedAddressSeq_PDU, |
1291 | 14 | { "ExemptedAddressSeq", "p772.ExemptedAddressSeq", |
1292 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1293 | 14 | NULL, HFILL }}, |
1294 | 14 | { &hf_p772_ExtendedAuthorisationInfo_PDU, |
1295 | 14 | { "ExtendedAuthorisationInfo", "p772.ExtendedAuthorisationInfo", |
1296 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1297 | 14 | NULL, HFILL }}, |
1298 | 14 | { &hf_p772_DistributionCodes_PDU, |
1299 | 14 | { "DistributionCodes", "p772.DistributionCodes_element", |
1300 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1301 | 14 | NULL, HFILL }}, |
1302 | 14 | { &hf_p772_HandlingInstructions_PDU, |
1303 | 14 | { "HandlingInstructions", "p772.HandlingInstructions", |
1304 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1305 | 14 | NULL, HFILL }}, |
1306 | 14 | { &hf_p772_MessageInstructions_PDU, |
1307 | 14 | { "MessageInstructions", "p772.MessageInstructions", |
1308 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1309 | 14 | NULL, HFILL }}, |
1310 | 14 | { &hf_p772_CodressMessage_PDU, |
1311 | 14 | { "CodressMessage", "p772.CodressMessage", |
1312 | 14 | FT_INT32, BASE_DEC, NULL, 0, |
1313 | 14 | NULL, HFILL }}, |
1314 | 14 | { &hf_p772_OriginatorReference_PDU, |
1315 | 14 | { "OriginatorReference", "p772.OriginatorReference", |
1316 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1317 | 14 | NULL, HFILL }}, |
1318 | 14 | { &hf_p772_PrimaryPrecedence_PDU, |
1319 | 14 | { "PrimaryPrecedence", "p772.PrimaryPrecedence", |
1320 | 14 | FT_INT32, BASE_DEC, VALS(p772_PrimaryPrecedence_vals), 0, |
1321 | 14 | NULL, HFILL }}, |
1322 | 14 | { &hf_p772_CopyPrecedence_PDU, |
1323 | 14 | { "CopyPrecedence", "p772.CopyPrecedence", |
1324 | 14 | FT_INT32, BASE_DEC, VALS(p772_CopyPrecedence_vals), 0, |
1325 | 14 | NULL, HFILL }}, |
1326 | 14 | { &hf_p772_MessageType_PDU, |
1327 | 14 | { "MessageType", "p772.MessageType_element", |
1328 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1329 | 14 | NULL, HFILL }}, |
1330 | 14 | { &hf_p772_AddressListDesignatorSeq_PDU, |
1331 | 14 | { "AddressListDesignatorSeq", "p772.AddressListDesignatorSeq", |
1332 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1333 | 14 | NULL, HFILL }}, |
1334 | 14 | { &hf_p772_OtherRecipientDesignatorSeq_PDU, |
1335 | 14 | { "OtherRecipientDesignatorSeq", "p772.OtherRecipientDesignatorSeq", |
1336 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1337 | 14 | NULL, HFILL }}, |
1338 | 14 | { &hf_p772_PilotInformationSeq_PDU, |
1339 | 14 | { "PilotInformationSeq", "p772.PilotInformationSeq", |
1340 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1341 | 14 | NULL, HFILL }}, |
1342 | 14 | { &hf_p772_Acp127MessageIdentifier_PDU, |
1343 | 14 | { "Acp127MessageIdentifier", "p772.Acp127MessageIdentifier", |
1344 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1345 | 14 | NULL, HFILL }}, |
1346 | 14 | { &hf_p772_OriginatorPlad_PDU, |
1347 | 14 | { "OriginatorPlad", "p772.OriginatorPlad", |
1348 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1349 | 14 | NULL, HFILL }}, |
1350 | 14 | { &hf_p772_SecurityInformationLabels_PDU, |
1351 | 14 | { "SecurityInformationLabels", "p772.SecurityInformationLabels_element", |
1352 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1353 | 14 | NULL, HFILL }}, |
1354 | 14 | { &hf_p772_PriorityLevelQualifier_PDU, |
1355 | 14 | { "PriorityLevelQualifier", "p772.PriorityLevelQualifier", |
1356 | 14 | FT_UINT32, BASE_DEC, VALS(p772_PriorityLevelQualifier_vals), 0, |
1357 | 14 | NULL, HFILL }}, |
1358 | 14 | { &hf_p772_ADatP3Parameters_PDU, |
1359 | 14 | { "ADatP3Parameters", "p772.ADatP3Parameters", |
1360 | 14 | FT_INT32, BASE_DEC, NULL, 0, |
1361 | 14 | NULL, HFILL }}, |
1362 | 14 | { &hf_p772_ADatP3Data_PDU, |
1363 | 14 | { "ADatP3Data", "p772.ADatP3Data", |
1364 | 14 | FT_UINT32, BASE_DEC, VALS(p772_ADatP3Data_vals), 0, |
1365 | 14 | NULL, HFILL }}, |
1366 | 14 | { &hf_p772_CorrectionsParameters_PDU, |
1367 | 14 | { "CorrectionsParameters", "p772.CorrectionsParameters", |
1368 | 14 | FT_INT32, BASE_DEC, NULL, 0, |
1369 | 14 | NULL, HFILL }}, |
1370 | 14 | { &hf_p772_CorrectionsData_PDU, |
1371 | 14 | { "CorrectionsData", "p772.CorrectionsData", |
1372 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1373 | 14 | NULL, HFILL }}, |
1374 | 14 | { &hf_p772_ForwardedEncryptedParameters_PDU, |
1375 | 14 | { "ForwardedEncryptedParameters", "p772.ForwardedEncryptedParameters_element", |
1376 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1377 | 14 | NULL, HFILL }}, |
1378 | 14 | { &hf_p772_ForwardedEncryptedData_PDU, |
1379 | 14 | { "ForwardedEncryptedData", "p772.ForwardedEncryptedData", |
1380 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
1381 | 14 | NULL, HFILL }}, |
1382 | 14 | { &hf_p772_MMMessageParameters_PDU, |
1383 | 14 | { "MMMessageParameters", "p772.MMMessageParameters_element", |
1384 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1385 | 14 | NULL, HFILL }}, |
1386 | 14 | { &hf_p772_MMMessageData_PDU, |
1387 | 14 | { "MMMessageData", "p772.MMMessageData_element", |
1388 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1389 | 14 | NULL, HFILL }}, |
1390 | 14 | { &hf_p772_ACP127DataParameters_PDU, |
1391 | 14 | { "ACP127DataParameters", "p772.ACP127DataParameters", |
1392 | 14 | FT_INT32, BASE_DEC, NULL, 0, |
1393 | 14 | NULL, HFILL }}, |
1394 | 14 | { &hf_p772_ACP127DataData_PDU, |
1395 | 14 | { "ACP127DataData", "p772.ACP127DataData", |
1396 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1397 | 14 | NULL, HFILL }}, |
1398 | 14 | { &hf_p772_Acp127NotificationType_PDU, |
1399 | 14 | { "Acp127NotificationType", "p772.Acp127NotificationType", |
1400 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
1401 | 14 | NULL, HFILL }}, |
1402 | 14 | { &hf_p772_mm, |
1403 | 14 | { "mm", "p772.mm_element", |
1404 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1405 | 14 | "IPM", HFILL }}, |
1406 | 14 | { &hf_p772_mn, |
1407 | 14 | { "mn", "p772.mn_element", |
1408 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1409 | 14 | "IPN", HFILL }}, |
1410 | 14 | { &hf_p772_acp127_notification_type, |
1411 | 14 | { "acp127-notification-type", "p772.acp127_notification_type", |
1412 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
1413 | 14 | "Acp127NotificationType", HFILL }}, |
1414 | 14 | { &hf_p772_receipt_time, |
1415 | 14 | { "receipt-time", "p772.receipt_time", |
1416 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1417 | 14 | "ReceiptTimeField", HFILL }}, |
1418 | 14 | { &hf_p772_addressListIndicator, |
1419 | 14 | { "addressListIndicator", "p772.addressListIndicator", |
1420 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1421 | 14 | NULL, HFILL }}, |
1422 | 14 | { &hf_p772_acp127_recipient, |
1423 | 14 | { "acp127-recipient", "p772.acp127_recipient", |
1424 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1425 | 14 | "Acp127Recipient", HFILL }}, |
1426 | 14 | { &hf_p772_acp127_supp_info, |
1427 | 14 | { "acp127-supp-info", "p772.acp127_supp_info", |
1428 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1429 | 14 | "Acp127SuppInfo", HFILL }}, |
1430 | 14 | { &hf_p772_AddressListIndicator_item, |
1431 | 14 | { "AddressListDesignator", "p772.AddressListDesignator_element", |
1432 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1433 | 14 | NULL, HFILL }}, |
1434 | 14 | { &hf_p772_ExemptedAddressSeq_item, |
1435 | 14 | { "ExemptedAddress", "p772.ExemptedAddress_element", |
1436 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1437 | 14 | NULL, HFILL }}, |
1438 | 14 | { &hf_p772_sics, |
1439 | 14 | { "sics", "p772.sics", |
1440 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1441 | 14 | "SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic", HFILL }}, |
1442 | 14 | { &hf_p772_sics_item, |
1443 | 14 | { "Sic", "p772.Sic", |
1444 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1445 | 14 | NULL, HFILL }}, |
1446 | 14 | { &hf_p772_dist_Extensions, |
1447 | 14 | { "dist-Extensions", "p772.dist_Extensions", |
1448 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1449 | 14 | "SEQUENCE_OF_DistributionExtensionField", HFILL }}, |
1450 | 14 | { &hf_p772_dist_Extensions_item, |
1451 | 14 | { "DistributionExtensionField", "p772.DistributionExtensionField_element", |
1452 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1453 | 14 | NULL, HFILL }}, |
1454 | 14 | { &hf_p772_dist_type, |
1455 | 14 | { "dist-type", "p772.dist_type", |
1456 | 14 | FT_OID, BASE_NONE, NULL, 0, |
1457 | 14 | "OBJECT_IDENTIFIER", HFILL }}, |
1458 | 14 | { &hf_p772_dist_value, |
1459 | 14 | { "dist-value", "p772.dist_value_element", |
1460 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1461 | 14 | "T_dist_value", HFILL }}, |
1462 | 14 | { &hf_p772_HandlingInstructions_item, |
1463 | 14 | { "MilitaryString", "p772.MilitaryString", |
1464 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1465 | 14 | NULL, HFILL }}, |
1466 | 14 | { &hf_p772_MessageInstructions_item, |
1467 | 14 | { "MilitaryString", "p772.MilitaryString", |
1468 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1469 | 14 | NULL, HFILL }}, |
1470 | 14 | { &hf_p772_message_type_type, |
1471 | 14 | { "type", "p772.message_type_type", |
1472 | 14 | FT_INT32, BASE_DEC, VALS(p772_TypeMessage_vals), 0, |
1473 | 14 | "TypeMessage", HFILL }}, |
1474 | 14 | { &hf_p772_identifier, |
1475 | 14 | { "identifier", "p772.identifier", |
1476 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1477 | 14 | "MessageIdentifier", HFILL }}, |
1478 | 14 | { &hf_p772_AddressListDesignatorSeq_item, |
1479 | 14 | { "AddressListDesignator", "p772.AddressListDesignator_element", |
1480 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1481 | 14 | NULL, HFILL }}, |
1482 | 14 | { &hf_p772_address_list_type, |
1483 | 14 | { "type", "p772.address_list_type", |
1484 | 14 | FT_INT32, BASE_DEC, VALS(p772_AddressListType_vals), 0, |
1485 | 14 | "AddressListType", HFILL }}, |
1486 | 14 | { &hf_p772_listName, |
1487 | 14 | { "listName", "p772.listName_element", |
1488 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1489 | 14 | "ORDescriptor", HFILL }}, |
1490 | 14 | { &hf_p772_notificationRequest, |
1491 | 14 | { "notificationRequest", "p772.notificationRequest", |
1492 | 14 | FT_INT32, BASE_DEC, VALS(p772_AddressListRequest_vals), 0, |
1493 | 14 | "AddressListRequest", HFILL }}, |
1494 | 14 | { &hf_p772_replyRequest, |
1495 | 14 | { "replyRequest", "p772.replyRequest", |
1496 | 14 | FT_INT32, BASE_DEC, VALS(p772_AddressListRequest_vals), 0, |
1497 | 14 | "AddressListRequest", HFILL }}, |
1498 | 14 | { &hf_p772_OtherRecipientDesignatorSeq_item, |
1499 | 14 | { "OtherRecipientDesignator", "p772.OtherRecipientDesignator_element", |
1500 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1501 | 14 | NULL, HFILL }}, |
1502 | 14 | { &hf_p772_other_recipient_type, |
1503 | 14 | { "type", "p772.other_recipient_type", |
1504 | 14 | FT_INT32, BASE_DEC, VALS(p772_OtherRecipientType_vals), 0, |
1505 | 14 | "OtherRecipientType", HFILL }}, |
1506 | 14 | { &hf_p772_designator, |
1507 | 14 | { "designator", "p772.designator", |
1508 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1509 | 14 | "MilitaryString", HFILL }}, |
1510 | 14 | { &hf_p772_PilotInformationSeq_item, |
1511 | 14 | { "PilotInformation", "p772.PilotInformation_element", |
1512 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1513 | 14 | NULL, HFILL }}, |
1514 | 14 | { &hf_p772_pilotPrecedence, |
1515 | 14 | { "pilotPrecedence", "p772.pilotPrecedence", |
1516 | 14 | FT_INT32, BASE_DEC, VALS(p772_MMHSPrecedence_vals), 0, |
1517 | 14 | "MMHSPrecedence", HFILL }}, |
1518 | 14 | { &hf_p772_pilotRecipient, |
1519 | 14 | { "pilotRecipient", "p772.pilotRecipient", |
1520 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1521 | 14 | "SEQUENCE_OF_ORDescriptor", HFILL }}, |
1522 | 14 | { &hf_p772_pilotRecipient_item, |
1523 | 14 | { "ORDescriptor", "p772.ORDescriptor_element", |
1524 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1525 | 14 | NULL, HFILL }}, |
1526 | 14 | { &hf_p772_pilotSecurity, |
1527 | 14 | { "pilotSecurity", "p772.pilotSecurity_element", |
1528 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1529 | 14 | "SecurityLabel", HFILL }}, |
1530 | 14 | { &hf_p772_pilotHandling, |
1531 | 14 | { "pilotHandling", "p772.pilotHandling", |
1532 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1533 | 14 | "SEQUENCE_OF_MilitaryString", HFILL }}, |
1534 | 14 | { &hf_p772_pilotHandling_item, |
1535 | 14 | { "MilitaryString", "p772.MilitaryString", |
1536 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1537 | 14 | NULL, HFILL }}, |
1538 | 14 | { &hf_p772_content_security_label, |
1539 | 14 | { "content-security-label", "p772.content_security_label_element", |
1540 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1541 | 14 | "SecurityLabel", HFILL }}, |
1542 | 14 | { &hf_p772_heading_security_label, |
1543 | 14 | { "heading-security-label", "p772.heading_security_label_element", |
1544 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1545 | 14 | "SecurityLabel", HFILL }}, |
1546 | 14 | { &hf_p772_body_part_security_labels, |
1547 | 14 | { "body-part-security-labels", "p772.body_part_security_labels", |
1548 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1549 | 14 | "SEQUENCE_OF_BodyPartSecurityLabel", HFILL }}, |
1550 | 14 | { &hf_p772_body_part_security_labels_item, |
1551 | 14 | { "BodyPartSecurityLabel", "p772.BodyPartSecurityLabel_element", |
1552 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1553 | 14 | NULL, HFILL }}, |
1554 | 14 | { &hf_p772_body_part_security_label, |
1555 | 14 | { "body-part-security-label", "p772.body_part_security_label_element", |
1556 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1557 | 14 | "SecurityLabel", HFILL }}, |
1558 | 14 | { &hf_p772_body_part_sequence_number, |
1559 | 14 | { "body-part-sequence-number", "p772.body_part_sequence_number", |
1560 | 14 | FT_INT32, BASE_DEC, NULL, 0, |
1561 | 14 | "BodyPartSequenceNumber", HFILL }}, |
1562 | 14 | { &hf_p772_lineOriented, |
1563 | 14 | { "lineOriented", "p772.lineOriented", |
1564 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1565 | 14 | "IA5String", HFILL }}, |
1566 | 14 | { &hf_p772_setOriented, |
1567 | 14 | { "setOriented", "p772.setOriented", |
1568 | 14 | FT_UINT32, BASE_DEC, NULL, 0, |
1569 | 14 | NULL, HFILL }}, |
1570 | 14 | { &hf_p772_setOriented_item, |
1571 | 14 | { "setOriented item", "p772.setOriented_item", |
1572 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1573 | 14 | "IA5String", HFILL }}, |
1574 | 14 | { &hf_p772_delivery_time, |
1575 | 14 | { "delivery-time", "p772.delivery_time", |
1576 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
1577 | 14 | "MessageDeliveryTime", HFILL }}, |
1578 | 14 | { &hf_p772_delivery_envelope, |
1579 | 14 | { "delivery-envelope", "p772.delivery_envelope_element", |
1580 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
1581 | 14 | "OtherMessageDeliveryFields", HFILL }}, |
1582 | 14 | { &hf_p772_Acp127NotificationType_acp127_nn, |
1583 | 14 | { "acp127-nn", "p772.Acp127NotificationType.acp127.nn", |
1584 | 14 | FT_BOOLEAN, 8, NULL, 0x80, |
1585 | 14 | NULL, HFILL }}, |
1586 | 14 | { &hf_p772_Acp127NotificationType_acp127_pn, |
1587 | 14 | { "acp127-pn", "p772.Acp127NotificationType.acp127.pn", |
1588 | 14 | FT_BOOLEAN, 8, NULL, 0x40, |
1589 | 14 | NULL, HFILL }}, |
1590 | 14 | { &hf_p772_Acp127NotificationType_acp127_tn, |
1591 | 14 | { "acp127-tn", "p772.Acp127NotificationType.acp127.tn", |
1592 | 14 | FT_BOOLEAN, 8, NULL, 0x20, |
1593 | 14 | NULL, HFILL }}, |
1594 | 14 | }; |
1595 | | |
1596 | | /* List of subtrees */ |
1597 | 14 | static int *ett[] = { |
1598 | 14 | &ett_p772, |
1599 | 14 | &ett_p772_InformationObject, |
1600 | 14 | &ett_p772_Acp127NotificationResponse, |
1601 | 14 | &ett_p772_AddressListIndicator, |
1602 | 14 | &ett_p772_ExemptedAddressSeq, |
1603 | 14 | &ett_p772_DistributionCodes, |
1604 | 14 | &ett_p772_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic, |
1605 | 14 | &ett_p772_SEQUENCE_OF_DistributionExtensionField, |
1606 | 14 | &ett_p772_DistributionExtensionField, |
1607 | 14 | &ett_p772_HandlingInstructions, |
1608 | 14 | &ett_p772_MessageInstructions, |
1609 | 14 | &ett_p772_MessageType, |
1610 | 14 | &ett_p772_AddressListDesignatorSeq, |
1611 | 14 | &ett_p772_AddressListDesignator, |
1612 | 14 | &ett_p772_OtherRecipientDesignatorSeq, |
1613 | 14 | &ett_p772_OtherRecipientDesignator, |
1614 | 14 | &ett_p772_PilotInformationSeq, |
1615 | 14 | &ett_p772_PilotInformation, |
1616 | 14 | &ett_p772_SEQUENCE_OF_ORDescriptor, |
1617 | 14 | &ett_p772_SEQUENCE_OF_MilitaryString, |
1618 | 14 | &ett_p772_SecurityInformationLabels, |
1619 | 14 | &ett_p772_SEQUENCE_OF_BodyPartSecurityLabel, |
1620 | 14 | &ett_p772_BodyPartSecurityLabel, |
1621 | 14 | &ett_p772_ADatP3Data, |
1622 | 14 | &ett_p772_T_setOriented, |
1623 | 14 | &ett_p772_ForwardedEncryptedParameters, |
1624 | 14 | &ett_p772_MMMessageParameters, |
1625 | 14 | &ett_p772_Acp127NotificationType, |
1626 | 14 | }; |
1627 | | |
1628 | | /* Register protocol */ |
1629 | 14 | proto_p772 = proto_register_protocol(PNAME, PSNAME, PFNAME); |
1630 | 14 | register_dissector("p772", dissect_p772, proto_p772); |
1631 | | |
1632 | | /* Register fields and subtrees */ |
1633 | 14 | proto_register_field_array(proto_p772, hf, array_length(hf)); |
1634 | 14 | proto_register_subtree_array(ett, array_length(ett)); |
1635 | | |
1636 | 14 | register_ber_syntax_dissector("STANAG 4406", proto_p772, dissect_p772); |
1637 | 14 | register_ber_oid_syntax(".p772", NULL, "STANAG 4406"); |
1638 | 14 | } |
1639 | | |
1640 | | |
1641 | | /*--- proto_reg_handoff_p772 --- */ |
1642 | 14 | void proto_reg_handoff_p772(void) { |
1643 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.0", dissect_PrimaryPrecedence_PDU, proto_p772, "primary-precedence"); |
1644 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.1", dissect_CopyPrecedence_PDU, proto_p772, "copy-precedence"); |
1645 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.2", dissect_MessageType_PDU, proto_p772, "message-type"); |
1646 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.3", dissect_AddressListDesignatorSeq_PDU, proto_p772, "address-list-indicator"); |
1647 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.4", dissect_ExemptedAddressSeq_PDU, proto_p772, "exempted-address"); |
1648 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.5", dissect_ExtendedAuthorisationInfo_PDU, proto_p772, "extended-authorisation-info"); |
1649 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.6", dissect_DistributionCodes_PDU, proto_p772, "distribution-codes"); |
1650 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.7", dissect_HandlingInstructions_PDU, proto_p772, "handling-instructions"); |
1651 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.8", dissect_MessageInstructions_PDU, proto_p772, "message-instructions"); |
1652 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.9", dissect_CodressMessage_PDU, proto_p772, "codress-message"); |
1653 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.10", dissect_OriginatorReference_PDU, proto_p772, "originator-reference"); |
1654 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.11", dissect_OtherRecipientDesignatorSeq_PDU, proto_p772, "other-recipients-indicator"); |
1655 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.12", dissect_PilotInformationSeq_PDU, proto_p772, "pilot-forwarding-info"); |
1656 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.13", dissect_Acp127MessageIdentifier_PDU, proto_p772, "acp127-message-identifier"); |
1657 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.14", dissect_OriginatorPlad_PDU, proto_p772, "originator-plad"); |
1658 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.15", dissect_Acp127NotificationType_PDU, proto_p772, "acp127-notification-request"); |
1659 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.16", dissect_Acp127NotificationResponse_PDU, proto_p772, "acp127-notification-response"); |
1660 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.2.17", dissect_SecurityInformationLabels_PDU, proto_p772, "information-labels"); |
1661 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.8.0", dissect_PriorityLevelQualifier_PDU, proto_p772, "priority-level-qualifier"); |
1662 | 14 | register_ber_oid_dissector(id_nato_mmhs_et_adatp3, dissect_ADatP3Data_PDU, proto_p772, "adatp3"); |
1663 | 14 | register_ber_oid_dissector(id_nato_mmhs_et_adatp3_parameters, dissect_ADatP3Parameters_PDU, proto_p772, "adatp3-parameters"); |
1664 | 14 | register_ber_oid_dissector(id_nato_mmhs_et_corrections, dissect_CorrectionsData_PDU, proto_p772, "corrections"); |
1665 | 14 | register_ber_oid_dissector(id_nato_mmhs_et_corrections_parameters, dissect_CorrectionsParameters_PDU, proto_p772, "corrections-parameters"); |
1666 | 14 | register_ber_oid_dissector(id_nato_mmhs_et_forwarded_encrypted, dissect_ForwardedEncryptedData_PDU, proto_p772, "forwarded-encrypted"); |
1667 | 14 | register_ber_oid_dissector(id_nato_mmhs_et_forwarded_encrypted_parameters, dissect_ForwardedEncryptedParameters_PDU, proto_p772, "forwarded-encrypted-parameters"); |
1668 | 14 | register_ber_oid_dissector(id_nato_mmhs_et_mm_message, dissect_MMMessageData_PDU, proto_p772, "mm-message"); |
1669 | 14 | register_ber_oid_dissector(id_nato_mmhs_et_mm_message_parameters, dissect_MMMessageParameters_PDU, proto_p772, "mm-message-parameters"); |
1670 | 14 | register_ber_oid_dissector(id_nato_mmhs_et_mm_acp127data, dissect_ACP127DataData_PDU, proto_p772, "acp127-data"); |
1671 | 14 | register_ber_oid_dissector(id_nato_mmhs_et_mm_acp127data_parameters, dissect_ACP127DataParameters_PDU, proto_p772, "acp127-data-parameters"); |
1672 | 14 | register_ber_oid_dissector("2.6.1.4.17.1.3.26.0.4406.0.4.1", dissect_InformationObject_PDU, proto_p772, "id-et-content-p772"); |
1673 | | |
1674 | | |
1675 | 14 | register_ber_oid_dissector("1.3.26.0.4406.0.4.1", dissect_p772, proto_p772, "STANAG 4406"); |
1676 | 14 | } |