1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -b -C -p p772 -c ./p772.cnf -s ./packet-p772-template -D . -O ../../epan/dissectors MMSAbstractService.asn MMSInformationObjects.asn MMSOtherNotificationTypeExtensions.asn MMSObjectIdentifiers.asn MMSHeadingExtensions.asn MMSUpperBounds.asn MMSExtendedBodyPartTypes.asn MMSPerRecipientSpecifierExtensions.asn */
6 /* Input file: packet-p772-template.c */
8 #line 1 "../../asn1/p772/packet-p772-template.c"
10 * Routines for STANAG 4406 (X.400 Military Message Extensions) packet dissection
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
37 #include <epan/packet.h>
38 #include <epan/asn1.h>
40 #include "packet-ber.h"
42 #include "packet-x509if.h"
44 #include "packet-p772.h"
45 #include "packet-p1.h"
46 #include "packet-p22.h"
48 #define PNAME "STANAG 4406 Message"
52 /* Initialize the protocol and registered fields */
53 static int proto_p772
= -1;
56 /*--- Included file: packet-p772-val.h ---*/
57 #line 1 "../../asn1/p772/packet-p772-val.h"
58 #define id_mmhs "1.3.26.0.4406.0"
59 #define id_mod id_mmhs".0"
60 #define id_mm id_mmhs".2"
61 #define id_hat id_mmhs".3"
62 #define id_mcont id_mmhs".4"
63 #define id_policy id_mmhs".5"
64 #define id_cat id_mmhs".6"
65 #define id_et id_mmhs".7"
66 #define id_mmts id_mmhs".8"
67 #define id_nat id_mmhs".9"
68 #define id_mot id_mmhs".10"
69 #define id_mpt id_mmhs".11"
70 #define id_ref id_mmhs".12"
71 #define id_informationlabel id_mmhs".13"
72 #define id_mod_upper_bounds id_mod".0"
73 #define id_mod_mms id_mod".1"
74 #define id_mod_functional_objects id_mod".2"
75 #define id_mod_abstract_service id_mod".3"
76 #define id_mod_heading_extension id_mod".6"
77 #define id_mod_extended_body_part_types id_mod".7"
78 #define id_mod_message_store_attributes id_mod".8"
79 #define id_mod_per_recipient_specifier_extensions id_mod".11"
80 #define id_mod_other_notification_type_extensions id_mod".12"
81 #define id_mot_mmme id_mot".0"
82 #define id_mot_mms_user id_mot".1"
83 #define id_mot_mms id_mot".2"
84 #define id_mot_mms_ua id_mot".3"
85 #define id_mot_mms_ms id_mot".4"
86 #define id_mot_acp127au id_mot".5"
87 #define id_mot_pdau id_mot".6"
88 #define id_mpt_origination id_mpt".0"
89 #define id_mpt_reception id_mpt".1"
90 #define id_mpt_management id_mpt".2"
91 #define id_ref_primary id_ref".0"
92 #define id_ref_secondary id_ref".1"
93 #define id_nato_mmhs_et_adatp3 id_et".0"
94 #define id_nato_mmhs_et_corrections id_et".1"
95 #define id_nato_mmhs_et_adatp3_parameters id_et".2"
96 #define id_nato_mmhs_et_corrections_parameters id_et".3"
97 #define id_nato_mmhs_et_forwarded_encrypted id_et".6"
98 #define id_nato_mmhs_et_forwarded_encrypted_parameters id_et".7"
99 #define id_nato_mmhs_et_mm_message id_et".9"
100 #define id_nato_mmhs_et_mm_message_parameters id_et".10"
101 #define id_nato_mmhs_et_mm_acp127data id_et".12"
102 #define id_nato_mmhs_et_mm_acp127data_parameters id_et".13"
103 #define id_nato_mmhs_mm_primary_precedence id_mm".0"
104 #define id_nato_mmhs_mm_copy_precedence id_mm".1"
105 #define id_nato_mmhs_mm_message_type id_mm".2"
106 #define id_nato_mmhs_mm_address_list_indicator id_mm".3"
107 #define id_nato_mmhs_mm_exempted_address id_mm".4"
108 #define id_nato_mmhs_mm_extended_authorisation_info id_mm".5"
109 #define id_nato_mmhs_mm_distribution_codes id_mm".6"
110 #define id_nato_mmhs_mm_handling_instructions id_mm".7"
111 #define id_nato_mmhs_mm_message_instructions id_mm".8"
112 #define id_nato_mmhs_mm_codress_message id_mm".9"
113 #define id_nato_mmhs_mm_originator_reference id_mm".10"
114 #define id_nato_mmhs_mm_other_recipients_indicator id_mm".11"
115 #define id_nato_mmhs_mm_pilot_forwarding_info id_mm".12"
116 #define id_nato_mmhs_mm_acp127_message_identifier id_mm".13"
117 #define id_nato_mmhs_mm_originator_plad id_mm".14"
118 #define id_nato_mmhs_mm_information_labels id_mm".17"
119 #define id_nato_mmhs_mm_acp127_notification_request id_mm".15"
120 #define id_nato_mmhs_mm_acp127_notification_response id_mm".16"
121 #define id_nato_mmhs_hat_primary_precedence id_hat".0"
122 #define id_nato_mmhs_hat_copy_precedence id_hat".1"
123 #define id_nato_mmhs_hat_message_type id_hat".2"
124 #define id_nato_mmhs_hat_address_list_indicator id_hat".3"
125 #define id_nato_mmhs_hat_exempted_address id_hat".4"
126 #define id_nato_mmhs_hat_extended_authorisation_info id_hat".5"
127 #define id_nato_mmhs_hat_distribution_codes id_hat".6"
128 #define id_nato_mmhs_hat_handling_instructions id_hat".7"
129 #define id_nato_mmhs_hat_message_instructions id_hat".8"
130 #define id_nato_mmhs_hat_codress_message id_hat".9"
131 #define id_nato_mmhs_hat_originator_reference id_hat".10"
132 #define id_nato_mmhs_hat_other_recipients_indicator id_hat".11"
133 #define id_nato_mmhs_hat_pilot_forwarding_info id_hat".12"
134 #define id_nato_mmhs_hat_acp127_message_identifier id_hat".13"
135 #define id_nato_mmhs_hat_originator_plad id_hat".14"
136 #define id_nato_mmhs_hat_acp127_notification_request id_hat".15"
137 #define id_nato_mmhs_hat_sic_codes id_hat".16"
138 #define id_nato_mmhs_hat_distribution_extensions id_hat".17"
139 #define id_nato_mmhs_hat_body_part_information_label id_hat".18"
140 #define id_nato_mmhs_hat_security_information_labels id_hat".19"
141 #define id_nato_mmhs_cat id_cat".0"
142 #define id_nato_mmhs_cat_atomal id_cat".1"
143 #define id_nato_mmhs_cat_cryptosecurity id_cat".2"
144 #define id_nato_mmhs_cat_specialhandlingintel id_cat".3"
145 #define id_nato_mmhs_cat_ussiopesi id_cat".4"
146 #define id_nato_mmhs_cat_eyesonly id_cat".5"
147 #define id_nato_mmhs_cat_exclusive id_cat".6"
148 #define id_nato_mmhs_cat_information_label id_cat".7"
149 #define id_nato_mmhs_informationlabel_atomal id_informationlabel".1"
150 #define id_nato_mmhs_informationlabel_cryptosecurity id_informationlabel".2"
151 #define id_nato_mmhs_informationlabel_specialhandlingintel id_informationlabel".3"
152 #define id_nato_mmhs_informationlabel_ussiopesi id_informationlabel".4"
153 #define id_nato_mmhs_informationlabel_eyesonly id_informationlabel".5"
154 #define id_nato_mmhs_informationlabel_exclusive id_informationlabel".6"
155 #define id_nato_mmhs_nat_acp127_notification_response id_nat".0"
156 #define id_mct_p772 id_mcont".1"
157 #define ub_military_string 69
158 #define ub_military_number_of_sics 8
159 #define lb_military_sic 3
160 #define ub_military_sic 8
161 #define ub_military_bigstring 128
162 #define ub_data_size 65535
164 /*--- End of included file: packet-p772-val.h ---*/
165 #line 48 "../../asn1/p772/packet-p772-template.c"
168 /*--- Included file: packet-p772-hf.c ---*/
169 #line 1 "../../asn1/p772/packet-p772-hf.c"
170 static int hf_p772_InformationObject_PDU
= -1; /* InformationObject */
171 static int hf_p772_Acp127NotificationResponse_PDU
= -1; /* Acp127NotificationResponse */
172 static int hf_p772_ExemptedAddressSeq_PDU
= -1; /* ExemptedAddressSeq */
173 static int hf_p772_ExtendedAuthorisationInfo_PDU
= -1; /* ExtendedAuthorisationInfo */
174 static int hf_p772_DistributionCodes_PDU
= -1; /* DistributionCodes */
175 static int hf_p772_HandlingInstructions_PDU
= -1; /* HandlingInstructions */
176 static int hf_p772_MessageInstructions_PDU
= -1; /* MessageInstructions */
177 static int hf_p772_CodressMessage_PDU
= -1; /* CodressMessage */
178 static int hf_p772_OriginatorReference_PDU
= -1; /* OriginatorReference */
179 static int hf_p772_PrimaryPrecedence_PDU
= -1; /* PrimaryPrecedence */
180 static int hf_p772_CopyPrecedence_PDU
= -1; /* CopyPrecedence */
181 static int hf_p772_MessageType_PDU
= -1; /* MessageType */
182 static int hf_p772_AddressListDesignatorSeq_PDU
= -1; /* AddressListDesignatorSeq */
183 static int hf_p772_OtherRecipientDesignatorSeq_PDU
= -1; /* OtherRecipientDesignatorSeq */
184 static int hf_p772_PilotInformationSeq_PDU
= -1; /* PilotInformationSeq */
185 static int hf_p772_Acp127MessageIdentifier_PDU
= -1; /* Acp127MessageIdentifier */
186 static int hf_p772_OriginatorPlad_PDU
= -1; /* OriginatorPlad */
187 static int hf_p772_SecurityInformationLabels_PDU
= -1; /* SecurityInformationLabels */
188 static int hf_p772_PriorityLevelQualifier_PDU
= -1; /* PriorityLevelQualifier */
189 static int hf_p772_ADatP3Parameters_PDU
= -1; /* ADatP3Parameters */
190 static int hf_p772_ADatP3Data_PDU
= -1; /* ADatP3Data */
191 static int hf_p772_CorrectionsParameters_PDU
= -1; /* CorrectionsParameters */
192 static int hf_p772_CorrectionsData_PDU
= -1; /* CorrectionsData */
193 static int hf_p772_ForwardedEncryptedParameters_PDU
= -1; /* ForwardedEncryptedParameters */
194 static int hf_p772_ForwardedEncryptedData_PDU
= -1; /* ForwardedEncryptedData */
195 static int hf_p772_MMMessageParameters_PDU
= -1; /* MMMessageParameters */
196 static int hf_p772_MMMessageData_PDU
= -1; /* MMMessageData */
197 static int hf_p772_ACP127DataParameters_PDU
= -1; /* ACP127DataParameters */
198 static int hf_p772_ACP127DataData_PDU
= -1; /* ACP127DataData */
199 static int hf_p772_Acp127NotificationType_PDU
= -1; /* Acp127NotificationType */
200 static int hf_p772_mm
= -1; /* IPM */
201 static int hf_p772_mn
= -1; /* IPN */
202 static int hf_p772_acp127_notification_type
= -1; /* Acp127NotificationType */
203 static int hf_p772_receipt_time
= -1; /* ReceiptTimeField */
204 static int hf_p772_addressListIndicator
= -1; /* AddressListIndicator */
205 static int hf_p772_acp127_recipient
= -1; /* Acp127Recipient */
206 static int hf_p772_acp127_supp_info
= -1; /* Acp127SuppInfo */
207 static int hf_p772_AddressListIndicator_item
= -1; /* AddressListDesignator */
208 static int hf_p772_ExemptedAddressSeq_item
= -1; /* ExemptedAddress */
209 static int hf_p772_sics
= -1; /* SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic */
210 static int hf_p772_sics_item
= -1; /* Sic */
211 static int hf_p772_dist_Extensions
= -1; /* SEQUENCE_OF_DistributionExtensionField */
212 static int hf_p772_dist_Extensions_item
= -1; /* DistributionExtensionField */
213 static int hf_p772_dist_type
= -1; /* OBJECT_IDENTIFIER */
214 static int hf_p772_dist_value
= -1; /* T_dist_value */
215 static int hf_p772_HandlingInstructions_item
= -1; /* MilitaryString */
216 static int hf_p772_MessageInstructions_item
= -1; /* MilitaryString */
217 static int hf_p772_message_type_type
= -1; /* TypeMessage */
218 static int hf_p772_identifier
= -1; /* MessageIdentifier */
219 static int hf_p772_AddressListDesignatorSeq_item
= -1; /* AddressListDesignator */
220 static int hf_p772_address_list_type
= -1; /* AddressListType */
221 static int hf_p772_listName
= -1; /* ORDescriptor */
222 static int hf_p772_notificationRequest
= -1; /* AddressListRequest */
223 static int hf_p772_replyRequest
= -1; /* AddressListRequest */
224 static int hf_p772_OtherRecipientDesignatorSeq_item
= -1; /* OtherRecipientDesignator */
225 static int hf_p772_other_recipient_type
= -1; /* OtherRecipientType */
226 static int hf_p772_designator
= -1; /* MilitaryString */
227 static int hf_p772_PilotInformationSeq_item
= -1; /* PilotInformation */
228 static int hf_p772_pilotPrecedence
= -1; /* MMHSPrecedence */
229 static int hf_p772_pilotRecipient
= -1; /* SEQUENCE_OF_ORDescriptor */
230 static int hf_p772_pilotRecipient_item
= -1; /* ORDescriptor */
231 static int hf_p772_pilotSecurity
= -1; /* SecurityLabel */
232 static int hf_p772_pilotHandling
= -1; /* SEQUENCE_OF_MilitaryString */
233 static int hf_p772_pilotHandling_item
= -1; /* MilitaryString */
234 static int hf_p772_content_security_label
= -1; /* SecurityLabel */
235 static int hf_p772_heading_security_label
= -1; /* SecurityLabel */
236 static int hf_p772_body_part_security_labels
= -1; /* SEQUENCE_OF_BodyPartSecurityLabel */
237 static int hf_p772_body_part_security_labels_item
= -1; /* BodyPartSecurityLabel */
238 static int hf_p772_body_part_security_label
= -1; /* SecurityLabel */
239 static int hf_p772_body_part_sequence_number
= -1; /* BodyPartSequenceNumber */
240 static int hf_p772_lineOriented
= -1; /* IA5String */
241 static int hf_p772_setOriented
= -1; /* T_setOriented */
242 static int hf_p772_setOriented_item
= -1; /* IA5String */
243 static int hf_p772_delivery_time
= -1; /* MessageDeliveryTime */
244 static int hf_p772_delivery_envelope
= -1; /* OtherMessageDeliveryFields */
246 static int hf_p772_Acp127NotificationType_acp127_nn
= -1;
247 static int hf_p772_Acp127NotificationType_acp127_pn
= -1;
248 static int hf_p772_Acp127NotificationType_acp127_tn
= -1;
250 /*--- End of included file: packet-p772-hf.c ---*/
251 #line 50 "../../asn1/p772/packet-p772-template.c"
253 /* Initialize the subtree pointers */
254 static gint ett_p772
= -1;
256 /*--- Included file: packet-p772-ett.c ---*/
257 #line 1 "../../asn1/p772/packet-p772-ett.c"
258 static gint ett_p772_InformationObject
= -1;
259 static gint ett_p772_Acp127NotificationResponse
= -1;
260 static gint ett_p772_AddressListIndicator
= -1;
261 static gint ett_p772_ExemptedAddressSeq
= -1;
262 static gint ett_p772_DistributionCodes
= -1;
263 static gint ett_p772_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic
= -1;
264 static gint ett_p772_SEQUENCE_OF_DistributionExtensionField
= -1;
265 static gint ett_p772_DistributionExtensionField
= -1;
266 static gint ett_p772_HandlingInstructions
= -1;
267 static gint ett_p772_MessageInstructions
= -1;
268 static gint ett_p772_MessageType
= -1;
269 static gint ett_p772_AddressListDesignatorSeq
= -1;
270 static gint ett_p772_AddressListDesignator
= -1;
271 static gint ett_p772_OtherRecipientDesignatorSeq
= -1;
272 static gint ett_p772_OtherRecipientDesignator
= -1;
273 static gint ett_p772_PilotInformationSeq
= -1;
274 static gint ett_p772_PilotInformation
= -1;
275 static gint ett_p772_SEQUENCE_OF_ORDescriptor
= -1;
276 static gint ett_p772_SEQUENCE_OF_MilitaryString
= -1;
277 static gint ett_p772_SecurityInformationLabels
= -1;
278 static gint ett_p772_SEQUENCE_OF_BodyPartSecurityLabel
= -1;
279 static gint ett_p772_BodyPartSecurityLabel
= -1;
280 static gint ett_p772_ADatP3Data
= -1;
281 static gint ett_p772_T_setOriented
= -1;
282 static gint ett_p772_ForwardedEncryptedParameters
= -1;
283 static gint ett_p772_MMMessageParameters
= -1;
284 static gint ett_p772_Acp127NotificationType
= -1;
286 /*--- End of included file: packet-p772-ett.c ---*/
287 #line 54 "../../asn1/p772/packet-p772-template.c"
290 /*--- Included file: packet-p772-fn.c ---*/
291 #line 1 "../../asn1/p772/packet-p772-fn.c"
293 static const value_string p772_InformationObject_vals
[] = {
299 static const ber_choice_t InformationObject_choice
[] = {
300 { 0, &hf_p772_mm
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_p22_IPM
},
301 { 1, &hf_p772_mn
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_p22_IPN
},
302 { 0, NULL
, 0, 0, 0, NULL
}
306 dissect_p772_InformationObject(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
307 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
308 InformationObject_choice
, hf_index
, ett_p772_InformationObject
,
315 static const asn_namedbit Acp127NotificationType_bits
[] = {
316 { 0, &hf_p772_Acp127NotificationType_acp127_nn
, -1, -1, "acp127-nn", NULL
},
317 { 1, &hf_p772_Acp127NotificationType_acp127_pn
, -1, -1, "acp127-pn", NULL
},
318 { 2, &hf_p772_Acp127NotificationType_acp127_tn
, -1, -1, "acp127-tn", NULL
},
319 { 0, NULL
, 0, 0, NULL
, NULL
}
323 dissect_p772_Acp127NotificationType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
324 offset
= dissect_ber_bitstring(implicit_tag
, actx
, tree
, tvb
, offset
,
325 Acp127NotificationType_bits
, hf_index
, ett_p772_Acp127NotificationType
,
332 static const value_string p772_AddressListType_vals
[] = {
333 { 0, "primaryAddressList" },
334 { 1, "copyAddressList" },
340 dissect_p772_AddressListType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
341 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
348 static const value_string p772_AddressListRequest_vals
[] = {
357 dissect_p772_AddressListRequest(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
358 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
365 static const ber_sequence_t AddressListDesignator_set
[] = {
366 { &hf_p772_address_list_type
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_p772_AddressListType
},
367 { &hf_p772_listName
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_p22_ORDescriptor
},
368 { &hf_p772_notificationRequest
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_AddressListRequest
},
369 { &hf_p772_replyRequest
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_AddressListRequest
},
370 { NULL
, 0, 0, 0, NULL
}
374 dissect_p772_AddressListDesignator(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
375 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
376 AddressListDesignator_set
, hf_index
, ett_p772_AddressListDesignator
);
382 static const ber_sequence_t AddressListIndicator_sequence_of
[1] = {
383 { &hf_p772_AddressListIndicator_item
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_p772_AddressListDesignator
},
387 dissect_p772_AddressListIndicator(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
388 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
389 AddressListIndicator_sequence_of
, hf_index
, ett_p772_AddressListIndicator
);
397 dissect_p772_Acp127Recipient(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
398 offset
= dissect_ber_constrained_restricted_string(implicit_tag
, BER_UNI_TAG_PrintableString
,
399 actx
, tree
, tvb
, offset
,
400 1, ub_military_bigstring
, hf_index
, NULL
);
408 dissect_p772_Acp127SuppInfo(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
409 offset
= dissect_ber_constrained_restricted_string(implicit_tag
, BER_UNI_TAG_PrintableString
,
410 actx
, tree
, tvb
, offset
,
411 1, ub_military_bigstring
, hf_index
, NULL
);
417 static const ber_sequence_t Acp127NotificationResponse_set
[] = {
418 { &hf_p772_acp127_notification_type
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_p772_Acp127NotificationType
},
419 { &hf_p772_receipt_time
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_p22_ReceiptTimeField
},
420 { &hf_p772_addressListIndicator
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_AddressListIndicator
},
421 { &hf_p772_acp127_recipient
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_Acp127Recipient
},
422 { &hf_p772_acp127_supp_info
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_Acp127SuppInfo
},
423 { NULL
, 0, 0, 0, NULL
}
427 dissect_p772_Acp127NotificationResponse(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
428 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
429 Acp127NotificationResponse_set
, hf_index
, ett_p772_Acp127NotificationResponse
);
437 dissect_p772_ExemptedAddress(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
438 offset
= dissect_p22_ORDescriptor(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
444 static const ber_sequence_t ExemptedAddressSeq_sequence_of
[1] = {
445 { &hf_p772_ExemptedAddressSeq_item
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_p772_ExemptedAddress
},
449 dissect_p772_ExemptedAddressSeq(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
450 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
451 ExemptedAddressSeq_sequence_of
, hf_index
, ett_p772_ExemptedAddressSeq
);
459 dissect_p772_ExtendedAuthorisationInfo(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
460 offset
= dissect_ber_UTCTime(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
);
468 dissect_p772_Sic(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
469 offset
= dissect_ber_constrained_restricted_string(implicit_tag
, BER_UNI_TAG_PrintableString
,
470 actx
, tree
, tvb
, offset
,
471 lb_military_sic
, ub_military_sic
, hf_index
, NULL
);
477 static const ber_sequence_t SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic_sequence_of
[1] = {
478 { &hf_p772_sics_item
, BER_CLASS_UNI
, BER_UNI_TAG_PrintableString
, BER_FLAGS_NOOWNTAG
, dissect_p772_Sic
},
482 dissect_p772_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
483 offset
= dissect_ber_constrained_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
484 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
);
492 dissect_p772_OBJECT_IDENTIFIER(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
493 offset
= dissect_ber_object_identifier(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, NULL
);
501 dissect_p772_T_dist_value(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
502 #line 99 "../../asn1/p772/p772.cnf"
503 /* XXX: not implemented */
504 offset
= dissect_unknown_ber(actx
->pinfo
, tvb
, offset
, tree
);
512 static const ber_sequence_t DistributionExtensionField_sequence
[] = {
513 { &hf_p772_dist_type
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_p772_OBJECT_IDENTIFIER
},
514 { &hf_p772_dist_value
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_p772_T_dist_value
},
515 { NULL
, 0, 0, 0, NULL
}
519 dissect_p772_DistributionExtensionField(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
520 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
521 DistributionExtensionField_sequence
, hf_index
, ett_p772_DistributionExtensionField
);
527 static const ber_sequence_t SEQUENCE_OF_DistributionExtensionField_sequence_of
[1] = {
528 { &hf_p772_dist_Extensions_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_p772_DistributionExtensionField
},
532 dissect_p772_SEQUENCE_OF_DistributionExtensionField(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
533 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
534 SEQUENCE_OF_DistributionExtensionField_sequence_of
, hf_index
, ett_p772_SEQUENCE_OF_DistributionExtensionField
);
540 static const ber_sequence_t DistributionCodes_set
[] = {
541 { &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
},
542 { &hf_p772_dist_Extensions
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_SEQUENCE_OF_DistributionExtensionField
},
543 { NULL
, 0, 0, 0, NULL
}
547 dissect_p772_DistributionCodes(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
548 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
549 DistributionCodes_set
, hf_index
, ett_p772_DistributionCodes
);
557 dissect_p772_MilitaryString(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
558 offset
= dissect_ber_constrained_restricted_string(implicit_tag
, BER_UNI_TAG_PrintableString
,
559 actx
, tree
, tvb
, offset
,
560 1, ub_military_string
, hf_index
, NULL
);
566 static const ber_sequence_t HandlingInstructions_sequence_of
[1] = {
567 { &hf_p772_HandlingInstructions_item
, BER_CLASS_UNI
, BER_UNI_TAG_PrintableString
, BER_FLAGS_NOOWNTAG
, dissect_p772_MilitaryString
},
571 dissect_p772_HandlingInstructions(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
572 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
573 HandlingInstructions_sequence_of
, hf_index
, ett_p772_HandlingInstructions
);
579 static const ber_sequence_t MessageInstructions_sequence_of
[1] = {
580 { &hf_p772_MessageInstructions_item
, BER_CLASS_UNI
, BER_UNI_TAG_PrintableString
, BER_FLAGS_NOOWNTAG
, dissect_p772_MilitaryString
},
584 dissect_p772_MessageInstructions(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
585 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
586 MessageInstructions_sequence_of
, hf_index
, ett_p772_MessageInstructions
);
594 dissect_p772_CodressMessage(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
595 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
604 dissect_p772_OriginatorReference(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
605 offset
= dissect_p772_MilitaryString(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
611 static const value_string p772_MMHSPrecedence_vals
[] = {
626 dissect_p772_MMHSPrecedence(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
627 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
634 static const value_string p772_PrimaryPrecedence_vals
[] = {
649 dissect_p772_PrimaryPrecedence(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
650 #line 105 "../../asn1/p772/p772.cnf"
652 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
656 col_append_fstr(actx
->pinfo
->cinfo
, COL_INFO
, " (primary=%s)", val_to_str(precedence
, p772_PrimaryPrecedence_vals
, "precedence(%d)"));
664 static const value_string p772_CopyPrecedence_vals
[] = {
679 dissect_p772_CopyPrecedence(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
680 #line 113 "../../asn1/p772/p772.cnf"
682 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
686 col_append_fstr(actx
->pinfo
->cinfo
, COL_INFO
, " (copy=%s)", val_to_str(precedence
, p772_CopyPrecedence_vals
, "precedence(%d)"));
693 static const value_string p772_TypeMessage_vals
[] = {
703 dissect_p772_TypeMessage(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
704 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
713 dissect_p772_MessageIdentifier(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
714 offset
= dissect_p772_MilitaryString(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
720 static const ber_sequence_t MessageType_set
[] = {
721 { &hf_p772_message_type_type
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_p772_TypeMessage
},
722 { &hf_p772_identifier
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_MessageIdentifier
},
723 { NULL
, 0, 0, 0, NULL
}
727 dissect_p772_MessageType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
728 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
729 MessageType_set
, hf_index
, ett_p772_MessageType
);
735 static const ber_sequence_t AddressListDesignatorSeq_sequence_of
[1] = {
736 { &hf_p772_AddressListDesignatorSeq_item
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_p772_AddressListDesignator
},
740 dissect_p772_AddressListDesignatorSeq(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
741 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
742 AddressListDesignatorSeq_sequence_of
, hf_index
, ett_p772_AddressListDesignatorSeq
);
748 static const value_string p772_OtherRecipientType_vals
[] = {
756 dissect_p772_OtherRecipientType(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
757 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
764 static const ber_sequence_t OtherRecipientDesignator_set
[] = {
765 { &hf_p772_other_recipient_type
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_p772_OtherRecipientType
},
766 { &hf_p772_designator
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_p772_MilitaryString
},
767 { NULL
, 0, 0, 0, NULL
}
771 dissect_p772_OtherRecipientDesignator(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
772 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
773 OtherRecipientDesignator_set
, hf_index
, ett_p772_OtherRecipientDesignator
);
779 static const ber_sequence_t OtherRecipientDesignatorSeq_sequence_of
[1] = {
780 { &hf_p772_OtherRecipientDesignatorSeq_item
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_p772_OtherRecipientDesignator
},
784 dissect_p772_OtherRecipientDesignatorSeq(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
785 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
786 OtherRecipientDesignatorSeq_sequence_of
, hf_index
, ett_p772_OtherRecipientDesignatorSeq
);
792 static const ber_sequence_t SEQUENCE_OF_ORDescriptor_sequence_of
[1] = {
793 { &hf_p772_pilotRecipient_item
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_p22_ORDescriptor
},
797 dissect_p772_SEQUENCE_OF_ORDescriptor(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
798 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
799 SEQUENCE_OF_ORDescriptor_sequence_of
, hf_index
, ett_p772_SEQUENCE_OF_ORDescriptor
);
805 static const ber_sequence_t SEQUENCE_OF_MilitaryString_sequence_of
[1] = {
806 { &hf_p772_pilotHandling_item
, BER_CLASS_UNI
, BER_UNI_TAG_PrintableString
, BER_FLAGS_NOOWNTAG
, dissect_p772_MilitaryString
},
810 dissect_p772_SEQUENCE_OF_MilitaryString(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
811 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
812 SEQUENCE_OF_MilitaryString_sequence_of
, hf_index
, ett_p772_SEQUENCE_OF_MilitaryString
);
818 static const ber_sequence_t PilotInformation_sequence
[] = {
819 { &hf_p772_pilotPrecedence
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_MMHSPrecedence
},
820 { &hf_p772_pilotRecipient
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_SEQUENCE_OF_ORDescriptor
},
821 { &hf_p772_pilotSecurity
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p1_SecurityLabel
},
822 { &hf_p772_pilotHandling
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_SEQUENCE_OF_MilitaryString
},
823 { NULL
, 0, 0, 0, NULL
}
827 dissect_p772_PilotInformation(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
828 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
829 PilotInformation_sequence
, hf_index
, ett_p772_PilotInformation
);
835 static const ber_sequence_t PilotInformationSeq_sequence_of
[1] = {
836 { &hf_p772_PilotInformationSeq_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_p772_PilotInformation
},
840 dissect_p772_PilotInformationSeq(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
841 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
842 PilotInformationSeq_sequence_of
, hf_index
, ett_p772_PilotInformationSeq
);
850 dissect_p772_Acp127MessageIdentifier(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
851 offset
= dissect_p772_MilitaryString(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
859 dissect_p772_OriginatorPlad(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
860 offset
= dissect_p772_MilitaryString(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
868 dissect_p772_BodyPartSequenceNumber(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
869 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
876 static const ber_sequence_t BodyPartSecurityLabel_set
[] = {
877 { &hf_p772_body_part_security_label
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_p1_SecurityLabel
},
878 { &hf_p772_body_part_sequence_number
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_BodyPartSequenceNumber
},
879 { NULL
, 0, 0, 0, NULL
}
883 dissect_p772_BodyPartSecurityLabel(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
884 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
885 BodyPartSecurityLabel_set
, hf_index
, ett_p772_BodyPartSecurityLabel
);
891 static const ber_sequence_t SEQUENCE_OF_BodyPartSecurityLabel_sequence_of
[1] = {
892 { &hf_p772_body_part_security_labels_item
, BER_CLASS_UNI
, BER_UNI_TAG_SET
, BER_FLAGS_NOOWNTAG
, dissect_p772_BodyPartSecurityLabel
},
896 dissect_p772_SEQUENCE_OF_BodyPartSecurityLabel(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
897 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
898 SEQUENCE_OF_BodyPartSecurityLabel_sequence_of
, hf_index
, ett_p772_SEQUENCE_OF_BodyPartSecurityLabel
);
904 static const ber_sequence_t SecurityInformationLabels_sequence
[] = {
905 { &hf_p772_content_security_label
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_p1_SecurityLabel
},
906 { &hf_p772_heading_security_label
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p1_SecurityLabel
},
907 { &hf_p772_body_part_security_labels
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p772_SEQUENCE_OF_BodyPartSecurityLabel
},
908 { NULL
, 0, 0, 0, NULL
}
912 dissect_p772_SecurityInformationLabels(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
913 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
914 SecurityInformationLabels_sequence
, hf_index
, ett_p772_SecurityInformationLabels
);
920 static const value_string p772_PriorityLevelQualifier_vals
[] = {
928 dissect_p772_PriorityLevelQualifier(gboolean 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_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
938 dissect_p772_ADatP3Parameters(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
939 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
948 dissect_p772_IA5String(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
949 offset
= dissect_ber_restricted_string(implicit_tag
, BER_UNI_TAG_IA5String
,
950 actx
, tree
, tvb
, offset
, hf_index
,
957 static const ber_sequence_t T_setOriented_sequence_of
[1] = {
958 { &hf_p772_setOriented_item
, BER_CLASS_UNI
, BER_UNI_TAG_IA5String
, BER_FLAGS_NOOWNTAG
, dissect_p772_IA5String
},
962 dissect_p772_T_setOriented(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
963 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
964 T_setOriented_sequence_of
, hf_index
, ett_p772_T_setOriented
);
970 static const value_string p772_ADatP3Data_vals
[] = {
971 { 0, "lineOriented" },
972 { 1, "setOriented" },
976 static const ber_choice_t ADatP3Data_choice
[] = {
977 { 0, &hf_p772_lineOriented
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_p772_IA5String
},
978 { 1, &hf_p772_setOriented
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_p772_T_setOriented
},
979 { 0, NULL
, 0, 0, 0, NULL
}
983 dissect_p772_ADatP3Data(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
984 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
985 ADatP3Data_choice
, hf_index
, ett_p772_ADatP3Data
,
994 dissect_p772_CorrectionsParameters(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
995 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1004 dissect_p772_CorrectionsData(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1005 offset
= dissect_ber_restricted_string(implicit_tag
, BER_UNI_TAG_IA5String
,
1006 actx
, tree
, tvb
, offset
, hf_index
,
1013 static const ber_sequence_t ForwardedEncryptedParameters_set
[] = {
1014 { &hf_p772_delivery_time
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p1_MessageDeliveryTime
},
1015 { &hf_p772_delivery_envelope
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_p1_OtherMessageDeliveryFields
},
1016 { NULL
, 0, 0, 0, NULL
}
1020 dissect_p772_ForwardedEncryptedParameters(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1021 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
1022 ForwardedEncryptedParameters_set
, hf_index
, ett_p772_ForwardedEncryptedParameters
);
1030 dissect_p772_ForwardedEncryptedData(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1031 offset
= dissect_ber_bitstring(implicit_tag
, actx
, tree
, tvb
, offset
,
1039 static const ber_sequence_t MMMessageParameters_set
[] = {
1040 { &hf_p772_delivery_time
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_p1_MessageDeliveryTime
},
1041 { &hf_p772_delivery_envelope
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_p1_OtherMessageDeliveryFields
},
1042 { NULL
, 0, 0, 0, NULL
}
1046 dissect_p772_MMMessageParameters(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1047 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
1048 MMMessageParameters_set
, hf_index
, ett_p772_MMMessageParameters
);
1056 dissect_p772_MMMessageData(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1057 offset
= dissect_p22_IPM(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
1065 dissect_p772_ACP127DataParameters(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1066 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1075 dissect_p772_ACP127DataData(gboolean implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1076 offset
= dissect_ber_constrained_restricted_string(implicit_tag
, BER_UNI_TAG_IA5String
,
1077 actx
, tree
, tvb
, offset
,
1078 1, ub_data_size
, hf_index
, NULL
);
1085 static void dissect_InformationObject_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1086 asn1_ctx_t asn1_ctx
;
1087 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1088 dissect_p772_InformationObject(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_InformationObject_PDU
);
1090 static void dissect_Acp127NotificationResponse_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1091 asn1_ctx_t asn1_ctx
;
1092 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1093 dissect_p772_Acp127NotificationResponse(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_Acp127NotificationResponse_PDU
);
1095 static void dissect_ExemptedAddressSeq_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1096 asn1_ctx_t asn1_ctx
;
1097 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1098 dissect_p772_ExemptedAddressSeq(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_ExemptedAddressSeq_PDU
);
1100 static void dissect_ExtendedAuthorisationInfo_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1101 asn1_ctx_t asn1_ctx
;
1102 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1103 dissect_p772_ExtendedAuthorisationInfo(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_ExtendedAuthorisationInfo_PDU
);
1105 static void dissect_DistributionCodes_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1106 asn1_ctx_t asn1_ctx
;
1107 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1108 dissect_p772_DistributionCodes(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_DistributionCodes_PDU
);
1110 static void dissect_HandlingInstructions_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1111 asn1_ctx_t asn1_ctx
;
1112 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1113 dissect_p772_HandlingInstructions(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_HandlingInstructions_PDU
);
1115 static void dissect_MessageInstructions_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1116 asn1_ctx_t asn1_ctx
;
1117 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1118 dissect_p772_MessageInstructions(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_MessageInstructions_PDU
);
1120 static void dissect_CodressMessage_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1121 asn1_ctx_t asn1_ctx
;
1122 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1123 dissect_p772_CodressMessage(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_CodressMessage_PDU
);
1125 static void dissect_OriginatorReference_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1126 asn1_ctx_t asn1_ctx
;
1127 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1128 dissect_p772_OriginatorReference(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_OriginatorReference_PDU
);
1130 static void dissect_PrimaryPrecedence_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1131 asn1_ctx_t asn1_ctx
;
1132 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1133 dissect_p772_PrimaryPrecedence(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_PrimaryPrecedence_PDU
);
1135 static void dissect_CopyPrecedence_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1136 asn1_ctx_t asn1_ctx
;
1137 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1138 dissect_p772_CopyPrecedence(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_CopyPrecedence_PDU
);
1140 static void dissect_MessageType_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1141 asn1_ctx_t asn1_ctx
;
1142 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1143 dissect_p772_MessageType(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_MessageType_PDU
);
1145 static void dissect_AddressListDesignatorSeq_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1146 asn1_ctx_t asn1_ctx
;
1147 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1148 dissect_p772_AddressListDesignatorSeq(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_AddressListDesignatorSeq_PDU
);
1150 static void dissect_OtherRecipientDesignatorSeq_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1151 asn1_ctx_t asn1_ctx
;
1152 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1153 dissect_p772_OtherRecipientDesignatorSeq(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_OtherRecipientDesignatorSeq_PDU
);
1155 static void dissect_PilotInformationSeq_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1156 asn1_ctx_t asn1_ctx
;
1157 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1158 dissect_p772_PilotInformationSeq(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_PilotInformationSeq_PDU
);
1160 static void dissect_Acp127MessageIdentifier_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1161 asn1_ctx_t asn1_ctx
;
1162 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1163 dissect_p772_Acp127MessageIdentifier(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_Acp127MessageIdentifier_PDU
);
1165 static void dissect_OriginatorPlad_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1166 asn1_ctx_t asn1_ctx
;
1167 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1168 dissect_p772_OriginatorPlad(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_OriginatorPlad_PDU
);
1170 static void dissect_SecurityInformationLabels_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1171 asn1_ctx_t asn1_ctx
;
1172 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1173 dissect_p772_SecurityInformationLabels(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_SecurityInformationLabels_PDU
);
1175 static void dissect_PriorityLevelQualifier_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1176 asn1_ctx_t asn1_ctx
;
1177 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1178 dissect_p772_PriorityLevelQualifier(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_PriorityLevelQualifier_PDU
);
1180 static void dissect_ADatP3Parameters_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1181 asn1_ctx_t asn1_ctx
;
1182 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1183 dissect_p772_ADatP3Parameters(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_ADatP3Parameters_PDU
);
1185 static void dissect_ADatP3Data_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1186 asn1_ctx_t asn1_ctx
;
1187 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1188 dissect_p772_ADatP3Data(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_ADatP3Data_PDU
);
1190 static void dissect_CorrectionsParameters_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1191 asn1_ctx_t asn1_ctx
;
1192 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1193 dissect_p772_CorrectionsParameters(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_CorrectionsParameters_PDU
);
1195 static void dissect_CorrectionsData_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1196 asn1_ctx_t asn1_ctx
;
1197 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1198 dissect_p772_CorrectionsData(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_CorrectionsData_PDU
);
1200 static void dissect_ForwardedEncryptedParameters_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1201 asn1_ctx_t asn1_ctx
;
1202 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1203 dissect_p772_ForwardedEncryptedParameters(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_ForwardedEncryptedParameters_PDU
);
1205 static void dissect_ForwardedEncryptedData_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1206 asn1_ctx_t asn1_ctx
;
1207 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1208 dissect_p772_ForwardedEncryptedData(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_ForwardedEncryptedData_PDU
);
1210 static void dissect_MMMessageParameters_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1211 asn1_ctx_t asn1_ctx
;
1212 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1213 dissect_p772_MMMessageParameters(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_MMMessageParameters_PDU
);
1215 static void dissect_MMMessageData_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1216 asn1_ctx_t asn1_ctx
;
1217 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1218 dissect_p772_MMMessageData(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_MMMessageData_PDU
);
1220 static void dissect_ACP127DataParameters_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1221 asn1_ctx_t asn1_ctx
;
1222 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1223 dissect_p772_ACP127DataParameters(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_ACP127DataParameters_PDU
);
1225 static void dissect_ACP127DataData_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1226 asn1_ctx_t asn1_ctx
;
1227 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1228 dissect_p772_ACP127DataData(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_ACP127DataData_PDU
);
1230 static void dissect_Acp127NotificationType_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
1231 asn1_ctx_t asn1_ctx
;
1232 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1233 dissect_p772_Acp127NotificationType(FALSE
, tvb
, 0, &asn1_ctx
, tree
, hf_p772_Acp127NotificationType_PDU
);
1237 /*--- End of included file: packet-p772-fn.c ---*/
1238 #line 56 "../../asn1/p772/packet-p772-template.c"
1242 * Dissect STANAG 4406 PDUs inside a PPDU.
1245 dissect_p772(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*parent_tree
)
1248 proto_item
*item
=NULL
;
1249 proto_tree
*tree
=NULL
;
1250 asn1_ctx_t asn1_ctx
;
1251 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, TRUE
, pinfo
);
1254 item
= proto_tree_add_item(parent_tree
, proto_p772
, tvb
, 0, -1, ENC_NA
);
1255 tree
= proto_item_add_subtree(item
, ett_p772
);
1258 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "P772");
1259 col_set_str(pinfo
->cinfo
, COL_INFO
, "Military");
1261 dissect_p772_InformationObject(TRUE
, tvb
, offset
, &asn1_ctx
, tree
, -1);
1266 /*--- proto_register_p772 -------------------------------------------*/
1267 void proto_register_p772(void) {
1269 /* List of fields */
1270 static hf_register_info hf
[] =
1273 /*--- Included file: packet-p772-hfarr.c ---*/
1274 #line 1 "../../asn1/p772/packet-p772-hfarr.c"
1275 { &hf_p772_InformationObject_PDU
,
1276 { "InformationObject", "p772.InformationObject",
1277 FT_UINT32
, BASE_DEC
, VALS(p22_InformationObject_vals
), 0,
1279 { &hf_p772_Acp127NotificationResponse_PDU
,
1280 { "Acp127NotificationResponse", "p772.Acp127NotificationResponse_element",
1281 FT_NONE
, BASE_NONE
, NULL
, 0,
1283 { &hf_p772_ExemptedAddressSeq_PDU
,
1284 { "ExemptedAddressSeq", "p772.ExemptedAddressSeq",
1285 FT_UINT32
, BASE_DEC
, NULL
, 0,
1287 { &hf_p772_ExtendedAuthorisationInfo_PDU
,
1288 { "ExtendedAuthorisationInfo", "p772.ExtendedAuthorisationInfo",
1289 FT_STRING
, BASE_NONE
, NULL
, 0,
1291 { &hf_p772_DistributionCodes_PDU
,
1292 { "DistributionCodes", "p772.DistributionCodes_element",
1293 FT_NONE
, BASE_NONE
, NULL
, 0,
1295 { &hf_p772_HandlingInstructions_PDU
,
1296 { "HandlingInstructions", "p772.HandlingInstructions",
1297 FT_UINT32
, BASE_DEC
, NULL
, 0,
1299 { &hf_p772_MessageInstructions_PDU
,
1300 { "MessageInstructions", "p772.MessageInstructions",
1301 FT_UINT32
, BASE_DEC
, NULL
, 0,
1303 { &hf_p772_CodressMessage_PDU
,
1304 { "CodressMessage", "p772.CodressMessage",
1305 FT_INT32
, BASE_DEC
, NULL
, 0,
1307 { &hf_p772_OriginatorReference_PDU
,
1308 { "OriginatorReference", "p772.OriginatorReference",
1309 FT_STRING
, BASE_NONE
, NULL
, 0,
1311 { &hf_p772_PrimaryPrecedence_PDU
,
1312 { "PrimaryPrecedence", "p772.PrimaryPrecedence",
1313 FT_INT32
, BASE_DEC
, VALS(p772_PrimaryPrecedence_vals
), 0,
1315 { &hf_p772_CopyPrecedence_PDU
,
1316 { "CopyPrecedence", "p772.CopyPrecedence",
1317 FT_INT32
, BASE_DEC
, VALS(p772_CopyPrecedence_vals
), 0,
1319 { &hf_p772_MessageType_PDU
,
1320 { "MessageType", "p772.MessageType_element",
1321 FT_NONE
, BASE_NONE
, NULL
, 0,
1323 { &hf_p772_AddressListDesignatorSeq_PDU
,
1324 { "AddressListDesignatorSeq", "p772.AddressListDesignatorSeq",
1325 FT_UINT32
, BASE_DEC
, NULL
, 0,
1327 { &hf_p772_OtherRecipientDesignatorSeq_PDU
,
1328 { "OtherRecipientDesignatorSeq", "p772.OtherRecipientDesignatorSeq",
1329 FT_UINT32
, BASE_DEC
, NULL
, 0,
1331 { &hf_p772_PilotInformationSeq_PDU
,
1332 { "PilotInformationSeq", "p772.PilotInformationSeq",
1333 FT_UINT32
, BASE_DEC
, NULL
, 0,
1335 { &hf_p772_Acp127MessageIdentifier_PDU
,
1336 { "Acp127MessageIdentifier", "p772.Acp127MessageIdentifier",
1337 FT_STRING
, BASE_NONE
, NULL
, 0,
1339 { &hf_p772_OriginatorPlad_PDU
,
1340 { "OriginatorPlad", "p772.OriginatorPlad",
1341 FT_STRING
, BASE_NONE
, NULL
, 0,
1343 { &hf_p772_SecurityInformationLabels_PDU
,
1344 { "SecurityInformationLabels", "p772.SecurityInformationLabels_element",
1345 FT_NONE
, BASE_NONE
, NULL
, 0,
1347 { &hf_p772_PriorityLevelQualifier_PDU
,
1348 { "PriorityLevelQualifier", "p772.PriorityLevelQualifier",
1349 FT_UINT32
, BASE_DEC
, VALS(p772_PriorityLevelQualifier_vals
), 0,
1351 { &hf_p772_ADatP3Parameters_PDU
,
1352 { "ADatP3Parameters", "p772.ADatP3Parameters",
1353 FT_INT32
, BASE_DEC
, NULL
, 0,
1355 { &hf_p772_ADatP3Data_PDU
,
1356 { "ADatP3Data", "p772.ADatP3Data",
1357 FT_UINT32
, BASE_DEC
, VALS(p772_ADatP3Data_vals
), 0,
1359 { &hf_p772_CorrectionsParameters_PDU
,
1360 { "CorrectionsParameters", "p772.CorrectionsParameters",
1361 FT_INT32
, BASE_DEC
, NULL
, 0,
1363 { &hf_p772_CorrectionsData_PDU
,
1364 { "CorrectionsData", "p772.CorrectionsData",
1365 FT_STRING
, BASE_NONE
, NULL
, 0,
1367 { &hf_p772_ForwardedEncryptedParameters_PDU
,
1368 { "ForwardedEncryptedParameters", "p772.ForwardedEncryptedParameters_element",
1369 FT_NONE
, BASE_NONE
, NULL
, 0,
1371 { &hf_p772_ForwardedEncryptedData_PDU
,
1372 { "ForwardedEncryptedData", "p772.ForwardedEncryptedData",
1373 FT_BYTES
, BASE_NONE
, NULL
, 0,
1375 { &hf_p772_MMMessageParameters_PDU
,
1376 { "MMMessageParameters", "p772.MMMessageParameters_element",
1377 FT_NONE
, BASE_NONE
, NULL
, 0,
1379 { &hf_p772_MMMessageData_PDU
,
1380 { "MMMessageData", "p772.MMMessageData_element",
1381 FT_NONE
, BASE_NONE
, NULL
, 0,
1383 { &hf_p772_ACP127DataParameters_PDU
,
1384 { "ACP127DataParameters", "p772.ACP127DataParameters",
1385 FT_INT32
, BASE_DEC
, NULL
, 0,
1387 { &hf_p772_ACP127DataData_PDU
,
1388 { "ACP127DataData", "p772.ACP127DataData",
1389 FT_STRING
, BASE_NONE
, NULL
, 0,
1391 { &hf_p772_Acp127NotificationType_PDU
,
1392 { "Acp127NotificationType", "p772.Acp127NotificationType",
1393 FT_BYTES
, BASE_NONE
, NULL
, 0,
1396 { "mm", "p772.mm_element",
1397 FT_NONE
, BASE_NONE
, NULL
, 0,
1400 { "mn", "p772.mn_element",
1401 FT_NONE
, BASE_NONE
, NULL
, 0,
1403 { &hf_p772_acp127_notification_type
,
1404 { "acp127-notification-type", "p772.acp127_notification_type",
1405 FT_BYTES
, BASE_NONE
, NULL
, 0,
1406 "Acp127NotificationType", HFILL
}},
1407 { &hf_p772_receipt_time
,
1408 { "receipt-time", "p772.receipt_time",
1409 FT_STRING
, BASE_NONE
, NULL
, 0,
1410 "ReceiptTimeField", HFILL
}},
1411 { &hf_p772_addressListIndicator
,
1412 { "addressListIndicator", "p772.addressListIndicator",
1413 FT_UINT32
, BASE_DEC
, NULL
, 0,
1415 { &hf_p772_acp127_recipient
,
1416 { "acp127-recipient", "p772.acp127_recipient",
1417 FT_STRING
, BASE_NONE
, NULL
, 0,
1418 "Acp127Recipient", HFILL
}},
1419 { &hf_p772_acp127_supp_info
,
1420 { "acp127-supp-info", "p772.acp127_supp_info",
1421 FT_STRING
, BASE_NONE
, NULL
, 0,
1422 "Acp127SuppInfo", HFILL
}},
1423 { &hf_p772_AddressListIndicator_item
,
1424 { "AddressListDesignator", "p772.AddressListDesignator_element",
1425 FT_NONE
, BASE_NONE
, NULL
, 0,
1427 { &hf_p772_ExemptedAddressSeq_item
,
1428 { "ExemptedAddress", "p772.ExemptedAddress_element",
1429 FT_NONE
, BASE_NONE
, NULL
, 0,
1432 { "sics", "p772.sics",
1433 FT_UINT32
, BASE_DEC
, NULL
, 0,
1434 "SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic", HFILL
}},
1435 { &hf_p772_sics_item
,
1436 { "Sic", "p772.Sic",
1437 FT_STRING
, BASE_NONE
, NULL
, 0,
1439 { &hf_p772_dist_Extensions
,
1440 { "dist-Extensions", "p772.dist_Extensions",
1441 FT_UINT32
, BASE_DEC
, NULL
, 0,
1442 "SEQUENCE_OF_DistributionExtensionField", HFILL
}},
1443 { &hf_p772_dist_Extensions_item
,
1444 { "DistributionExtensionField", "p772.DistributionExtensionField_element",
1445 FT_NONE
, BASE_NONE
, NULL
, 0,
1447 { &hf_p772_dist_type
,
1448 { "dist-type", "p772.dist_type",
1449 FT_OID
, BASE_NONE
, NULL
, 0,
1450 "OBJECT_IDENTIFIER", HFILL
}},
1451 { &hf_p772_dist_value
,
1452 { "dist-value", "p772.dist_value_element",
1453 FT_NONE
, BASE_NONE
, NULL
, 0,
1454 "T_dist_value", HFILL
}},
1455 { &hf_p772_HandlingInstructions_item
,
1456 { "MilitaryString", "p772.MilitaryString",
1457 FT_STRING
, BASE_NONE
, NULL
, 0,
1459 { &hf_p772_MessageInstructions_item
,
1460 { "MilitaryString", "p772.MilitaryString",
1461 FT_STRING
, BASE_NONE
, NULL
, 0,
1463 { &hf_p772_message_type_type
,
1464 { "type", "p772.type",
1465 FT_INT32
, BASE_DEC
, VALS(p772_TypeMessage_vals
), 0,
1466 "TypeMessage", HFILL
}},
1467 { &hf_p772_identifier
,
1468 { "identifier", "p772.identifier",
1469 FT_STRING
, BASE_NONE
, NULL
, 0,
1470 "MessageIdentifier", HFILL
}},
1471 { &hf_p772_AddressListDesignatorSeq_item
,
1472 { "AddressListDesignator", "p772.AddressListDesignator_element",
1473 FT_NONE
, BASE_NONE
, NULL
, 0,
1475 { &hf_p772_address_list_type
,
1476 { "type", "p772.type",
1477 FT_INT32
, BASE_DEC
, VALS(p772_AddressListType_vals
), 0,
1478 "AddressListType", HFILL
}},
1479 { &hf_p772_listName
,
1480 { "listName", "p772.listName_element",
1481 FT_NONE
, BASE_NONE
, NULL
, 0,
1482 "ORDescriptor", HFILL
}},
1483 { &hf_p772_notificationRequest
,
1484 { "notificationRequest", "p772.notificationRequest",
1485 FT_INT32
, BASE_DEC
, VALS(p772_AddressListRequest_vals
), 0,
1486 "AddressListRequest", HFILL
}},
1487 { &hf_p772_replyRequest
,
1488 { "replyRequest", "p772.replyRequest",
1489 FT_INT32
, BASE_DEC
, VALS(p772_AddressListRequest_vals
), 0,
1490 "AddressListRequest", HFILL
}},
1491 { &hf_p772_OtherRecipientDesignatorSeq_item
,
1492 { "OtherRecipientDesignator", "p772.OtherRecipientDesignator_element",
1493 FT_NONE
, BASE_NONE
, NULL
, 0,
1495 { &hf_p772_other_recipient_type
,
1496 { "type", "p772.type",
1497 FT_INT32
, BASE_DEC
, VALS(p772_OtherRecipientType_vals
), 0,
1498 "OtherRecipientType", HFILL
}},
1499 { &hf_p772_designator
,
1500 { "designator", "p772.designator",
1501 FT_STRING
, BASE_NONE
, NULL
, 0,
1502 "MilitaryString", HFILL
}},
1503 { &hf_p772_PilotInformationSeq_item
,
1504 { "PilotInformation", "p772.PilotInformation_element",
1505 FT_NONE
, BASE_NONE
, NULL
, 0,
1507 { &hf_p772_pilotPrecedence
,
1508 { "pilotPrecedence", "p772.pilotPrecedence",
1509 FT_INT32
, BASE_DEC
, VALS(p772_MMHSPrecedence_vals
), 0,
1510 "MMHSPrecedence", HFILL
}},
1511 { &hf_p772_pilotRecipient
,
1512 { "pilotRecipient", "p772.pilotRecipient",
1513 FT_UINT32
, BASE_DEC
, NULL
, 0,
1514 "SEQUENCE_OF_ORDescriptor", HFILL
}},
1515 { &hf_p772_pilotRecipient_item
,
1516 { "ORDescriptor", "p772.ORDescriptor_element",
1517 FT_NONE
, BASE_NONE
, NULL
, 0,
1519 { &hf_p772_pilotSecurity
,
1520 { "pilotSecurity", "p772.pilotSecurity_element",
1521 FT_NONE
, BASE_NONE
, NULL
, 0,
1522 "SecurityLabel", HFILL
}},
1523 { &hf_p772_pilotHandling
,
1524 { "pilotHandling", "p772.pilotHandling",
1525 FT_UINT32
, BASE_DEC
, NULL
, 0,
1526 "SEQUENCE_OF_MilitaryString", HFILL
}},
1527 { &hf_p772_pilotHandling_item
,
1528 { "MilitaryString", "p772.MilitaryString",
1529 FT_STRING
, BASE_NONE
, NULL
, 0,
1531 { &hf_p772_content_security_label
,
1532 { "content-security-label", "p772.content_security_label_element",
1533 FT_NONE
, BASE_NONE
, NULL
, 0,
1534 "SecurityLabel", HFILL
}},
1535 { &hf_p772_heading_security_label
,
1536 { "heading-security-label", "p772.heading_security_label_element",
1537 FT_NONE
, BASE_NONE
, NULL
, 0,
1538 "SecurityLabel", HFILL
}},
1539 { &hf_p772_body_part_security_labels
,
1540 { "body-part-security-labels", "p772.body_part_security_labels",
1541 FT_UINT32
, BASE_DEC
, NULL
, 0,
1542 "SEQUENCE_OF_BodyPartSecurityLabel", HFILL
}},
1543 { &hf_p772_body_part_security_labels_item
,
1544 { "BodyPartSecurityLabel", "p772.BodyPartSecurityLabel_element",
1545 FT_NONE
, BASE_NONE
, NULL
, 0,
1547 { &hf_p772_body_part_security_label
,
1548 { "body-part-security-label", "p772.body_part_security_label_element",
1549 FT_NONE
, BASE_NONE
, NULL
, 0,
1550 "SecurityLabel", HFILL
}},
1551 { &hf_p772_body_part_sequence_number
,
1552 { "body-part-sequence-number", "p772.body_part_sequence_number",
1553 FT_INT32
, BASE_DEC
, NULL
, 0,
1554 "BodyPartSequenceNumber", HFILL
}},
1555 { &hf_p772_lineOriented
,
1556 { "lineOriented", "p772.lineOriented",
1557 FT_STRING
, BASE_NONE
, NULL
, 0,
1558 "IA5String", HFILL
}},
1559 { &hf_p772_setOriented
,
1560 { "setOriented", "p772.setOriented",
1561 FT_UINT32
, BASE_DEC
, NULL
, 0,
1563 { &hf_p772_setOriented_item
,
1564 { "setOriented item", "p772.setOriented_item",
1565 FT_STRING
, BASE_NONE
, NULL
, 0,
1566 "IA5String", HFILL
}},
1567 { &hf_p772_delivery_time
,
1568 { "delivery-time", "p772.delivery_time",
1569 FT_STRING
, BASE_NONE
, NULL
, 0,
1570 "MessageDeliveryTime", HFILL
}},
1571 { &hf_p772_delivery_envelope
,
1572 { "delivery-envelope", "p772.delivery_envelope_element",
1573 FT_NONE
, BASE_NONE
, NULL
, 0,
1574 "OtherMessageDeliveryFields", HFILL
}},
1575 { &hf_p772_Acp127NotificationType_acp127_nn
,
1576 { "acp127-nn", "p772.acp127-nn",
1577 FT_BOOLEAN
, 8, NULL
, 0x80,
1579 { &hf_p772_Acp127NotificationType_acp127_pn
,
1580 { "acp127-pn", "p772.acp127-pn",
1581 FT_BOOLEAN
, 8, NULL
, 0x40,
1583 { &hf_p772_Acp127NotificationType_acp127_tn
,
1584 { "acp127-tn", "p772.acp127-tn",
1585 FT_BOOLEAN
, 8, NULL
, 0x20,
1588 /*--- End of included file: packet-p772-hfarr.c ---*/
1589 #line 90 "../../asn1/p772/packet-p772-template.c"
1592 /* List of subtrees */
1593 static gint
*ett
[] = {
1596 /*--- Included file: packet-p772-ettarr.c ---*/
1597 #line 1 "../../asn1/p772/packet-p772-ettarr.c"
1598 &ett_p772_InformationObject
,
1599 &ett_p772_Acp127NotificationResponse
,
1600 &ett_p772_AddressListIndicator
,
1601 &ett_p772_ExemptedAddressSeq
,
1602 &ett_p772_DistributionCodes
,
1603 &ett_p772_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic
,
1604 &ett_p772_SEQUENCE_OF_DistributionExtensionField
,
1605 &ett_p772_DistributionExtensionField
,
1606 &ett_p772_HandlingInstructions
,
1607 &ett_p772_MessageInstructions
,
1608 &ett_p772_MessageType
,
1609 &ett_p772_AddressListDesignatorSeq
,
1610 &ett_p772_AddressListDesignator
,
1611 &ett_p772_OtherRecipientDesignatorSeq
,
1612 &ett_p772_OtherRecipientDesignator
,
1613 &ett_p772_PilotInformationSeq
,
1614 &ett_p772_PilotInformation
,
1615 &ett_p772_SEQUENCE_OF_ORDescriptor
,
1616 &ett_p772_SEQUENCE_OF_MilitaryString
,
1617 &ett_p772_SecurityInformationLabels
,
1618 &ett_p772_SEQUENCE_OF_BodyPartSecurityLabel
,
1619 &ett_p772_BodyPartSecurityLabel
,
1620 &ett_p772_ADatP3Data
,
1621 &ett_p772_T_setOriented
,
1622 &ett_p772_ForwardedEncryptedParameters
,
1623 &ett_p772_MMMessageParameters
,
1624 &ett_p772_Acp127NotificationType
,
1626 /*--- End of included file: packet-p772-ettarr.c ---*/
1627 #line 96 "../../asn1/p772/packet-p772-template.c"
1630 /* Register protocol */
1631 proto_p772
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
1632 register_dissector("p772", dissect_p772
, proto_p772
);
1634 /* Register fields and subtrees */
1635 proto_register_field_array(proto_p772
, hf
, array_length(hf
));
1636 proto_register_subtree_array(ett
, array_length(ett
));
1638 register_ber_syntax_dissector("STANAG 4406", proto_p772
, dissect_p772
);
1639 register_ber_oid_syntax(".p772", NULL
, "STANAG 4406");
1643 /*--- proto_reg_handoff_p772 --- */
1644 void proto_reg_handoff_p772(void) {
1646 /*--- Included file: packet-p772-dis-tab.c ---*/
1647 #line 1 "../../asn1/p772/packet-p772-dis-tab.c"
1648 register_ber_oid_dissector("1.3.26.0.4406.0.2.0", dissect_PrimaryPrecedence_PDU
, proto_p772
, "primary-precedence");
1649 register_ber_oid_dissector("1.3.26.0.4406.0.2.1", dissect_CopyPrecedence_PDU
, proto_p772
, "copy-precedence");
1650 register_ber_oid_dissector("1.3.26.0.4406.0.2.2", dissect_MessageType_PDU
, proto_p772
, "message-type");
1651 register_ber_oid_dissector("1.3.26.0.4406.0.2.3", dissect_AddressListDesignatorSeq_PDU
, proto_p772
, "address-list-indicator");
1652 register_ber_oid_dissector("1.3.26.0.4406.0.2.4", dissect_ExemptedAddressSeq_PDU
, proto_p772
, "exempted-address");
1653 register_ber_oid_dissector("1.3.26.0.4406.0.2.5", dissect_ExtendedAuthorisationInfo_PDU
, proto_p772
, "extended-authorisation-info");
1654 register_ber_oid_dissector("1.3.26.0.4406.0.2.6", dissect_DistributionCodes_PDU
, proto_p772
, "distribution-codes");
1655 register_ber_oid_dissector("1.3.26.0.4406.0.2.7", dissect_HandlingInstructions_PDU
, proto_p772
, "handling-instructions");
1656 register_ber_oid_dissector("1.3.26.0.4406.0.2.8", dissect_MessageInstructions_PDU
, proto_p772
, "message-instructions");
1657 register_ber_oid_dissector("1.3.26.0.4406.0.2.9", dissect_CodressMessage_PDU
, proto_p772
, "codress-message");
1658 register_ber_oid_dissector("1.3.26.0.4406.0.2.10", dissect_OriginatorReference_PDU
, proto_p772
, "originator-reference");
1659 register_ber_oid_dissector("1.3.26.0.4406.0.2.11", dissect_OtherRecipientDesignatorSeq_PDU
, proto_p772
, "other-recipients-indicator");
1660 register_ber_oid_dissector("1.3.26.0.4406.0.2.12", dissect_PilotInformationSeq_PDU
, proto_p772
, "pilot-forwarding-info");
1661 register_ber_oid_dissector("1.3.26.0.4406.0.2.13", dissect_Acp127MessageIdentifier_PDU
, proto_p772
, "acp127-message-identifier");
1662 register_ber_oid_dissector("1.3.26.0.4406.0.2.14", dissect_OriginatorPlad_PDU
, proto_p772
, "originator-plad");
1663 register_ber_oid_dissector("1.3.26.0.4406.0.2.15", dissect_Acp127NotificationType_PDU
, proto_p772
, "acp127-notification-request");
1664 register_ber_oid_dissector("1.3.26.0.4406.0.2.16", dissect_Acp127NotificationResponse_PDU
, proto_p772
, "acp127-notification-response");
1665 register_ber_oid_dissector("1.3.26.0.4406.0.2.17", dissect_SecurityInformationLabels_PDU
, proto_p772
, "information-labels");
1666 register_ber_oid_dissector("1.3.26.0.4406.0.8.0", dissect_PriorityLevelQualifier_PDU
, proto_p772
, "priority-level-qualifier");
1667 register_ber_oid_dissector(id_nato_mmhs_et_adatp3
, dissect_ADatP3Data_PDU
, proto_p772
, "adatp3");
1668 register_ber_oid_dissector(id_nato_mmhs_et_adatp3_parameters
, dissect_ADatP3Parameters_PDU
, proto_p772
, "adatp3-parameters");
1669 register_ber_oid_dissector(id_nato_mmhs_et_corrections
, dissect_CorrectionsData_PDU
, proto_p772
, "corrections");
1670 register_ber_oid_dissector(id_nato_mmhs_et_corrections_parameters
, dissect_CorrectionsParameters_PDU
, proto_p772
, "corrections-parameters");
1671 register_ber_oid_dissector(id_nato_mmhs_et_forwarded_encrypted
, dissect_ForwardedEncryptedData_PDU
, proto_p772
, "forwarded-encrypted");
1672 register_ber_oid_dissector(id_nato_mmhs_et_forwarded_encrypted_parameters
, dissect_ForwardedEncryptedParameters_PDU
, proto_p772
, "forwarded-encrypted-parameters");
1673 register_ber_oid_dissector(id_nato_mmhs_et_mm_message
, dissect_MMMessageData_PDU
, proto_p772
, "mm-message");
1674 register_ber_oid_dissector(id_nato_mmhs_et_mm_message_parameters
, dissect_MMMessageParameters_PDU
, proto_p772
, "mm-message-parameters");
1675 register_ber_oid_dissector(id_nato_mmhs_et_mm_acp127data
, dissect_ACP127DataData_PDU
, proto_p772
, "acp127-data");
1676 register_ber_oid_dissector(id_nato_mmhs_et_mm_acp127data_parameters
, dissect_ACP127DataParameters_PDU
, proto_p772
, "acp127-data-parameters");
1677 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");
1680 /*--- End of included file: packet-p772-dis-tab.c ---*/
1681 #line 114 "../../asn1/p772/packet-p772-template.c"
1683 register_ber_oid_dissector("1.3.26.0.4406.0.4.1", dissect_p772
, proto_p772
, "STANAG 4406");