1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-atn-cpdlc.c */
4 /* asn2wrs.py -u -q -L -p atn-cpdlc -c ./atn-cpdlc.cnf -s ./packet-atn-cpdlc-template -D . -O ../.. atn-cpdlc.asn */
6 /* packet-atn-cpdlc-template.c
7 * By Mathias Guettler <guettler@web.de>
10 * Routines for ATN Cpdlcc protocol packet disassembly
13 * https://en.wikipedia.org/wiki/CPDLC
14 * https://members.optusnet.com.au/~cjr/introduction.htm
17 * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Second Edition here
18 * (CPDLC may also be transmitted via ACARS/AOA aka "FANS-1/A ").
19 * https://www.icao.int/safety/acp/repository/_%20Doc9705_ed2_1999.pdf
21 * Wireshark - Network traffic analyzer
22 * By Gerald Combs <gerald@wireshark.org>
23 * Copyright 1998 Gerald Combs
25 * SPDX-License-Identifier: GPL-2.0-or-later
30 Which CPDLC messages are supported ?
31 Protected Mode CPDLC (AeQualifier 22) and Plain Old CPDLC (AeQualifier 2)
32 The dissector has been tested with ICAO doc9705 Edition2 compliant traffic.
37 #include <epan/packet.h>
38 #include <epan/exceptions.h>
39 #include <epan/conversation.h>
40 #include <wsutil/array.h>
41 #include "packet-ber.h"
42 #include "packet-per.h"
43 #include "packet-atn-ulcs.h"
45 #define ATN_CPDLC_PROTO "ICAO Doc9705 CPDLC"
47 void proto_register_atn_cpdlc(void);
48 void proto_reg_handoff_atn_cpdlc(void);
50 static const char *object_identifier_id
;
52 /* IA5 charset (7-bit) for PER IA5 decoding */
53 static const char ia5alpha
[] = {
54 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, \
55 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, \
56 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, \
57 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, \
58 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, \
59 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, \
60 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, \
61 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, \
62 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, '\0'
65 /* forward declarations */
66 static int dissect_GroundPDUs_PDU(
68 packet_info
*pinfo _U_
,
71 static int dissect_AircraftPDUs_PDU(
73 packet_info
*pinfo _U_
,
76 static int dissect_ProtectedGroundPDUs_PDU(
78 packet_info
*pinfo _U_
,
81 static int dissect_ProtectedAircraftPDUs_PDU(
83 packet_info
*pinfo _U_
,
87 static int hf_atn_cpdlc_GroundPDUs_PDU
; /* GroundPDUs */
88 static int hf_atn_cpdlc_AircraftPDUs_PDU
; /* AircraftPDUs */
89 static int hf_atn_cpdlc_ProtectedGroundPDUs_PDU
; /* ProtectedGroundPDUs */
90 static int hf_atn_cpdlc_ProtectedAircraftPDUs_PDU
; /* ProtectedAircraftPDUs */
91 static int hf_atn_cpdlc_abortUser
; /* CPDLCUserAbortReason */
92 static int hf_atn_cpdlc_abortProvider
; /* CPDLCProviderAbortReason */
93 static int hf_atn_cpdlc_startup
; /* UplinkMessage */
94 static int hf_atn_cpdlc_groundpdus_send
; /* ATCUplinkMessage */
95 static int hf_atn_cpdlc_forward
; /* ATCForwardMessage */
96 static int hf_atn_cpdlc_forwardresponse
; /* ATCForwardResponse */
97 static int hf_atn_cpdlc_noMessage
; /* NULL */
98 static int hf_atn_cpdlc_aTCUplinkMessage
; /* ATCUplinkMessage */
99 static int hf_atn_cpdlc_startdown
; /* StartDownMessage */
100 static int hf_atn_cpdlc_aircraftpdus_send
; /* ATCDownlinkMessage */
101 static int hf_atn_cpdlc_mode
; /* Mode */
102 static int hf_atn_cpdlc_startDownlinkMessage
; /* DownlinkMessage */
103 static int hf_atn_cpdlc_aTCDownlinkMessage
; /* ATCDownlinkMessage */
104 static int hf_atn_cpdlc_pmcpdlcuserabortreason
; /* PMCPDLCUserAbortReason */
105 static int hf_atn_cpdlc_pmcpdlcproviderabortreason
; /* PMCPDLCProviderAbortReason */
106 static int hf_atn_cpdlc_protecteduplinkmessage
; /* ProtectedUplinkMessage */
107 static int hf_atn_cpdlc_algorithmIdentifier
; /* AlgorithmIdentifier */
108 static int hf_atn_cpdlc_protectedMessage
; /* CPDLCMessage */
109 static int hf_atn_cpdlc_integrityCheck
; /* BIT_STRING */
110 static int hf_atn_cpdlc_forwardHeader
; /* ForwardHeader */
111 static int hf_atn_cpdlc_forwardMessage
; /* ForwardMessage */
112 static int hf_atn_cpdlc_dateTime
; /* DateTimeGroup */
113 static int hf_atn_cpdlc_aircraftID
; /* AircraftFlightIdentification */
114 static int hf_atn_cpdlc_aircraftAddress
; /* AircraftAddress */
115 static int hf_atn_cpdlc_upElementIDs
; /* BIT_STRING */
116 static int hf_atn_cpdlc_downElementIDs
; /* BIT_STRING */
117 static int hf_atn_cpdlc_protectedstartDownmessage
; /* ProtectedStartDownMessage */
118 static int hf_atn_cpdlc_send
; /* ProtectedDownlinkMessage */
119 static int hf_atn_cpdlc_protectedmode
; /* ProtectedMode */
120 static int hf_atn_cpdlc_protecteddownlinkmessage
; /* ProtectedDownlinkMessage */
121 static int hf_atn_cpdlc_header
; /* ATCMessageHeader */
122 static int hf_atn_cpdlc_atcuplinkmessage_messagedata
; /* ATCUplinkMessageData */
123 static int hf_atn_cpdlc_atcuplinkmessagedata_elementids
; /* SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId */
124 static int hf_atn_cpdlc_atcuplinkmessagedata_elementids_item
; /* ATCUplinkMsgElementId */
125 static int hf_atn_cpdlc_atcuplinkmessagedata_constraineddata
; /* T_atcuplinkmessagedata_constraineddata */
126 static int hf_atn_cpdlc_routeClearanceData
; /* SEQUENCE_SIZE_1_2_OF_RouteClearance */
127 static int hf_atn_cpdlc_routeClearanceData_item
; /* RouteClearance */
128 static int hf_atn_cpdlc_atcdownlinkmessage_messagedata
; /* ATCDownlinkMessageData */
129 static int hf_atn_cpdlc_atcdownlinkmessagedata_elementids
; /* SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId */
130 static int hf_atn_cpdlc_atcdownlinkmessagedata_elementids_item
; /* ATCDownlinkMsgElementId */
131 static int hf_atn_cpdlc_atcdownlinkmessagedata_constraineddata
; /* T_atcdownlinkmessagedata_constraineddata */
132 static int hf_atn_cpdlc_messageIdNumber
; /* MsgIdentificationNumber */
133 static int hf_atn_cpdlc_messageRefNumber
; /* MsgReferenceNumber */
134 static int hf_atn_cpdlc_logicalAck
; /* LogicalAck */
135 static int hf_atn_cpdlc_uM0NULL
; /* NULL */
136 static int hf_atn_cpdlc_uM1NULL
; /* NULL */
137 static int hf_atn_cpdlc_uM2NULL
; /* NULL */
138 static int hf_atn_cpdlc_uM3NULL
; /* NULL */
139 static int hf_atn_cpdlc_uM4NULL
; /* NULL */
140 static int hf_atn_cpdlc_uM5NULL
; /* NULL */
141 static int hf_atn_cpdlc_uM6Level
; /* Level */
142 static int hf_atn_cpdlc_uM7Time
; /* Time */
143 static int hf_atn_cpdlc_uM8Position
; /* Position */
144 static int hf_atn_cpdlc_uM9Time
; /* Time */
145 static int hf_atn_cpdlc_uM10Position
; /* Position */
146 static int hf_atn_cpdlc_uM11Time
; /* Time */
147 static int hf_atn_cpdlc_uM12Position
; /* Position */
148 static int hf_atn_cpdlc_uM13TimeLevel
; /* TimeLevel */
149 static int hf_atn_cpdlc_uM14PositionLevel
; /* PositionLevel */
150 static int hf_atn_cpdlc_uM15TimeLevel
; /* TimeLevel */
151 static int hf_atn_cpdlc_uM16PositionLevel
; /* PositionLevel */
152 static int hf_atn_cpdlc_uM17TimeLevel
; /* TimeLevel */
153 static int hf_atn_cpdlc_uM18PositionLevel
; /* PositionLevel */
154 static int hf_atn_cpdlc_uM19Level
; /* Level */
155 static int hf_atn_cpdlc_uM20Level
; /* Level */
156 static int hf_atn_cpdlc_uM21TimeLevel
; /* TimeLevel */
157 static int hf_atn_cpdlc_uM22PositionLevel
; /* PositionLevel */
158 static int hf_atn_cpdlc_uM23Level
; /* Level */
159 static int hf_atn_cpdlc_uM24TimeLevel
; /* TimeLevel */
160 static int hf_atn_cpdlc_uM25PositionLevel
; /* PositionLevel */
161 static int hf_atn_cpdlc_uM26LevelTime
; /* LevelTime */
162 static int hf_atn_cpdlc_uM27LevelPosition
; /* LevelPosition */
163 static int hf_atn_cpdlc_uM28LevelTime
; /* LevelTime */
164 static int hf_atn_cpdlc_uM29LevelPosition
; /* LevelPosition */
165 static int hf_atn_cpdlc_uM30LevelLevel
; /* LevelLevel */
166 static int hf_atn_cpdlc_uM31LevelLevel
; /* LevelLevel */
167 static int hf_atn_cpdlc_uM32LevelLevel
; /* LevelLevel */
168 static int hf_atn_cpdlc_uM33NULL
; /* NULL */
169 static int hf_atn_cpdlc_uM34Level
; /* Level */
170 static int hf_atn_cpdlc_uM35Level
; /* Level */
171 static int hf_atn_cpdlc_uM36Level
; /* Level */
172 static int hf_atn_cpdlc_uM37Level
; /* Level */
173 static int hf_atn_cpdlc_uM38Level
; /* Level */
174 static int hf_atn_cpdlc_uM39Level
; /* Level */
175 static int hf_atn_cpdlc_uM40NULL
; /* NULL */
176 static int hf_atn_cpdlc_uM41NULL
; /* NULL */
177 static int hf_atn_cpdlc_uM42PositionLevel
; /* PositionLevel */
178 static int hf_atn_cpdlc_uM43PositionLevel
; /* PositionLevel */
179 static int hf_atn_cpdlc_uM44PositionLevel
; /* PositionLevel */
180 static int hf_atn_cpdlc_uM45PositionLevel
; /* PositionLevel */
181 static int hf_atn_cpdlc_uM46PositionLevel
; /* PositionLevel */
182 static int hf_atn_cpdlc_uM47PositionLevel
; /* PositionLevel */
183 static int hf_atn_cpdlc_uM48PositionLevel
; /* PositionLevel */
184 static int hf_atn_cpdlc_uM49PositionLevel
; /* PositionLevel */
185 static int hf_atn_cpdlc_uM50PositionLevelLevel
; /* PositionLevelLevel */
186 static int hf_atn_cpdlc_uM51PositionTime
; /* PositionTime */
187 static int hf_atn_cpdlc_uM52PositionTime
; /* PositionTime */
188 static int hf_atn_cpdlc_uM53PositionTime
; /* PositionTime */
189 static int hf_atn_cpdlc_uM54PositionTimeTime
; /* PositionTimeTime */
190 static int hf_atn_cpdlc_uM55PositionSpeed
; /* PositionSpeed */
191 static int hf_atn_cpdlc_uM56PositionSpeed
; /* PositionSpeed */
192 static int hf_atn_cpdlc_uM57PositionSpeed
; /* PositionSpeed */
193 static int hf_atn_cpdlc_uM58PositionTimeLevel
; /* PositionTimeLevel */
194 static int hf_atn_cpdlc_uM59PositionTimeLevel
; /* PositionTimeLevel */
195 static int hf_atn_cpdlc_uM60PositionTimeLevel
; /* PositionTimeLevel */
196 static int hf_atn_cpdlc_uM61PositionLevelSpeed
; /* PositionLevelSpeed */
197 static int hf_atn_cpdlc_uM62TimePositionLevel
; /* TimePositionLevel */
198 static int hf_atn_cpdlc_uM63TimePositionLevelSpeed
; /* TimePositionLevelSpeed */
199 static int hf_atn_cpdlc_uM64DistanceSpecifiedDirection
; /* DistanceSpecifiedDirection */
200 static int hf_atn_cpdlc_uM65PositionDistanceSpecifiedDirection
; /* PositionDistanceSpecifiedDirection */
201 static int hf_atn_cpdlc_uM66TimeDistanceSpecifiedDirection
; /* TimeDistanceSpecifiedDirection */
202 static int hf_atn_cpdlc_uM67NULL
; /* NULL */
203 static int hf_atn_cpdlc_uM68Position
; /* Position */
204 static int hf_atn_cpdlc_uM69Time
; /* Time */
205 static int hf_atn_cpdlc_uM70Position
; /* Position */
206 static int hf_atn_cpdlc_uM71Time
; /* Time */
207 static int hf_atn_cpdlc_uM72NULL
; /* NULL */
208 static int hf_atn_cpdlc_uM73DepartureClearance
; /* DepartureClearance */
209 static int hf_atn_cpdlc_uM74Position
; /* Position */
210 static int hf_atn_cpdlc_uM75Position
; /* Position */
211 static int hf_atn_cpdlc_uM76TimePosition
; /* TimePosition */
212 static int hf_atn_cpdlc_uM77PositionPosition
; /* PositionPosition */
213 static int hf_atn_cpdlc_uM78LevelPosition
; /* LevelPosition */
214 static int hf_atn_cpdlc_uM79PositionRouteClearance
; /* PositionRouteClearanceIndex */
215 static int hf_atn_cpdlc_uM80RouteClearance
; /* RouteClearanceIndex */
216 static int hf_atn_cpdlc_uM81ProcedureName
; /* ProcedureName */
217 static int hf_atn_cpdlc_uM82DistanceSpecifiedDirection
; /* DistanceSpecifiedDirection */
218 static int hf_atn_cpdlc_uM83PositionRouteClearance
; /* PositionRouteClearanceIndex */
219 static int hf_atn_cpdlc_uM84PositionProcedureName
; /* PositionProcedureName */
220 static int hf_atn_cpdlc_uM85RouteClearance
; /* RouteClearanceIndex */
221 static int hf_atn_cpdlc_uM86PositionRouteClearance
; /* PositionRouteClearanceIndex */
222 static int hf_atn_cpdlc_uM87Position
; /* Position */
223 static int hf_atn_cpdlc_uM88PositionPosition
; /* PositionPosition */
224 static int hf_atn_cpdlc_uM89TimePosition
; /* TimePosition */
225 static int hf_atn_cpdlc_uM90LevelPosition
; /* LevelPosition */
226 static int hf_atn_cpdlc_uM91HoldClearance
; /* HoldClearance */
227 static int hf_atn_cpdlc_uM92PositionLevel
; /* PositionLevel */
228 static int hf_atn_cpdlc_uM93Time
; /* Time */
229 static int hf_atn_cpdlc_uM94DirectionDegrees
; /* DirectionDegrees */
230 static int hf_atn_cpdlc_uM95DirectionDegrees
; /* DirectionDegrees */
231 static int hf_atn_cpdlc_uM96NULL
; /* NULL */
232 static int hf_atn_cpdlc_uM97PositionDegrees
; /* PositionDegrees */
233 static int hf_atn_cpdlc_uM98DirectionDegrees
; /* DirectionDegrees */
234 static int hf_atn_cpdlc_uM99ProcedureName
; /* ProcedureName */
235 static int hf_atn_cpdlc_uM100TimeSpeed
; /* TimeSpeed */
236 static int hf_atn_cpdlc_uM101PositionSpeed
; /* PositionSpeed */
237 static int hf_atn_cpdlc_uM102LevelSpeed
; /* LevelSpeed */
238 static int hf_atn_cpdlc_uM103TimeSpeedSpeed
; /* TimeSpeedSpeed */
239 static int hf_atn_cpdlc_uM104PositionSpeedSpeed
; /* PositionSpeedSpeed */
240 static int hf_atn_cpdlc_uM105LevelSpeedSpeed
; /* LevelSpeedSpeed */
241 static int hf_atn_cpdlc_uM106Speed
; /* Speed */
242 static int hf_atn_cpdlc_uM107NULL
; /* NULL */
243 static int hf_atn_cpdlc_uM108Speed
; /* Speed */
244 static int hf_atn_cpdlc_uM109Speed
; /* Speed */
245 static int hf_atn_cpdlc_uM110SpeedSpeed
; /* SpeedSpeed */
246 static int hf_atn_cpdlc_uM111Speed
; /* Speed */
247 static int hf_atn_cpdlc_uM112Speed
; /* Speed */
248 static int hf_atn_cpdlc_uM113Speed
; /* Speed */
249 static int hf_atn_cpdlc_uM114Speed
; /* Speed */
250 static int hf_atn_cpdlc_uM115Speed
; /* Speed */
251 static int hf_atn_cpdlc_uM116NULL
; /* NULL */
252 static int hf_atn_cpdlc_uM117UnitNameFrequency
; /* UnitNameFrequency */
253 static int hf_atn_cpdlc_uM118PositionUnitNameFrequency
; /* PositionUnitNameFrequency */
254 static int hf_atn_cpdlc_uM119TimeUnitNameFrequency
; /* TimeUnitNameFrequency */
255 static int hf_atn_cpdlc_uM120UnitNameFrequency
; /* UnitNameFrequency */
256 static int hf_atn_cpdlc_uM121PositionUnitNameFrequency
; /* PositionUnitNameFrequency */
257 static int hf_atn_cpdlc_uM122TimeUnitNameFrequency
; /* TimeUnitNameFrequency */
258 static int hf_atn_cpdlc_uM123Code
; /* Code */
259 static int hf_atn_cpdlc_uM124NULL
; /* NULL */
260 static int hf_atn_cpdlc_uM125NULL
; /* NULL */
261 static int hf_atn_cpdlc_uM126NULL
; /* NULL */
262 static int hf_atn_cpdlc_uM127NULL
; /* NULL */
263 static int hf_atn_cpdlc_uM128Level
; /* Level */
264 static int hf_atn_cpdlc_uM129Level
; /* Level */
265 static int hf_atn_cpdlc_uM130Position
; /* Position */
266 static int hf_atn_cpdlc_uM131NULL
; /* NULL */
267 static int hf_atn_cpdlc_uM132NULL
; /* NULL */
268 static int hf_atn_cpdlc_uM133NULL
; /* NULL */
269 static int hf_atn_cpdlc_uM134SpeedTypeSpeedTypeSpeedType
; /* SpeedTypeSpeedTypeSpeedType */
270 static int hf_atn_cpdlc_uM135NULL
; /* NULL */
271 static int hf_atn_cpdlc_uM136NULL
; /* NULL */
272 static int hf_atn_cpdlc_uM137NULL
; /* NULL */
273 static int hf_atn_cpdlc_uM138NULL
; /* NULL */
274 static int hf_atn_cpdlc_uM139NULL
; /* NULL */
275 static int hf_atn_cpdlc_uM140NULL
; /* NULL */
276 static int hf_atn_cpdlc_uM141NULL
; /* NULL */
277 static int hf_atn_cpdlc_uM142NULL
; /* NULL */
278 static int hf_atn_cpdlc_uM143NULL
; /* NULL */
279 static int hf_atn_cpdlc_uM144NULL
; /* NULL */
280 static int hf_atn_cpdlc_uM145NULL
; /* NULL */
281 static int hf_atn_cpdlc_uM146NULL
; /* NULL */
282 static int hf_atn_cpdlc_uM147NULL
; /* NULL */
283 static int hf_atn_cpdlc_uM148Level
; /* Level */
284 static int hf_atn_cpdlc_uM149LevelPosition
; /* LevelPosition */
285 static int hf_atn_cpdlc_uM150LevelTime
; /* LevelTime */
286 static int hf_atn_cpdlc_uM151Speed
; /* Speed */
287 static int hf_atn_cpdlc_uM152DistanceSpecifiedDirection
; /* DistanceSpecifiedDirection */
288 static int hf_atn_cpdlc_uM153Altimeter
; /* Altimeter */
289 static int hf_atn_cpdlc_uM154NULL
; /* NULL */
290 static int hf_atn_cpdlc_uM155Position
; /* Position */
291 static int hf_atn_cpdlc_uM156NULL
; /* NULL */
292 static int hf_atn_cpdlc_uM157Frequency
; /* Frequency */
293 static int hf_atn_cpdlc_uM158AtisCode
; /* ATISCode */
294 static int hf_atn_cpdlc_uM159ErrorInformation
; /* ErrorInformation */
295 static int hf_atn_cpdlc_uM160Facility
; /* Facility */
296 static int hf_atn_cpdlc_uM161NULL
; /* NULL */
297 static int hf_atn_cpdlc_uM162NULL
; /* NULL */
298 static int hf_atn_cpdlc_uM163FacilityDesignation
; /* FacilityDesignation */
299 static int hf_atn_cpdlc_uM164NULL
; /* NULL */
300 static int hf_atn_cpdlc_uM165NULL
; /* NULL */
301 static int hf_atn_cpdlc_uM166TrafficType
; /* TrafficType */
302 static int hf_atn_cpdlc_uM167NULL
; /* NULL */
303 static int hf_atn_cpdlc_uM168NULL
; /* NULL */
304 static int hf_atn_cpdlc_uM169FreeText
; /* FreeText */
305 static int hf_atn_cpdlc_uM170FreeText
; /* FreeText */
306 static int hf_atn_cpdlc_uM171VerticalRate
; /* VerticalRate */
307 static int hf_atn_cpdlc_uM172VerticalRate
; /* VerticalRate */
308 static int hf_atn_cpdlc_uM173VerticalRate
; /* VerticalRate */
309 static int hf_atn_cpdlc_uM174VerticalRate
; /* VerticalRate */
310 static int hf_atn_cpdlc_uM175Level
; /* Level */
311 static int hf_atn_cpdlc_uM176NULL
; /* NULL */
312 static int hf_atn_cpdlc_uM177NULL
; /* NULL */
313 static int hf_atn_cpdlc_uM178NULL
; /* NULL */
314 static int hf_atn_cpdlc_uM179NULL
; /* NULL */
315 static int hf_atn_cpdlc_uM180LevelLevel
; /* LevelLevel */
316 static int hf_atn_cpdlc_uM181ToFromPosition
; /* ToFromPosition */
317 static int hf_atn_cpdlc_uM182NULL
; /* NULL */
318 static int hf_atn_cpdlc_uM183FreeText
; /* FreeText */
319 static int hf_atn_cpdlc_uM184TimeToFromPosition
; /* TimeToFromPosition */
320 static int hf_atn_cpdlc_uM185PositionLevel
; /* PositionLevel */
321 static int hf_atn_cpdlc_uM186PositionLevel
; /* PositionLevel */
322 static int hf_atn_cpdlc_uM187FreeText
; /* FreeText */
323 static int hf_atn_cpdlc_uM188PositionSpeed
; /* PositionSpeed */
324 static int hf_atn_cpdlc_uM189Speed
; /* Speed */
325 static int hf_atn_cpdlc_uM190Degrees
; /* Degrees */
326 static int hf_atn_cpdlc_uM191NULL
; /* NULL */
327 static int hf_atn_cpdlc_uM192LevelTime
; /* LevelTime */
328 static int hf_atn_cpdlc_uM193NULL
; /* NULL */
329 static int hf_atn_cpdlc_uM194FreeText
; /* FreeText */
330 static int hf_atn_cpdlc_uM195FreeText
; /* FreeText */
331 static int hf_atn_cpdlc_uM196FreeText
; /* FreeText */
332 static int hf_atn_cpdlc_uM197FreeText
; /* FreeText */
333 static int hf_atn_cpdlc_uM198FreeText
; /* FreeText */
334 static int hf_atn_cpdlc_uM199FreeText
; /* FreeText */
335 static int hf_atn_cpdlc_uM200NULL
; /* NULL */
336 static int hf_atn_cpdlc_uM201NULL
; /* NULL */
337 static int hf_atn_cpdlc_uM202NULL
; /* NULL */
338 static int hf_atn_cpdlc_uM203FreeText
; /* FreeText */
339 static int hf_atn_cpdlc_uM204FreeText
; /* FreeText */
340 static int hf_atn_cpdlc_uM205FreeText
; /* FreeText */
341 static int hf_atn_cpdlc_uM206FreeText
; /* FreeText */
342 static int hf_atn_cpdlc_uM207FreeText
; /* FreeText */
343 static int hf_atn_cpdlc_uM208FreeText
; /* FreeText */
344 static int hf_atn_cpdlc_uM209LevelPosition
; /* LevelPosition */
345 static int hf_atn_cpdlc_uM210Position
; /* Position */
346 static int hf_atn_cpdlc_uM211NULL
; /* NULL */
347 static int hf_atn_cpdlc_uM212FacilityDesignationATISCode
; /* FacilityDesignationATISCode */
348 static int hf_atn_cpdlc_uM213FacilityDesignationAltimeter
; /* FacilityDesignationAltimeter */
349 static int hf_atn_cpdlc_uM214RunwayRVR
; /* RunwayRVR */
350 static int hf_atn_cpdlc_uM215DirectionDegrees
; /* DirectionDegrees */
351 static int hf_atn_cpdlc_uM216NULL
; /* NULL */
352 static int hf_atn_cpdlc_uM217NULL
; /* NULL */
353 static int hf_atn_cpdlc_uM218NULL
; /* NULL */
354 static int hf_atn_cpdlc_uM219Level
; /* Level */
355 static int hf_atn_cpdlc_uM220Level
; /* Level */
356 static int hf_atn_cpdlc_uM221Degrees
; /* Degrees */
357 static int hf_atn_cpdlc_uM222NULL
; /* NULL */
358 static int hf_atn_cpdlc_uM223NULL
; /* NULL */
359 static int hf_atn_cpdlc_uM224NULL
; /* NULL */
360 static int hf_atn_cpdlc_uM225NULL
; /* NULL */
361 static int hf_atn_cpdlc_uM226Time
; /* Time */
362 static int hf_atn_cpdlc_uM227NULL
; /* NULL */
363 static int hf_atn_cpdlc_uM228Position
; /* Position */
364 static int hf_atn_cpdlc_uM229NULL
; /* NULL */
365 static int hf_atn_cpdlc_uM230NULL
; /* NULL */
366 static int hf_atn_cpdlc_uM231NULL
; /* NULL */
367 static int hf_atn_cpdlc_uM232NULL
; /* NULL */
368 static int hf_atn_cpdlc_uM233NULL
; /* NULL */
369 static int hf_atn_cpdlc_uM234NULL
; /* NULL */
370 static int hf_atn_cpdlc_uM235NULL
; /* NULL */
371 static int hf_atn_cpdlc_uM236NULL
; /* NULL */
372 static int hf_atn_cpdlc_uM237NULL
; /* NULL */
373 static int hf_atn_cpdlc_dM0NULL
; /* NULL */
374 static int hf_atn_cpdlc_dM1NULL
; /* NULL */
375 static int hf_atn_cpdlc_dM2NULL
; /* NULL */
376 static int hf_atn_cpdlc_dM3NULL
; /* NULL */
377 static int hf_atn_cpdlc_dM4NULL
; /* NULL */
378 static int hf_atn_cpdlc_dM5NULL
; /* NULL */
379 static int hf_atn_cpdlc_dM6Level
; /* Level */
380 static int hf_atn_cpdlc_dM7LevelLevel
; /* LevelLevel */
381 static int hf_atn_cpdlc_dM8Level
; /* Level */
382 static int hf_atn_cpdlc_dM9Level
; /* Level */
383 static int hf_atn_cpdlc_dM10Level
; /* Level */
384 static int hf_atn_cpdlc_dM11PositionLevel
; /* PositionLevel */
385 static int hf_atn_cpdlc_dM12PositionLevel
; /* PositionLevel */
386 static int hf_atn_cpdlc_dM13TimeLevel
; /* TimeLevel */
387 static int hf_atn_cpdlc_dM14TimeLevel
; /* TimeLevel */
388 static int hf_atn_cpdlc_dM15DistanceSpecifiedDirection
; /* DistanceSpecifiedDirection */
389 static int hf_atn_cpdlc_dM16PositionDistanceSpecifiedDirection
; /* PositionDistanceSpecifiedDirection */
390 static int hf_atn_cpdlc_dM17TimeDistanceSpecifiedDirection
; /* TimeDistanceSpecifiedDirection */
391 static int hf_atn_cpdlc_dM18Speed
; /* Speed */
392 static int hf_atn_cpdlc_dM19SpeedSpeed
; /* SpeedSpeed */
393 static int hf_atn_cpdlc_dM20NULL
; /* NULL */
394 static int hf_atn_cpdlc_dM21Frequency
; /* Frequency */
395 static int hf_atn_cpdlc_dM22Position
; /* Position */
396 static int hf_atn_cpdlc_dM23ProcedureName
; /* ProcedureName */
397 static int hf_atn_cpdlc_dM24RouteClearance
; /* RouteClearanceIndex */
398 static int hf_atn_cpdlc_dM25ClearanceType
; /* ClearanceType */
399 static int hf_atn_cpdlc_dM26PositionRouteClearance
; /* PositionRouteClearanceIndex */
400 static int hf_atn_cpdlc_dM27DistanceSpecifiedDirection
; /* DistanceSpecifiedDirection */
401 static int hf_atn_cpdlc_dM28Level
; /* Level */
402 static int hf_atn_cpdlc_dM29Level
; /* Level */
403 static int hf_atn_cpdlc_dM30Level
; /* Level */
404 static int hf_atn_cpdlc_dM31Position
; /* Position */
405 static int hf_atn_cpdlc_dM32Level
; /* Level */
406 static int hf_atn_cpdlc_dM33Position
; /* Position */
407 static int hf_atn_cpdlc_dM34Speed
; /* Speed */
408 static int hf_atn_cpdlc_dM35Degrees
; /* Degrees */
409 static int hf_atn_cpdlc_dM36Degrees
; /* Degrees */
410 static int hf_atn_cpdlc_dM37Level
; /* Level */
411 static int hf_atn_cpdlc_dM38Level
; /* Level */
412 static int hf_atn_cpdlc_dM39Speed
; /* Speed */
413 static int hf_atn_cpdlc_dM40RouteClearance
; /* RouteClearanceIndex */
414 static int hf_atn_cpdlc_dM41NULL
; /* NULL */
415 static int hf_atn_cpdlc_dM42Position
; /* Position */
416 static int hf_atn_cpdlc_dM43Time
; /* Time */
417 static int hf_atn_cpdlc_dM44Position
; /* Position */
418 static int hf_atn_cpdlc_dM45Position
; /* Position */
419 static int hf_atn_cpdlc_dM46Time
; /* Time */
420 static int hf_atn_cpdlc_dM47Code
; /* Code */
421 static int hf_atn_cpdlc_dM48PositionReport
; /* PositionReport */
422 static int hf_atn_cpdlc_dM49Speed
; /* Speed */
423 static int hf_atn_cpdlc_dM50SpeedSpeed
; /* SpeedSpeed */
424 static int hf_atn_cpdlc_dM51NULL
; /* NULL */
425 static int hf_atn_cpdlc_dM52NULL
; /* NULL */
426 static int hf_atn_cpdlc_dM53NULL
; /* NULL */
427 static int hf_atn_cpdlc_dM54Level
; /* Level */
428 static int hf_atn_cpdlc_dM55NULL
; /* NULL */
429 static int hf_atn_cpdlc_dM56NULL
; /* NULL */
430 static int hf_atn_cpdlc_dM57RemainingFuelPersonsOnBoard
; /* RemainingFuelPersonsOnBoard */
431 static int hf_atn_cpdlc_dM58NULL
; /* NULL */
432 static int hf_atn_cpdlc_dM59PositionRouteClearance
; /* PositionRouteClearanceIndex */
433 static int hf_atn_cpdlc_dM60DistanceSpecifiedDirection
; /* DistanceSpecifiedDirection */
434 static int hf_atn_cpdlc_dM61Level
; /* Level */
435 static int hf_atn_cpdlc_dM62ErrorInformation
; /* ErrorInformation */
436 static int hf_atn_cpdlc_dM63NULL
; /* NULL */
437 static int hf_atn_cpdlc_dM64FacilityDesignation
; /* FacilityDesignation */
438 static int hf_atn_cpdlc_dM65NULL
; /* NULL */
439 static int hf_atn_cpdlc_dM66NULL
; /* NULL */
440 static int hf_atn_cpdlc_dM67FreeText
; /* FreeText */
441 static int hf_atn_cpdlc_dM68FreeText
; /* FreeText */
442 static int hf_atn_cpdlc_dM69NULL
; /* NULL */
443 static int hf_atn_cpdlc_dM70Degrees
; /* Degrees */
444 static int hf_atn_cpdlc_dM71Degrees
; /* Degrees */
445 static int hf_atn_cpdlc_dM72Level
; /* Level */
446 static int hf_atn_cpdlc_dM73Versionnumber
; /* VersionNumber */
447 static int hf_atn_cpdlc_dM74NULL
; /* NULL */
448 static int hf_atn_cpdlc_dM75NULL
; /* NULL */
449 static int hf_atn_cpdlc_dM76LevelLevel
; /* LevelLevel */
450 static int hf_atn_cpdlc_dM77LevelLevel
; /* LevelLevel */
451 static int hf_atn_cpdlc_dM78TimeDistanceToFromPosition
; /* TimeDistanceToFromPosition */
452 static int hf_atn_cpdlc_dM79AtisCode
; /* ATISCode */
453 static int hf_atn_cpdlc_dM80DistanceSpecifiedDirection
; /* DistanceSpecifiedDirection */
454 static int hf_atn_cpdlc_dM81LevelTime
; /* LevelTime */
455 static int hf_atn_cpdlc_dM82Level
; /* Level */
456 static int hf_atn_cpdlc_dM83SpeedTime
; /* SpeedTime */
457 static int hf_atn_cpdlc_dM84Speed
; /* Speed */
458 static int hf_atn_cpdlc_dM85DistanceSpecifiedDirectionTime
; /* DistanceSpecifiedDirectionTime */
459 static int hf_atn_cpdlc_dM86DistanceSpecifiedDirection
; /* DistanceSpecifiedDirection */
460 static int hf_atn_cpdlc_dM87Level
; /* Level */
461 static int hf_atn_cpdlc_dM88Level
; /* Level */
462 static int hf_atn_cpdlc_dM89UnitnameFrequency
; /* UnitNameFrequency */
463 static int hf_atn_cpdlc_dM90FreeText
; /* FreeText */
464 static int hf_atn_cpdlc_dM91FreeText
; /* FreeText */
465 static int hf_atn_cpdlc_dM92FreeText
; /* FreeText */
466 static int hf_atn_cpdlc_dM93FreeText
; /* FreeText */
467 static int hf_atn_cpdlc_dM94FreeText
; /* FreeText */
468 static int hf_atn_cpdlc_dM95FreeText
; /* FreeText */
469 static int hf_atn_cpdlc_dM96FreeText
; /* FreeText */
470 static int hf_atn_cpdlc_dM97FreeText
; /* FreeText */
471 static int hf_atn_cpdlc_dM98FreeText
; /* FreeText */
472 static int hf_atn_cpdlc_dM99NULL
; /* NULL */
473 static int hf_atn_cpdlc_dM100NULL
; /* NULL */
474 static int hf_atn_cpdlc_dM101NULL
; /* NULL */
475 static int hf_atn_cpdlc_dM102NULL
; /* NULL */
476 static int hf_atn_cpdlc_dM103NULL
; /* NULL */
477 static int hf_atn_cpdlc_dM104PositionTime
; /* PositionTime */
478 static int hf_atn_cpdlc_dM105Airport
; /* Airport */
479 static int hf_atn_cpdlc_dM106Level
; /* Level */
480 static int hf_atn_cpdlc_dM107NULL
; /* NULL */
481 static int hf_atn_cpdlc_dM108NULL
; /* NULL */
482 static int hf_atn_cpdlc_dM109Time
; /* Time */
483 static int hf_atn_cpdlc_dM110Position
; /* Position */
484 static int hf_atn_cpdlc_dM111TimePosition
; /* TimePosition */
485 static int hf_atn_cpdlc_dM112NULL
; /* NULL */
486 static int hf_atn_cpdlc_dM113SpeedTypeSpeedTypeSpeedTypeSpeed
; /* SpeedTypeSpeedTypeSpeedTypeSpeed */
487 static int hf_atn_cpdlc_altimeterEnglish
; /* AltimeterEnglish */
488 static int hf_atn_cpdlc_altimeterMetric
; /* AltimeterMetric */
489 static int hf_atn_cpdlc_position
; /* Position */
490 static int hf_atn_cpdlc_aTWDistance
; /* ATWDistance */
491 static int hf_atn_cpdlc_speed
; /* Speed */
492 static int hf_atn_cpdlc_aTWLevels
; /* ATWLevelSequence */
493 static int hf_atn_cpdlc_atw
; /* ATWLevelTolerance */
494 static int hf_atn_cpdlc_level
; /* Level */
495 static int hf_atn_cpdlc_ATWLevelSequence_item
; /* ATWLevel */
496 static int hf_atn_cpdlc_atwDistanceTolerance
; /* ATWDistanceTolerance */
497 static int hf_atn_cpdlc_distance
; /* Distance */
498 static int hf_atn_cpdlc_Code_item
; /* CodeOctalDigit */
499 static int hf_atn_cpdlc_time
; /* Time */
500 static int hf_atn_cpdlc_timeTolerance
; /* TimeTolerance */
501 static int hf_atn_cpdlc_year
; /* Year */
502 static int hf_atn_cpdlc_month
; /* Month */
503 static int hf_atn_cpdlc_day
; /* Day */
504 static int hf_atn_cpdlc_date
; /* Date */
505 static int hf_atn_cpdlc_timehhmmss
; /* Timehhmmss */
506 static int hf_atn_cpdlc_degreesMagnetic
; /* DegreesMagnetic */
507 static int hf_atn_cpdlc_degreesTrue
; /* DegreesTrue */
508 static int hf_atn_cpdlc_aircraftFlightIdentification
; /* AircraftFlightIdentification */
509 static int hf_atn_cpdlc_clearanceLimit
; /* Position */
510 static int hf_atn_cpdlc_flightInformation
; /* FlightInformation */
511 static int hf_atn_cpdlc_furtherInstructions
; /* FurtherInstructions */
512 static int hf_atn_cpdlc_direction
; /* Direction */
513 static int hf_atn_cpdlc_degrees
; /* Degrees */
514 static int hf_atn_cpdlc_distanceNm
; /* DistanceNm */
515 static int hf_atn_cpdlc_distanceKm
; /* DistanceKm */
516 static int hf_atn_cpdlc_distanceSpecifiedNm
; /* DistanceSpecifiedNm */
517 static int hf_atn_cpdlc_distanceSpecifiedKm
; /* DistanceSpecifiedKm */
518 static int hf_atn_cpdlc_distanceSpecified
; /* DistanceSpecified */
519 static int hf_atn_cpdlc_distanceSpecifiedDirection
; /* DistanceSpecifiedDirection */
520 static int hf_atn_cpdlc_noFacility
; /* NULL */
521 static int hf_atn_cpdlc_facilityDesignation
; /* FacilityDesignation */
522 static int hf_atn_cpdlc_altimeter
; /* Altimeter */
523 static int hf_atn_cpdlc_aTISCode
; /* ATISCode */
524 static int hf_atn_cpdlc_fixname_name
; /* Fix */
525 static int hf_atn_cpdlc_latlon
; /* LatitudeLongitude */
526 static int hf_atn_cpdlc_routeOfFlight
; /* RouteInformation */
527 static int hf_atn_cpdlc_levelsOfFlight
; /* LevelsOfFlight */
528 static int hf_atn_cpdlc_routeAndLevels
; /* RouteAndLevels */
529 static int hf_atn_cpdlc_frequencyhf
; /* Frequencyhf */
530 static int hf_atn_cpdlc_frequencyvhf
; /* Frequencyvhf */
531 static int hf_atn_cpdlc_frequencyuhf
; /* Frequencyuhf */
532 static int hf_atn_cpdlc_frequencysatchannel
; /* Frequencysatchannel */
533 static int hf_atn_cpdlc_code
; /* Code */
534 static int hf_atn_cpdlc_frequencyDeparture
; /* UnitNameFrequency */
535 static int hf_atn_cpdlc_clearanceExpiryTime
; /* Time */
536 static int hf_atn_cpdlc_airportDeparture
; /* Airport */
537 static int hf_atn_cpdlc_airportDestination
; /* Airport */
538 static int hf_atn_cpdlc_timeDeparture
; /* TimeDeparture */
539 static int hf_atn_cpdlc_runwayDeparture
; /* Runway */
540 static int hf_atn_cpdlc_revisionNumber
; /* RevisionNumber */
541 static int hf_atn_cpdlc_holdatwaypointspeedlow
; /* Speed */
542 static int hf_atn_cpdlc_aTWlevel
; /* ATWLevel */
543 static int hf_atn_cpdlc_holdatwaypointspeedhigh
; /* Speed */
544 static int hf_atn_cpdlc_eFCtime
; /* Time */
545 static int hf_atn_cpdlc_legtype
; /* LegType */
546 static int hf_atn_cpdlc_legType
; /* LegType */
547 static int hf_atn_cpdlc_fromSelection
; /* InterceptCourseFromSelection */
548 static int hf_atn_cpdlc_publishedIdentifier
; /* PublishedIdentifier */
549 static int hf_atn_cpdlc_latitudeLongitude
; /* LatitudeLongitude */
550 static int hf_atn_cpdlc_placeBearingPlaceBearing
; /* PlaceBearingPlaceBearing */
551 static int hf_atn_cpdlc_placeBearingDistance
; /* PlaceBearingDistance */
552 static int hf_atn_cpdlc_latitudeType
; /* LatitudeType */
553 static int hf_atn_cpdlc_latitudeDirection
; /* LatitudeDirection */
554 static int hf_atn_cpdlc_latitudeWholeDegrees
; /* LatitudeWholeDegrees */
555 static int hf_atn_cpdlc_minutesLatLon
; /* MinutesLatLon */
556 static int hf_atn_cpdlc_latlonWholeMinutes
; /* LatLonWholeMinutes */
557 static int hf_atn_cpdlc_secondsLatLon
; /* SecondsLatLon */
558 static int hf_atn_cpdlc_latitude
; /* Latitude */
559 static int hf_atn_cpdlc_longitude
; /* Longitude */
560 static int hf_atn_cpdlc_latitudeDegrees
; /* LatitudeDegrees */
561 static int hf_atn_cpdlc_latitudeDegreesMinutes
; /* LatitudeDegreesMinutes */
562 static int hf_atn_cpdlc_latitudeDMS
; /* LatitudeDegreesMinutesSeconds */
563 static int hf_atn_cpdlc_latitudeReportingPoints
; /* LatitudeReportingPoints */
564 static int hf_atn_cpdlc_longitudeReportingPoints
; /* LongitudeReportingPoints */
565 static int hf_atn_cpdlc_legDistanceEnglish
; /* LegDistanceEnglish */
566 static int hf_atn_cpdlc_legDistanceMetric
; /* LegDistanceMetric */
567 static int hf_atn_cpdlc_legDistance
; /* LegDistance */
568 static int hf_atn_cpdlc_legTime
; /* LegTime */
569 static int hf_atn_cpdlc_singleLevel
; /* LevelType */
570 static int hf_atn_cpdlc_blockLevel
; /* SEQUENCE_SIZE_2_OF_LevelType */
571 static int hf_atn_cpdlc_blockLevel_item
; /* LevelType */
572 static int hf_atn_cpdlc_LevelLevel_item
; /* Level */
573 static int hf_atn_cpdlc_procedureName
; /* ProcedureName */
574 static int hf_atn_cpdlc_levelProcedureName
; /* LevelProcedureName */
575 static int hf_atn_cpdlc_levelspeed_speed
; /* SpeedSpeed */
576 static int hf_atn_cpdlc_speeds
; /* SpeedSpeed */
577 static int hf_atn_cpdlc_levelFeet
; /* LevelFeet */
578 static int hf_atn_cpdlc_levelMeters
; /* LevelMeters */
579 static int hf_atn_cpdlc_levelFlightLevel
; /* LevelFlightLevel */
580 static int hf_atn_cpdlc_levelFlightLevelMetric
; /* LevelFlightLevelMetric */
581 static int hf_atn_cpdlc_longitudeType
; /* LongitudeType */
582 static int hf_atn_cpdlc_longitudeDirection
; /* LongitudeDirection */
583 static int hf_atn_cpdlc_longitudeWholeDegrees
; /* LongitudeWholeDegrees */
584 static int hf_atn_cpdlc_latLonWholeMinutes
; /* LatLonWholeMinutes */
585 static int hf_atn_cpdlc_longitudeDegrees
; /* LongitudeDegrees */
586 static int hf_atn_cpdlc_longitudeDegreesMinutes
; /* LongitudeDegreesMinutes */
587 static int hf_atn_cpdlc_longitudeDMS
; /* LongitudeDegreesMinutesSeconds */
588 static int hf_atn_cpdlc_navaid_name
; /* NavaidName */
589 static int hf_atn_cpdlc_PlaceBearingPlaceBearing_item
; /* PlaceBearing */
590 static int hf_atn_cpdlc_fixName
; /* FixName */
591 static int hf_atn_cpdlc_navaid
; /* Navaid */
592 static int hf_atn_cpdlc_airport
; /* Airport */
593 static int hf_atn_cpdlc_levels
; /* LevelLevel */
594 static int hf_atn_cpdlc_positionlevel
; /* PositionLevel */
595 static int hf_atn_cpdlc_PositionPosition_item
; /* Position */
596 static int hf_atn_cpdlc_positioncurrent
; /* Position */
597 static int hf_atn_cpdlc_timeatpositioncurrent
; /* Time */
598 static int hf_atn_cpdlc_fixnext
; /* Position */
599 static int hf_atn_cpdlc_timeetaatfixnext
; /* Time */
600 static int hf_atn_cpdlc_fixnextplusone
; /* Position */
601 static int hf_atn_cpdlc_timeetaatdestination
; /* Time */
602 static int hf_atn_cpdlc_remainingFuel
; /* RemainingFuel */
603 static int hf_atn_cpdlc_temperature
; /* Temperature */
604 static int hf_atn_cpdlc_winds
; /* Winds */
605 static int hf_atn_cpdlc_turbulence
; /* Turbulence */
606 static int hf_atn_cpdlc_icing
; /* Icing */
607 static int hf_atn_cpdlc_speedground
; /* SpeedGround */
608 static int hf_atn_cpdlc_verticalChange
; /* VerticalChange */
609 static int hf_atn_cpdlc_trackAngle
; /* Degrees */
610 static int hf_atn_cpdlc_heading
; /* Degrees */
611 static int hf_atn_cpdlc_humidity
; /* Humidity */
612 static int hf_atn_cpdlc_reportedWaypointPosition
; /* Position */
613 static int hf_atn_cpdlc_reportedWaypointTime
; /* Time */
614 static int hf_atn_cpdlc_reportedWaypointLevel
; /* Level */
615 static int hf_atn_cpdlc_routeClearanceIndex
; /* RouteClearanceIndex */
616 static int hf_atn_cpdlc_positionTime
; /* PositionTime */
617 static int hf_atn_cpdlc_times
; /* TimeTime */
618 static int hf_atn_cpdlc_unitname
; /* UnitName */
619 static int hf_atn_cpdlc_frequency
; /* Frequency */
620 static int hf_atn_cpdlc_type
; /* ProcedureType */
621 static int hf_atn_cpdlc_procedure
; /* Procedure */
622 static int hf_atn_cpdlc_transition
; /* ProcedureTransition */
623 static int hf_atn_cpdlc_personsOnBoard
; /* PersonsOnBoard */
624 static int hf_atn_cpdlc_latLonReportingPoints
; /* LatLonReportingPoints */
625 static int hf_atn_cpdlc_degreeIncrement
; /* DegreeIncrement */
626 static int hf_atn_cpdlc_procedureDeparture
; /* ProcedureName */
627 static int hf_atn_cpdlc_runwayArrival
; /* Runway */
628 static int hf_atn_cpdlc_procedureApproach
; /* ProcedureName */
629 static int hf_atn_cpdlc_procedureArrival
; /* ProcedureName */
630 static int hf_atn_cpdlc_routeInformations
; /* SEQUENCE_SIZE_1_128_OF_RouteInformation */
631 static int hf_atn_cpdlc_routeInformations_item
; /* RouteInformation */
632 static int hf_atn_cpdlc_routeInformationAdditional
; /* RouteInformationAdditional */
633 static int hf_atn_cpdlc_aTSRouteDesignator
; /* ATSRouteDesignator */
634 static int hf_atn_cpdlc_aTWAlongTrackWaypoints
; /* SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint */
635 static int hf_atn_cpdlc_aTWAlongTrackWaypoints_item
; /* ATWAlongTrackWaypoint */
636 static int hf_atn_cpdlc_reportingpoints
; /* ReportingPoints */
637 static int hf_atn_cpdlc_interceptCourseFroms
; /* SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom */
638 static int hf_atn_cpdlc_interceptCourseFroms_item
; /* InterceptCourseFrom */
639 static int hf_atn_cpdlc_holdAtWaypoints
; /* SEQUENCE_SIZE_1_8_OF_Holdatwaypoint */
640 static int hf_atn_cpdlc_holdAtWaypoints_item
; /* Holdatwaypoint */
641 static int hf_atn_cpdlc_waypointSpeedLevels
; /* SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel */
642 static int hf_atn_cpdlc_waypointSpeedLevels_item
; /* WaypointSpeedLevel */
643 static int hf_atn_cpdlc_rTARequiredTimeArrivals
; /* SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival */
644 static int hf_atn_cpdlc_rTARequiredTimeArrivals_item
; /* RTARequiredTimeArrival */
645 static int hf_atn_cpdlc_rTATime
; /* RTATime */
646 static int hf_atn_cpdlc_rTATolerance
; /* RTATolerance */
647 static int hf_atn_cpdlc_runway_direction
; /* RunwayDirection */
648 static int hf_atn_cpdlc_configuration
; /* RunwayConfiguration */
649 static int hf_atn_cpdlc_runway
; /* Runway */
650 static int hf_atn_cpdlc_rVR
; /* RVR */
651 static int hf_atn_cpdlc_rVRFeet
; /* RVRFeet */
652 static int hf_atn_cpdlc_rVRMeters
; /* RVRMeters */
653 static int hf_atn_cpdlc_speedIndicated
; /* SpeedIndicated */
654 static int hf_atn_cpdlc_speedIndicatedMetric
; /* SpeedIndicatedMetric */
655 static int hf_atn_cpdlc_speedTrue
; /* SpeedTrue */
656 static int hf_atn_cpdlc_speedTrueMetric
; /* SpeedTrueMetric */
657 static int hf_atn_cpdlc_speedGround
; /* SpeedGround */
658 static int hf_atn_cpdlc_speedGroundMetric
; /* SpeedGroundMetric */
659 static int hf_atn_cpdlc_speedMach
; /* SpeedMach */
660 static int hf_atn_cpdlc_SpeedSpeed_item
; /* Speed */
661 static int hf_atn_cpdlc_SpeedTypeSpeedTypeSpeedType_item
; /* SpeedType */
662 static int hf_atn_cpdlc_speedTypes
; /* SpeedTypeSpeedTypeSpeedType */
663 static int hf_atn_cpdlc_hours
; /* TimeHours */
664 static int hf_atn_cpdlc_minutes
; /* TimeMinutes */
665 static int hf_atn_cpdlc_timeDepartureAllocated
; /* Time */
666 static int hf_atn_cpdlc_timeDepartureControlled
; /* ControlledTime */
667 static int hf_atn_cpdlc_timeDepartureClearanceExpected
; /* Time */
668 static int hf_atn_cpdlc_departureMinimumInterval
; /* DepartureMinimumInterval */
669 static int hf_atn_cpdlc_tofrom
; /* ToFrom */
670 static int hf_atn_cpdlc_hoursminutes
; /* Time */
671 static int hf_atn_cpdlc_seconds
; /* TimeSeconds */
672 static int hf_atn_cpdlc_unitName
; /* UnitName */
673 static int hf_atn_cpdlc_timeposition
; /* TimePosition */
674 static int hf_atn_cpdlc_levelspeed
; /* LevelSpeed */
675 static int hf_atn_cpdlc_speedspeed
; /* SpeedSpeed */
676 static int hf_atn_cpdlc_TimeTime_item
; /* Time */
677 static int hf_atn_cpdlc_toFrom
; /* ToFrom */
678 static int hf_atn_cpdlc_facilityName
; /* FacilityName */
679 static int hf_atn_cpdlc_facilityFunction
; /* FacilityFunction */
680 static int hf_atn_cpdlc_vertical_direction
; /* VerticalDirection */
681 static int hf_atn_cpdlc_rate
; /* VerticalRate */
682 static int hf_atn_cpdlc_verticalRateEnglish
; /* VerticalRateEnglish */
683 static int hf_atn_cpdlc_verticalRateMetric
; /* VerticalRateMetric */
684 static int hf_atn_cpdlc_winds_direction
; /* WindDirection */
685 static int hf_atn_cpdlc_winds_speed
; /* WindSpeed */
686 static int hf_atn_cpdlc_windSpeedEnglish
; /* WindSpeedEnglish */
687 static int hf_atn_cpdlc_windSpeedMetric
; /* WindSpeedMetric */
689 static int ett_atn_cpdlc_GroundPDUs
;
690 static int ett_atn_cpdlc_UplinkMessage
;
691 static int ett_atn_cpdlc_AircraftPDUs
;
692 static int ett_atn_cpdlc_StartDownMessage
;
693 static int ett_atn_cpdlc_DownlinkMessage
;
694 static int ett_atn_cpdlc_ProtectedGroundPDUs
;
695 static int ett_atn_cpdlc_ProtectedUplinkMessage
;
696 static int ett_atn_cpdlc_ATCForwardMessage
;
697 static int ett_atn_cpdlc_ForwardHeader
;
698 static int ett_atn_cpdlc_ForwardMessage
;
699 static int ett_atn_cpdlc_ProtectedAircraftPDUs
;
700 static int ett_atn_cpdlc_ProtectedStartDownMessage
;
701 static int ett_atn_cpdlc_ProtectedDownlinkMessage
;
702 static int ett_atn_cpdlc_ATCUplinkMessage
;
703 static int ett_atn_cpdlc_ATCUplinkMessageData
;
704 static int ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId
;
705 static int ett_atn_cpdlc_T_atcuplinkmessagedata_constraineddata
;
706 static int ett_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance
;
707 static int ett_atn_cpdlc_ATCDownlinkMessage
;
708 static int ett_atn_cpdlc_ATCDownlinkMessageData
;
709 static int ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId
;
710 static int ett_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata
;
711 static int ett_atn_cpdlc_ATCMessageHeader
;
712 static int ett_atn_cpdlc_ATCUplinkMsgElementId
;
713 static int ett_atn_cpdlc_ATCDownlinkMsgElementId
;
714 static int ett_atn_cpdlc_Altimeter
;
715 static int ett_atn_cpdlc_ATWAlongTrackWaypoint
;
716 static int ett_atn_cpdlc_ATWLevel
;
717 static int ett_atn_cpdlc_ATWLevelSequence
;
718 static int ett_atn_cpdlc_ATWDistance
;
719 static int ett_atn_cpdlc_Code
;
720 static int ett_atn_cpdlc_ControlledTime
;
721 static int ett_atn_cpdlc_Date
;
722 static int ett_atn_cpdlc_DateTimeGroup
;
723 static int ett_atn_cpdlc_Degrees
;
724 static int ett_atn_cpdlc_DepartureClearance
;
725 static int ett_atn_cpdlc_DirectionDegrees
;
726 static int ett_atn_cpdlc_Distance
;
727 static int ett_atn_cpdlc_DistanceSpecified
;
728 static int ett_atn_cpdlc_DistanceSpecifiedDirection
;
729 static int ett_atn_cpdlc_DistanceSpecifiedDirectionTime
;
730 static int ett_atn_cpdlc_Facility
;
731 static int ett_atn_cpdlc_FacilityDesignationAltimeter
;
732 static int ett_atn_cpdlc_FacilityDesignationATISCode
;
733 static int ett_atn_cpdlc_FixName
;
734 static int ett_atn_cpdlc_FlightInformation
;
735 static int ett_atn_cpdlc_Frequency
;
736 static int ett_atn_cpdlc_FurtherInstructions
;
737 static int ett_atn_cpdlc_Holdatwaypoint
;
738 static int ett_atn_cpdlc_HoldClearance
;
739 static int ett_atn_cpdlc_InterceptCourseFrom
;
740 static int ett_atn_cpdlc_InterceptCourseFromSelection
;
741 static int ett_atn_cpdlc_Latitude
;
742 static int ett_atn_cpdlc_LatitudeDegreesMinutes
;
743 static int ett_atn_cpdlc_LatitudeDegreesMinutesSeconds
;
744 static int ett_atn_cpdlc_LatitudeLongitude
;
745 static int ett_atn_cpdlc_LatitudeReportingPoints
;
746 static int ett_atn_cpdlc_LatitudeType
;
747 static int ett_atn_cpdlc_LatLonReportingPoints
;
748 static int ett_atn_cpdlc_LegDistance
;
749 static int ett_atn_cpdlc_LegType
;
750 static int ett_atn_cpdlc_Level
;
751 static int ett_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType
;
752 static int ett_atn_cpdlc_LevelLevel
;
753 static int ett_atn_cpdlc_LevelPosition
;
754 static int ett_atn_cpdlc_LevelProcedureName
;
755 static int ett_atn_cpdlc_LevelsOfFlight
;
756 static int ett_atn_cpdlc_LevelSpeed
;
757 static int ett_atn_cpdlc_LevelSpeedSpeed
;
758 static int ett_atn_cpdlc_LevelTime
;
759 static int ett_atn_cpdlc_LevelType
;
760 static int ett_atn_cpdlc_Longitude
;
761 static int ett_atn_cpdlc_LongitudeDegreesMinutes
;
762 static int ett_atn_cpdlc_LongitudeDegreesMinutesSeconds
;
763 static int ett_atn_cpdlc_LongitudeReportingPoints
;
764 static int ett_atn_cpdlc_LongitudeType
;
765 static int ett_atn_cpdlc_Navaid
;
766 static int ett_atn_cpdlc_PlaceBearing
;
767 static int ett_atn_cpdlc_PlaceBearingDistance
;
768 static int ett_atn_cpdlc_PlaceBearingPlaceBearing
;
769 static int ett_atn_cpdlc_Position
;
770 static int ett_atn_cpdlc_PositionDegrees
;
771 static int ett_atn_cpdlc_PositionDistanceSpecifiedDirection
;
772 static int ett_atn_cpdlc_PositionLevel
;
773 static int ett_atn_cpdlc_PositionLevelLevel
;
774 static int ett_atn_cpdlc_PositionLevelSpeed
;
775 static int ett_atn_cpdlc_PositionPosition
;
776 static int ett_atn_cpdlc_PositionProcedureName
;
777 static int ett_atn_cpdlc_PositionReport
;
778 static int ett_atn_cpdlc_PositionRouteClearanceIndex
;
779 static int ett_atn_cpdlc_PositionSpeed
;
780 static int ett_atn_cpdlc_PositionSpeedSpeed
;
781 static int ett_atn_cpdlc_PositionTime
;
782 static int ett_atn_cpdlc_PositionTimeLevel
;
783 static int ett_atn_cpdlc_PositionTimeTime
;
784 static int ett_atn_cpdlc_PositionUnitNameFrequency
;
785 static int ett_atn_cpdlc_ProcedureName
;
786 static int ett_atn_cpdlc_PublishedIdentifier
;
787 static int ett_atn_cpdlc_RemainingFuelPersonsOnBoard
;
788 static int ett_atn_cpdlc_ReportingPoints
;
789 static int ett_atn_cpdlc_RouteAndLevels
;
790 static int ett_atn_cpdlc_RouteClearance
;
791 static int ett_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation
;
792 static int ett_atn_cpdlc_RouteInformation
;
793 static int ett_atn_cpdlc_RouteInformationAdditional
;
794 static int ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint
;
795 static int ett_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom
;
796 static int ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint
;
797 static int ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel
;
798 static int ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival
;
799 static int ett_atn_cpdlc_RTARequiredTimeArrival
;
800 static int ett_atn_cpdlc_RTATime
;
801 static int ett_atn_cpdlc_Runway
;
802 static int ett_atn_cpdlc_RunwayRVR
;
803 static int ett_atn_cpdlc_RVR
;
804 static int ett_atn_cpdlc_Speed
;
805 static int ett_atn_cpdlc_SpeedSpeed
;
806 static int ett_atn_cpdlc_SpeedTime
;
807 static int ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedType
;
808 static int ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed
;
809 static int ett_atn_cpdlc_Time
;
810 static int ett_atn_cpdlc_TimeLevel
;
811 static int ett_atn_cpdlc_TimeDeparture
;
812 static int ett_atn_cpdlc_TimeDistanceSpecifiedDirection
;
813 static int ett_atn_cpdlc_TimeDistanceToFromPosition
;
814 static int ett_atn_cpdlc_Timehhmmss
;
815 static int ett_atn_cpdlc_TimeUnitNameFrequency
;
816 static int ett_atn_cpdlc_TimePosition
;
817 static int ett_atn_cpdlc_TimePositionLevel
;
818 static int ett_atn_cpdlc_TimePositionLevelSpeed
;
819 static int ett_atn_cpdlc_TimeSpeed
;
820 static int ett_atn_cpdlc_TimeSpeedSpeed
;
821 static int ett_atn_cpdlc_TimeTime
;
822 static int ett_atn_cpdlc_TimeToFromPosition
;
823 static int ett_atn_cpdlc_ToFromPosition
;
824 static int ett_atn_cpdlc_UnitName
;
825 static int ett_atn_cpdlc_UnitNameFrequency
;
826 static int ett_atn_cpdlc_VerticalChange
;
827 static int ett_atn_cpdlc_VerticalRate
;
828 static int ett_atn_cpdlc_WaypointSpeedLevel
;
829 static int ett_atn_cpdlc_Winds
;
830 static int ett_atn_cpdlc_WindSpeed
;
831 static int ett_atn_cpdlc
;
834 static const value_string atn_cpdlc_CPDLCUserAbortReason_vals
[] = {
836 { 1, "no-message-identification-numbers-available" },
837 { 2, "duplicate-message-identification-numbers" },
838 { 3, "no-longer-next-data-authority" },
839 { 4, "current-data-authority-abort" },
840 { 5, "commanded-termination" },
841 { 6, "invalid-response" },
847 dissect_atn_cpdlc_CPDLCUserAbortReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
848 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
849 7, NULL
, true, 0, NULL
);
855 static const value_string atn_cpdlc_CPDLCProviderAbortReason_vals
[] = {
856 { 0, "timer-expired" },
857 { 1, "undefined-error" },
858 { 2, "invalid-PDU" },
859 { 3, "protocol-error" },
860 { 4, "communication-service-error" },
861 { 5, "communication-service-failure" },
862 { 6, "invalid-QOS-parameter" },
863 { 7, "expected-PDU-missing" },
869 dissect_atn_cpdlc_CPDLCProviderAbortReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
870 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
871 8, NULL
, true, 0, NULL
);
879 dissect_atn_cpdlc_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
880 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
888 dissect_atn_cpdlc_MsgIdentificationNumber(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
889 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
890 0U, 63U, NULL
, false);
898 dissect_atn_cpdlc_MsgReferenceNumber(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
899 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
900 0U, 63U, NULL
, false);
908 dissect_atn_cpdlc_Year(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
909 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
910 1996U, 2095U, NULL
, false);
918 dissect_atn_cpdlc_Month(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
919 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
920 1U, 12U, NULL
, false);
928 dissect_atn_cpdlc_Day(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
929 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
930 1U, 31U, NULL
, false);
936 static const per_sequence_t Date_sequence
[] = {
937 { &hf_atn_cpdlc_year
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Year
},
938 { &hf_atn_cpdlc_month
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Month
},
939 { &hf_atn_cpdlc_day
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Day
},
944 dissect_atn_cpdlc_Date(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
945 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
946 ett_atn_cpdlc_Date
, Date_sequence
);
954 dissect_atn_cpdlc_TimeHours(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
955 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
956 0U, 23U, NULL
, false);
964 dissect_atn_cpdlc_TimeMinutes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
965 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
966 0U, 59U, NULL
, false);
972 static const per_sequence_t Time_sequence
[] = {
973 { &hf_atn_cpdlc_hours
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeHours
},
974 { &hf_atn_cpdlc_minutes
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeMinutes
},
979 dissect_atn_cpdlc_Time(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
980 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
981 ett_atn_cpdlc_Time
, Time_sequence
);
989 dissect_atn_cpdlc_TimeSeconds(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
990 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
991 0U, 59U, NULL
, false);
997 static const per_sequence_t Timehhmmss_sequence
[] = {
998 { &hf_atn_cpdlc_hoursminutes
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
999 { &hf_atn_cpdlc_seconds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeSeconds
},
1000 { NULL
, 0, 0, NULL
}
1004 dissect_atn_cpdlc_Timehhmmss(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1005 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1006 ett_atn_cpdlc_Timehhmmss
, Timehhmmss_sequence
);
1012 static const per_sequence_t DateTimeGroup_sequence
[] = {
1013 { &hf_atn_cpdlc_date
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Date
},
1014 { &hf_atn_cpdlc_timehhmmss
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Timehhmmss
},
1015 { NULL
, 0, 0, NULL
}
1019 dissect_atn_cpdlc_DateTimeGroup(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1020 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1021 ett_atn_cpdlc_DateTimeGroup
, DateTimeGroup_sequence
);
1027 static const value_string atn_cpdlc_LogicalAck_vals
[] = {
1029 { 1, "notRequired" },
1035 dissect_atn_cpdlc_LogicalAck(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1036 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1037 2, NULL
, false, 0, NULL
);
1043 static const per_sequence_t ATCMessageHeader_sequence
[] = {
1044 { &hf_atn_cpdlc_messageIdNumber
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_MsgIdentificationNumber
},
1045 { &hf_atn_cpdlc_messageRefNumber
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_MsgReferenceNumber
},
1046 { &hf_atn_cpdlc_dateTime
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DateTimeGroup
},
1047 { &hf_atn_cpdlc_logicalAck
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_LogicalAck
},
1048 { NULL
, 0, 0, NULL
}
1052 dissect_atn_cpdlc_ATCMessageHeader(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1053 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1054 ett_atn_cpdlc_ATCMessageHeader
, ATCMessageHeader_sequence
);
1062 dissect_atn_cpdlc_LevelFeet(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1063 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1064 -60, 7000U, NULL
, false);
1072 dissect_atn_cpdlc_LevelMeters(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1073 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1074 -30, 25000U, NULL
, false);
1082 dissect_atn_cpdlc_LevelFlightLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1083 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1084 30U, 700U, NULL
, false);
1092 dissect_atn_cpdlc_LevelFlightLevelMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1093 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1094 100U, 2500U, NULL
, false);
1100 static const value_string atn_cpdlc_LevelType_vals
[] = {
1102 { 1, "levelMeters" },
1103 { 2, "levelFlightLevel" },
1104 { 3, "levelFlightLevelMetric" },
1108 static const per_choice_t LevelType_choice
[] = {
1109 { 0, &hf_atn_cpdlc_levelFeet
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelFeet
},
1110 { 1, &hf_atn_cpdlc_levelMeters
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelMeters
},
1111 { 2, &hf_atn_cpdlc_levelFlightLevel
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelFlightLevel
},
1112 { 3, &hf_atn_cpdlc_levelFlightLevelMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelFlightLevelMetric
},
1113 { 0, NULL
, 0, NULL
}
1117 dissect_atn_cpdlc_LevelType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1118 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1119 ett_atn_cpdlc_LevelType
, LevelType_choice
,
1126 static const per_sequence_t SEQUENCE_SIZE_2_OF_LevelType_sequence_of
[1] = {
1127 { &hf_atn_cpdlc_blockLevel_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LevelType
},
1131 dissect_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1132 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1133 ett_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType
, SEQUENCE_SIZE_2_OF_LevelType_sequence_of
,
1140 static const value_string atn_cpdlc_Level_vals
[] = {
1141 { 0, "singleLevel" },
1142 { 1, "blockLevel" },
1146 static const per_choice_t Level_choice
[] = {
1147 { 0, &hf_atn_cpdlc_singleLevel
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelType
},
1148 { 1, &hf_atn_cpdlc_blockLevel
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType
},
1149 { 0, NULL
, 0, NULL
}
1153 dissect_atn_cpdlc_Level(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1154 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1155 ett_atn_cpdlc_Level
, Level_choice
,
1164 dissect_atn_cpdlc_Fix(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1165 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 5, false, ia5alpha
, 127, NULL
);
1173 dissect_atn_cpdlc_LatitudeDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1174 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1175 0U, 90000U, NULL
, false);
1183 dissect_atn_cpdlc_LatitudeWholeDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1184 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1185 0U, 89U, NULL
, false);
1193 dissect_atn_cpdlc_MinutesLatLon(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1194 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1195 0U, 5999U, NULL
, false);
1201 static const per_sequence_t LatitudeDegreesMinutes_sequence
[] = {
1202 { &hf_atn_cpdlc_latitudeWholeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeWholeDegrees
},
1203 { &hf_atn_cpdlc_minutesLatLon
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_MinutesLatLon
},
1204 { NULL
, 0, 0, NULL
}
1208 dissect_atn_cpdlc_LatitudeDegreesMinutes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1209 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1210 ett_atn_cpdlc_LatitudeDegreesMinutes
, LatitudeDegreesMinutes_sequence
);
1218 dissect_atn_cpdlc_LatLonWholeMinutes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1219 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1220 0U, 59U, NULL
, false);
1228 dissect_atn_cpdlc_SecondsLatLon(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1229 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1230 0U, 59U, NULL
, false);
1236 static const per_sequence_t LatitudeDegreesMinutesSeconds_sequence
[] = {
1237 { &hf_atn_cpdlc_latitudeWholeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeWholeDegrees
},
1238 { &hf_atn_cpdlc_latlonWholeMinutes
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatLonWholeMinutes
},
1239 { &hf_atn_cpdlc_secondsLatLon
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SecondsLatLon
},
1240 { NULL
, 0, 0, NULL
}
1244 dissect_atn_cpdlc_LatitudeDegreesMinutesSeconds(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1245 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1246 ett_atn_cpdlc_LatitudeDegreesMinutesSeconds
, LatitudeDegreesMinutesSeconds_sequence
);
1252 static const value_string atn_cpdlc_LatitudeType_vals
[] = {
1253 { 0, "latitudeDegrees" },
1254 { 1, "latitudeDegreesMinutes" },
1255 { 2, "latitudeDMS" },
1259 static const per_choice_t LatitudeType_choice
[] = {
1260 { 0, &hf_atn_cpdlc_latitudeDegrees
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeDegrees
},
1261 { 1, &hf_atn_cpdlc_latitudeDegreesMinutes
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeDegreesMinutes
},
1262 { 2, &hf_atn_cpdlc_latitudeDMS
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeDegreesMinutesSeconds
},
1263 { 0, NULL
, 0, NULL
}
1267 dissect_atn_cpdlc_LatitudeType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1268 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1269 ett_atn_cpdlc_LatitudeType
, LatitudeType_choice
,
1276 static const value_string atn_cpdlc_LatitudeDirection_vals
[] = {
1284 dissect_atn_cpdlc_LatitudeDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1285 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1286 2, NULL
, false, 0, NULL
);
1292 static const per_sequence_t Latitude_sequence
[] = {
1293 { &hf_atn_cpdlc_latitudeType
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeType
},
1294 { &hf_atn_cpdlc_latitudeDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeDirection
},
1295 { NULL
, 0, 0, NULL
}
1299 dissect_atn_cpdlc_Latitude(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1300 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1301 ett_atn_cpdlc_Latitude
, Latitude_sequence
);
1309 dissect_atn_cpdlc_LongitudeDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1310 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1311 0U, 180000U, NULL
, false);
1319 dissect_atn_cpdlc_LongitudeWholeDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1320 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1321 0U, 179U, NULL
, false);
1327 static const per_sequence_t LongitudeDegreesMinutes_sequence
[] = {
1328 { &hf_atn_cpdlc_longitudeWholeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeWholeDegrees
},
1329 { &hf_atn_cpdlc_minutesLatLon
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_MinutesLatLon
},
1330 { NULL
, 0, 0, NULL
}
1334 dissect_atn_cpdlc_LongitudeDegreesMinutes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1335 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1336 ett_atn_cpdlc_LongitudeDegreesMinutes
, LongitudeDegreesMinutes_sequence
);
1342 static const per_sequence_t LongitudeDegreesMinutesSeconds_sequence
[] = {
1343 { &hf_atn_cpdlc_longitudeWholeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeWholeDegrees
},
1344 { &hf_atn_cpdlc_latLonWholeMinutes
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatLonWholeMinutes
},
1345 { &hf_atn_cpdlc_secondsLatLon
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SecondsLatLon
},
1346 { NULL
, 0, 0, NULL
}
1350 dissect_atn_cpdlc_LongitudeDegreesMinutesSeconds(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1351 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1352 ett_atn_cpdlc_LongitudeDegreesMinutesSeconds
, LongitudeDegreesMinutesSeconds_sequence
);
1358 static const value_string atn_cpdlc_LongitudeType_vals
[] = {
1359 { 0, "longitudeDegrees" },
1360 { 1, "longitudeDegreesMinutes" },
1361 { 2, "longitudeDMS" },
1365 static const per_choice_t LongitudeType_choice
[] = {
1366 { 0, &hf_atn_cpdlc_longitudeDegrees
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LongitudeDegrees
},
1367 { 1, &hf_atn_cpdlc_longitudeDegreesMinutes
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LongitudeDegreesMinutes
},
1368 { 2, &hf_atn_cpdlc_longitudeDMS
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LongitudeDegreesMinutesSeconds
},
1369 { 0, NULL
, 0, NULL
}
1373 dissect_atn_cpdlc_LongitudeType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1374 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1375 ett_atn_cpdlc_LongitudeType
, LongitudeType_choice
,
1382 static const value_string atn_cpdlc_LongitudeDirection_vals
[] = {
1390 dissect_atn_cpdlc_LongitudeDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1391 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1392 2, NULL
, false, 0, NULL
);
1398 static const per_sequence_t Longitude_sequence
[] = {
1399 { &hf_atn_cpdlc_longitudeType
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeType
},
1400 { &hf_atn_cpdlc_longitudeDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeDirection
},
1401 { NULL
, 0, 0, NULL
}
1405 dissect_atn_cpdlc_Longitude(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1406 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1407 ett_atn_cpdlc_Longitude
, Longitude_sequence
);
1413 static const per_sequence_t LatitudeLongitude_sequence
[] = {
1414 { &hf_atn_cpdlc_latitude
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Latitude
},
1415 { &hf_atn_cpdlc_longitude
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Longitude
},
1416 { NULL
, 0, 0, NULL
}
1420 dissect_atn_cpdlc_LatitudeLongitude(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1421 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1422 ett_atn_cpdlc_LatitudeLongitude
, LatitudeLongitude_sequence
);
1428 static const per_sequence_t FixName_sequence
[] = {
1429 { &hf_atn_cpdlc_fixname_name
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Fix
},
1430 { &hf_atn_cpdlc_latlon
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_LatitudeLongitude
},
1431 { NULL
, 0, 0, NULL
}
1435 dissect_atn_cpdlc_FixName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1436 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1437 ett_atn_cpdlc_FixName
, FixName_sequence
);
1445 dissect_atn_cpdlc_NavaidName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1446 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 4, false, ia5alpha
, 127, NULL
);
1452 static const per_sequence_t Navaid_sequence
[] = {
1453 { &hf_atn_cpdlc_navaid_name
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_NavaidName
},
1454 { &hf_atn_cpdlc_latlon
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_LatitudeLongitude
},
1455 { NULL
, 0, 0, NULL
}
1459 dissect_atn_cpdlc_Navaid(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1460 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1461 ett_atn_cpdlc_Navaid
, Navaid_sequence
);
1469 dissect_atn_cpdlc_Airport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1470 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,4, 4, false, ia5alpha
, 127, NULL
);
1476 static const value_string atn_cpdlc_PublishedIdentifier_vals
[] = {
1482 static const per_choice_t PublishedIdentifier_choice
[] = {
1483 { 0, &hf_atn_cpdlc_fixName
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_FixName
},
1484 { 1, &hf_atn_cpdlc_navaid
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Navaid
},
1485 { 0, NULL
, 0, NULL
}
1489 dissect_atn_cpdlc_PublishedIdentifier(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1490 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1491 ett_atn_cpdlc_PublishedIdentifier
, PublishedIdentifier_choice
,
1500 dissect_atn_cpdlc_DegreesMagnetic(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1501 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1502 1U, 360U, NULL
, false);
1510 dissect_atn_cpdlc_DegreesTrue(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1511 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1512 1U, 360U, NULL
, false);
1518 static const value_string atn_cpdlc_Degrees_vals
[] = {
1519 { 0, "degreesMagnetic" },
1520 { 1, "degreesTrue" },
1524 static const per_choice_t Degrees_choice
[] = {
1525 { 0, &hf_atn_cpdlc_degreesMagnetic
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DegreesMagnetic
},
1526 { 1, &hf_atn_cpdlc_degreesTrue
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DegreesTrue
},
1527 { 0, NULL
, 0, NULL
}
1531 dissect_atn_cpdlc_Degrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1532 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1533 ett_atn_cpdlc_Degrees
, Degrees_choice
,
1542 dissect_atn_cpdlc_DistanceNm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1543 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1544 0U, 9999U, NULL
, false);
1552 dissect_atn_cpdlc_DistanceKm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1553 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1554 0U, 8000U, NULL
, false);
1560 static const value_string atn_cpdlc_Distance_vals
[] = {
1561 { 0, "distanceNm" },
1562 { 1, "distanceKm" },
1566 static const per_choice_t Distance_choice
[] = {
1567 { 0, &hf_atn_cpdlc_distanceNm
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DistanceNm
},
1568 { 1, &hf_atn_cpdlc_distanceKm
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DistanceKm
},
1569 { 0, NULL
, 0, NULL
}
1573 dissect_atn_cpdlc_Distance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1574 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1575 ett_atn_cpdlc_Distance
, Distance_choice
,
1582 static const per_sequence_t PlaceBearingDistance_sequence
[] = {
1583 { &hf_atn_cpdlc_publishedIdentifier
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PublishedIdentifier
},
1584 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
1585 { &hf_atn_cpdlc_distance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Distance
},
1586 { NULL
, 0, 0, NULL
}
1590 dissect_atn_cpdlc_PlaceBearingDistance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1591 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1592 ett_atn_cpdlc_PlaceBearingDistance
, PlaceBearingDistance_sequence
);
1598 static const value_string atn_cpdlc_Position_vals
[] = {
1602 { 3, "latitudeLongitude" },
1603 { 4, "placeBearingDistance" },
1607 static const per_choice_t Position_choice
[] = {
1608 { 0, &hf_atn_cpdlc_fixName
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_FixName
},
1609 { 1, &hf_atn_cpdlc_navaid
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Navaid
},
1610 { 2, &hf_atn_cpdlc_airport
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Airport
},
1611 { 3, &hf_atn_cpdlc_latitudeLongitude
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeLongitude
},
1612 { 4, &hf_atn_cpdlc_placeBearingDistance
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PlaceBearingDistance
},
1613 { 0, NULL
, 0, NULL
}
1617 dissect_atn_cpdlc_Position(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1618 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1619 ett_atn_cpdlc_Position
, Position_choice
,
1626 static const per_sequence_t TimeLevel_sequence
[] = {
1627 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1628 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1629 { NULL
, 0, 0, NULL
}
1633 dissect_atn_cpdlc_TimeLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1634 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1635 ett_atn_cpdlc_TimeLevel
, TimeLevel_sequence
);
1641 static const per_sequence_t PositionLevel_sequence
[] = {
1642 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1643 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1644 { NULL
, 0, 0, NULL
}
1648 dissect_atn_cpdlc_PositionLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1649 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1650 ett_atn_cpdlc_PositionLevel
, PositionLevel_sequence
);
1656 static const per_sequence_t LevelTime_sequence
[] = {
1657 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1658 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1659 { NULL
, 0, 0, NULL
}
1663 dissect_atn_cpdlc_LevelTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1664 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1665 ett_atn_cpdlc_LevelTime
, LevelTime_sequence
);
1671 static const per_sequence_t LevelPosition_sequence
[] = {
1672 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1673 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1674 { NULL
, 0, 0, NULL
}
1678 dissect_atn_cpdlc_LevelPosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1679 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1680 ett_atn_cpdlc_LevelPosition
, LevelPosition_sequence
);
1686 static const per_sequence_t LevelLevel_sequence_of
[1] = {
1687 { &hf_atn_cpdlc_LevelLevel_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1691 dissect_atn_cpdlc_LevelLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1692 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1693 ett_atn_cpdlc_LevelLevel
, LevelLevel_sequence_of
,
1700 static const per_sequence_t PositionLevelLevel_sequence
[] = {
1701 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1702 { &hf_atn_cpdlc_levels
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LevelLevel
},
1703 { NULL
, 0, 0, NULL
}
1707 dissect_atn_cpdlc_PositionLevelLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1708 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1709 ett_atn_cpdlc_PositionLevelLevel
, PositionLevelLevel_sequence
);
1715 static const per_sequence_t PositionTime_sequence
[] = {
1716 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1717 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1718 { NULL
, 0, 0, NULL
}
1722 dissect_atn_cpdlc_PositionTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1723 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1724 ett_atn_cpdlc_PositionTime
, PositionTime_sequence
);
1730 static const per_sequence_t TimeTime_sequence_of
[1] = {
1731 { &hf_atn_cpdlc_TimeTime_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1735 dissect_atn_cpdlc_TimeTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1736 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1737 ett_atn_cpdlc_TimeTime
, TimeTime_sequence_of
,
1744 static const per_sequence_t PositionTimeTime_sequence
[] = {
1745 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1746 { &hf_atn_cpdlc_times
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeTime
},
1747 { NULL
, 0, 0, NULL
}
1751 dissect_atn_cpdlc_PositionTimeTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1752 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1753 ett_atn_cpdlc_PositionTimeTime
, PositionTimeTime_sequence
);
1761 dissect_atn_cpdlc_SpeedIndicated(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1762 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1763 0U, 400U, NULL
, false);
1771 dissect_atn_cpdlc_SpeedIndicatedMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1772 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1773 0U, 800U, NULL
, false);
1781 dissect_atn_cpdlc_SpeedTrue(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1782 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1783 0U, 2000U, NULL
, false);
1791 dissect_atn_cpdlc_SpeedTrueMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1792 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1793 0U, 4000U, NULL
, false);
1801 dissect_atn_cpdlc_SpeedGround(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1802 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1803 -50, 2000U, NULL
, false);
1811 dissect_atn_cpdlc_SpeedGroundMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1812 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1813 -100, 4000U, NULL
, false);
1821 dissect_atn_cpdlc_SpeedMach(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1822 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1823 500U, 4000U, NULL
, false);
1829 static const value_string atn_cpdlc_Speed_vals
[] = {
1830 { 0, "speedIndicated" },
1831 { 1, "speedIndicatedMetric" },
1833 { 3, "speedTrueMetric" },
1834 { 4, "speedGround" },
1835 { 5, "speedGroundMetric" },
1840 static const per_choice_t Speed_choice
[] = {
1841 { 0, &hf_atn_cpdlc_speedIndicated
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedIndicated
},
1842 { 1, &hf_atn_cpdlc_speedIndicatedMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedIndicatedMetric
},
1843 { 2, &hf_atn_cpdlc_speedTrue
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedTrue
},
1844 { 3, &hf_atn_cpdlc_speedTrueMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedTrueMetric
},
1845 { 4, &hf_atn_cpdlc_speedGround
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedGround
},
1846 { 5, &hf_atn_cpdlc_speedGroundMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedGroundMetric
},
1847 { 6, &hf_atn_cpdlc_speedMach
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedMach
},
1848 { 0, NULL
, 0, NULL
}
1852 dissect_atn_cpdlc_Speed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1853 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1854 ett_atn_cpdlc_Speed
, Speed_choice
,
1861 static const per_sequence_t PositionSpeed_sequence
[] = {
1862 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1863 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
1864 { NULL
, 0, 0, NULL
}
1868 dissect_atn_cpdlc_PositionSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1869 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1870 ett_atn_cpdlc_PositionSpeed
, PositionSpeed_sequence
);
1876 static const per_sequence_t PositionTimeLevel_sequence
[] = {
1877 { &hf_atn_cpdlc_positionTime
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PositionTime
},
1878 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1879 { NULL
, 0, 0, NULL
}
1883 dissect_atn_cpdlc_PositionTimeLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1884 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1885 ett_atn_cpdlc_PositionTimeLevel
, PositionTimeLevel_sequence
);
1891 static const per_sequence_t PositionLevelSpeed_sequence
[] = {
1892 { &hf_atn_cpdlc_positionlevel
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PositionLevel
},
1893 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
1894 { NULL
, 0, 0, NULL
}
1898 dissect_atn_cpdlc_PositionLevelSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1899 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1900 ett_atn_cpdlc_PositionLevelSpeed
, PositionLevelSpeed_sequence
);
1906 static const per_sequence_t TimePosition_sequence
[] = {
1907 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1908 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1909 { NULL
, 0, 0, NULL
}
1913 dissect_atn_cpdlc_TimePosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1914 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1915 ett_atn_cpdlc_TimePosition
, TimePosition_sequence
);
1921 static const per_sequence_t TimePositionLevel_sequence
[] = {
1922 { &hf_atn_cpdlc_timeposition
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimePosition
},
1923 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1924 { NULL
, 0, 0, NULL
}
1928 dissect_atn_cpdlc_TimePositionLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1929 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1930 ett_atn_cpdlc_TimePositionLevel
, TimePositionLevel_sequence
);
1936 static const per_sequence_t SpeedSpeed_sequence_of
[1] = {
1937 { &hf_atn_cpdlc_SpeedSpeed_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
1941 dissect_atn_cpdlc_SpeedSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1942 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1943 ett_atn_cpdlc_SpeedSpeed
, SpeedSpeed_sequence_of
,
1950 static const per_sequence_t LevelSpeed_sequence
[] = {
1951 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1952 { &hf_atn_cpdlc_levelspeed_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedSpeed
},
1953 { NULL
, 0, 0, NULL
}
1957 dissect_atn_cpdlc_LevelSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1958 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1959 ett_atn_cpdlc_LevelSpeed
, LevelSpeed_sequence
);
1965 static const per_sequence_t TimePositionLevelSpeed_sequence
[] = {
1966 { &hf_atn_cpdlc_timeposition
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimePosition
},
1967 { &hf_atn_cpdlc_levelspeed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LevelSpeed
},
1968 { NULL
, 0, 0, NULL
}
1972 dissect_atn_cpdlc_TimePositionLevelSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1973 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1974 ett_atn_cpdlc_TimePositionLevelSpeed
, TimePositionLevelSpeed_sequence
);
1982 dissect_atn_cpdlc_DistanceSpecifiedNm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1983 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1984 1U, 250U, NULL
, false);
1992 dissect_atn_cpdlc_DistanceSpecifiedKm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1993 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1994 1U, 500U, NULL
, false);
2000 static const value_string atn_cpdlc_DistanceSpecified_vals
[] = {
2001 { 0, "distanceSpecifiedNm" },
2002 { 1, "distanceSpecifiedKm" },
2006 static const per_choice_t DistanceSpecified_choice
[] = {
2007 { 0, &hf_atn_cpdlc_distanceSpecifiedNm
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DistanceSpecifiedNm
},
2008 { 1, &hf_atn_cpdlc_distanceSpecifiedKm
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DistanceSpecifiedKm
},
2009 { 0, NULL
, 0, NULL
}
2013 dissect_atn_cpdlc_DistanceSpecified(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2014 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2015 ett_atn_cpdlc_DistanceSpecified
, DistanceSpecified_choice
,
2022 static const value_string atn_cpdlc_Direction_vals
[] = {
2025 { 2, "eitherSide" },
2033 { 10, "southWest" },
2039 dissect_atn_cpdlc_Direction(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2040 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2041 11, NULL
, false, 0, NULL
);
2047 static const per_sequence_t DistanceSpecifiedDirection_sequence
[] = {
2048 { &hf_atn_cpdlc_distanceSpecified
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DistanceSpecified
},
2049 { &hf_atn_cpdlc_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Direction
},
2050 { NULL
, 0, 0, NULL
}
2054 dissect_atn_cpdlc_DistanceSpecifiedDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2055 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2056 ett_atn_cpdlc_DistanceSpecifiedDirection
, DistanceSpecifiedDirection_sequence
);
2062 static const per_sequence_t PositionDistanceSpecifiedDirection_sequence
[] = {
2063 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2064 { &hf_atn_cpdlc_distanceSpecifiedDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
2065 { NULL
, 0, 0, NULL
}
2069 dissect_atn_cpdlc_PositionDistanceSpecifiedDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2070 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2071 ett_atn_cpdlc_PositionDistanceSpecifiedDirection
, PositionDistanceSpecifiedDirection_sequence
);
2077 static const per_sequence_t TimeDistanceSpecifiedDirection_sequence
[] = {
2078 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
2079 { &hf_atn_cpdlc_distanceSpecifiedDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
2080 { NULL
, 0, 0, NULL
}
2084 dissect_atn_cpdlc_TimeDistanceSpecifiedDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2085 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2086 ett_atn_cpdlc_TimeDistanceSpecifiedDirection
, TimeDistanceSpecifiedDirection_sequence
);
2094 dissect_atn_cpdlc_AircraftFlightIdentification(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2095 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,2, 8, false, ia5alpha
, 127, NULL
);
2101 static const per_sequence_t PlaceBearing_sequence
[] = {
2102 { &hf_atn_cpdlc_publishedIdentifier
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PublishedIdentifier
},
2103 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
2104 { NULL
, 0, 0, NULL
}
2108 dissect_atn_cpdlc_PlaceBearing(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2109 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2110 ett_atn_cpdlc_PlaceBearing
, PlaceBearing_sequence
);
2116 static const per_sequence_t PlaceBearingPlaceBearing_sequence_of
[1] = {
2117 { &hf_atn_cpdlc_PlaceBearingPlaceBearing_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PlaceBearing
},
2121 dissect_atn_cpdlc_PlaceBearingPlaceBearing(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2122 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2123 ett_atn_cpdlc_PlaceBearingPlaceBearing
, PlaceBearingPlaceBearing_sequence_of
,
2132 dissect_atn_cpdlc_ATSRouteDesignator(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2133 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,2, 7, false, ia5alpha
, 127, NULL
);
2139 static const value_string atn_cpdlc_RouteInformation_vals
[] = {
2140 { 0, "publishedIdentifier" },
2141 { 1, "latitudeLongitude" },
2142 { 2, "placeBearingPlaceBearing" },
2143 { 3, "placeBearingDistance" },
2144 { 4, "aTSRouteDesignator" },
2148 static const per_choice_t RouteInformation_choice
[] = {
2149 { 0, &hf_atn_cpdlc_publishedIdentifier
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PublishedIdentifier
},
2150 { 1, &hf_atn_cpdlc_latitudeLongitude
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeLongitude
},
2151 { 2, &hf_atn_cpdlc_placeBearingPlaceBearing
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PlaceBearingPlaceBearing
},
2152 { 3, &hf_atn_cpdlc_placeBearingDistance
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PlaceBearingDistance
},
2153 { 4, &hf_atn_cpdlc_aTSRouteDesignator
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_ATSRouteDesignator
},
2154 { 0, NULL
, 0, NULL
}
2158 dissect_atn_cpdlc_RouteInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2159 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2160 ett_atn_cpdlc_RouteInformation
, RouteInformation_choice
,
2167 static const value_string atn_cpdlc_ProcedureType_vals
[] = {
2176 dissect_atn_cpdlc_ProcedureType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2177 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2178 3, NULL
, false, 0, NULL
);
2186 dissect_atn_cpdlc_Procedure(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2187 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 20, false, ia5alpha
, 127, NULL
);
2195 dissect_atn_cpdlc_ProcedureTransition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2196 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 5, false, ia5alpha
, 127, NULL
);
2202 static const per_sequence_t ProcedureName_sequence
[] = {
2203 { &hf_atn_cpdlc_type
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ProcedureType
},
2204 { &hf_atn_cpdlc_procedure
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Procedure
},
2205 { &hf_atn_cpdlc_transition
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ProcedureTransition
},
2206 { NULL
, 0, 0, NULL
}
2210 dissect_atn_cpdlc_ProcedureName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2211 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2212 ett_atn_cpdlc_ProcedureName
, ProcedureName_sequence
);
2218 static const per_sequence_t LevelProcedureName_sequence
[] = {
2219 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
2220 { &hf_atn_cpdlc_procedureName
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ProcedureName
},
2221 { NULL
, 0, 0, NULL
}
2225 dissect_atn_cpdlc_LevelProcedureName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2226 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2227 ett_atn_cpdlc_LevelProcedureName
, LevelProcedureName_sequence
);
2233 static const value_string atn_cpdlc_LevelsOfFlight_vals
[] = {
2235 { 1, "procedureName" },
2236 { 2, "levelProcedureName" },
2240 static const per_choice_t LevelsOfFlight_choice
[] = {
2241 { 0, &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Level
},
2242 { 1, &hf_atn_cpdlc_procedureName
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_ProcedureName
},
2243 { 2, &hf_atn_cpdlc_levelProcedureName
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelProcedureName
},
2244 { 0, NULL
, 0, NULL
}
2248 dissect_atn_cpdlc_LevelsOfFlight(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2249 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2250 ett_atn_cpdlc_LevelsOfFlight
, LevelsOfFlight_choice
,
2257 static const per_sequence_t RouteAndLevels_sequence
[] = {
2258 { &hf_atn_cpdlc_routeOfFlight
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RouteInformation
},
2259 { &hf_atn_cpdlc_levelsOfFlight
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LevelsOfFlight
},
2260 { NULL
, 0, 0, NULL
}
2264 dissect_atn_cpdlc_RouteAndLevels(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2265 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2266 ett_atn_cpdlc_RouteAndLevels
, RouteAndLevels_sequence
);
2272 static const value_string atn_cpdlc_FlightInformation_vals
[] = {
2273 { 0, "routeOfFlight" },
2274 { 1, "levelsOfFlight" },
2275 { 2, "routeAndLevels" },
2279 static const per_choice_t FlightInformation_choice
[] = {
2280 { 0, &hf_atn_cpdlc_routeOfFlight
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_RouteInformation
},
2281 { 1, &hf_atn_cpdlc_levelsOfFlight
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelsOfFlight
},
2282 { 2, &hf_atn_cpdlc_routeAndLevels
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_RouteAndLevels
},
2283 { 0, NULL
, 0, NULL
}
2287 dissect_atn_cpdlc_FlightInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2288 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2289 ett_atn_cpdlc_FlightInformation
, FlightInformation_choice
,
2298 dissect_atn_cpdlc_CodeOctalDigit(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2299 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2300 0U, 7U, NULL
, false);
2306 static const per_sequence_t Code_sequence_of
[1] = {
2307 { &hf_atn_cpdlc_Code_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_CodeOctalDigit
},
2311 dissect_atn_cpdlc_Code(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2312 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2313 ett_atn_cpdlc_Code
, Code_sequence_of
,
2322 dissect_atn_cpdlc_FacilityDesignation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2323 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,4, 8, false, ia5alpha
, 127, NULL
);
2331 dissect_atn_cpdlc_FacilityName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2332 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,3, 18, false, ia5alpha
, 127, NULL
);
2338 static const value_string atn_cpdlc_FacilityFunction_vals
[] = {
2343 { 4, "groundControl" },
2344 { 5, "clearanceDelivery" },
2353 dissect_atn_cpdlc_FacilityFunction(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2354 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2355 9, NULL
, true, 0, NULL
);
2361 static const per_sequence_t UnitName_sequence
[] = {
2362 { &hf_atn_cpdlc_facilityDesignation
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_FacilityDesignation
},
2363 { &hf_atn_cpdlc_facilityName
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_FacilityName
},
2364 { &hf_atn_cpdlc_facilityFunction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_FacilityFunction
},
2365 { NULL
, 0, 0, NULL
}
2369 dissect_atn_cpdlc_UnitName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2370 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2371 ett_atn_cpdlc_UnitName
, UnitName_sequence
);
2379 dissect_atn_cpdlc_Frequencyhf(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2380 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2381 2850U, 28000U, NULL
, false);
2389 dissect_atn_cpdlc_Frequencyvhf(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2390 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2391 23600U, 27398U, NULL
, false);
2399 dissect_atn_cpdlc_Frequencyuhf(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2400 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2401 9000U, 15999U, NULL
, false);
2409 dissect_atn_cpdlc_Frequencysatchannel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2410 offset
= dissect_per_NumericString(tvb
, offset
, actx
, tree
, hf_index
,
2418 static const value_string atn_cpdlc_Frequency_vals
[] = {
2419 { 0, "frequencyhf" },
2420 { 1, "frequencyvhf" },
2421 { 2, "frequencyuhf" },
2422 { 3, "frequencysatchannel" },
2426 static const per_choice_t Frequency_choice
[] = {
2427 { 0, &hf_atn_cpdlc_frequencyhf
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Frequencyhf
},
2428 { 1, &hf_atn_cpdlc_frequencyvhf
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Frequencyvhf
},
2429 { 2, &hf_atn_cpdlc_frequencyuhf
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Frequencyuhf
},
2430 { 3, &hf_atn_cpdlc_frequencysatchannel
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Frequencysatchannel
},
2431 { 0, NULL
, 0, NULL
}
2435 dissect_atn_cpdlc_Frequency(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2436 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2437 ett_atn_cpdlc_Frequency
, Frequency_choice
,
2444 static const per_sequence_t UnitNameFrequency_sequence
[] = {
2445 { &hf_atn_cpdlc_unitName
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_UnitName
},
2446 { &hf_atn_cpdlc_frequency
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Frequency
},
2447 { NULL
, 0, 0, NULL
}
2451 dissect_atn_cpdlc_UnitNameFrequency(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2452 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2453 ett_atn_cpdlc_UnitNameFrequency
, UnitNameFrequency_sequence
);
2459 static const value_string atn_cpdlc_TimeTolerance_vals
[] = {
2462 { 2, "atorbefore" },
2468 dissect_atn_cpdlc_TimeTolerance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2469 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2470 3, NULL
, false, 0, NULL
);
2476 static const per_sequence_t ControlledTime_sequence
[] = {
2477 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
2478 { &hf_atn_cpdlc_timeTolerance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeTolerance
},
2479 { NULL
, 0, 0, NULL
}
2483 dissect_atn_cpdlc_ControlledTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2484 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2485 ett_atn_cpdlc_ControlledTime
, ControlledTime_sequence
);
2493 dissect_atn_cpdlc_DepartureMinimumInterval(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2494 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2495 1U, 150U, NULL
, false);
2501 static const per_sequence_t TimeDeparture_sequence
[] = {
2502 { &hf_atn_cpdlc_timeDepartureAllocated
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
2503 { &hf_atn_cpdlc_timeDepartureControlled
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ControlledTime
},
2504 { &hf_atn_cpdlc_timeDepartureClearanceExpected
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
2505 { &hf_atn_cpdlc_departureMinimumInterval
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_DepartureMinimumInterval
},
2506 { NULL
, 0, 0, NULL
}
2510 dissect_atn_cpdlc_TimeDeparture(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2511 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2512 ett_atn_cpdlc_TimeDeparture
, TimeDeparture_sequence
);
2520 dissect_atn_cpdlc_RunwayDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2521 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2522 1U, 36U, NULL
, false);
2528 static const value_string atn_cpdlc_RunwayConfiguration_vals
[] = {
2538 dissect_atn_cpdlc_RunwayConfiguration(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2539 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2540 4, NULL
, false, 0, NULL
);
2546 static const per_sequence_t Runway_sequence
[] = {
2547 { &hf_atn_cpdlc_runway_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RunwayDirection
},
2548 { &hf_atn_cpdlc_configuration
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RunwayConfiguration
},
2549 { NULL
, 0, 0, NULL
}
2553 dissect_atn_cpdlc_Runway(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2554 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2555 ett_atn_cpdlc_Runway
, Runway_sequence
);
2563 dissect_atn_cpdlc_RevisionNumber(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2564 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2565 1U, 16U, NULL
, false);
2573 dissect_atn_cpdlc_ATISCode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2574 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 1, false, ia5alpha
, 127, NULL
);
2580 static const per_sequence_t FurtherInstructions_sequence
[] = {
2581 { &hf_atn_cpdlc_code
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Code
},
2582 { &hf_atn_cpdlc_frequencyDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_UnitNameFrequency
},
2583 { &hf_atn_cpdlc_clearanceExpiryTime
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
2584 { &hf_atn_cpdlc_airportDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Airport
},
2585 { &hf_atn_cpdlc_airportDestination
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Airport
},
2586 { &hf_atn_cpdlc_timeDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_TimeDeparture
},
2587 { &hf_atn_cpdlc_runwayDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Runway
},
2588 { &hf_atn_cpdlc_revisionNumber
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_RevisionNumber
},
2589 { &hf_atn_cpdlc_aTISCode
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ATISCode
},
2590 { NULL
, 0, 0, NULL
}
2594 dissect_atn_cpdlc_FurtherInstructions(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2595 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2596 ett_atn_cpdlc_FurtherInstructions
, FurtherInstructions_sequence
);
2602 static const per_sequence_t DepartureClearance_sequence
[] = {
2603 { &hf_atn_cpdlc_aircraftFlightIdentification
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_AircraftFlightIdentification
},
2604 { &hf_atn_cpdlc_clearanceLimit
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2605 { &hf_atn_cpdlc_flightInformation
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_FlightInformation
},
2606 { &hf_atn_cpdlc_furtherInstructions
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_FurtherInstructions
},
2607 { NULL
, 0, 0, NULL
}
2611 dissect_atn_cpdlc_DepartureClearance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2612 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2613 ett_atn_cpdlc_DepartureClearance
, DepartureClearance_sequence
);
2619 static const per_sequence_t PositionPosition_sequence_of
[1] = {
2620 { &hf_atn_cpdlc_PositionPosition_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2624 dissect_atn_cpdlc_PositionPosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2625 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2626 ett_atn_cpdlc_PositionPosition
, PositionPosition_sequence_of
,
2635 dissect_atn_cpdlc_RouteClearanceIndex(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2636 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2637 1U, 2U, NULL
, false);
2643 static const per_sequence_t PositionRouteClearanceIndex_sequence
[] = {
2644 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2645 { &hf_atn_cpdlc_routeClearanceIndex
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RouteClearanceIndex
},
2646 { NULL
, 0, 0, NULL
}
2650 dissect_atn_cpdlc_PositionRouteClearanceIndex(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2651 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2652 ett_atn_cpdlc_PositionRouteClearanceIndex
, PositionRouteClearanceIndex_sequence
);
2658 static const per_sequence_t PositionProcedureName_sequence
[] = {
2659 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2660 { &hf_atn_cpdlc_procedureName
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ProcedureName
},
2661 { NULL
, 0, 0, NULL
}
2665 dissect_atn_cpdlc_PositionProcedureName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2666 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2667 ett_atn_cpdlc_PositionProcedureName
, PositionProcedureName_sequence
);
2675 dissect_atn_cpdlc_LegDistanceEnglish(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2676 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2677 0U, 50U, NULL
, false);
2685 dissect_atn_cpdlc_LegDistanceMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2686 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2687 1U, 128U, NULL
, false);
2693 static const value_string atn_cpdlc_LegDistance_vals
[] = {
2694 { 0, "legDistanceEnglish" },
2695 { 1, "legDistanceMetric" },
2699 static const per_choice_t LegDistance_choice
[] = {
2700 { 0, &hf_atn_cpdlc_legDistanceEnglish
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LegDistanceEnglish
},
2701 { 1, &hf_atn_cpdlc_legDistanceMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LegDistanceMetric
},
2702 { 0, NULL
, 0, NULL
}
2706 dissect_atn_cpdlc_LegDistance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2707 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2708 ett_atn_cpdlc_LegDistance
, LegDistance_choice
,
2717 dissect_atn_cpdlc_LegTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2718 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2719 0U, 10U, NULL
, false);
2725 static const value_string atn_cpdlc_LegType_vals
[] = {
2726 { 0, "legDistance" },
2731 static const per_choice_t LegType_choice
[] = {
2732 { 0, &hf_atn_cpdlc_legDistance
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LegDistance
},
2733 { 1, &hf_atn_cpdlc_legTime
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LegTime
},
2734 { 0, NULL
, 0, NULL
}
2738 dissect_atn_cpdlc_LegType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2739 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2740 ett_atn_cpdlc_LegType
, LegType_choice
,
2747 static const per_sequence_t HoldClearance_sequence
[] = {
2748 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2749 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
2750 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
2751 { &hf_atn_cpdlc_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Direction
},
2752 { &hf_atn_cpdlc_legType
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_LegType
},
2753 { NULL
, 0, 0, NULL
}
2757 dissect_atn_cpdlc_HoldClearance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2758 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2759 ett_atn_cpdlc_HoldClearance
, HoldClearance_sequence
);
2765 static const per_sequence_t DirectionDegrees_sequence
[] = {
2766 { &hf_atn_cpdlc_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Direction
},
2767 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
2768 { NULL
, 0, 0, NULL
}
2772 dissect_atn_cpdlc_DirectionDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2773 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2774 ett_atn_cpdlc_DirectionDegrees
, DirectionDegrees_sequence
);
2780 static const per_sequence_t PositionDegrees_sequence
[] = {
2781 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2782 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
2783 { NULL
, 0, 0, NULL
}
2787 dissect_atn_cpdlc_PositionDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2788 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2789 ett_atn_cpdlc_PositionDegrees
, PositionDegrees_sequence
);
2795 static const per_sequence_t TimeSpeed_sequence
[] = {
2796 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
2797 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
2798 { NULL
, 0, 0, NULL
}
2802 dissect_atn_cpdlc_TimeSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2803 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2804 ett_atn_cpdlc_TimeSpeed
, TimeSpeed_sequence
);
2810 static const per_sequence_t TimeSpeedSpeed_sequence
[] = {
2811 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
2812 { &hf_atn_cpdlc_speedspeed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedSpeed
},
2813 { NULL
, 0, 0, NULL
}
2817 dissect_atn_cpdlc_TimeSpeedSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2818 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2819 ett_atn_cpdlc_TimeSpeedSpeed
, TimeSpeedSpeed_sequence
);
2825 static const per_sequence_t PositionSpeedSpeed_sequence
[] = {
2826 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2827 { &hf_atn_cpdlc_speeds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedSpeed
},
2828 { NULL
, 0, 0, NULL
}
2832 dissect_atn_cpdlc_PositionSpeedSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2833 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2834 ett_atn_cpdlc_PositionSpeedSpeed
, PositionSpeedSpeed_sequence
);
2840 static const per_sequence_t LevelSpeedSpeed_sequence
[] = {
2841 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
2842 { &hf_atn_cpdlc_speeds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedSpeed
},
2843 { NULL
, 0, 0, NULL
}
2847 dissect_atn_cpdlc_LevelSpeedSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2848 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2849 ett_atn_cpdlc_LevelSpeedSpeed
, LevelSpeedSpeed_sequence
);
2855 static const per_sequence_t PositionUnitNameFrequency_sequence
[] = {
2856 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2857 { &hf_atn_cpdlc_unitname
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_UnitName
},
2858 { &hf_atn_cpdlc_frequency
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Frequency
},
2859 { NULL
, 0, 0, NULL
}
2863 dissect_atn_cpdlc_PositionUnitNameFrequency(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2864 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2865 ett_atn_cpdlc_PositionUnitNameFrequency
, PositionUnitNameFrequency_sequence
);
2871 static const per_sequence_t TimeUnitNameFrequency_sequence
[] = {
2872 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
2873 { &hf_atn_cpdlc_unitName
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_UnitName
},
2874 { &hf_atn_cpdlc_frequency
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Frequency
},
2875 { NULL
, 0, 0, NULL
}
2879 dissect_atn_cpdlc_TimeUnitNameFrequency(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2880 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2881 ett_atn_cpdlc_TimeUnitNameFrequency
, TimeUnitNameFrequency_sequence
);
2887 static const value_string atn_cpdlc_SpeedType_vals
[] = {
2888 { 0, "noneSpecified" },
2902 dissect_atn_cpdlc_SpeedType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2903 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2904 9, NULL
, true, 0, NULL
);
2910 static const per_sequence_t SpeedTypeSpeedTypeSpeedType_sequence_of
[1] = {
2911 { &hf_atn_cpdlc_SpeedTypeSpeedTypeSpeedType_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedType
},
2915 dissect_atn_cpdlc_SpeedTypeSpeedTypeSpeedType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2916 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2917 ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedType
, SpeedTypeSpeedTypeSpeedType_sequence_of
,
2926 dissect_atn_cpdlc_AltimeterEnglish(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2927 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2928 2200U, 3200U, NULL
, false);
2936 dissect_atn_cpdlc_AltimeterMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2937 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2938 7500U, 12500U, NULL
, false);
2944 static const value_string atn_cpdlc_Altimeter_vals
[] = {
2945 { 0, "altimeterEnglish" },
2946 { 1, "altimeterMetric" },
2950 static const per_choice_t Altimeter_choice
[] = {
2951 { 0, &hf_atn_cpdlc_altimeterEnglish
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_AltimeterEnglish
},
2952 { 1, &hf_atn_cpdlc_altimeterMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_AltimeterMetric
},
2953 { 0, NULL
, 0, NULL
}
2957 dissect_atn_cpdlc_Altimeter(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2958 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2959 ett_atn_cpdlc_Altimeter
, Altimeter_choice
,
2966 static const value_string atn_cpdlc_ErrorInformation_vals
[] = {
2967 { 0, "unrecognizedMsgReferenceNumber" },
2968 { 1, "logicalAcknowledgmentNotAccepted" },
2969 { 2, "insufficientResources" },
2970 { 3, "invalidMessageElementCombination" },
2971 { 4, "invalidMessageElement" },
2977 dissect_atn_cpdlc_ErrorInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2978 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2979 5, NULL
, true, 0, NULL
);
2985 static const value_string atn_cpdlc_Facility_vals
[] = {
2986 { 0, "noFacility" },
2987 { 1, "facilityDesignation" },
2991 static const per_choice_t Facility_choice
[] = {
2992 { 0, &hf_atn_cpdlc_noFacility
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_NULL
},
2993 { 1, &hf_atn_cpdlc_facilityDesignation
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_FacilityDesignation
},
2994 { 0, NULL
, 0, NULL
}
2998 dissect_atn_cpdlc_Facility(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2999 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3000 ett_atn_cpdlc_Facility
, Facility_choice
,
3007 static const value_string atn_cpdlc_TrafficType_vals
[] = {
3008 { 0, "noneSpecified" },
3009 { 1, "oppositeDirection" },
3010 { 2, "sameDirection" },
3011 { 3, "converging" },
3019 dissect_atn_cpdlc_TrafficType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3020 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
3021 6, NULL
, true, 0, NULL
);
3029 dissect_atn_cpdlc_FreeText(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3030 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 256, false, ia5alpha
, 127, NULL
);
3038 dissect_atn_cpdlc_VerticalRateEnglish(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3039 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
3040 0U, 3000U, NULL
, false);
3048 dissect_atn_cpdlc_VerticalRateMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3049 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
3050 0U, 1000U, NULL
, false);
3056 static const value_string atn_cpdlc_VerticalRate_vals
[] = {
3057 { 0, "verticalRateEnglish" },
3058 { 1, "verticalRateMetric" },
3062 static const per_choice_t VerticalRate_choice
[] = {
3063 { 0, &hf_atn_cpdlc_verticalRateEnglish
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_VerticalRateEnglish
},
3064 { 1, &hf_atn_cpdlc_verticalRateMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_VerticalRateMetric
},
3065 { 0, NULL
, 0, NULL
}
3069 dissect_atn_cpdlc_VerticalRate(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3070 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3071 ett_atn_cpdlc_VerticalRate
, VerticalRate_choice
,
3078 static const value_string atn_cpdlc_ToFrom_vals
[] = {
3086 dissect_atn_cpdlc_ToFrom(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3087 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
3088 2, NULL
, false, 0, NULL
);
3094 static const per_sequence_t ToFromPosition_sequence
[] = {
3095 { &hf_atn_cpdlc_toFrom
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ToFrom
},
3096 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
3097 { NULL
, 0, 0, NULL
}
3101 dissect_atn_cpdlc_ToFromPosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3102 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3103 ett_atn_cpdlc_ToFromPosition
, ToFromPosition_sequence
);
3109 static const per_sequence_t TimeToFromPosition_sequence
[] = {
3110 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
3111 { &hf_atn_cpdlc_tofrom
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ToFrom
},
3112 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
3113 { NULL
, 0, 0, NULL
}
3117 dissect_atn_cpdlc_TimeToFromPosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3118 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3119 ett_atn_cpdlc_TimeToFromPosition
, TimeToFromPosition_sequence
);
3125 static const per_sequence_t FacilityDesignationATISCode_sequence
[] = {
3126 { &hf_atn_cpdlc_facilityDesignation
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_FacilityDesignation
},
3127 { &hf_atn_cpdlc_aTISCode
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATISCode
},
3128 { NULL
, 0, 0, NULL
}
3132 dissect_atn_cpdlc_FacilityDesignationATISCode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3133 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3134 ett_atn_cpdlc_FacilityDesignationATISCode
, FacilityDesignationATISCode_sequence
);
3140 static const per_sequence_t FacilityDesignationAltimeter_sequence
[] = {
3141 { &hf_atn_cpdlc_facilityDesignation
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_FacilityDesignation
},
3142 { &hf_atn_cpdlc_altimeter
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Altimeter
},
3143 { NULL
, 0, 0, NULL
}
3147 dissect_atn_cpdlc_FacilityDesignationAltimeter(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3148 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3149 ett_atn_cpdlc_FacilityDesignationAltimeter
, FacilityDesignationAltimeter_sequence
);
3157 dissect_atn_cpdlc_RVRFeet(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3158 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
3159 0U, 6100U, NULL
, false);
3167 dissect_atn_cpdlc_RVRMeters(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3168 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
3169 0U, 1500U, NULL
, false);
3175 static const value_string atn_cpdlc_RVR_vals
[] = {
3181 static const per_choice_t RVR_choice
[] = {
3182 { 0, &hf_atn_cpdlc_rVRFeet
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_RVRFeet
},
3183 { 1, &hf_atn_cpdlc_rVRMeters
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_RVRMeters
},
3184 { 0, NULL
, 0, NULL
}
3188 dissect_atn_cpdlc_RVR(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3189 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3190 ett_atn_cpdlc_RVR
, RVR_choice
,
3197 static const per_sequence_t RunwayRVR_sequence
[] = {
3198 { &hf_atn_cpdlc_runway
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Runway
},
3199 { &hf_atn_cpdlc_rVR
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RVR
},
3200 { NULL
, 0, 0, NULL
}
3204 dissect_atn_cpdlc_RunwayRVR(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3205 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3206 ett_atn_cpdlc_RunwayRVR
, RunwayRVR_sequence
);
3212 static const value_string atn_cpdlc_ATCUplinkMsgElementId_vals
[] = {
3221 { 8, "uM8Position" },
3223 { 10, "uM10Position" },
3225 { 12, "uM12Position" },
3226 { 13, "uM13TimeLevel" },
3227 { 14, "uM14PositionLevel" },
3228 { 15, "uM15TimeLevel" },
3229 { 16, "uM16PositionLevel" },
3230 { 17, "uM17TimeLevel" },
3231 { 18, "uM18PositionLevel" },
3232 { 19, "uM19Level" },
3233 { 20, "uM20Level" },
3234 { 21, "uM21TimeLevel" },
3235 { 22, "uM22PositionLevel" },
3236 { 23, "uM23Level" },
3237 { 24, "uM24TimeLevel" },
3238 { 25, "uM25PositionLevel" },
3239 { 26, "uM26LevelTime" },
3240 { 27, "uM27LevelPosition" },
3241 { 28, "uM28LevelTime" },
3242 { 29, "uM29LevelPosition" },
3243 { 30, "uM30LevelLevel" },
3244 { 31, "uM31LevelLevel" },
3245 { 32, "uM32LevelLevel" },
3247 { 34, "uM34Level" },
3248 { 35, "uM35Level" },
3249 { 36, "uM36Level" },
3250 { 37, "uM37Level" },
3251 { 38, "uM38Level" },
3252 { 39, "uM39Level" },
3255 { 42, "uM42PositionLevel" },
3256 { 43, "uM43PositionLevel" },
3257 { 44, "uM44PositionLevel" },
3258 { 45, "uM45PositionLevel" },
3259 { 46, "uM46PositionLevel" },
3260 { 47, "uM47PositionLevel" },
3261 { 48, "uM48PositionLevel" },
3262 { 49, "uM49PositionLevel" },
3263 { 50, "uM50PositionLevelLevel" },
3264 { 51, "uM51PositionTime" },
3265 { 52, "uM52PositionTime" },
3266 { 53, "uM53PositionTime" },
3267 { 54, "uM54PositionTimeTime" },
3268 { 55, "uM55PositionSpeed" },
3269 { 56, "uM56PositionSpeed" },
3270 { 57, "uM57PositionSpeed" },
3271 { 58, "uM58PositionTimeLevel" },
3272 { 59, "uM59PositionTimeLevel" },
3273 { 60, "uM60PositionTimeLevel" },
3274 { 61, "uM61PositionLevelSpeed" },
3275 { 62, "uM62TimePositionLevel" },
3276 { 63, "uM63TimePositionLevelSpeed" },
3277 { 64, "uM64DistanceSpecifiedDirection" },
3278 { 65, "uM65PositionDistanceSpecifiedDirection" },
3279 { 66, "uM66TimeDistanceSpecifiedDirection" },
3281 { 68, "uM68Position" },
3283 { 70, "uM70Position" },
3286 { 73, "uM73DepartureClearance" },
3287 { 74, "uM74Position" },
3288 { 75, "uM75Position" },
3289 { 76, "uM76TimePosition" },
3290 { 77, "uM77PositionPosition" },
3291 { 78, "uM78LevelPosition" },
3292 { 79, "uM79PositionRouteClearance" },
3293 { 80, "uM80RouteClearance" },
3294 { 81, "uM81ProcedureName" },
3295 { 82, "uM82DistanceSpecifiedDirection" },
3296 { 83, "uM83PositionRouteClearance" },
3297 { 84, "uM84PositionProcedureName" },
3298 { 85, "uM85RouteClearance" },
3299 { 86, "uM86PositionRouteClearance" },
3300 { 87, "uM87Position" },
3301 { 88, "uM88PositionPosition" },
3302 { 89, "uM89TimePosition" },
3303 { 90, "uM90LevelPosition" },
3304 { 91, "uM91HoldClearance" },
3305 { 92, "uM92PositionLevel" },
3307 { 94, "uM94DirectionDegrees" },
3308 { 95, "uM95DirectionDegrees" },
3310 { 97, "uM97PositionDegrees" },
3311 { 98, "uM98DirectionDegrees" },
3312 { 99, "uM99ProcedureName" },
3313 { 100, "uM100TimeSpeed" },
3314 { 101, "uM101PositionSpeed" },
3315 { 102, "uM102LevelSpeed" },
3316 { 103, "uM103TimeSpeedSpeed" },
3317 { 104, "uM104PositionSpeedSpeed" },
3318 { 105, "uM105LevelSpeedSpeed" },
3319 { 106, "uM106Speed" },
3320 { 107, "uM107NULL" },
3321 { 108, "uM108Speed" },
3322 { 109, "uM109Speed" },
3323 { 110, "uM110SpeedSpeed" },
3324 { 111, "uM111Speed" },
3325 { 112, "uM112Speed" },
3326 { 113, "uM113Speed" },
3327 { 114, "uM114Speed" },
3328 { 115, "uM115Speed" },
3329 { 116, "uM116NULL" },
3330 { 117, "uM117UnitNameFrequency" },
3331 { 118, "uM118PositionUnitNameFrequency" },
3332 { 119, "uM119TimeUnitNameFrequency" },
3333 { 120, "uM120UnitNameFrequency" },
3334 { 121, "uM121PositionUnitNameFrequency" },
3335 { 122, "uM122TimeUnitNameFrequency" },
3336 { 123, "uM123Code" },
3337 { 124, "uM124NULL" },
3338 { 125, "uM125NULL" },
3339 { 126, "uM126NULL" },
3340 { 127, "uM127NULL" },
3341 { 128, "uM128Level" },
3342 { 129, "uM129Level" },
3343 { 130, "uM130Position" },
3344 { 131, "uM131NULL" },
3345 { 132, "uM132NULL" },
3346 { 133, "uM133NULL" },
3347 { 134, "uM134SpeedTypeSpeedTypeSpeedType" },
3348 { 135, "uM135NULL" },
3349 { 136, "uM136NULL" },
3350 { 137, "uM137NULL" },
3351 { 138, "uM138NULL" },
3352 { 139, "uM139NULL" },
3353 { 140, "uM140NULL" },
3354 { 141, "uM141NULL" },
3355 { 142, "uM142NULL" },
3356 { 143, "uM143NULL" },
3357 { 144, "uM144NULL" },
3358 { 145, "uM145NULL" },
3359 { 146, "uM146NULL" },
3360 { 147, "uM147NULL" },
3361 { 148, "uM148Level" },
3362 { 149, "uM149LevelPosition" },
3363 { 150, "uM150LevelTime" },
3364 { 151, "uM151Speed" },
3365 { 152, "uM152DistanceSpecifiedDirection" },
3366 { 153, "uM153Altimeter" },
3367 { 154, "uM154NULL" },
3368 { 155, "uM155Position" },
3369 { 156, "uM156NULL" },
3370 { 157, "uM157Frequency" },
3371 { 158, "uM158AtisCode" },
3372 { 159, "uM159ErrorInformation" },
3373 { 160, "uM160Facility" },
3374 { 161, "uM161NULL" },
3375 { 162, "uM162NULL" },
3376 { 163, "uM163FacilityDesignation" },
3377 { 164, "uM164NULL" },
3378 { 165, "uM165NULL" },
3379 { 166, "uM166TrafficType" },
3380 { 167, "uM167NULL" },
3381 { 168, "uM168NULL" },
3382 { 169, "uM169FreeText" },
3383 { 170, "uM170FreeText" },
3384 { 171, "uM171VerticalRate" },
3385 { 172, "uM172VerticalRate" },
3386 { 173, "uM173VerticalRate" },
3387 { 174, "uM174VerticalRate" },
3388 { 175, "uM175Level" },
3389 { 176, "uM176NULL" },
3390 { 177, "uM177NULL" },
3391 { 178, "uM178NULL" },
3392 { 179, "uM179NULL" },
3393 { 180, "uM180LevelLevel" },
3394 { 181, "uM181ToFromPosition" },
3395 { 182, "uM182NULL" },
3396 { 183, "uM183FreeText" },
3397 { 184, "uM184TimeToFromPosition" },
3398 { 185, "uM185PositionLevel" },
3399 { 186, "uM186PositionLevel" },
3400 { 187, "uM187FreeText" },
3401 { 188, "uM188PositionSpeed" },
3402 { 189, "uM189Speed" },
3403 { 190, "uM190Degrees" },
3404 { 191, "uM191NULL" },
3405 { 192, "uM192LevelTime" },
3406 { 193, "uM193NULL" },
3407 { 194, "uM194FreeText" },
3408 { 195, "uM195FreeText" },
3409 { 196, "uM196FreeText" },
3410 { 197, "uM197FreeText" },
3411 { 198, "uM198FreeText" },
3412 { 199, "uM199FreeText" },
3413 { 200, "uM200NULL" },
3414 { 201, "uM201NULL" },
3415 { 202, "uM202NULL" },
3416 { 203, "uM203FreeText" },
3417 { 204, "uM204FreeText" },
3418 { 205, "uM205FreeText" },
3419 { 206, "uM206FreeText" },
3420 { 207, "uM207FreeText" },
3421 { 208, "uM208FreeText" },
3422 { 209, "uM209LevelPosition" },
3423 { 210, "uM210Position" },
3424 { 211, "uM211NULL" },
3425 { 212, "uM212FacilityDesignationATISCode" },
3426 { 213, "uM213FacilityDesignationAltimeter" },
3427 { 214, "uM214RunwayRVR" },
3428 { 215, "uM215DirectionDegrees" },
3429 { 216, "uM216NULL" },
3430 { 217, "uM217NULL" },
3431 { 218, "uM218NULL" },
3432 { 219, "uM219Level" },
3433 { 220, "uM220Level" },
3434 { 221, "uM221Degrees" },
3435 { 222, "uM222NULL" },
3436 { 223, "uM223NULL" },
3437 { 224, "uM224NULL" },
3438 { 225, "uM225NULL" },
3439 { 226, "uM226Time" },
3440 { 227, "uM227NULL" },
3441 { 228, "uM228Position" },
3442 { 229, "uM229NULL" },
3443 { 230, "uM230NULL" },
3444 { 231, "uM231NULL" },
3445 { 232, "uM232NULL" },
3446 { 233, "uM233NULL" },
3447 { 234, "uM234NULL" },
3448 { 235, "uM235NULL" },
3449 { 236, "uM236NULL" },
3450 { 237, "uM237NULL" },
3454 static const per_choice_t ATCUplinkMsgElementId_choice
[] = {
3455 { 0, &hf_atn_cpdlc_uM0NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3456 { 1, &hf_atn_cpdlc_uM1NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3457 { 2, &hf_atn_cpdlc_uM2NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3458 { 3, &hf_atn_cpdlc_uM3NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3459 { 4, &hf_atn_cpdlc_uM4NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3460 { 5, &hf_atn_cpdlc_uM5NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3461 { 6, &hf_atn_cpdlc_uM6Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3462 { 7, &hf_atn_cpdlc_uM7Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3463 { 8, &hf_atn_cpdlc_uM8Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3464 { 9, &hf_atn_cpdlc_uM9Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3465 { 10, &hf_atn_cpdlc_uM10Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3466 { 11, &hf_atn_cpdlc_uM11Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3467 { 12, &hf_atn_cpdlc_uM12Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3468 { 13, &hf_atn_cpdlc_uM13TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
3469 { 14, &hf_atn_cpdlc_uM14PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3470 { 15, &hf_atn_cpdlc_uM15TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
3471 { 16, &hf_atn_cpdlc_uM16PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3472 { 17, &hf_atn_cpdlc_uM17TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
3473 { 18, &hf_atn_cpdlc_uM18PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3474 { 19, &hf_atn_cpdlc_uM19Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3475 { 20, &hf_atn_cpdlc_uM20Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3476 { 21, &hf_atn_cpdlc_uM21TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
3477 { 22, &hf_atn_cpdlc_uM22PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3478 { 23, &hf_atn_cpdlc_uM23Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3479 { 24, &hf_atn_cpdlc_uM24TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
3480 { 25, &hf_atn_cpdlc_uM25PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3481 { 26, &hf_atn_cpdlc_uM26LevelTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelTime
},
3482 { 27, &hf_atn_cpdlc_uM27LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3483 { 28, &hf_atn_cpdlc_uM28LevelTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelTime
},
3484 { 29, &hf_atn_cpdlc_uM29LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3485 { 30, &hf_atn_cpdlc_uM30LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
3486 { 31, &hf_atn_cpdlc_uM31LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
3487 { 32, &hf_atn_cpdlc_uM32LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
3488 { 33, &hf_atn_cpdlc_uM33NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3489 { 34, &hf_atn_cpdlc_uM34Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3490 { 35, &hf_atn_cpdlc_uM35Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3491 { 36, &hf_atn_cpdlc_uM36Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3492 { 37, &hf_atn_cpdlc_uM37Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3493 { 38, &hf_atn_cpdlc_uM38Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3494 { 39, &hf_atn_cpdlc_uM39Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3495 { 40, &hf_atn_cpdlc_uM40NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3496 { 41, &hf_atn_cpdlc_uM41NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3497 { 42, &hf_atn_cpdlc_uM42PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3498 { 43, &hf_atn_cpdlc_uM43PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3499 { 44, &hf_atn_cpdlc_uM44PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3500 { 45, &hf_atn_cpdlc_uM45PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3501 { 46, &hf_atn_cpdlc_uM46PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3502 { 47, &hf_atn_cpdlc_uM47PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3503 { 48, &hf_atn_cpdlc_uM48PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3504 { 49, &hf_atn_cpdlc_uM49PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3505 { 50, &hf_atn_cpdlc_uM50PositionLevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevelLevel
},
3506 { 51, &hf_atn_cpdlc_uM51PositionTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTime
},
3507 { 52, &hf_atn_cpdlc_uM52PositionTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTime
},
3508 { 53, &hf_atn_cpdlc_uM53PositionTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTime
},
3509 { 54, &hf_atn_cpdlc_uM54PositionTimeTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTimeTime
},
3510 { 55, &hf_atn_cpdlc_uM55PositionSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeed
},
3511 { 56, &hf_atn_cpdlc_uM56PositionSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeed
},
3512 { 57, &hf_atn_cpdlc_uM57PositionSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeed
},
3513 { 58, &hf_atn_cpdlc_uM58PositionTimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTimeLevel
},
3514 { 59, &hf_atn_cpdlc_uM59PositionTimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTimeLevel
},
3515 { 60, &hf_atn_cpdlc_uM60PositionTimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTimeLevel
},
3516 { 61, &hf_atn_cpdlc_uM61PositionLevelSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevelSpeed
},
3517 { 62, &hf_atn_cpdlc_uM62TimePositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimePositionLevel
},
3518 { 63, &hf_atn_cpdlc_uM63TimePositionLevelSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimePositionLevelSpeed
},
3519 { 64, &hf_atn_cpdlc_uM64DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
3520 { 65, &hf_atn_cpdlc_uM65PositionDistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionDistanceSpecifiedDirection
},
3521 { 66, &hf_atn_cpdlc_uM66TimeDistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeDistanceSpecifiedDirection
},
3522 { 67, &hf_atn_cpdlc_uM67NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3523 { 68, &hf_atn_cpdlc_uM68Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3524 { 69, &hf_atn_cpdlc_uM69Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3525 { 70, &hf_atn_cpdlc_uM70Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3526 { 71, &hf_atn_cpdlc_uM71Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3527 { 72, &hf_atn_cpdlc_uM72NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3528 { 73, &hf_atn_cpdlc_uM73DepartureClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DepartureClearance
},
3529 { 74, &hf_atn_cpdlc_uM74Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3530 { 75, &hf_atn_cpdlc_uM75Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3531 { 76, &hf_atn_cpdlc_uM76TimePosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimePosition
},
3532 { 77, &hf_atn_cpdlc_uM77PositionPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionPosition
},
3533 { 78, &hf_atn_cpdlc_uM78LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3534 { 79, &hf_atn_cpdlc_uM79PositionRouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionRouteClearanceIndex
},
3535 { 80, &hf_atn_cpdlc_uM80RouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RouteClearanceIndex
},
3536 { 81, &hf_atn_cpdlc_uM81ProcedureName
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProcedureName
},
3537 { 82, &hf_atn_cpdlc_uM82DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
3538 { 83, &hf_atn_cpdlc_uM83PositionRouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionRouteClearanceIndex
},
3539 { 84, &hf_atn_cpdlc_uM84PositionProcedureName
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionProcedureName
},
3540 { 85, &hf_atn_cpdlc_uM85RouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RouteClearanceIndex
},
3541 { 86, &hf_atn_cpdlc_uM86PositionRouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionRouteClearanceIndex
},
3542 { 87, &hf_atn_cpdlc_uM87Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3543 { 88, &hf_atn_cpdlc_uM88PositionPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionPosition
},
3544 { 89, &hf_atn_cpdlc_uM89TimePosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimePosition
},
3545 { 90, &hf_atn_cpdlc_uM90LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3546 { 91, &hf_atn_cpdlc_uM91HoldClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_HoldClearance
},
3547 { 92, &hf_atn_cpdlc_uM92PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3548 { 93, &hf_atn_cpdlc_uM93Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3549 { 94, &hf_atn_cpdlc_uM94DirectionDegrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DirectionDegrees
},
3550 { 95, &hf_atn_cpdlc_uM95DirectionDegrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DirectionDegrees
},
3551 { 96, &hf_atn_cpdlc_uM96NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3552 { 97, &hf_atn_cpdlc_uM97PositionDegrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionDegrees
},
3553 { 98, &hf_atn_cpdlc_uM98DirectionDegrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DirectionDegrees
},
3554 { 99, &hf_atn_cpdlc_uM99ProcedureName
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProcedureName
},
3555 { 100, &hf_atn_cpdlc_uM100TimeSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeSpeed
},
3556 { 101, &hf_atn_cpdlc_uM101PositionSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeed
},
3557 { 102, &hf_atn_cpdlc_uM102LevelSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelSpeed
},
3558 { 103, &hf_atn_cpdlc_uM103TimeSpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeSpeedSpeed
},
3559 { 104, &hf_atn_cpdlc_uM104PositionSpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeedSpeed
},
3560 { 105, &hf_atn_cpdlc_uM105LevelSpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelSpeedSpeed
},
3561 { 106, &hf_atn_cpdlc_uM106Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3562 { 107, &hf_atn_cpdlc_uM107NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3563 { 108, &hf_atn_cpdlc_uM108Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3564 { 109, &hf_atn_cpdlc_uM109Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3565 { 110, &hf_atn_cpdlc_uM110SpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedSpeed
},
3566 { 111, &hf_atn_cpdlc_uM111Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3567 { 112, &hf_atn_cpdlc_uM112Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3568 { 113, &hf_atn_cpdlc_uM113Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3569 { 114, &hf_atn_cpdlc_uM114Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3570 { 115, &hf_atn_cpdlc_uM115Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3571 { 116, &hf_atn_cpdlc_uM116NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3572 { 117, &hf_atn_cpdlc_uM117UnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_UnitNameFrequency
},
3573 { 118, &hf_atn_cpdlc_uM118PositionUnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionUnitNameFrequency
},
3574 { 119, &hf_atn_cpdlc_uM119TimeUnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeUnitNameFrequency
},
3575 { 120, &hf_atn_cpdlc_uM120UnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_UnitNameFrequency
},
3576 { 121, &hf_atn_cpdlc_uM121PositionUnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionUnitNameFrequency
},
3577 { 122, &hf_atn_cpdlc_uM122TimeUnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeUnitNameFrequency
},
3578 { 123, &hf_atn_cpdlc_uM123Code
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Code
},
3579 { 124, &hf_atn_cpdlc_uM124NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3580 { 125, &hf_atn_cpdlc_uM125NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3581 { 126, &hf_atn_cpdlc_uM126NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3582 { 127, &hf_atn_cpdlc_uM127NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3583 { 128, &hf_atn_cpdlc_uM128Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3584 { 129, &hf_atn_cpdlc_uM129Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3585 { 130, &hf_atn_cpdlc_uM130Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3586 { 131, &hf_atn_cpdlc_uM131NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3587 { 132, &hf_atn_cpdlc_uM132NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3588 { 133, &hf_atn_cpdlc_uM133NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3589 { 134, &hf_atn_cpdlc_uM134SpeedTypeSpeedTypeSpeedType
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedTypeSpeedTypeSpeedType
},
3590 { 135, &hf_atn_cpdlc_uM135NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3591 { 136, &hf_atn_cpdlc_uM136NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3592 { 137, &hf_atn_cpdlc_uM137NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3593 { 138, &hf_atn_cpdlc_uM138NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3594 { 139, &hf_atn_cpdlc_uM139NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3595 { 140, &hf_atn_cpdlc_uM140NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3596 { 141, &hf_atn_cpdlc_uM141NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3597 { 142, &hf_atn_cpdlc_uM142NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3598 { 143, &hf_atn_cpdlc_uM143NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3599 { 144, &hf_atn_cpdlc_uM144NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3600 { 145, &hf_atn_cpdlc_uM145NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3601 { 146, &hf_atn_cpdlc_uM146NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3602 { 147, &hf_atn_cpdlc_uM147NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3603 { 148, &hf_atn_cpdlc_uM148Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3604 { 149, &hf_atn_cpdlc_uM149LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3605 { 150, &hf_atn_cpdlc_uM150LevelTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelTime
},
3606 { 151, &hf_atn_cpdlc_uM151Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3607 { 152, &hf_atn_cpdlc_uM152DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
3608 { 153, &hf_atn_cpdlc_uM153Altimeter
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Altimeter
},
3609 { 154, &hf_atn_cpdlc_uM154NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3610 { 155, &hf_atn_cpdlc_uM155Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3611 { 156, &hf_atn_cpdlc_uM156NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3612 { 157, &hf_atn_cpdlc_uM157Frequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Frequency
},
3613 { 158, &hf_atn_cpdlc_uM158AtisCode
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATISCode
},
3614 { 159, &hf_atn_cpdlc_uM159ErrorInformation
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ErrorInformation
},
3615 { 160, &hf_atn_cpdlc_uM160Facility
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Facility
},
3616 { 161, &hf_atn_cpdlc_uM161NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3617 { 162, &hf_atn_cpdlc_uM162NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3618 { 163, &hf_atn_cpdlc_uM163FacilityDesignation
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FacilityDesignation
},
3619 { 164, &hf_atn_cpdlc_uM164NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3620 { 165, &hf_atn_cpdlc_uM165NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3621 { 166, &hf_atn_cpdlc_uM166TrafficType
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TrafficType
},
3622 { 167, &hf_atn_cpdlc_uM167NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3623 { 168, &hf_atn_cpdlc_uM168NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3624 { 169, &hf_atn_cpdlc_uM169FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3625 { 170, &hf_atn_cpdlc_uM170FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3626 { 171, &hf_atn_cpdlc_uM171VerticalRate
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_VerticalRate
},
3627 { 172, &hf_atn_cpdlc_uM172VerticalRate
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_VerticalRate
},
3628 { 173, &hf_atn_cpdlc_uM173VerticalRate
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_VerticalRate
},
3629 { 174, &hf_atn_cpdlc_uM174VerticalRate
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_VerticalRate
},
3630 { 175, &hf_atn_cpdlc_uM175Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3631 { 176, &hf_atn_cpdlc_uM176NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3632 { 177, &hf_atn_cpdlc_uM177NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3633 { 178, &hf_atn_cpdlc_uM178NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3634 { 179, &hf_atn_cpdlc_uM179NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3635 { 180, &hf_atn_cpdlc_uM180LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
3636 { 181, &hf_atn_cpdlc_uM181ToFromPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ToFromPosition
},
3637 { 182, &hf_atn_cpdlc_uM182NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3638 { 183, &hf_atn_cpdlc_uM183FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3639 { 184, &hf_atn_cpdlc_uM184TimeToFromPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeToFromPosition
},
3640 { 185, &hf_atn_cpdlc_uM185PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3641 { 186, &hf_atn_cpdlc_uM186PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3642 { 187, &hf_atn_cpdlc_uM187FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3643 { 188, &hf_atn_cpdlc_uM188PositionSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeed
},
3644 { 189, &hf_atn_cpdlc_uM189Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3645 { 190, &hf_atn_cpdlc_uM190Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
3646 { 191, &hf_atn_cpdlc_uM191NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3647 { 192, &hf_atn_cpdlc_uM192LevelTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelTime
},
3648 { 193, &hf_atn_cpdlc_uM193NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3649 { 194, &hf_atn_cpdlc_uM194FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3650 { 195, &hf_atn_cpdlc_uM195FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3651 { 196, &hf_atn_cpdlc_uM196FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3652 { 197, &hf_atn_cpdlc_uM197FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3653 { 198, &hf_atn_cpdlc_uM198FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3654 { 199, &hf_atn_cpdlc_uM199FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3655 { 200, &hf_atn_cpdlc_uM200NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3656 { 201, &hf_atn_cpdlc_uM201NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3657 { 202, &hf_atn_cpdlc_uM202NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3658 { 203, &hf_atn_cpdlc_uM203FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3659 { 204, &hf_atn_cpdlc_uM204FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3660 { 205, &hf_atn_cpdlc_uM205FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3661 { 206, &hf_atn_cpdlc_uM206FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3662 { 207, &hf_atn_cpdlc_uM207FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3663 { 208, &hf_atn_cpdlc_uM208FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3664 { 209, &hf_atn_cpdlc_uM209LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3665 { 210, &hf_atn_cpdlc_uM210Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3666 { 211, &hf_atn_cpdlc_uM211NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3667 { 212, &hf_atn_cpdlc_uM212FacilityDesignationATISCode
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FacilityDesignationATISCode
},
3668 { 213, &hf_atn_cpdlc_uM213FacilityDesignationAltimeter
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FacilityDesignationAltimeter
},
3669 { 214, &hf_atn_cpdlc_uM214RunwayRVR
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RunwayRVR
},
3670 { 215, &hf_atn_cpdlc_uM215DirectionDegrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DirectionDegrees
},
3671 { 216, &hf_atn_cpdlc_uM216NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3672 { 217, &hf_atn_cpdlc_uM217NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3673 { 218, &hf_atn_cpdlc_uM218NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3674 { 219, &hf_atn_cpdlc_uM219Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3675 { 220, &hf_atn_cpdlc_uM220Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3676 { 221, &hf_atn_cpdlc_uM221Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
3677 { 222, &hf_atn_cpdlc_uM222NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3678 { 223, &hf_atn_cpdlc_uM223NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3679 { 224, &hf_atn_cpdlc_uM224NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3680 { 225, &hf_atn_cpdlc_uM225NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3681 { 226, &hf_atn_cpdlc_uM226Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3682 { 227, &hf_atn_cpdlc_uM227NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3683 { 228, &hf_atn_cpdlc_uM228Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3684 { 229, &hf_atn_cpdlc_uM229NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3685 { 230, &hf_atn_cpdlc_uM230NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3686 { 231, &hf_atn_cpdlc_uM231NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3687 { 232, &hf_atn_cpdlc_uM232NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3688 { 233, &hf_atn_cpdlc_uM233NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3689 { 234, &hf_atn_cpdlc_uM234NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3690 { 235, &hf_atn_cpdlc_uM235NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3691 { 236, &hf_atn_cpdlc_uM236NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3692 { 237, &hf_atn_cpdlc_uM237NULL
, ASN1_NOT_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3693 { 0, NULL
, 0, NULL
}
3697 dissect_atn_cpdlc_ATCUplinkMsgElementId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3698 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3699 ett_atn_cpdlc_ATCUplinkMsgElementId
, ATCUplinkMsgElementId_choice
,
3706 static const per_sequence_t SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId_sequence_of
[1] = {
3707 { &hf_atn_cpdlc_atcuplinkmessagedata_elementids_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCUplinkMsgElementId
},
3711 dissect_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3712 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
3713 ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId
, SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId_sequence_of
,
3720 static const per_sequence_t SEQUENCE_SIZE_1_128_OF_RouteInformation_sequence_of
[1] = {
3721 { &hf_atn_cpdlc_routeInformations_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RouteInformation
},
3725 dissect_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3726 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
3727 ett_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation
, SEQUENCE_SIZE_1_128_OF_RouteInformation_sequence_of
,
3734 static const value_string atn_cpdlc_ATWDistanceTolerance_vals
[] = {
3742 dissect_atn_cpdlc_ATWDistanceTolerance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3743 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
3744 2, NULL
, false, 0, NULL
);
3750 static const per_sequence_t ATWDistance_sequence
[] = {
3751 { &hf_atn_cpdlc_atwDistanceTolerance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATWDistanceTolerance
},
3752 { &hf_atn_cpdlc_distance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Distance
},
3753 { NULL
, 0, 0, NULL
}
3757 dissect_atn_cpdlc_ATWDistance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3758 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3759 ett_atn_cpdlc_ATWDistance
, ATWDistance_sequence
);
3765 static const value_string atn_cpdlc_ATWLevelTolerance_vals
[] = {
3774 dissect_atn_cpdlc_ATWLevelTolerance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3775 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
3776 3, NULL
, false, 0, NULL
);
3782 static const per_sequence_t ATWLevel_sequence
[] = {
3783 { &hf_atn_cpdlc_atw
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATWLevelTolerance
},
3784 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
3785 { NULL
, 0, 0, NULL
}
3789 dissect_atn_cpdlc_ATWLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3790 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3791 ett_atn_cpdlc_ATWLevel
, ATWLevel_sequence
);
3797 static const per_sequence_t ATWLevelSequence_sequence_of
[1] = {
3798 { &hf_atn_cpdlc_ATWLevelSequence_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATWLevel
},
3802 dissect_atn_cpdlc_ATWLevelSequence(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3803 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
3804 ett_atn_cpdlc_ATWLevelSequence
, ATWLevelSequence_sequence_of
,
3811 static const per_sequence_t ATWAlongTrackWaypoint_sequence
[] = {
3812 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
3813 { &hf_atn_cpdlc_aTWDistance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATWDistance
},
3814 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Speed
},
3815 { &hf_atn_cpdlc_aTWLevels
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ATWLevelSequence
},
3816 { NULL
, 0, 0, NULL
}
3820 dissect_atn_cpdlc_ATWAlongTrackWaypoint(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3821 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3822 ett_atn_cpdlc_ATWAlongTrackWaypoint
, ATWAlongTrackWaypoint_sequence
);
3828 static const per_sequence_t SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint_sequence_of
[1] = {
3829 { &hf_atn_cpdlc_aTWAlongTrackWaypoints_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATWAlongTrackWaypoint
},
3833 dissect_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3834 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
3835 ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint
, SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint_sequence_of
,
3842 static const per_sequence_t LatitudeReportingPoints_sequence
[] = {
3843 { &hf_atn_cpdlc_latitudeDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeDirection
},
3844 { &hf_atn_cpdlc_latitudeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeDegrees
},
3845 { NULL
, 0, 0, NULL
}
3849 dissect_atn_cpdlc_LatitudeReportingPoints(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3850 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3851 ett_atn_cpdlc_LatitudeReportingPoints
, LatitudeReportingPoints_sequence
);
3857 static const per_sequence_t LongitudeReportingPoints_sequence
[] = {
3858 { &hf_atn_cpdlc_longitudeDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeDirection
},
3859 { &hf_atn_cpdlc_longitudeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeDegrees
},
3860 { NULL
, 0, 0, NULL
}
3864 dissect_atn_cpdlc_LongitudeReportingPoints(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3865 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3866 ett_atn_cpdlc_LongitudeReportingPoints
, LongitudeReportingPoints_sequence
);
3872 static const value_string atn_cpdlc_LatLonReportingPoints_vals
[] = {
3873 { 0, "latitudeReportingPoints" },
3874 { 1, "longitudeReportingPoints" },
3878 static const per_choice_t LatLonReportingPoints_choice
[] = {
3879 { 0, &hf_atn_cpdlc_latitudeReportingPoints
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeReportingPoints
},
3880 { 1, &hf_atn_cpdlc_longitudeReportingPoints
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LongitudeReportingPoints
},
3881 { 0, NULL
, 0, NULL
}
3885 dissect_atn_cpdlc_LatLonReportingPoints(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3886 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3887 ett_atn_cpdlc_LatLonReportingPoints
, LatLonReportingPoints_choice
,
3896 dissect_atn_cpdlc_DegreeIncrement(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3897 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
3898 1U, 20U, NULL
, false);
3904 static const per_sequence_t ReportingPoints_sequence
[] = {
3905 { &hf_atn_cpdlc_latLonReportingPoints
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatLonReportingPoints
},
3906 { &hf_atn_cpdlc_degreeIncrement
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_DegreeIncrement
},
3907 { NULL
, 0, 0, NULL
}
3911 dissect_atn_cpdlc_ReportingPoints(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3912 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3913 ett_atn_cpdlc_ReportingPoints
, ReportingPoints_sequence
);
3919 static const value_string atn_cpdlc_InterceptCourseFromSelection_vals
[] = {
3920 { 0, "publishedIdentifier" },
3921 { 1, "latitudeLongitude" },
3922 { 2, "placeBearingPlaceBearing" },
3923 { 3, "placeBearingDistance" },
3927 static const per_choice_t InterceptCourseFromSelection_choice
[] = {
3928 { 0, &hf_atn_cpdlc_publishedIdentifier
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PublishedIdentifier
},
3929 { 1, &hf_atn_cpdlc_latitudeLongitude
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeLongitude
},
3930 { 2, &hf_atn_cpdlc_placeBearingPlaceBearing
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PlaceBearingPlaceBearing
},
3931 { 3, &hf_atn_cpdlc_placeBearingDistance
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PlaceBearingDistance
},
3932 { 0, NULL
, 0, NULL
}
3936 dissect_atn_cpdlc_InterceptCourseFromSelection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3937 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3938 ett_atn_cpdlc_InterceptCourseFromSelection
, InterceptCourseFromSelection_choice
,
3945 static const per_sequence_t InterceptCourseFrom_sequence
[] = {
3946 { &hf_atn_cpdlc_fromSelection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_InterceptCourseFromSelection
},
3947 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
3948 { NULL
, 0, 0, NULL
}
3952 dissect_atn_cpdlc_InterceptCourseFrom(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3953 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3954 ett_atn_cpdlc_InterceptCourseFrom
, InterceptCourseFrom_sequence
);
3960 static const per_sequence_t SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom_sequence_of
[1] = {
3961 { &hf_atn_cpdlc_interceptCourseFroms_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_InterceptCourseFrom
},
3965 dissect_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3966 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
3967 ett_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom
, SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom_sequence_of
,
3974 static const per_sequence_t Holdatwaypoint_sequence
[] = {
3975 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
3976 { &hf_atn_cpdlc_holdatwaypointspeedlow
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Speed
},
3977 { &hf_atn_cpdlc_aTWlevel
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ATWLevel
},
3978 { &hf_atn_cpdlc_holdatwaypointspeedhigh
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Speed
},
3979 { &hf_atn_cpdlc_direction
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Direction
},
3980 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
3981 { &hf_atn_cpdlc_eFCtime
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
3982 { &hf_atn_cpdlc_legtype
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_LegType
},
3983 { NULL
, 0, 0, NULL
}
3987 dissect_atn_cpdlc_Holdatwaypoint(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3988 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3989 ett_atn_cpdlc_Holdatwaypoint
, Holdatwaypoint_sequence
);
3995 static const per_sequence_t SEQUENCE_SIZE_1_8_OF_Holdatwaypoint_sequence_of
[1] = {
3996 { &hf_atn_cpdlc_holdAtWaypoints_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Holdatwaypoint
},
4000 dissect_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4001 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
4002 ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint
, SEQUENCE_SIZE_1_8_OF_Holdatwaypoint_sequence_of
,
4009 static const per_sequence_t WaypointSpeedLevel_sequence
[] = {
4010 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
4011 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Speed
},
4012 { &hf_atn_cpdlc_aTWLevels
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ATWLevelSequence
},
4013 { NULL
, 0, 0, NULL
}
4017 dissect_atn_cpdlc_WaypointSpeedLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4018 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4019 ett_atn_cpdlc_WaypointSpeedLevel
, WaypointSpeedLevel_sequence
);
4025 static const per_sequence_t SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel_sequence_of
[1] = {
4026 { &hf_atn_cpdlc_waypointSpeedLevels_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_WaypointSpeedLevel
},
4030 dissect_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4031 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
4032 ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel
, SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel_sequence_of
,
4039 static const per_sequence_t RTATime_sequence
[] = {
4040 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
4041 { &hf_atn_cpdlc_timeTolerance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeTolerance
},
4042 { NULL
, 0, 0, NULL
}
4046 dissect_atn_cpdlc_RTATime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4047 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4048 ett_atn_cpdlc_RTATime
, RTATime_sequence
);
4056 dissect_atn_cpdlc_RTATolerance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4057 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4058 1U, 150U, NULL
, false);
4064 static const per_sequence_t RTARequiredTimeArrival_sequence
[] = {
4065 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
4066 { &hf_atn_cpdlc_rTATime
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RTATime
},
4067 { &hf_atn_cpdlc_rTATolerance
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_RTATolerance
},
4068 { NULL
, 0, 0, NULL
}
4072 dissect_atn_cpdlc_RTARequiredTimeArrival(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4073 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4074 ett_atn_cpdlc_RTARequiredTimeArrival
, RTARequiredTimeArrival_sequence
);
4080 static const per_sequence_t SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival_sequence_of
[1] = {
4081 { &hf_atn_cpdlc_rTARequiredTimeArrivals_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RTARequiredTimeArrival
},
4085 dissect_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4086 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
4087 ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival
, SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival_sequence_of
,
4094 static const per_sequence_t RouteInformationAdditional_sequence
[] = {
4095 { &hf_atn_cpdlc_aTWAlongTrackWaypoints
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint
},
4096 { &hf_atn_cpdlc_reportingpoints
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ReportingPoints
},
4097 { &hf_atn_cpdlc_interceptCourseFroms
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom
},
4098 { &hf_atn_cpdlc_holdAtWaypoints
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint
},
4099 { &hf_atn_cpdlc_waypointSpeedLevels
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel
},
4100 { &hf_atn_cpdlc_rTARequiredTimeArrivals
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival
},
4101 { NULL
, 0, 0, NULL
}
4105 dissect_atn_cpdlc_RouteInformationAdditional(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4106 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4107 ett_atn_cpdlc_RouteInformationAdditional
, RouteInformationAdditional_sequence
);
4113 static const per_sequence_t RouteClearance_sequence
[] = {
4114 { &hf_atn_cpdlc_airportDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Airport
},
4115 { &hf_atn_cpdlc_airportDestination
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Airport
},
4116 { &hf_atn_cpdlc_runwayDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Runway
},
4117 { &hf_atn_cpdlc_procedureDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ProcedureName
},
4118 { &hf_atn_cpdlc_runwayArrival
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Runway
},
4119 { &hf_atn_cpdlc_procedureApproach
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ProcedureName
},
4120 { &hf_atn_cpdlc_procedureArrival
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ProcedureName
},
4121 { &hf_atn_cpdlc_routeInformations
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation
},
4122 { &hf_atn_cpdlc_routeInformationAdditional
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_RouteInformationAdditional
},
4123 { NULL
, 0, 0, NULL
}
4127 dissect_atn_cpdlc_RouteClearance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4128 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4129 ett_atn_cpdlc_RouteClearance
, RouteClearance_sequence
);
4135 static const per_sequence_t SEQUENCE_SIZE_1_2_OF_RouteClearance_sequence_of
[1] = {
4136 { &hf_atn_cpdlc_routeClearanceData_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RouteClearance
},
4140 dissect_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4141 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
4142 ett_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance
, SEQUENCE_SIZE_1_2_OF_RouteClearance_sequence_of
,
4149 static const per_sequence_t T_atcuplinkmessagedata_constraineddata_sequence
[] = {
4150 { &hf_atn_cpdlc_routeClearanceData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance
},
4151 { NULL
, 0, 0, NULL
}
4155 dissect_atn_cpdlc_T_atcuplinkmessagedata_constraineddata(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4156 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4157 ett_atn_cpdlc_T_atcuplinkmessagedata_constraineddata
, T_atcuplinkmessagedata_constraineddata_sequence
);
4163 static const per_sequence_t ATCUplinkMessageData_sequence
[] = {
4164 { &hf_atn_cpdlc_atcuplinkmessagedata_elementids
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId
},
4165 { &hf_atn_cpdlc_atcuplinkmessagedata_constraineddata
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_T_atcuplinkmessagedata_constraineddata
},
4166 { NULL
, 0, 0, NULL
}
4170 dissect_atn_cpdlc_ATCUplinkMessageData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4171 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4172 ett_atn_cpdlc_ATCUplinkMessageData
, ATCUplinkMessageData_sequence
);
4178 static const per_sequence_t ATCUplinkMessage_sequence
[] = {
4179 { &hf_atn_cpdlc_header
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCMessageHeader
},
4180 { &hf_atn_cpdlc_atcuplinkmessage_messagedata
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCUplinkMessageData
},
4181 { NULL
, 0, 0, NULL
}
4185 dissect_atn_cpdlc_ATCUplinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4186 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4187 ett_atn_cpdlc_ATCUplinkMessage
, ATCUplinkMessage_sequence
);
4193 static const value_string atn_cpdlc_UplinkMessage_vals
[] = {
4195 { 1, "aTCUplinkMessage" },
4199 static const per_choice_t UplinkMessage_choice
[] = {
4200 { 0, &hf_atn_cpdlc_noMessage
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_NULL
},
4201 { 1, &hf_atn_cpdlc_aTCUplinkMessage
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_ATCUplinkMessage
},
4202 { 0, NULL
, 0, NULL
}
4206 dissect_atn_cpdlc_UplinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4207 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4208 ett_atn_cpdlc_UplinkMessage
, UplinkMessage_choice
,
4217 dissect_atn_cpdlc_AircraftAddress(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4218 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
4219 24, 24, false, NULL
, 0, NULL
, NULL
);
4225 static const per_sequence_t ForwardHeader_sequence
[] = {
4226 { &hf_atn_cpdlc_dateTime
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DateTimeGroup
},
4227 { &hf_atn_cpdlc_aircraftID
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_AircraftFlightIdentification
},
4228 { &hf_atn_cpdlc_aircraftAddress
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_AircraftAddress
},
4229 { NULL
, 0, 0, NULL
}
4233 dissect_atn_cpdlc_ForwardHeader(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4234 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4235 ett_atn_cpdlc_ForwardHeader
, ForwardHeader_sequence
);
4243 dissect_atn_cpdlc_BIT_STRING(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4244 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
4245 NO_BOUND
, NO_BOUND
, false, NULL
, 0, NULL
, NULL
);
4251 static const value_string atn_cpdlc_ForwardMessage_vals
[] = {
4252 { 0, "upElementIDs" },
4253 { 1, "downElementIDs" },
4257 static const per_choice_t ForwardMessage_choice
[] = {
4258 { 0, &hf_atn_cpdlc_upElementIDs
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_BIT_STRING
},
4259 { 1, &hf_atn_cpdlc_downElementIDs
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_BIT_STRING
},
4260 { 0, NULL
, 0, NULL
}
4264 dissect_atn_cpdlc_ForwardMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4265 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4266 ett_atn_cpdlc_ForwardMessage
, ForwardMessage_choice
,
4273 static const per_sequence_t ATCForwardMessage_sequence
[] = {
4274 { &hf_atn_cpdlc_forwardHeader
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ForwardHeader
},
4275 { &hf_atn_cpdlc_forwardMessage
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ForwardMessage
},
4276 { NULL
, 0, 0, NULL
}
4280 dissect_atn_cpdlc_ATCForwardMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4281 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4282 ett_atn_cpdlc_ATCForwardMessage
, ATCForwardMessage_sequence
);
4288 static const value_string atn_cpdlc_ATCForwardResponse_vals
[] = {
4290 { 1, "service-not-supported" },
4291 { 2, "version-not-equal" },
4297 dissect_atn_cpdlc_ATCForwardResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4298 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4299 3, NULL
, true, 0, NULL
);
4305 static const value_string atn_cpdlc_GroundPDUs_vals
[] = {
4307 { 1, "abortProvider" },
4311 { 5, "forwardresponse" },
4315 static const per_choice_t GroundPDUs_choice
[] = {
4316 { 0, &hf_atn_cpdlc_abortUser
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_CPDLCUserAbortReason
},
4317 { 1, &hf_atn_cpdlc_abortProvider
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_CPDLCProviderAbortReason
},
4318 { 2, &hf_atn_cpdlc_startup
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_UplinkMessage
},
4319 { 3, &hf_atn_cpdlc_groundpdus_send
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCUplinkMessage
},
4320 { 4, &hf_atn_cpdlc_forward
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCForwardMessage
},
4321 { 5, &hf_atn_cpdlc_forwardresponse
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCForwardResponse
},
4322 { 0, NULL
, 0, NULL
}
4326 dissect_atn_cpdlc_GroundPDUs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4327 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4328 ett_atn_cpdlc_GroundPDUs
, GroundPDUs_choice
,
4335 static const value_string atn_cpdlc_Mode_vals
[] = {
4343 dissect_atn_cpdlc_Mode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4344 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4345 2, NULL
, false, 0, NULL
);
4351 static const value_string atn_cpdlc_ClearanceType_vals
[] = {
4352 { 0, "noneSpecified" },
4363 { 11, "downstream" },
4369 dissect_atn_cpdlc_ClearanceType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4370 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4371 12, NULL
, true, 0, NULL
);
4379 dissect_atn_cpdlc_RemainingFuel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4380 offset
= dissect_atn_cpdlc_Time(tvb
, offset
, actx
, tree
, hf_index
);
4388 dissect_atn_cpdlc_Temperature(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4389 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4390 -100, 100U, NULL
, false);
4398 dissect_atn_cpdlc_WindDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4399 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4400 1U, 360U, NULL
, false);
4408 dissect_atn_cpdlc_WindSpeedEnglish(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4409 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4410 0U, 255U, NULL
, false);
4418 dissect_atn_cpdlc_WindSpeedMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4419 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4420 0U, 511U, NULL
, false);
4426 static const value_string atn_cpdlc_WindSpeed_vals
[] = {
4427 { 0, "windSpeedEnglish" },
4428 { 1, "windSpeedMetric" },
4432 static const per_choice_t WindSpeed_choice
[] = {
4433 { 0, &hf_atn_cpdlc_windSpeedEnglish
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_WindSpeedEnglish
},
4434 { 1, &hf_atn_cpdlc_windSpeedMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_WindSpeedMetric
},
4435 { 0, NULL
, 0, NULL
}
4439 dissect_atn_cpdlc_WindSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4440 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4441 ett_atn_cpdlc_WindSpeed
, WindSpeed_choice
,
4448 static const per_sequence_t Winds_sequence
[] = {
4449 { &hf_atn_cpdlc_winds_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_WindDirection
},
4450 { &hf_atn_cpdlc_winds_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_WindSpeed
},
4451 { NULL
, 0, 0, NULL
}
4455 dissect_atn_cpdlc_Winds(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4456 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4457 ett_atn_cpdlc_Winds
, Winds_sequence
);
4463 static const value_string atn_cpdlc_Turbulence_vals
[] = {
4472 dissect_atn_cpdlc_Turbulence(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4473 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4474 3, NULL
, false, 0, NULL
);
4480 static const value_string atn_cpdlc_Icing_vals
[] = {
4490 dissect_atn_cpdlc_Icing(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4491 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4492 4, NULL
, false, 0, NULL
);
4498 static const value_string atn_cpdlc_VerticalDirection_vals
[] = {
4506 dissect_atn_cpdlc_VerticalDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4507 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4508 2, NULL
, false, 0, NULL
);
4514 static const per_sequence_t VerticalChange_sequence
[] = {
4515 { &hf_atn_cpdlc_vertical_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_VerticalDirection
},
4516 { &hf_atn_cpdlc_rate
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_VerticalRate
},
4517 { NULL
, 0, 0, NULL
}
4521 dissect_atn_cpdlc_VerticalChange(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4522 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4523 ett_atn_cpdlc_VerticalChange
, VerticalChange_sequence
);
4531 dissect_atn_cpdlc_Humidity(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4532 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4533 0U, 100U, NULL
, false);
4539 static const per_sequence_t PositionReport_sequence
[] = {
4540 { &hf_atn_cpdlc_positioncurrent
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
4541 { &hf_atn_cpdlc_timeatpositioncurrent
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
4542 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
4543 { &hf_atn_cpdlc_fixnext
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Position
},
4544 { &hf_atn_cpdlc_timeetaatfixnext
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
4545 { &hf_atn_cpdlc_fixnextplusone
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Position
},
4546 { &hf_atn_cpdlc_timeetaatdestination
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
4547 { &hf_atn_cpdlc_remainingFuel
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_RemainingFuel
},
4548 { &hf_atn_cpdlc_temperature
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Temperature
},
4549 { &hf_atn_cpdlc_winds
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Winds
},
4550 { &hf_atn_cpdlc_turbulence
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Turbulence
},
4551 { &hf_atn_cpdlc_icing
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Icing
},
4552 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Speed
},
4553 { &hf_atn_cpdlc_speedground
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SpeedGround
},
4554 { &hf_atn_cpdlc_verticalChange
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_VerticalChange
},
4555 { &hf_atn_cpdlc_trackAngle
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
4556 { &hf_atn_cpdlc_heading
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
4557 { &hf_atn_cpdlc_distance
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Distance
},
4558 { &hf_atn_cpdlc_humidity
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Humidity
},
4559 { &hf_atn_cpdlc_reportedWaypointPosition
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Position
},
4560 { &hf_atn_cpdlc_reportedWaypointTime
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
4561 { &hf_atn_cpdlc_reportedWaypointLevel
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Level
},
4562 { NULL
, 0, 0, NULL
}
4566 dissect_atn_cpdlc_PositionReport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4567 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4568 ett_atn_cpdlc_PositionReport
, PositionReport_sequence
);
4576 dissect_atn_cpdlc_PersonsOnBoard(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4577 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4578 1U, 1024U, NULL
, false);
4584 static const per_sequence_t RemainingFuelPersonsOnBoard_sequence
[] = {
4585 { &hf_atn_cpdlc_remainingFuel
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RemainingFuel
},
4586 { &hf_atn_cpdlc_personsOnBoard
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PersonsOnBoard
},
4587 { NULL
, 0, 0, NULL
}
4591 dissect_atn_cpdlc_RemainingFuelPersonsOnBoard(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4592 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4593 ett_atn_cpdlc_RemainingFuelPersonsOnBoard
, RemainingFuelPersonsOnBoard_sequence
);
4601 dissect_atn_cpdlc_VersionNumber(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4602 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4603 0U, 15U, NULL
, false);
4609 static const per_sequence_t TimeDistanceToFromPosition_sequence
[] = {
4610 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
4611 { &hf_atn_cpdlc_distance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Distance
},
4612 { &hf_atn_cpdlc_tofrom
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ToFrom
},
4613 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
4614 { NULL
, 0, 0, NULL
}
4618 dissect_atn_cpdlc_TimeDistanceToFromPosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4619 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4620 ett_atn_cpdlc_TimeDistanceToFromPosition
, TimeDistanceToFromPosition_sequence
);
4626 static const per_sequence_t SpeedTime_sequence
[] = {
4627 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
4628 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
4629 { NULL
, 0, 0, NULL
}
4633 dissect_atn_cpdlc_SpeedTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4634 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4635 ett_atn_cpdlc_SpeedTime
, SpeedTime_sequence
);
4641 static const per_sequence_t DistanceSpecifiedDirectionTime_sequence
[] = {
4642 { &hf_atn_cpdlc_distanceSpecifiedDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4643 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
4644 { NULL
, 0, 0, NULL
}
4648 dissect_atn_cpdlc_DistanceSpecifiedDirectionTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4649 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4650 ett_atn_cpdlc_DistanceSpecifiedDirectionTime
, DistanceSpecifiedDirectionTime_sequence
);
4656 static const per_sequence_t SpeedTypeSpeedTypeSpeedTypeSpeed_sequence
[] = {
4657 { &hf_atn_cpdlc_speedTypes
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedTypeSpeedTypeSpeedType
},
4658 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
4659 { NULL
, 0, 0, NULL
}
4663 dissect_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4664 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4665 ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed
, SpeedTypeSpeedTypeSpeedTypeSpeed_sequence
);
4671 static const value_string atn_cpdlc_ATCDownlinkMsgElementId_vals
[] = {
4679 { 7, "dM7LevelLevel" },
4682 { 10, "dM10Level" },
4683 { 11, "dM11PositionLevel" },
4684 { 12, "dM12PositionLevel" },
4685 { 13, "dM13TimeLevel" },
4686 { 14, "dM14TimeLevel" },
4687 { 15, "dM15DistanceSpecifiedDirection" },
4688 { 16, "dM16PositionDistanceSpecifiedDirection" },
4689 { 17, "dM17TimeDistanceSpecifiedDirection" },
4690 { 18, "dM18Speed" },
4691 { 19, "dM19SpeedSpeed" },
4693 { 21, "dM21Frequency" },
4694 { 22, "dM22Position" },
4695 { 23, "dM23ProcedureName" },
4696 { 24, "dM24RouteClearance" },
4697 { 25, "dM25ClearanceType" },
4698 { 26, "dM26PositionRouteClearance" },
4699 { 27, "dM27DistanceSpecifiedDirection" },
4700 { 28, "dM28Level" },
4701 { 29, "dM29Level" },
4702 { 30, "dM30Level" },
4703 { 31, "dM31Position" },
4704 { 32, "dM32Level" },
4705 { 33, "dM33Position" },
4706 { 34, "dM34Speed" },
4707 { 35, "dM35Degrees" },
4708 { 36, "dM36Degrees" },
4709 { 37, "dM37Level" },
4710 { 38, "dM38Level" },
4711 { 39, "dM39Speed" },
4712 { 40, "dM40RouteClearance" },
4714 { 42, "dM42Position" },
4716 { 44, "dM44Position" },
4717 { 45, "dM45Position" },
4720 { 48, "dM48PositionReport" },
4721 { 49, "dM49Speed" },
4722 { 50, "dM50SpeedSpeed" },
4726 { 54, "dM54Level" },
4729 { 57, "dM57RemainingFuelPersonsOnBoard" },
4731 { 59, "dM59PositionRouteClearance" },
4732 { 60, "dM60DistanceSpecifiedDirection" },
4733 { 61, "dM61Level" },
4734 { 62, "dM62ErrorInformation" },
4736 { 64, "dM64FacilityDesignation" },
4739 { 67, "dM67FreeText" },
4740 { 68, "dM68FreeText" },
4742 { 70, "dM70Degrees" },
4743 { 71, "dM71Degrees" },
4744 { 72, "dM72Level" },
4745 { 73, "dM73Versionnumber" },
4748 { 76, "dM76LevelLevel" },
4749 { 77, "dM77LevelLevel" },
4750 { 78, "dM78TimeDistanceToFromPosition" },
4751 { 79, "dM79AtisCode" },
4752 { 80, "dM80DistanceSpecifiedDirection" },
4753 { 81, "dM81LevelTime" },
4754 { 82, "dM82Level" },
4755 { 83, "dM83SpeedTime" },
4756 { 84, "dM84Speed" },
4757 { 85, "dM85DistanceSpecifiedDirectionTime" },
4758 { 86, "dM86DistanceSpecifiedDirection" },
4759 { 87, "dM87Level" },
4760 { 88, "dM88Level" },
4761 { 89, "dM89UnitnameFrequency" },
4762 { 90, "dM90FreeText" },
4763 { 91, "dM91FreeText" },
4764 { 92, "dM92FreeText" },
4765 { 93, "dM93FreeText" },
4766 { 94, "dM94FreeText" },
4767 { 95, "dM95FreeText" },
4768 { 96, "dM96FreeText" },
4769 { 97, "dM97FreeText" },
4770 { 98, "dM98FreeText" },
4772 { 100, "dM100NULL" },
4773 { 101, "dM101NULL" },
4774 { 102, "dM102NULL" },
4775 { 103, "dM103NULL" },
4776 { 104, "dM104PositionTime" },
4777 { 105, "dM105Airport" },
4778 { 106, "dM106Level" },
4779 { 107, "dM107NULL" },
4780 { 108, "dM108NULL" },
4781 { 109, "dM109Time" },
4782 { 110, "dM110Position" },
4783 { 111, "dM111TimePosition" },
4784 { 112, "dM112NULL" },
4785 { 113, "dM113SpeedTypeSpeedTypeSpeedTypeSpeed" },
4789 static const per_choice_t ATCDownlinkMsgElementId_choice
[] = {
4790 { 0, &hf_atn_cpdlc_dM0NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4791 { 1, &hf_atn_cpdlc_dM1NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4792 { 2, &hf_atn_cpdlc_dM2NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4793 { 3, &hf_atn_cpdlc_dM3NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4794 { 4, &hf_atn_cpdlc_dM4NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4795 { 5, &hf_atn_cpdlc_dM5NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4796 { 6, &hf_atn_cpdlc_dM6Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4797 { 7, &hf_atn_cpdlc_dM7LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
4798 { 8, &hf_atn_cpdlc_dM8Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4799 { 9, &hf_atn_cpdlc_dM9Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4800 { 10, &hf_atn_cpdlc_dM10Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4801 { 11, &hf_atn_cpdlc_dM11PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
4802 { 12, &hf_atn_cpdlc_dM12PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
4803 { 13, &hf_atn_cpdlc_dM13TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
4804 { 14, &hf_atn_cpdlc_dM14TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
4805 { 15, &hf_atn_cpdlc_dM15DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4806 { 16, &hf_atn_cpdlc_dM16PositionDistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionDistanceSpecifiedDirection
},
4807 { 17, &hf_atn_cpdlc_dM17TimeDistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeDistanceSpecifiedDirection
},
4808 { 18, &hf_atn_cpdlc_dM18Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
4809 { 19, &hf_atn_cpdlc_dM19SpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedSpeed
},
4810 { 20, &hf_atn_cpdlc_dM20NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4811 { 21, &hf_atn_cpdlc_dM21Frequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Frequency
},
4812 { 22, &hf_atn_cpdlc_dM22Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4813 { 23, &hf_atn_cpdlc_dM23ProcedureName
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProcedureName
},
4814 { 24, &hf_atn_cpdlc_dM24RouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RouteClearanceIndex
},
4815 { 25, &hf_atn_cpdlc_dM25ClearanceType
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ClearanceType
},
4816 { 26, &hf_atn_cpdlc_dM26PositionRouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionRouteClearanceIndex
},
4817 { 27, &hf_atn_cpdlc_dM27DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4818 { 28, &hf_atn_cpdlc_dM28Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4819 { 29, &hf_atn_cpdlc_dM29Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4820 { 30, &hf_atn_cpdlc_dM30Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4821 { 31, &hf_atn_cpdlc_dM31Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4822 { 32, &hf_atn_cpdlc_dM32Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4823 { 33, &hf_atn_cpdlc_dM33Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4824 { 34, &hf_atn_cpdlc_dM34Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
4825 { 35, &hf_atn_cpdlc_dM35Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
4826 { 36, &hf_atn_cpdlc_dM36Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
4827 { 37, &hf_atn_cpdlc_dM37Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4828 { 38, &hf_atn_cpdlc_dM38Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4829 { 39, &hf_atn_cpdlc_dM39Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
4830 { 40, &hf_atn_cpdlc_dM40RouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RouteClearanceIndex
},
4831 { 41, &hf_atn_cpdlc_dM41NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4832 { 42, &hf_atn_cpdlc_dM42Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4833 { 43, &hf_atn_cpdlc_dM43Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
4834 { 44, &hf_atn_cpdlc_dM44Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4835 { 45, &hf_atn_cpdlc_dM45Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4836 { 46, &hf_atn_cpdlc_dM46Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
4837 { 47, &hf_atn_cpdlc_dM47Code
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Code
},
4838 { 48, &hf_atn_cpdlc_dM48PositionReport
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionReport
},
4839 { 49, &hf_atn_cpdlc_dM49Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
4840 { 50, &hf_atn_cpdlc_dM50SpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedSpeed
},
4841 { 51, &hf_atn_cpdlc_dM51NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4842 { 52, &hf_atn_cpdlc_dM52NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4843 { 53, &hf_atn_cpdlc_dM53NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4844 { 54, &hf_atn_cpdlc_dM54Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4845 { 55, &hf_atn_cpdlc_dM55NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4846 { 56, &hf_atn_cpdlc_dM56NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4847 { 57, &hf_atn_cpdlc_dM57RemainingFuelPersonsOnBoard
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RemainingFuelPersonsOnBoard
},
4848 { 58, &hf_atn_cpdlc_dM58NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4849 { 59, &hf_atn_cpdlc_dM59PositionRouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionRouteClearanceIndex
},
4850 { 60, &hf_atn_cpdlc_dM60DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4851 { 61, &hf_atn_cpdlc_dM61Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4852 { 62, &hf_atn_cpdlc_dM62ErrorInformation
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ErrorInformation
},
4853 { 63, &hf_atn_cpdlc_dM63NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4854 { 64, &hf_atn_cpdlc_dM64FacilityDesignation
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FacilityDesignation
},
4855 { 65, &hf_atn_cpdlc_dM65NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4856 { 66, &hf_atn_cpdlc_dM66NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4857 { 67, &hf_atn_cpdlc_dM67FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4858 { 68, &hf_atn_cpdlc_dM68FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4859 { 69, &hf_atn_cpdlc_dM69NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4860 { 70, &hf_atn_cpdlc_dM70Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
4861 { 71, &hf_atn_cpdlc_dM71Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
4862 { 72, &hf_atn_cpdlc_dM72Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4863 { 73, &hf_atn_cpdlc_dM73Versionnumber
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_VersionNumber
},
4864 { 74, &hf_atn_cpdlc_dM74NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4865 { 75, &hf_atn_cpdlc_dM75NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4866 { 76, &hf_atn_cpdlc_dM76LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
4867 { 77, &hf_atn_cpdlc_dM77LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
4868 { 78, &hf_atn_cpdlc_dM78TimeDistanceToFromPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeDistanceToFromPosition
},
4869 { 79, &hf_atn_cpdlc_dM79AtisCode
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATISCode
},
4870 { 80, &hf_atn_cpdlc_dM80DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4871 { 81, &hf_atn_cpdlc_dM81LevelTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelTime
},
4872 { 82, &hf_atn_cpdlc_dM82Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4873 { 83, &hf_atn_cpdlc_dM83SpeedTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedTime
},
4874 { 84, &hf_atn_cpdlc_dM84Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
4875 { 85, &hf_atn_cpdlc_dM85DistanceSpecifiedDirectionTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirectionTime
},
4876 { 86, &hf_atn_cpdlc_dM86DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4877 { 87, &hf_atn_cpdlc_dM87Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4878 { 88, &hf_atn_cpdlc_dM88Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4879 { 89, &hf_atn_cpdlc_dM89UnitnameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_UnitNameFrequency
},
4880 { 90, &hf_atn_cpdlc_dM90FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4881 { 91, &hf_atn_cpdlc_dM91FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4882 { 92, &hf_atn_cpdlc_dM92FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4883 { 93, &hf_atn_cpdlc_dM93FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4884 { 94, &hf_atn_cpdlc_dM94FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4885 { 95, &hf_atn_cpdlc_dM95FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4886 { 96, &hf_atn_cpdlc_dM96FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4887 { 97, &hf_atn_cpdlc_dM97FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4888 { 98, &hf_atn_cpdlc_dM98FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4889 { 99, &hf_atn_cpdlc_dM99NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4890 { 100, &hf_atn_cpdlc_dM100NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4891 { 101, &hf_atn_cpdlc_dM101NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4892 { 102, &hf_atn_cpdlc_dM102NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4893 { 103, &hf_atn_cpdlc_dM103NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4894 { 104, &hf_atn_cpdlc_dM104PositionTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTime
},
4895 { 105, &hf_atn_cpdlc_dM105Airport
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Airport
},
4896 { 106, &hf_atn_cpdlc_dM106Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4897 { 107, &hf_atn_cpdlc_dM107NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4898 { 108, &hf_atn_cpdlc_dM108NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4899 { 109, &hf_atn_cpdlc_dM109Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
4900 { 110, &hf_atn_cpdlc_dM110Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4901 { 111, &hf_atn_cpdlc_dM111TimePosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimePosition
},
4902 { 112, &hf_atn_cpdlc_dM112NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4903 { 113, &hf_atn_cpdlc_dM113SpeedTypeSpeedTypeSpeedTypeSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed
},
4904 { 0, NULL
, 0, NULL
}
4908 dissect_atn_cpdlc_ATCDownlinkMsgElementId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4909 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4910 ett_atn_cpdlc_ATCDownlinkMsgElementId
, ATCDownlinkMsgElementId_choice
,
4917 static const per_sequence_t SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId_sequence_of
[1] = {
4918 { &hf_atn_cpdlc_atcdownlinkmessagedata_elementids_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCDownlinkMsgElementId
},
4922 dissect_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4923 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
4924 ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId
, SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId_sequence_of
,
4931 static const per_sequence_t T_atcdownlinkmessagedata_constraineddata_sequence
[] = {
4932 { &hf_atn_cpdlc_routeClearanceData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance
},
4933 { NULL
, 0, 0, NULL
}
4937 dissect_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4938 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4939 ett_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata
, T_atcdownlinkmessagedata_constraineddata_sequence
);
4945 static const per_sequence_t ATCDownlinkMessageData_sequence
[] = {
4946 { &hf_atn_cpdlc_atcdownlinkmessagedata_elementids
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId
},
4947 { &hf_atn_cpdlc_atcdownlinkmessagedata_constraineddata
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata
},
4948 { NULL
, 0, 0, NULL
}
4952 dissect_atn_cpdlc_ATCDownlinkMessageData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4953 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4954 ett_atn_cpdlc_ATCDownlinkMessageData
, ATCDownlinkMessageData_sequence
);
4960 static const per_sequence_t ATCDownlinkMessage_sequence
[] = {
4961 { &hf_atn_cpdlc_header
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCMessageHeader
},
4962 { &hf_atn_cpdlc_atcdownlinkmessage_messagedata
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCDownlinkMessageData
},
4963 { NULL
, 0, 0, NULL
}
4967 dissect_atn_cpdlc_ATCDownlinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4968 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4969 ett_atn_cpdlc_ATCDownlinkMessage
, ATCDownlinkMessage_sequence
);
4975 static const value_string atn_cpdlc_DownlinkMessage_vals
[] = {
4977 { 1, "aTCDownlinkMessage" },
4981 static const per_choice_t DownlinkMessage_choice
[] = {
4982 { 0, &hf_atn_cpdlc_noMessage
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_NULL
},
4983 { 1, &hf_atn_cpdlc_aTCDownlinkMessage
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_ATCDownlinkMessage
},
4984 { 0, NULL
, 0, NULL
}
4988 dissect_atn_cpdlc_DownlinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4989 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4990 ett_atn_cpdlc_DownlinkMessage
, DownlinkMessage_choice
,
4997 static const per_sequence_t StartDownMessage_sequence
[] = {
4998 { &hf_atn_cpdlc_mode
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Mode
},
4999 { &hf_atn_cpdlc_startDownlinkMessage
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DownlinkMessage
},
5000 { NULL
, 0, 0, NULL
}
5004 dissect_atn_cpdlc_StartDownMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5005 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
5006 ett_atn_cpdlc_StartDownMessage
, StartDownMessage_sequence
);
5012 static const value_string atn_cpdlc_AircraftPDUs_vals
[] = {
5014 { 1, "abortProvider" },
5020 static const per_choice_t AircraftPDUs_choice
[] = {
5021 { 0, &hf_atn_cpdlc_abortUser
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_CPDLCUserAbortReason
},
5022 { 1, &hf_atn_cpdlc_abortProvider
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_CPDLCProviderAbortReason
},
5023 { 2, &hf_atn_cpdlc_startdown
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_StartDownMessage
},
5024 { 3, &hf_atn_cpdlc_aircraftpdus_send
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCDownlinkMessage
},
5025 { 0, NULL
, 0, NULL
}
5029 dissect_atn_cpdlc_AircraftPDUs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5030 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
5031 ett_atn_cpdlc_AircraftPDUs
, AircraftPDUs_choice
,
5038 static const value_string atn_cpdlc_PMCPDLCUserAbortReason_vals
[] = {
5040 { 1, "no-message-identification-numbers-available" },
5041 { 2, "duplicate-message-identification-numbers" },
5042 { 3, "no-longer-next-data-authority" },
5043 { 4, "current-data-authority-abort" },
5044 { 5, "commanded-termination" },
5045 { 6, "invalid-response" },
5046 { 7, "time-out-of-synchronisation" },
5047 { 8, "unknown-integrity-check" },
5048 { 9, "validation-failure" },
5049 { 10, "unable-to-decode-message" },
5050 { 11, "invalid-pdu" },
5051 { 12, "invalid-CPDLC-message" },
5057 dissect_atn_cpdlc_PMCPDLCUserAbortReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5058 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
5059 13, NULL
, true, 0, NULL
);
5065 static const value_string atn_cpdlc_PMCPDLCProviderAbortReason_vals
[] = {
5066 { 0, "timer-expired" },
5067 { 1, "undefined-error" },
5068 { 2, "invalid-PDU" },
5069 { 3, "protocol-error" },
5070 { 4, "communication-service-error" },
5071 { 5, "communication-service-failure" },
5072 { 6, "invalid-QOS-parameter" },
5073 { 7, "expected-PDU-missing" },
5079 dissect_atn_cpdlc_PMCPDLCProviderAbortReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5080 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
5081 8, NULL
, true, 0, NULL
);
5089 dissect_atn_cpdlc_AlgorithmIdentifier(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5090 proto_tree
*top_tree
=NULL
;
5092 offset
=call_ber_oid_callback(object_identifier_id
, tvb
, offset
, actx
->pinfo
, top_tree
, NULL
);
5101 dissect_atn_cpdlc_CPDLCMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5102 tvbuff_t
*tvb_usr
= NULL
;
5104 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
, NO_BOUND
, NO_BOUND
, false, NULL
, 0, &tvb_usr
, NULL
);
5107 switch(check_heur_msg_type(actx
->pinfo
)){
5109 dissect_atn_cpdlc_ATCDownlinkMessage(tvb_new_subset_remaining(tvb_usr
, 0), 0, actx
, tree
, hf_index
);
5112 dissect_atn_cpdlc_ATCUplinkMessage(tvb_new_subset_remaining(tvb_usr
, 0), 0, actx
, tree
, hf_index
);
5124 static const per_sequence_t ProtectedUplinkMessage_sequence
[] = {
5125 { &hf_atn_cpdlc_algorithmIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_AlgorithmIdentifier
},
5126 { &hf_atn_cpdlc_protectedMessage
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_CPDLCMessage
},
5127 { &hf_atn_cpdlc_integrityCheck
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_BIT_STRING
},
5128 { NULL
, 0, 0, NULL
}
5132 dissect_atn_cpdlc_ProtectedUplinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5133 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
5134 ett_atn_cpdlc_ProtectedUplinkMessage
, ProtectedUplinkMessage_sequence
);
5140 static const value_string atn_cpdlc_ProtectedGroundPDUs_vals
[] = {
5142 { 1, "abortProvider" },
5146 { 5, "forwardresponse" },
5150 static const per_choice_t ProtectedGroundPDUs_choice
[] = {
5151 { 0, &hf_atn_cpdlc_pmcpdlcuserabortreason
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PMCPDLCUserAbortReason
},
5152 { 1, &hf_atn_cpdlc_pmcpdlcproviderabortreason
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PMCPDLCProviderAbortReason
},
5153 { 2, &hf_atn_cpdlc_protecteduplinkmessage
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProtectedUplinkMessage
},
5154 { 3, &hf_atn_cpdlc_protecteduplinkmessage
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProtectedUplinkMessage
},
5155 { 4, &hf_atn_cpdlc_forward
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCForwardMessage
},
5156 { 5, &hf_atn_cpdlc_forwardresponse
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCForwardResponse
},
5157 { 0, NULL
, 0, NULL
}
5161 dissect_atn_cpdlc_ProtectedGroundPDUs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5162 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
5163 ett_atn_cpdlc_ProtectedGroundPDUs
, ProtectedGroundPDUs_choice
,
5170 static const value_string atn_cpdlc_ProtectedMode_vals
[] = {
5178 dissect_atn_cpdlc_ProtectedMode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5179 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
5180 2, NULL
, false, 0, NULL
);
5186 static const per_sequence_t ProtectedDownlinkMessage_sequence
[] = {
5187 { &hf_atn_cpdlc_algorithmIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_AlgorithmIdentifier
},
5188 { &hf_atn_cpdlc_protectedMessage
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_CPDLCMessage
},
5189 { &hf_atn_cpdlc_integrityCheck
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_BIT_STRING
},
5190 { NULL
, 0, 0, NULL
}
5194 dissect_atn_cpdlc_ProtectedDownlinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5195 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
5196 ett_atn_cpdlc_ProtectedDownlinkMessage
, ProtectedDownlinkMessage_sequence
);
5202 static const per_sequence_t ProtectedStartDownMessage_sequence
[] = {
5203 { &hf_atn_cpdlc_protectedmode
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ProtectedMode
},
5204 { &hf_atn_cpdlc_protecteddownlinkmessage
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ProtectedDownlinkMessage
},
5205 { NULL
, 0, 0, NULL
}
5209 dissect_atn_cpdlc_ProtectedStartDownMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5210 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
5211 ett_atn_cpdlc_ProtectedStartDownMessage
, ProtectedStartDownMessage_sequence
);
5217 static const value_string atn_cpdlc_ProtectedAircraftPDUs_vals
[] = {
5219 { 1, "abortProvider" },
5225 static const per_choice_t ProtectedAircraftPDUs_choice
[] = {
5226 { 0, &hf_atn_cpdlc_pmcpdlcuserabortreason
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PMCPDLCUserAbortReason
},
5227 { 1, &hf_atn_cpdlc_pmcpdlcproviderabortreason
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PMCPDLCProviderAbortReason
},
5228 { 2, &hf_atn_cpdlc_protectedstartDownmessage
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProtectedStartDownMessage
},
5229 { 3, &hf_atn_cpdlc_send
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProtectedDownlinkMessage
},
5230 { 0, NULL
, 0, NULL
}
5234 dissect_atn_cpdlc_ProtectedAircraftPDUs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5235 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
5236 ett_atn_cpdlc_ProtectedAircraftPDUs
, ProtectedAircraftPDUs_choice
,
5244 static int dissect_GroundPDUs_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
5246 asn1_ctx_t asn1_ctx
;
5247 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, false, pinfo
);
5248 offset
= dissect_atn_cpdlc_GroundPDUs(tvb
, offset
, &asn1_ctx
, tree
, hf_atn_cpdlc_GroundPDUs_PDU
);
5249 offset
+= 7; offset
>>= 3;
5252 static int dissect_AircraftPDUs_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
5254 asn1_ctx_t asn1_ctx
;
5255 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, false, pinfo
);
5256 offset
= dissect_atn_cpdlc_AircraftPDUs(tvb
, offset
, &asn1_ctx
, tree
, hf_atn_cpdlc_AircraftPDUs_PDU
);
5257 offset
+= 7; offset
>>= 3;
5260 static int dissect_ProtectedGroundPDUs_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
5262 asn1_ctx_t asn1_ctx
;
5263 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, false, pinfo
);
5264 offset
= dissect_atn_cpdlc_ProtectedGroundPDUs(tvb
, offset
, &asn1_ctx
, tree
, hf_atn_cpdlc_ProtectedGroundPDUs_PDU
);
5265 offset
+= 7; offset
>>= 3;
5268 static int dissect_ProtectedAircraftPDUs_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
5270 asn1_ctx_t asn1_ctx
;
5271 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, false, pinfo
);
5272 offset
= dissect_atn_cpdlc_ProtectedAircraftPDUs(tvb
, offset
, &asn1_ctx
, tree
, hf_atn_cpdlc_ProtectedAircraftPDUs_PDU
);
5273 offset
+= 7; offset
>>= 3;
5278 /* Wireshark ID of CPDLC protocol */
5279 static int proto_atn_cpdlc
;
5290 /* there are two co-existing applications of CPDLC: */
5291 /* "plain old" (ae-qualifier 2) and */
5292 /* "protected mode" (ae-qualifier 22) CPDLC. */
5293 /* "protected mode" was introduced to cope with a */
5294 /* safety issue in which a message would sent to the wrong aircraft. */
5297 /* The protection is an additional checksum and covers the message content, */
5298 /* the 24-bit address of the aircraft, the current flight id and */
5299 /* the current ground facility so that an aircraft would be able to reject */
5300 /* messages which are unexpected (i.e. messages to another flight or */
5301 /* messages from the wrong center). */
5304 /* although "plain old" CPDLC is more or less deprecated */
5305 /* many aircraft cannot perform */
5306 /* "protected mode" for this largely depends on */
5307 /* upgraded avionics packages */
5310 /* The use of CPDLC is *optional* as the pilot */
5311 /* may always use a voice radio channel to talk to the controller.*/
5313 proto_tree
*atn_cpdlc_tree
= NULL
;
5314 atn_conversation_t
*atn_cv
= NULL
;
5317 /* we need the ae qualifier stored within the conversation */
5318 /* to decode "plain old cpdlc" or */
5319 /* "protected mode cpdlc correctly " */
5321 /* DT: dstref present, srcref is always zero */
5322 if((pinfo
->clnp_dstref
) && (!pinfo
->clnp_srcref
)){
5323 atn_cv
= find_atn_conversation(
5328 /* CR: srcref present, dstref is always zero */
5329 if((!pinfo
->clnp_dstref
) && (pinfo
->clnp_srcref
)){
5330 atn_cv
= find_atn_conversation(
5335 /* CC: srcref and dstref present, always use src/srcref & dst */
5336 if((pinfo
->clnp_dstref
) && (pinfo
->clnp_srcref
)){
5337 atn_cv
= find_atn_conversation(
5343 if(!atn_cv
){ /* atn conversation not found */
5346 atn_cpdlc_tree
= proto_tree_add_subtree(
5347 tree
, tvb
, 0, -1, ett_atn_cpdlc
, NULL
,
5350 switch(atn_cv
->ae_qualifier
){
5352 if( check_heur_msg_type(pinfo
) == um
) {
5353 /* uplink PDU's = Ground PDU's */
5354 dissect_ProtectedGroundPDUs_PDU(
5357 atn_cpdlc_tree
, NULL
);
5358 }else { /* downlink PDU's = Aircraft PDU's */
5359 dissect_ProtectedAircraftPDUs_PDU(
5362 atn_cpdlc_tree
, NULL
);
5366 if( check_heur_msg_type(pinfo
) == um
) {
5367 /* uplink PDU's = Ground PDU's */
5368 dissect_GroundPDUs_PDU(
5371 atn_cpdlc_tree
, NULL
);
5372 }else { /* downlink PDU's = Aircraft PDU's */
5373 dissect_AircraftPDUs_PDU(
5376 atn_cpdlc_tree
, NULL
);
5382 return tvb_reported_length_remaining(tvb
, 0);
5386 dissect_atn_cpdlc_heur(
5392 atn_conversation_t
*volatile atn_cv
= NULL
;
5393 volatile bool is_atn_cpdlc
= false;
5394 volatile bool is_pm
= false;
5397 type
= check_heur_msg_type(pinfo
);
5402 dissect_ProtectedGroundPDUs_PDU(tvb
, pinfo
, NULL
, NULL
);
5403 is_atn_cpdlc
= true;
5406 is_atn_cpdlc
= false;
5413 dissect_GroundPDUs_PDU(tvb
, pinfo
, NULL
, NULL
);
5415 is_atn_cpdlc
= true;}
5417 is_atn_cpdlc
= false;
5423 dissect_ProtectedAircraftPDUs_PDU(tvb
, pinfo
, NULL
, NULL
);
5424 is_atn_cpdlc
= true;
5427 is_atn_cpdlc
= false;
5434 dissect_AircraftPDUs_PDU(tvb
, pinfo
, NULL
, NULL
);
5435 is_atn_cpdlc
= true;
5438 is_atn_cpdlc
= false;
5448 /* all subsequent PDU's belonging to this conversation */
5449 /* are considered CPDLC */
5450 /* if the first CPDLC PDU has been decoded successfully */
5451 /* (This is done in "atn-ulcs" by using "call_dissector_with_data()") */
5453 /* DT: dstref present, srcref is always zero */
5454 if((pinfo
->clnp_dstref
) && (!pinfo
->clnp_srcref
)){
5455 atn_cv
= find_atn_conversation(&pinfo
->dst
,
5459 /* CR: srcref present, dstref is always zero */
5460 if((!pinfo
->clnp_dstref
) && (pinfo
->clnp_srcref
)){
5461 atn_cv
= find_atn_conversation(&pinfo
->src
,
5465 /* CC: srcref and dstref present, always use src/srcref & dst */
5466 if((pinfo
->clnp_dstref
) && (pinfo
->clnp_srcref
)){
5467 atn_cv
= find_atn_conversation(&pinfo
->src
,
5472 if(atn_cv
){ /* atn conversation found */
5474 atn_cv
->ae_qualifier
= pmcpdlc
; }
5476 atn_cv
->ae_qualifier
= cpdlc
; }
5477 dissect_atn_cpdlc(tvb
, pinfo
, tree
, NULL
);
5479 }else { /* there should *always* be an atn conversation */
5480 is_atn_cpdlc
= false;
5483 return is_atn_cpdlc
;
5488 void proto_register_atn_cpdlc (void)
5490 static hf_register_info hf_atn_cpdlc
[] = {
5491 { &hf_atn_cpdlc_GroundPDUs_PDU
,
5492 { "GroundPDUs", "atn-cpdlc.GroundPDUs",
5493 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_GroundPDUs_vals
), 0,
5495 { &hf_atn_cpdlc_AircraftPDUs_PDU
,
5496 { "AircraftPDUs", "atn-cpdlc.AircraftPDUs",
5497 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_AircraftPDUs_vals
), 0,
5499 { &hf_atn_cpdlc_ProtectedGroundPDUs_PDU
,
5500 { "ProtectedGroundPDUs", "atn-cpdlc.ProtectedGroundPDUs",
5501 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ProtectedGroundPDUs_vals
), 0,
5503 { &hf_atn_cpdlc_ProtectedAircraftPDUs_PDU
,
5504 { "ProtectedAircraftPDUs", "atn-cpdlc.ProtectedAircraftPDUs",
5505 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ProtectedAircraftPDUs_vals
), 0,
5507 { &hf_atn_cpdlc_abortUser
,
5508 { "abortUser", "atn-cpdlc.abortUser",
5509 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_CPDLCUserAbortReason_vals
), 0,
5510 "CPDLCUserAbortReason", HFILL
}},
5511 { &hf_atn_cpdlc_abortProvider
,
5512 { "abortProvider", "atn-cpdlc.abortProvider",
5513 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_CPDLCProviderAbortReason_vals
), 0,
5514 "CPDLCProviderAbortReason", HFILL
}},
5515 { &hf_atn_cpdlc_startup
,
5516 { "startup", "atn-cpdlc.startup",
5517 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_UplinkMessage_vals
), 0,
5518 "UplinkMessage", HFILL
}},
5519 { &hf_atn_cpdlc_groundpdus_send
,
5520 { "send", "atn-cpdlc.send_element",
5521 FT_NONE
, BASE_NONE
, NULL
, 0,
5522 "ATCUplinkMessage", HFILL
}},
5523 { &hf_atn_cpdlc_forward
,
5524 { "forward", "atn-cpdlc.forward_element",
5525 FT_NONE
, BASE_NONE
, NULL
, 0,
5526 "ATCForwardMessage", HFILL
}},
5527 { &hf_atn_cpdlc_forwardresponse
,
5528 { "forwardresponse", "atn-cpdlc.forwardresponse",
5529 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ATCForwardResponse_vals
), 0,
5530 "ATCForwardResponse", HFILL
}},
5531 { &hf_atn_cpdlc_noMessage
,
5532 { "noMessage", "atn-cpdlc.noMessage_element",
5533 FT_NONE
, BASE_NONE
, NULL
, 0,
5535 { &hf_atn_cpdlc_aTCUplinkMessage
,
5536 { "aTCUplinkMessage", "atn-cpdlc.aTCUplinkMessage_element",
5537 FT_NONE
, BASE_NONE
, NULL
, 0,
5539 { &hf_atn_cpdlc_startdown
,
5540 { "startdown", "atn-cpdlc.startdown_element",
5541 FT_NONE
, BASE_NONE
, NULL
, 0,
5542 "StartDownMessage", HFILL
}},
5543 { &hf_atn_cpdlc_aircraftpdus_send
,
5544 { "send", "atn-cpdlc.send_element",
5545 FT_NONE
, BASE_NONE
, NULL
, 0,
5546 "ATCDownlinkMessage", HFILL
}},
5547 { &hf_atn_cpdlc_mode
,
5548 { "mode", "atn-cpdlc.mode",
5549 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Mode_vals
), 0,
5551 { &hf_atn_cpdlc_startDownlinkMessage
,
5552 { "startDownlinkMessage", "atn-cpdlc.startDownlinkMessage",
5553 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_DownlinkMessage_vals
), 0,
5554 "DownlinkMessage", HFILL
}},
5555 { &hf_atn_cpdlc_aTCDownlinkMessage
,
5556 { "aTCDownlinkMessage", "atn-cpdlc.aTCDownlinkMessage_element",
5557 FT_NONE
, BASE_NONE
, NULL
, 0,
5559 { &hf_atn_cpdlc_pmcpdlcuserabortreason
,
5560 { "abortUser", "atn-cpdlc.abortUser",
5561 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_PMCPDLCUserAbortReason_vals
), 0,
5562 "PMCPDLCUserAbortReason", HFILL
}},
5563 { &hf_atn_cpdlc_pmcpdlcproviderabortreason
,
5564 { "abortProvider", "atn-cpdlc.abortProvider",
5565 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_PMCPDLCProviderAbortReason_vals
), 0,
5566 "PMCPDLCProviderAbortReason", HFILL
}},
5567 { &hf_atn_cpdlc_protecteduplinkmessage
,
5568 { "startup", "atn-cpdlc.startup_element",
5569 FT_NONE
, BASE_NONE
, NULL
, 0,
5570 "ProtectedUplinkMessage", HFILL
}},
5571 { &hf_atn_cpdlc_algorithmIdentifier
,
5572 { "algorithmIdentifier", "atn-cpdlc.algorithmIdentifier",
5573 FT_REL_OID
, BASE_NONE
, NULL
, 0,
5575 { &hf_atn_cpdlc_protectedMessage
,
5576 { "protectedMessage", "atn-cpdlc.protectedMessage",
5577 FT_BYTES
, BASE_NONE
, NULL
, 0,
5578 "CPDLCMessage", HFILL
}},
5579 { &hf_atn_cpdlc_integrityCheck
,
5580 { "integrityCheck", "atn-cpdlc.integrityCheck",
5581 FT_BYTES
, BASE_NONE
, NULL
, 0,
5582 "BIT_STRING", HFILL
}},
5583 { &hf_atn_cpdlc_forwardHeader
,
5584 { "forwardHeader", "atn-cpdlc.forwardHeader_element",
5585 FT_NONE
, BASE_NONE
, NULL
, 0,
5587 { &hf_atn_cpdlc_forwardMessage
,
5588 { "forwardMessage", "atn-cpdlc.forwardMessage",
5589 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ForwardMessage_vals
), 0,
5591 { &hf_atn_cpdlc_dateTime
,
5592 { "dateTime", "atn-cpdlc.dateTime_element",
5593 FT_NONE
, BASE_NONE
, NULL
, 0,
5594 "DateTimeGroup", HFILL
}},
5595 { &hf_atn_cpdlc_aircraftID
,
5596 { "aircraftID", "atn-cpdlc.aircraftID",
5597 FT_STRING
, BASE_NONE
, NULL
, 0,
5598 "AircraftFlightIdentification", HFILL
}},
5599 { &hf_atn_cpdlc_aircraftAddress
,
5600 { "aircraftAddress", "atn-cpdlc.aircraftAddress",
5601 FT_BYTES
, BASE_NONE
, NULL
, 0,
5603 { &hf_atn_cpdlc_upElementIDs
,
5604 { "upElementIDs", "atn-cpdlc.upElementIDs",
5605 FT_BYTES
, BASE_NONE
, NULL
, 0,
5606 "BIT_STRING", HFILL
}},
5607 { &hf_atn_cpdlc_downElementIDs
,
5608 { "downElementIDs", "atn-cpdlc.downElementIDs",
5609 FT_BYTES
, BASE_NONE
, NULL
, 0,
5610 "BIT_STRING", HFILL
}},
5611 { &hf_atn_cpdlc_protectedstartDownmessage
,
5612 { "startdown", "atn-cpdlc.startdown_element",
5613 FT_NONE
, BASE_NONE
, NULL
, 0,
5614 "ProtectedStartDownMessage", HFILL
}},
5615 { &hf_atn_cpdlc_send
,
5616 { "send", "atn-cpdlc.send_element",
5617 FT_NONE
, BASE_NONE
, NULL
, 0,
5618 "ProtectedDownlinkMessage", HFILL
}},
5619 { &hf_atn_cpdlc_protectedmode
,
5620 { "mode", "atn-cpdlc.mode",
5621 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ProtectedMode_vals
), 0,
5622 "ProtectedMode", HFILL
}},
5623 { &hf_atn_cpdlc_protecteddownlinkmessage
,
5624 { "startDownlinkMessage", "atn-cpdlc.startDownlinkMessage_element",
5625 FT_NONE
, BASE_NONE
, NULL
, 0,
5626 "ProtectedDownlinkMessage", HFILL
}},
5627 { &hf_atn_cpdlc_header
,
5628 { "header", "atn-cpdlc.header_element",
5629 FT_NONE
, BASE_NONE
, NULL
, 0,
5630 "ATCMessageHeader", HFILL
}},
5631 { &hf_atn_cpdlc_atcuplinkmessage_messagedata
,
5632 { "messageData", "atn-cpdlc.messageData_element",
5633 FT_NONE
, BASE_NONE
, NULL
, 0,
5634 "ATCUplinkMessageData", HFILL
}},
5635 { &hf_atn_cpdlc_atcuplinkmessagedata_elementids
,
5636 { "elementIds", "atn-cpdlc.elementIds",
5637 FT_UINT32
, BASE_DEC
, NULL
, 0,
5638 "SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId", HFILL
}},
5639 { &hf_atn_cpdlc_atcuplinkmessagedata_elementids_item
,
5640 { "ATCUplinkMsgElementId", "atn-cpdlc.ATCUplinkMsgElementId",
5641 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ATCUplinkMsgElementId_vals
), 0,
5643 { &hf_atn_cpdlc_atcuplinkmessagedata_constraineddata
,
5644 { "constrainedData", "atn-cpdlc.constrainedData_element",
5645 FT_NONE
, BASE_NONE
, NULL
, 0,
5646 "T_atcuplinkmessagedata_constraineddata", HFILL
}},
5647 { &hf_atn_cpdlc_routeClearanceData
,
5648 { "routeClearanceData", "atn-cpdlc.routeClearanceData",
5649 FT_UINT32
, BASE_DEC
, NULL
, 0,
5650 "SEQUENCE_SIZE_1_2_OF_RouteClearance", HFILL
}},
5651 { &hf_atn_cpdlc_routeClearanceData_item
,
5652 { "RouteClearance", "atn-cpdlc.RouteClearance_element",
5653 FT_NONE
, BASE_NONE
, NULL
, 0,
5655 { &hf_atn_cpdlc_atcdownlinkmessage_messagedata
,
5656 { "messageData", "atn-cpdlc.messageData_element",
5657 FT_NONE
, BASE_NONE
, NULL
, 0,
5658 "ATCDownlinkMessageData", HFILL
}},
5659 { &hf_atn_cpdlc_atcdownlinkmessagedata_elementids
,
5660 { "elementIds", "atn-cpdlc.elementIds",
5661 FT_UINT32
, BASE_DEC
, NULL
, 0,
5662 "SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId", HFILL
}},
5663 { &hf_atn_cpdlc_atcdownlinkmessagedata_elementids_item
,
5664 { "ATCDownlinkMsgElementId", "atn-cpdlc.ATCDownlinkMsgElementId",
5665 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ATCDownlinkMsgElementId_vals
), 0,
5667 { &hf_atn_cpdlc_atcdownlinkmessagedata_constraineddata
,
5668 { "constrainedData", "atn-cpdlc.constrainedData_element",
5669 FT_NONE
, BASE_NONE
, NULL
, 0,
5670 "T_atcdownlinkmessagedata_constraineddata", HFILL
}},
5671 { &hf_atn_cpdlc_messageIdNumber
,
5672 { "messageIdNumber", "atn-cpdlc.messageIdNumber",
5673 FT_UINT32
, BASE_DEC
, NULL
, 0,
5674 "MsgIdentificationNumber", HFILL
}},
5675 { &hf_atn_cpdlc_messageRefNumber
,
5676 { "messageRefNumber", "atn-cpdlc.messageRefNumber",
5677 FT_UINT32
, BASE_DEC
, NULL
, 0,
5678 "MsgReferenceNumber", HFILL
}},
5679 { &hf_atn_cpdlc_logicalAck
,
5680 { "logicalAck", "atn-cpdlc.logicalAck",
5681 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LogicalAck_vals
), 0,
5683 { &hf_atn_cpdlc_uM0NULL
,
5684 { "uM0NULL", "atn-cpdlc.uM0NULL_element",
5685 FT_NONE
, BASE_NONE
, NULL
, 0,
5687 { &hf_atn_cpdlc_uM1NULL
,
5688 { "uM1NULL", "atn-cpdlc.uM1NULL_element",
5689 FT_NONE
, BASE_NONE
, NULL
, 0,
5691 { &hf_atn_cpdlc_uM2NULL
,
5692 { "uM2NULL", "atn-cpdlc.uM2NULL_element",
5693 FT_NONE
, BASE_NONE
, NULL
, 0,
5695 { &hf_atn_cpdlc_uM3NULL
,
5696 { "uM3NULL", "atn-cpdlc.uM3NULL_element",
5697 FT_NONE
, BASE_NONE
, NULL
, 0,
5699 { &hf_atn_cpdlc_uM4NULL
,
5700 { "uM4NULL", "atn-cpdlc.uM4NULL_element",
5701 FT_NONE
, BASE_NONE
, NULL
, 0,
5703 { &hf_atn_cpdlc_uM5NULL
,
5704 { "uM5NULL", "atn-cpdlc.uM5NULL_element",
5705 FT_NONE
, BASE_NONE
, NULL
, 0,
5707 { &hf_atn_cpdlc_uM6Level
,
5708 { "uM6Level", "atn-cpdlc.uM6Level",
5709 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5711 { &hf_atn_cpdlc_uM7Time
,
5712 { "uM7Time", "atn-cpdlc.uM7Time_element",
5713 FT_NONE
, BASE_NONE
, NULL
, 0,
5715 { &hf_atn_cpdlc_uM8Position
,
5716 { "uM8Position", "atn-cpdlc.uM8Position",
5717 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5718 "Position", HFILL
}},
5719 { &hf_atn_cpdlc_uM9Time
,
5720 { "uM9Time", "atn-cpdlc.uM9Time_element",
5721 FT_NONE
, BASE_NONE
, NULL
, 0,
5723 { &hf_atn_cpdlc_uM10Position
,
5724 { "uM10Position", "atn-cpdlc.uM10Position",
5725 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5726 "Position", HFILL
}},
5727 { &hf_atn_cpdlc_uM11Time
,
5728 { "uM11Time", "atn-cpdlc.uM11Time_element",
5729 FT_NONE
, BASE_NONE
, NULL
, 0,
5731 { &hf_atn_cpdlc_uM12Position
,
5732 { "uM12Position", "atn-cpdlc.uM12Position",
5733 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5734 "Position", HFILL
}},
5735 { &hf_atn_cpdlc_uM13TimeLevel
,
5736 { "uM13TimeLevel", "atn-cpdlc.uM13TimeLevel_element",
5737 FT_NONE
, BASE_NONE
, NULL
, 0,
5738 "TimeLevel", HFILL
}},
5739 { &hf_atn_cpdlc_uM14PositionLevel
,
5740 { "uM14PositionLevel", "atn-cpdlc.uM14PositionLevel_element",
5741 FT_NONE
, BASE_NONE
, NULL
, 0,
5742 "PositionLevel", HFILL
}},
5743 { &hf_atn_cpdlc_uM15TimeLevel
,
5744 { "uM15TimeLevel", "atn-cpdlc.uM15TimeLevel_element",
5745 FT_NONE
, BASE_NONE
, NULL
, 0,
5746 "TimeLevel", HFILL
}},
5747 { &hf_atn_cpdlc_uM16PositionLevel
,
5748 { "uM16PositionLevel", "atn-cpdlc.uM16PositionLevel_element",
5749 FT_NONE
, BASE_NONE
, NULL
, 0,
5750 "PositionLevel", HFILL
}},
5751 { &hf_atn_cpdlc_uM17TimeLevel
,
5752 { "uM17TimeLevel", "atn-cpdlc.uM17TimeLevel_element",
5753 FT_NONE
, BASE_NONE
, NULL
, 0,
5754 "TimeLevel", HFILL
}},
5755 { &hf_atn_cpdlc_uM18PositionLevel
,
5756 { "uM18PositionLevel", "atn-cpdlc.uM18PositionLevel_element",
5757 FT_NONE
, BASE_NONE
, NULL
, 0,
5758 "PositionLevel", HFILL
}},
5759 { &hf_atn_cpdlc_uM19Level
,
5760 { "uM19Level", "atn-cpdlc.uM19Level",
5761 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5763 { &hf_atn_cpdlc_uM20Level
,
5764 { "uM20Level", "atn-cpdlc.uM20Level",
5765 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5767 { &hf_atn_cpdlc_uM21TimeLevel
,
5768 { "uM21TimeLevel", "atn-cpdlc.uM21TimeLevel_element",
5769 FT_NONE
, BASE_NONE
, NULL
, 0,
5770 "TimeLevel", HFILL
}},
5771 { &hf_atn_cpdlc_uM22PositionLevel
,
5772 { "uM22PositionLevel", "atn-cpdlc.uM22PositionLevel_element",
5773 FT_NONE
, BASE_NONE
, NULL
, 0,
5774 "PositionLevel", HFILL
}},
5775 { &hf_atn_cpdlc_uM23Level
,
5776 { "uM23Level", "atn-cpdlc.uM23Level",
5777 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5779 { &hf_atn_cpdlc_uM24TimeLevel
,
5780 { "uM24TimeLevel", "atn-cpdlc.uM24TimeLevel_element",
5781 FT_NONE
, BASE_NONE
, NULL
, 0,
5782 "TimeLevel", HFILL
}},
5783 { &hf_atn_cpdlc_uM25PositionLevel
,
5784 { "uM25PositionLevel", "atn-cpdlc.uM25PositionLevel_element",
5785 FT_NONE
, BASE_NONE
, NULL
, 0,
5786 "PositionLevel", HFILL
}},
5787 { &hf_atn_cpdlc_uM26LevelTime
,
5788 { "uM26LevelTime", "atn-cpdlc.uM26LevelTime_element",
5789 FT_NONE
, BASE_NONE
, NULL
, 0,
5790 "LevelTime", HFILL
}},
5791 { &hf_atn_cpdlc_uM27LevelPosition
,
5792 { "uM27LevelPosition", "atn-cpdlc.uM27LevelPosition_element",
5793 FT_NONE
, BASE_NONE
, NULL
, 0,
5794 "LevelPosition", HFILL
}},
5795 { &hf_atn_cpdlc_uM28LevelTime
,
5796 { "uM28LevelTime", "atn-cpdlc.uM28LevelTime_element",
5797 FT_NONE
, BASE_NONE
, NULL
, 0,
5798 "LevelTime", HFILL
}},
5799 { &hf_atn_cpdlc_uM29LevelPosition
,
5800 { "uM29LevelPosition", "atn-cpdlc.uM29LevelPosition_element",
5801 FT_NONE
, BASE_NONE
, NULL
, 0,
5802 "LevelPosition", HFILL
}},
5803 { &hf_atn_cpdlc_uM30LevelLevel
,
5804 { "uM30LevelLevel", "atn-cpdlc.uM30LevelLevel",
5805 FT_UINT32
, BASE_DEC
, NULL
, 0,
5806 "LevelLevel", HFILL
}},
5807 { &hf_atn_cpdlc_uM31LevelLevel
,
5808 { "uM31LevelLevel", "atn-cpdlc.uM31LevelLevel",
5809 FT_UINT32
, BASE_DEC
, NULL
, 0,
5810 "LevelLevel", HFILL
}},
5811 { &hf_atn_cpdlc_uM32LevelLevel
,
5812 { "uM32LevelLevel", "atn-cpdlc.uM32LevelLevel",
5813 FT_UINT32
, BASE_DEC
, NULL
, 0,
5814 "LevelLevel", HFILL
}},
5815 { &hf_atn_cpdlc_uM33NULL
,
5816 { "uM33NULL", "atn-cpdlc.uM33NULL_element",
5817 FT_NONE
, BASE_NONE
, NULL
, 0,
5819 { &hf_atn_cpdlc_uM34Level
,
5820 { "uM34Level", "atn-cpdlc.uM34Level",
5821 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5823 { &hf_atn_cpdlc_uM35Level
,
5824 { "uM35Level", "atn-cpdlc.uM35Level",
5825 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5827 { &hf_atn_cpdlc_uM36Level
,
5828 { "uM36Level", "atn-cpdlc.uM36Level",
5829 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5831 { &hf_atn_cpdlc_uM37Level
,
5832 { "uM37Level", "atn-cpdlc.uM37Level",
5833 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5835 { &hf_atn_cpdlc_uM38Level
,
5836 { "uM38Level", "atn-cpdlc.uM38Level",
5837 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5839 { &hf_atn_cpdlc_uM39Level
,
5840 { "uM39Level", "atn-cpdlc.uM39Level",
5841 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5843 { &hf_atn_cpdlc_uM40NULL
,
5844 { "uM40NULL", "atn-cpdlc.uM40NULL_element",
5845 FT_NONE
, BASE_NONE
, NULL
, 0,
5847 { &hf_atn_cpdlc_uM41NULL
,
5848 { "uM41NULL", "atn-cpdlc.uM41NULL_element",
5849 FT_NONE
, BASE_NONE
, NULL
, 0,
5851 { &hf_atn_cpdlc_uM42PositionLevel
,
5852 { "uM42PositionLevel", "atn-cpdlc.uM42PositionLevel_element",
5853 FT_NONE
, BASE_NONE
, NULL
, 0,
5854 "PositionLevel", HFILL
}},
5855 { &hf_atn_cpdlc_uM43PositionLevel
,
5856 { "uM43PositionLevel", "atn-cpdlc.uM43PositionLevel_element",
5857 FT_NONE
, BASE_NONE
, NULL
, 0,
5858 "PositionLevel", HFILL
}},
5859 { &hf_atn_cpdlc_uM44PositionLevel
,
5860 { "uM44PositionLevel", "atn-cpdlc.uM44PositionLevel_element",
5861 FT_NONE
, BASE_NONE
, NULL
, 0,
5862 "PositionLevel", HFILL
}},
5863 { &hf_atn_cpdlc_uM45PositionLevel
,
5864 { "uM45PositionLevel", "atn-cpdlc.uM45PositionLevel_element",
5865 FT_NONE
, BASE_NONE
, NULL
, 0,
5866 "PositionLevel", HFILL
}},
5867 { &hf_atn_cpdlc_uM46PositionLevel
,
5868 { "uM46PositionLevel", "atn-cpdlc.uM46PositionLevel_element",
5869 FT_NONE
, BASE_NONE
, NULL
, 0,
5870 "PositionLevel", HFILL
}},
5871 { &hf_atn_cpdlc_uM47PositionLevel
,
5872 { "uM47PositionLevel", "atn-cpdlc.uM47PositionLevel_element",
5873 FT_NONE
, BASE_NONE
, NULL
, 0,
5874 "PositionLevel", HFILL
}},
5875 { &hf_atn_cpdlc_uM48PositionLevel
,
5876 { "uM48PositionLevel", "atn-cpdlc.uM48PositionLevel_element",
5877 FT_NONE
, BASE_NONE
, NULL
, 0,
5878 "PositionLevel", HFILL
}},
5879 { &hf_atn_cpdlc_uM49PositionLevel
,
5880 { "uM49PositionLevel", "atn-cpdlc.uM49PositionLevel_element",
5881 FT_NONE
, BASE_NONE
, NULL
, 0,
5882 "PositionLevel", HFILL
}},
5883 { &hf_atn_cpdlc_uM50PositionLevelLevel
,
5884 { "uM50PositionLevelLevel", "atn-cpdlc.uM50PositionLevelLevel_element",
5885 FT_NONE
, BASE_NONE
, NULL
, 0,
5886 "PositionLevelLevel", HFILL
}},
5887 { &hf_atn_cpdlc_uM51PositionTime
,
5888 { "uM51PositionTime", "atn-cpdlc.uM51PositionTime_element",
5889 FT_NONE
, BASE_NONE
, NULL
, 0,
5890 "PositionTime", HFILL
}},
5891 { &hf_atn_cpdlc_uM52PositionTime
,
5892 { "uM52PositionTime", "atn-cpdlc.uM52PositionTime_element",
5893 FT_NONE
, BASE_NONE
, NULL
, 0,
5894 "PositionTime", HFILL
}},
5895 { &hf_atn_cpdlc_uM53PositionTime
,
5896 { "uM53PositionTime", "atn-cpdlc.uM53PositionTime_element",
5897 FT_NONE
, BASE_NONE
, NULL
, 0,
5898 "PositionTime", HFILL
}},
5899 { &hf_atn_cpdlc_uM54PositionTimeTime
,
5900 { "uM54PositionTimeTime", "atn-cpdlc.uM54PositionTimeTime_element",
5901 FT_NONE
, BASE_NONE
, NULL
, 0,
5902 "PositionTimeTime", HFILL
}},
5903 { &hf_atn_cpdlc_uM55PositionSpeed
,
5904 { "uM55PositionSpeed", "atn-cpdlc.uM55PositionSpeed_element",
5905 FT_NONE
, BASE_NONE
, NULL
, 0,
5906 "PositionSpeed", HFILL
}},
5907 { &hf_atn_cpdlc_uM56PositionSpeed
,
5908 { "uM56PositionSpeed", "atn-cpdlc.uM56PositionSpeed_element",
5909 FT_NONE
, BASE_NONE
, NULL
, 0,
5910 "PositionSpeed", HFILL
}},
5911 { &hf_atn_cpdlc_uM57PositionSpeed
,
5912 { "uM57PositionSpeed", "atn-cpdlc.uM57PositionSpeed_element",
5913 FT_NONE
, BASE_NONE
, NULL
, 0,
5914 "PositionSpeed", HFILL
}},
5915 { &hf_atn_cpdlc_uM58PositionTimeLevel
,
5916 { "uM58PositionTimeLevel", "atn-cpdlc.uM58PositionTimeLevel_element",
5917 FT_NONE
, BASE_NONE
, NULL
, 0,
5918 "PositionTimeLevel", HFILL
}},
5919 { &hf_atn_cpdlc_uM59PositionTimeLevel
,
5920 { "uM59PositionTimeLevel", "atn-cpdlc.uM59PositionTimeLevel_element",
5921 FT_NONE
, BASE_NONE
, NULL
, 0,
5922 "PositionTimeLevel", HFILL
}},
5923 { &hf_atn_cpdlc_uM60PositionTimeLevel
,
5924 { "uM60PositionTimeLevel", "atn-cpdlc.uM60PositionTimeLevel_element",
5925 FT_NONE
, BASE_NONE
, NULL
, 0,
5926 "PositionTimeLevel", HFILL
}},
5927 { &hf_atn_cpdlc_uM61PositionLevelSpeed
,
5928 { "uM61PositionLevelSpeed", "atn-cpdlc.uM61PositionLevelSpeed_element",
5929 FT_NONE
, BASE_NONE
, NULL
, 0,
5930 "PositionLevelSpeed", HFILL
}},
5931 { &hf_atn_cpdlc_uM62TimePositionLevel
,
5932 { "uM62TimePositionLevel", "atn-cpdlc.uM62TimePositionLevel_element",
5933 FT_NONE
, BASE_NONE
, NULL
, 0,
5934 "TimePositionLevel", HFILL
}},
5935 { &hf_atn_cpdlc_uM63TimePositionLevelSpeed
,
5936 { "uM63TimePositionLevelSpeed", "atn-cpdlc.uM63TimePositionLevelSpeed_element",
5937 FT_NONE
, BASE_NONE
, NULL
, 0,
5938 "TimePositionLevelSpeed", HFILL
}},
5939 { &hf_atn_cpdlc_uM64DistanceSpecifiedDirection
,
5940 { "uM64DistanceSpecifiedDirection", "atn-cpdlc.uM64DistanceSpecifiedDirection_element",
5941 FT_NONE
, BASE_NONE
, NULL
, 0,
5942 "DistanceSpecifiedDirection", HFILL
}},
5943 { &hf_atn_cpdlc_uM65PositionDistanceSpecifiedDirection
,
5944 { "uM65PositionDistanceSpecifiedDirection", "atn-cpdlc.uM65PositionDistanceSpecifiedDirection_element",
5945 FT_NONE
, BASE_NONE
, NULL
, 0,
5946 "PositionDistanceSpecifiedDirection", HFILL
}},
5947 { &hf_atn_cpdlc_uM66TimeDistanceSpecifiedDirection
,
5948 { "uM66TimeDistanceSpecifiedDirection", "atn-cpdlc.uM66TimeDistanceSpecifiedDirection_element",
5949 FT_NONE
, BASE_NONE
, NULL
, 0,
5950 "TimeDistanceSpecifiedDirection", HFILL
}},
5951 { &hf_atn_cpdlc_uM67NULL
,
5952 { "uM67NULL", "atn-cpdlc.uM67NULL_element",
5953 FT_NONE
, BASE_NONE
, NULL
, 0,
5955 { &hf_atn_cpdlc_uM68Position
,
5956 { "uM68Position", "atn-cpdlc.uM68Position",
5957 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5958 "Position", HFILL
}},
5959 { &hf_atn_cpdlc_uM69Time
,
5960 { "uM69Time", "atn-cpdlc.uM69Time_element",
5961 FT_NONE
, BASE_NONE
, NULL
, 0,
5963 { &hf_atn_cpdlc_uM70Position
,
5964 { "uM70Position", "atn-cpdlc.uM70Position",
5965 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5966 "Position", HFILL
}},
5967 { &hf_atn_cpdlc_uM71Time
,
5968 { "uM71Time", "atn-cpdlc.uM71Time_element",
5969 FT_NONE
, BASE_NONE
, NULL
, 0,
5971 { &hf_atn_cpdlc_uM72NULL
,
5972 { "uM72NULL", "atn-cpdlc.uM72NULL_element",
5973 FT_NONE
, BASE_NONE
, NULL
, 0,
5975 { &hf_atn_cpdlc_uM73DepartureClearance
,
5976 { "uM73DepartureClearance", "atn-cpdlc.uM73DepartureClearance_element",
5977 FT_NONE
, BASE_NONE
, NULL
, 0,
5978 "DepartureClearance", HFILL
}},
5979 { &hf_atn_cpdlc_uM74Position
,
5980 { "uM74Position", "atn-cpdlc.uM74Position",
5981 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5982 "Position", HFILL
}},
5983 { &hf_atn_cpdlc_uM75Position
,
5984 { "uM75Position", "atn-cpdlc.uM75Position",
5985 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5986 "Position", HFILL
}},
5987 { &hf_atn_cpdlc_uM76TimePosition
,
5988 { "uM76TimePosition", "atn-cpdlc.uM76TimePosition_element",
5989 FT_NONE
, BASE_NONE
, NULL
, 0,
5990 "TimePosition", HFILL
}},
5991 { &hf_atn_cpdlc_uM77PositionPosition
,
5992 { "uM77PositionPosition", "atn-cpdlc.uM77PositionPosition",
5993 FT_UINT32
, BASE_DEC
, NULL
, 0,
5994 "PositionPosition", HFILL
}},
5995 { &hf_atn_cpdlc_uM78LevelPosition
,
5996 { "uM78LevelPosition", "atn-cpdlc.uM78LevelPosition_element",
5997 FT_NONE
, BASE_NONE
, NULL
, 0,
5998 "LevelPosition", HFILL
}},
5999 { &hf_atn_cpdlc_uM79PositionRouteClearance
,
6000 { "uM79PositionRouteClearance", "atn-cpdlc.uM79PositionRouteClearance_element",
6001 FT_NONE
, BASE_NONE
, NULL
, 0,
6002 "PositionRouteClearanceIndex", HFILL
}},
6003 { &hf_atn_cpdlc_uM80RouteClearance
,
6004 { "uM80RouteClearance", "atn-cpdlc.uM80RouteClearance",
6005 FT_UINT32
, BASE_DEC
, NULL
, 0,
6006 "RouteClearanceIndex", HFILL
}},
6007 { &hf_atn_cpdlc_uM81ProcedureName
,
6008 { "uM81ProcedureName", "atn-cpdlc.uM81ProcedureName_element",
6009 FT_NONE
, BASE_NONE
, NULL
, 0,
6010 "ProcedureName", HFILL
}},
6011 { &hf_atn_cpdlc_uM82DistanceSpecifiedDirection
,
6012 { "uM82DistanceSpecifiedDirection", "atn-cpdlc.uM82DistanceSpecifiedDirection_element",
6013 FT_NONE
, BASE_NONE
, NULL
, 0,
6014 "DistanceSpecifiedDirection", HFILL
}},
6015 { &hf_atn_cpdlc_uM83PositionRouteClearance
,
6016 { "uM83PositionRouteClearance", "atn-cpdlc.uM83PositionRouteClearance_element",
6017 FT_NONE
, BASE_NONE
, NULL
, 0,
6018 "PositionRouteClearanceIndex", HFILL
}},
6019 { &hf_atn_cpdlc_uM84PositionProcedureName
,
6020 { "uM84PositionProcedureName", "atn-cpdlc.uM84PositionProcedureName_element",
6021 FT_NONE
, BASE_NONE
, NULL
, 0,
6022 "PositionProcedureName", HFILL
}},
6023 { &hf_atn_cpdlc_uM85RouteClearance
,
6024 { "uM85RouteClearance", "atn-cpdlc.uM85RouteClearance",
6025 FT_UINT32
, BASE_DEC
, NULL
, 0,
6026 "RouteClearanceIndex", HFILL
}},
6027 { &hf_atn_cpdlc_uM86PositionRouteClearance
,
6028 { "uM86PositionRouteClearance", "atn-cpdlc.uM86PositionRouteClearance_element",
6029 FT_NONE
, BASE_NONE
, NULL
, 0,
6030 "PositionRouteClearanceIndex", HFILL
}},
6031 { &hf_atn_cpdlc_uM87Position
,
6032 { "uM87Position", "atn-cpdlc.uM87Position",
6033 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6034 "Position", HFILL
}},
6035 { &hf_atn_cpdlc_uM88PositionPosition
,
6036 { "uM88PositionPosition", "atn-cpdlc.uM88PositionPosition",
6037 FT_UINT32
, BASE_DEC
, NULL
, 0,
6038 "PositionPosition", HFILL
}},
6039 { &hf_atn_cpdlc_uM89TimePosition
,
6040 { "uM89TimePosition", "atn-cpdlc.uM89TimePosition_element",
6041 FT_NONE
, BASE_NONE
, NULL
, 0,
6042 "TimePosition", HFILL
}},
6043 { &hf_atn_cpdlc_uM90LevelPosition
,
6044 { "uM90LevelPosition", "atn-cpdlc.uM90LevelPosition_element",
6045 FT_NONE
, BASE_NONE
, NULL
, 0,
6046 "LevelPosition", HFILL
}},
6047 { &hf_atn_cpdlc_uM91HoldClearance
,
6048 { "uM91HoldClearance", "atn-cpdlc.uM91HoldClearance_element",
6049 FT_NONE
, BASE_NONE
, NULL
, 0,
6050 "HoldClearance", HFILL
}},
6051 { &hf_atn_cpdlc_uM92PositionLevel
,
6052 { "uM92PositionLevel", "atn-cpdlc.uM92PositionLevel_element",
6053 FT_NONE
, BASE_NONE
, NULL
, 0,
6054 "PositionLevel", HFILL
}},
6055 { &hf_atn_cpdlc_uM93Time
,
6056 { "uM93Time", "atn-cpdlc.uM93Time_element",
6057 FT_NONE
, BASE_NONE
, NULL
, 0,
6059 { &hf_atn_cpdlc_uM94DirectionDegrees
,
6060 { "uM94DirectionDegrees", "atn-cpdlc.uM94DirectionDegrees_element",
6061 FT_NONE
, BASE_NONE
, NULL
, 0,
6062 "DirectionDegrees", HFILL
}},
6063 { &hf_atn_cpdlc_uM95DirectionDegrees
,
6064 { "uM95DirectionDegrees", "atn-cpdlc.uM95DirectionDegrees_element",
6065 FT_NONE
, BASE_NONE
, NULL
, 0,
6066 "DirectionDegrees", HFILL
}},
6067 { &hf_atn_cpdlc_uM96NULL
,
6068 { "uM96NULL", "atn-cpdlc.uM96NULL_element",
6069 FT_NONE
, BASE_NONE
, NULL
, 0,
6071 { &hf_atn_cpdlc_uM97PositionDegrees
,
6072 { "uM97PositionDegrees", "atn-cpdlc.uM97PositionDegrees_element",
6073 FT_NONE
, BASE_NONE
, NULL
, 0,
6074 "PositionDegrees", HFILL
}},
6075 { &hf_atn_cpdlc_uM98DirectionDegrees
,
6076 { "uM98DirectionDegrees", "atn-cpdlc.uM98DirectionDegrees_element",
6077 FT_NONE
, BASE_NONE
, NULL
, 0,
6078 "DirectionDegrees", HFILL
}},
6079 { &hf_atn_cpdlc_uM99ProcedureName
,
6080 { "uM99ProcedureName", "atn-cpdlc.uM99ProcedureName_element",
6081 FT_NONE
, BASE_NONE
, NULL
, 0,
6082 "ProcedureName", HFILL
}},
6083 { &hf_atn_cpdlc_uM100TimeSpeed
,
6084 { "uM100TimeSpeed", "atn-cpdlc.uM100TimeSpeed_element",
6085 FT_NONE
, BASE_NONE
, NULL
, 0,
6086 "TimeSpeed", HFILL
}},
6087 { &hf_atn_cpdlc_uM101PositionSpeed
,
6088 { "uM101PositionSpeed", "atn-cpdlc.uM101PositionSpeed_element",
6089 FT_NONE
, BASE_NONE
, NULL
, 0,
6090 "PositionSpeed", HFILL
}},
6091 { &hf_atn_cpdlc_uM102LevelSpeed
,
6092 { "uM102LevelSpeed", "atn-cpdlc.uM102LevelSpeed_element",
6093 FT_NONE
, BASE_NONE
, NULL
, 0,
6094 "LevelSpeed", HFILL
}},
6095 { &hf_atn_cpdlc_uM103TimeSpeedSpeed
,
6096 { "uM103TimeSpeedSpeed", "atn-cpdlc.uM103TimeSpeedSpeed_element",
6097 FT_NONE
, BASE_NONE
, NULL
, 0,
6098 "TimeSpeedSpeed", HFILL
}},
6099 { &hf_atn_cpdlc_uM104PositionSpeedSpeed
,
6100 { "uM104PositionSpeedSpeed", "atn-cpdlc.uM104PositionSpeedSpeed_element",
6101 FT_NONE
, BASE_NONE
, NULL
, 0,
6102 "PositionSpeedSpeed", HFILL
}},
6103 { &hf_atn_cpdlc_uM105LevelSpeedSpeed
,
6104 { "uM105LevelSpeedSpeed", "atn-cpdlc.uM105LevelSpeedSpeed_element",
6105 FT_NONE
, BASE_NONE
, NULL
, 0,
6106 "LevelSpeedSpeed", HFILL
}},
6107 { &hf_atn_cpdlc_uM106Speed
,
6108 { "uM106Speed", "atn-cpdlc.uM106Speed",
6109 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6111 { &hf_atn_cpdlc_uM107NULL
,
6112 { "uM107NULL", "atn-cpdlc.uM107NULL_element",
6113 FT_NONE
, BASE_NONE
, NULL
, 0,
6115 { &hf_atn_cpdlc_uM108Speed
,
6116 { "uM108Speed", "atn-cpdlc.uM108Speed",
6117 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6119 { &hf_atn_cpdlc_uM109Speed
,
6120 { "uM109Speed", "atn-cpdlc.uM109Speed",
6121 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6123 { &hf_atn_cpdlc_uM110SpeedSpeed
,
6124 { "uM110SpeedSpeed", "atn-cpdlc.uM110SpeedSpeed",
6125 FT_UINT32
, BASE_DEC
, NULL
, 0,
6126 "SpeedSpeed", HFILL
}},
6127 { &hf_atn_cpdlc_uM111Speed
,
6128 { "uM111Speed", "atn-cpdlc.uM111Speed",
6129 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6131 { &hf_atn_cpdlc_uM112Speed
,
6132 { "uM112Speed", "atn-cpdlc.uM112Speed",
6133 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6135 { &hf_atn_cpdlc_uM113Speed
,
6136 { "uM113Speed", "atn-cpdlc.uM113Speed",
6137 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6139 { &hf_atn_cpdlc_uM114Speed
,
6140 { "uM114Speed", "atn-cpdlc.uM114Speed",
6141 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6143 { &hf_atn_cpdlc_uM115Speed
,
6144 { "uM115Speed", "atn-cpdlc.uM115Speed",
6145 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6147 { &hf_atn_cpdlc_uM116NULL
,
6148 { "uM116NULL", "atn-cpdlc.uM116NULL_element",
6149 FT_NONE
, BASE_NONE
, NULL
, 0,
6151 { &hf_atn_cpdlc_uM117UnitNameFrequency
,
6152 { "uM117UnitNameFrequency", "atn-cpdlc.uM117UnitNameFrequency_element",
6153 FT_NONE
, BASE_NONE
, NULL
, 0,
6154 "UnitNameFrequency", HFILL
}},
6155 { &hf_atn_cpdlc_uM118PositionUnitNameFrequency
,
6156 { "uM118PositionUnitNameFrequency", "atn-cpdlc.uM118PositionUnitNameFrequency_element",
6157 FT_NONE
, BASE_NONE
, NULL
, 0,
6158 "PositionUnitNameFrequency", HFILL
}},
6159 { &hf_atn_cpdlc_uM119TimeUnitNameFrequency
,
6160 { "uM119TimeUnitNameFrequency", "atn-cpdlc.uM119TimeUnitNameFrequency_element",
6161 FT_NONE
, BASE_NONE
, NULL
, 0,
6162 "TimeUnitNameFrequency", HFILL
}},
6163 { &hf_atn_cpdlc_uM120UnitNameFrequency
,
6164 { "uM120UnitNameFrequency", "atn-cpdlc.uM120UnitNameFrequency_element",
6165 FT_NONE
, BASE_NONE
, NULL
, 0,
6166 "UnitNameFrequency", HFILL
}},
6167 { &hf_atn_cpdlc_uM121PositionUnitNameFrequency
,
6168 { "uM121PositionUnitNameFrequency", "atn-cpdlc.uM121PositionUnitNameFrequency_element",
6169 FT_NONE
, BASE_NONE
, NULL
, 0,
6170 "PositionUnitNameFrequency", HFILL
}},
6171 { &hf_atn_cpdlc_uM122TimeUnitNameFrequency
,
6172 { "uM122TimeUnitNameFrequency", "atn-cpdlc.uM122TimeUnitNameFrequency_element",
6173 FT_NONE
, BASE_NONE
, NULL
, 0,
6174 "TimeUnitNameFrequency", HFILL
}},
6175 { &hf_atn_cpdlc_uM123Code
,
6176 { "uM123Code", "atn-cpdlc.uM123Code",
6177 FT_UINT32
, BASE_DEC
, NULL
, 0,
6179 { &hf_atn_cpdlc_uM124NULL
,
6180 { "uM124NULL", "atn-cpdlc.uM124NULL_element",
6181 FT_NONE
, BASE_NONE
, NULL
, 0,
6183 { &hf_atn_cpdlc_uM125NULL
,
6184 { "uM125NULL", "atn-cpdlc.uM125NULL_element",
6185 FT_NONE
, BASE_NONE
, NULL
, 0,
6187 { &hf_atn_cpdlc_uM126NULL
,
6188 { "uM126NULL", "atn-cpdlc.uM126NULL_element",
6189 FT_NONE
, BASE_NONE
, NULL
, 0,
6191 { &hf_atn_cpdlc_uM127NULL
,
6192 { "uM127NULL", "atn-cpdlc.uM127NULL_element",
6193 FT_NONE
, BASE_NONE
, NULL
, 0,
6195 { &hf_atn_cpdlc_uM128Level
,
6196 { "uM128Level", "atn-cpdlc.uM128Level",
6197 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6199 { &hf_atn_cpdlc_uM129Level
,
6200 { "uM129Level", "atn-cpdlc.uM129Level",
6201 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6203 { &hf_atn_cpdlc_uM130Position
,
6204 { "uM130Position", "atn-cpdlc.uM130Position",
6205 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6206 "Position", HFILL
}},
6207 { &hf_atn_cpdlc_uM131NULL
,
6208 { "uM131NULL", "atn-cpdlc.uM131NULL_element",
6209 FT_NONE
, BASE_NONE
, NULL
, 0,
6211 { &hf_atn_cpdlc_uM132NULL
,
6212 { "uM132NULL", "atn-cpdlc.uM132NULL_element",
6213 FT_NONE
, BASE_NONE
, NULL
, 0,
6215 { &hf_atn_cpdlc_uM133NULL
,
6216 { "uM133NULL", "atn-cpdlc.uM133NULL_element",
6217 FT_NONE
, BASE_NONE
, NULL
, 0,
6219 { &hf_atn_cpdlc_uM134SpeedTypeSpeedTypeSpeedType
,
6220 { "uM134SpeedTypeSpeedTypeSpeedType", "atn-cpdlc.uM134SpeedTypeSpeedTypeSpeedType",
6221 FT_UINT32
, BASE_DEC
, NULL
, 0,
6222 "SpeedTypeSpeedTypeSpeedType", HFILL
}},
6223 { &hf_atn_cpdlc_uM135NULL
,
6224 { "uM135NULL", "atn-cpdlc.uM135NULL_element",
6225 FT_NONE
, BASE_NONE
, NULL
, 0,
6227 { &hf_atn_cpdlc_uM136NULL
,
6228 { "uM136NULL", "atn-cpdlc.uM136NULL_element",
6229 FT_NONE
, BASE_NONE
, NULL
, 0,
6231 { &hf_atn_cpdlc_uM137NULL
,
6232 { "uM137NULL", "atn-cpdlc.uM137NULL_element",
6233 FT_NONE
, BASE_NONE
, NULL
, 0,
6235 { &hf_atn_cpdlc_uM138NULL
,
6236 { "uM138NULL", "atn-cpdlc.uM138NULL_element",
6237 FT_NONE
, BASE_NONE
, NULL
, 0,
6239 { &hf_atn_cpdlc_uM139NULL
,
6240 { "uM139NULL", "atn-cpdlc.uM139NULL_element",
6241 FT_NONE
, BASE_NONE
, NULL
, 0,
6243 { &hf_atn_cpdlc_uM140NULL
,
6244 { "uM140NULL", "atn-cpdlc.uM140NULL_element",
6245 FT_NONE
, BASE_NONE
, NULL
, 0,
6247 { &hf_atn_cpdlc_uM141NULL
,
6248 { "uM141NULL", "atn-cpdlc.uM141NULL_element",
6249 FT_NONE
, BASE_NONE
, NULL
, 0,
6251 { &hf_atn_cpdlc_uM142NULL
,
6252 { "uM142NULL", "atn-cpdlc.uM142NULL_element",
6253 FT_NONE
, BASE_NONE
, NULL
, 0,
6255 { &hf_atn_cpdlc_uM143NULL
,
6256 { "uM143NULL", "atn-cpdlc.uM143NULL_element",
6257 FT_NONE
, BASE_NONE
, NULL
, 0,
6259 { &hf_atn_cpdlc_uM144NULL
,
6260 { "uM144NULL", "atn-cpdlc.uM144NULL_element",
6261 FT_NONE
, BASE_NONE
, NULL
, 0,
6263 { &hf_atn_cpdlc_uM145NULL
,
6264 { "uM145NULL", "atn-cpdlc.uM145NULL_element",
6265 FT_NONE
, BASE_NONE
, NULL
, 0,
6267 { &hf_atn_cpdlc_uM146NULL
,
6268 { "uM146NULL", "atn-cpdlc.uM146NULL_element",
6269 FT_NONE
, BASE_NONE
, NULL
, 0,
6271 { &hf_atn_cpdlc_uM147NULL
,
6272 { "uM147NULL", "atn-cpdlc.uM147NULL_element",
6273 FT_NONE
, BASE_NONE
, NULL
, 0,
6275 { &hf_atn_cpdlc_uM148Level
,
6276 { "uM148Level", "atn-cpdlc.uM148Level",
6277 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6279 { &hf_atn_cpdlc_uM149LevelPosition
,
6280 { "uM149LevelPosition", "atn-cpdlc.uM149LevelPosition_element",
6281 FT_NONE
, BASE_NONE
, NULL
, 0,
6282 "LevelPosition", HFILL
}},
6283 { &hf_atn_cpdlc_uM150LevelTime
,
6284 { "uM150LevelTime", "atn-cpdlc.uM150LevelTime_element",
6285 FT_NONE
, BASE_NONE
, NULL
, 0,
6286 "LevelTime", HFILL
}},
6287 { &hf_atn_cpdlc_uM151Speed
,
6288 { "uM151Speed", "atn-cpdlc.uM151Speed",
6289 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6291 { &hf_atn_cpdlc_uM152DistanceSpecifiedDirection
,
6292 { "uM152DistanceSpecifiedDirection", "atn-cpdlc.uM152DistanceSpecifiedDirection_element",
6293 FT_NONE
, BASE_NONE
, NULL
, 0,
6294 "DistanceSpecifiedDirection", HFILL
}},
6295 { &hf_atn_cpdlc_uM153Altimeter
,
6296 { "uM153Altimeter", "atn-cpdlc.uM153Altimeter",
6297 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Altimeter_vals
), 0,
6298 "Altimeter", HFILL
}},
6299 { &hf_atn_cpdlc_uM154NULL
,
6300 { "uM154NULL", "atn-cpdlc.uM154NULL_element",
6301 FT_NONE
, BASE_NONE
, NULL
, 0,
6303 { &hf_atn_cpdlc_uM155Position
,
6304 { "uM155Position", "atn-cpdlc.uM155Position",
6305 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6306 "Position", HFILL
}},
6307 { &hf_atn_cpdlc_uM156NULL
,
6308 { "uM156NULL", "atn-cpdlc.uM156NULL_element",
6309 FT_NONE
, BASE_NONE
, NULL
, 0,
6311 { &hf_atn_cpdlc_uM157Frequency
,
6312 { "uM157Frequency", "atn-cpdlc.uM157Frequency",
6313 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Frequency_vals
), 0,
6314 "Frequency", HFILL
}},
6315 { &hf_atn_cpdlc_uM158AtisCode
,
6316 { "uM158AtisCode", "atn-cpdlc.uM158AtisCode",
6317 FT_STRING
, BASE_NONE
, NULL
, 0,
6318 "ATISCode", HFILL
}},
6319 { &hf_atn_cpdlc_uM159ErrorInformation
,
6320 { "uM159ErrorInformation", "atn-cpdlc.uM159ErrorInformation",
6321 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ErrorInformation_vals
), 0,
6322 "ErrorInformation", HFILL
}},
6323 { &hf_atn_cpdlc_uM160Facility
,
6324 { "uM160Facility", "atn-cpdlc.uM160Facility",
6325 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Facility_vals
), 0,
6326 "Facility", HFILL
}},
6327 { &hf_atn_cpdlc_uM161NULL
,
6328 { "uM161NULL", "atn-cpdlc.uM161NULL_element",
6329 FT_NONE
, BASE_NONE
, NULL
, 0,
6331 { &hf_atn_cpdlc_uM162NULL
,
6332 { "uM162NULL", "atn-cpdlc.uM162NULL_element",
6333 FT_NONE
, BASE_NONE
, NULL
, 0,
6335 { &hf_atn_cpdlc_uM163FacilityDesignation
,
6336 { "uM163FacilityDesignation", "atn-cpdlc.uM163FacilityDesignation",
6337 FT_STRING
, BASE_NONE
, NULL
, 0,
6338 "FacilityDesignation", HFILL
}},
6339 { &hf_atn_cpdlc_uM164NULL
,
6340 { "uM164NULL", "atn-cpdlc.uM164NULL_element",
6341 FT_NONE
, BASE_NONE
, NULL
, 0,
6343 { &hf_atn_cpdlc_uM165NULL
,
6344 { "uM165NULL", "atn-cpdlc.uM165NULL_element",
6345 FT_NONE
, BASE_NONE
, NULL
, 0,
6347 { &hf_atn_cpdlc_uM166TrafficType
,
6348 { "uM166TrafficType", "atn-cpdlc.uM166TrafficType",
6349 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_TrafficType_vals
), 0,
6350 "TrafficType", HFILL
}},
6351 { &hf_atn_cpdlc_uM167NULL
,
6352 { "uM167NULL", "atn-cpdlc.uM167NULL_element",
6353 FT_NONE
, BASE_NONE
, NULL
, 0,
6355 { &hf_atn_cpdlc_uM168NULL
,
6356 { "uM168NULL", "atn-cpdlc.uM168NULL_element",
6357 FT_NONE
, BASE_NONE
, NULL
, 0,
6359 { &hf_atn_cpdlc_uM169FreeText
,
6360 { "uM169FreeText", "atn-cpdlc.uM169FreeText",
6361 FT_STRING
, BASE_NONE
, NULL
, 0,
6362 "FreeText", HFILL
}},
6363 { &hf_atn_cpdlc_uM170FreeText
,
6364 { "uM170FreeText", "atn-cpdlc.uM170FreeText",
6365 FT_STRING
, BASE_NONE
, NULL
, 0,
6366 "FreeText", HFILL
}},
6367 { &hf_atn_cpdlc_uM171VerticalRate
,
6368 { "uM171VerticalRate", "atn-cpdlc.uM171VerticalRate",
6369 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalRate_vals
), 0,
6370 "VerticalRate", HFILL
}},
6371 { &hf_atn_cpdlc_uM172VerticalRate
,
6372 { "uM172VerticalRate", "atn-cpdlc.uM172VerticalRate",
6373 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalRate_vals
), 0,
6374 "VerticalRate", HFILL
}},
6375 { &hf_atn_cpdlc_uM173VerticalRate
,
6376 { "uM173VerticalRate", "atn-cpdlc.uM173VerticalRate",
6377 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalRate_vals
), 0,
6378 "VerticalRate", HFILL
}},
6379 { &hf_atn_cpdlc_uM174VerticalRate
,
6380 { "uM174VerticalRate", "atn-cpdlc.uM174VerticalRate",
6381 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalRate_vals
), 0,
6382 "VerticalRate", HFILL
}},
6383 { &hf_atn_cpdlc_uM175Level
,
6384 { "uM175Level", "atn-cpdlc.uM175Level",
6385 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6387 { &hf_atn_cpdlc_uM176NULL
,
6388 { "uM176NULL", "atn-cpdlc.uM176NULL_element",
6389 FT_NONE
, BASE_NONE
, NULL
, 0,
6391 { &hf_atn_cpdlc_uM177NULL
,
6392 { "uM177NULL", "atn-cpdlc.uM177NULL_element",
6393 FT_NONE
, BASE_NONE
, NULL
, 0,
6395 { &hf_atn_cpdlc_uM178NULL
,
6396 { "uM178NULL", "atn-cpdlc.uM178NULL_element",
6397 FT_NONE
, BASE_NONE
, NULL
, 0,
6399 { &hf_atn_cpdlc_uM179NULL
,
6400 { "uM179NULL", "atn-cpdlc.uM179NULL_element",
6401 FT_NONE
, BASE_NONE
, NULL
, 0,
6403 { &hf_atn_cpdlc_uM180LevelLevel
,
6404 { "uM180LevelLevel", "atn-cpdlc.uM180LevelLevel",
6405 FT_UINT32
, BASE_DEC
, NULL
, 0,
6406 "LevelLevel", HFILL
}},
6407 { &hf_atn_cpdlc_uM181ToFromPosition
,
6408 { "uM181ToFromPosition", "atn-cpdlc.uM181ToFromPosition_element",
6409 FT_NONE
, BASE_NONE
, NULL
, 0,
6410 "ToFromPosition", HFILL
}},
6411 { &hf_atn_cpdlc_uM182NULL
,
6412 { "uM182NULL", "atn-cpdlc.uM182NULL_element",
6413 FT_NONE
, BASE_NONE
, NULL
, 0,
6415 { &hf_atn_cpdlc_uM183FreeText
,
6416 { "uM183FreeText", "atn-cpdlc.uM183FreeText",
6417 FT_STRING
, BASE_NONE
, NULL
, 0,
6418 "FreeText", HFILL
}},
6419 { &hf_atn_cpdlc_uM184TimeToFromPosition
,
6420 { "uM184TimeToFromPosition", "atn-cpdlc.uM184TimeToFromPosition_element",
6421 FT_NONE
, BASE_NONE
, NULL
, 0,
6422 "TimeToFromPosition", HFILL
}},
6423 { &hf_atn_cpdlc_uM185PositionLevel
,
6424 { "uM185PositionLevel", "atn-cpdlc.uM185PositionLevel_element",
6425 FT_NONE
, BASE_NONE
, NULL
, 0,
6426 "PositionLevel", HFILL
}},
6427 { &hf_atn_cpdlc_uM186PositionLevel
,
6428 { "uM186PositionLevel", "atn-cpdlc.uM186PositionLevel_element",
6429 FT_NONE
, BASE_NONE
, NULL
, 0,
6430 "PositionLevel", HFILL
}},
6431 { &hf_atn_cpdlc_uM187FreeText
,
6432 { "uM187FreeText", "atn-cpdlc.uM187FreeText",
6433 FT_STRING
, BASE_NONE
, NULL
, 0,
6434 "FreeText", HFILL
}},
6435 { &hf_atn_cpdlc_uM188PositionSpeed
,
6436 { "uM188PositionSpeed", "atn-cpdlc.uM188PositionSpeed_element",
6437 FT_NONE
, BASE_NONE
, NULL
, 0,
6438 "PositionSpeed", HFILL
}},
6439 { &hf_atn_cpdlc_uM189Speed
,
6440 { "uM189Speed", "atn-cpdlc.uM189Speed",
6441 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6443 { &hf_atn_cpdlc_uM190Degrees
,
6444 { "uM190Degrees", "atn-cpdlc.uM190Degrees",
6445 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6446 "Degrees", HFILL
}},
6447 { &hf_atn_cpdlc_uM191NULL
,
6448 { "uM191NULL", "atn-cpdlc.uM191NULL_element",
6449 FT_NONE
, BASE_NONE
, NULL
, 0,
6451 { &hf_atn_cpdlc_uM192LevelTime
,
6452 { "uM192LevelTime", "atn-cpdlc.uM192LevelTime_element",
6453 FT_NONE
, BASE_NONE
, NULL
, 0,
6454 "LevelTime", HFILL
}},
6455 { &hf_atn_cpdlc_uM193NULL
,
6456 { "uM193NULL", "atn-cpdlc.uM193NULL_element",
6457 FT_NONE
, BASE_NONE
, NULL
, 0,
6459 { &hf_atn_cpdlc_uM194FreeText
,
6460 { "uM194FreeText", "atn-cpdlc.uM194FreeText",
6461 FT_STRING
, BASE_NONE
, NULL
, 0,
6462 "FreeText", HFILL
}},
6463 { &hf_atn_cpdlc_uM195FreeText
,
6464 { "uM195FreeText", "atn-cpdlc.uM195FreeText",
6465 FT_STRING
, BASE_NONE
, NULL
, 0,
6466 "FreeText", HFILL
}},
6467 { &hf_atn_cpdlc_uM196FreeText
,
6468 { "uM196FreeText", "atn-cpdlc.uM196FreeText",
6469 FT_STRING
, BASE_NONE
, NULL
, 0,
6470 "FreeText", HFILL
}},
6471 { &hf_atn_cpdlc_uM197FreeText
,
6472 { "uM197FreeText", "atn-cpdlc.uM197FreeText",
6473 FT_STRING
, BASE_NONE
, NULL
, 0,
6474 "FreeText", HFILL
}},
6475 { &hf_atn_cpdlc_uM198FreeText
,
6476 { "uM198FreeText", "atn-cpdlc.uM198FreeText",
6477 FT_STRING
, BASE_NONE
, NULL
, 0,
6478 "FreeText", HFILL
}},
6479 { &hf_atn_cpdlc_uM199FreeText
,
6480 { "uM199FreeText", "atn-cpdlc.uM199FreeText",
6481 FT_STRING
, BASE_NONE
, NULL
, 0,
6482 "FreeText", HFILL
}},
6483 { &hf_atn_cpdlc_uM200NULL
,
6484 { "uM200NULL", "atn-cpdlc.uM200NULL_element",
6485 FT_NONE
, BASE_NONE
, NULL
, 0,
6487 { &hf_atn_cpdlc_uM201NULL
,
6488 { "uM201NULL", "atn-cpdlc.uM201NULL_element",
6489 FT_NONE
, BASE_NONE
, NULL
, 0,
6491 { &hf_atn_cpdlc_uM202NULL
,
6492 { "uM202NULL", "atn-cpdlc.uM202NULL_element",
6493 FT_NONE
, BASE_NONE
, NULL
, 0,
6495 { &hf_atn_cpdlc_uM203FreeText
,
6496 { "uM203FreeText", "atn-cpdlc.uM203FreeText",
6497 FT_STRING
, BASE_NONE
, NULL
, 0,
6498 "FreeText", HFILL
}},
6499 { &hf_atn_cpdlc_uM204FreeText
,
6500 { "uM204FreeText", "atn-cpdlc.uM204FreeText",
6501 FT_STRING
, BASE_NONE
, NULL
, 0,
6502 "FreeText", HFILL
}},
6503 { &hf_atn_cpdlc_uM205FreeText
,
6504 { "uM205FreeText", "atn-cpdlc.uM205FreeText",
6505 FT_STRING
, BASE_NONE
, NULL
, 0,
6506 "FreeText", HFILL
}},
6507 { &hf_atn_cpdlc_uM206FreeText
,
6508 { "uM206FreeText", "atn-cpdlc.uM206FreeText",
6509 FT_STRING
, BASE_NONE
, NULL
, 0,
6510 "FreeText", HFILL
}},
6511 { &hf_atn_cpdlc_uM207FreeText
,
6512 { "uM207FreeText", "atn-cpdlc.uM207FreeText",
6513 FT_STRING
, BASE_NONE
, NULL
, 0,
6514 "FreeText", HFILL
}},
6515 { &hf_atn_cpdlc_uM208FreeText
,
6516 { "uM208FreeText", "atn-cpdlc.uM208FreeText",
6517 FT_STRING
, BASE_NONE
, NULL
, 0,
6518 "FreeText", HFILL
}},
6519 { &hf_atn_cpdlc_uM209LevelPosition
,
6520 { "uM209LevelPosition", "atn-cpdlc.uM209LevelPosition_element",
6521 FT_NONE
, BASE_NONE
, NULL
, 0,
6522 "LevelPosition", HFILL
}},
6523 { &hf_atn_cpdlc_uM210Position
,
6524 { "uM210Position", "atn-cpdlc.uM210Position",
6525 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6526 "Position", HFILL
}},
6527 { &hf_atn_cpdlc_uM211NULL
,
6528 { "uM211NULL", "atn-cpdlc.uM211NULL_element",
6529 FT_NONE
, BASE_NONE
, NULL
, 0,
6531 { &hf_atn_cpdlc_uM212FacilityDesignationATISCode
,
6532 { "uM212FacilityDesignationATISCode", "atn-cpdlc.uM212FacilityDesignationATISCode_element",
6533 FT_NONE
, BASE_NONE
, NULL
, 0,
6534 "FacilityDesignationATISCode", HFILL
}},
6535 { &hf_atn_cpdlc_uM213FacilityDesignationAltimeter
,
6536 { "uM213FacilityDesignationAltimeter", "atn-cpdlc.uM213FacilityDesignationAltimeter_element",
6537 FT_NONE
, BASE_NONE
, NULL
, 0,
6538 "FacilityDesignationAltimeter", HFILL
}},
6539 { &hf_atn_cpdlc_uM214RunwayRVR
,
6540 { "uM214RunwayRVR", "atn-cpdlc.uM214RunwayRVR_element",
6541 FT_NONE
, BASE_NONE
, NULL
, 0,
6542 "RunwayRVR", HFILL
}},
6543 { &hf_atn_cpdlc_uM215DirectionDegrees
,
6544 { "uM215DirectionDegrees", "atn-cpdlc.uM215DirectionDegrees_element",
6545 FT_NONE
, BASE_NONE
, NULL
, 0,
6546 "DirectionDegrees", HFILL
}},
6547 { &hf_atn_cpdlc_uM216NULL
,
6548 { "uM216NULL", "atn-cpdlc.uM216NULL_element",
6549 FT_NONE
, BASE_NONE
, NULL
, 0,
6551 { &hf_atn_cpdlc_uM217NULL
,
6552 { "uM217NULL", "atn-cpdlc.uM217NULL_element",
6553 FT_NONE
, BASE_NONE
, NULL
, 0,
6555 { &hf_atn_cpdlc_uM218NULL
,
6556 { "uM218NULL", "atn-cpdlc.uM218NULL_element",
6557 FT_NONE
, BASE_NONE
, NULL
, 0,
6559 { &hf_atn_cpdlc_uM219Level
,
6560 { "uM219Level", "atn-cpdlc.uM219Level",
6561 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6563 { &hf_atn_cpdlc_uM220Level
,
6564 { "uM220Level", "atn-cpdlc.uM220Level",
6565 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6567 { &hf_atn_cpdlc_uM221Degrees
,
6568 { "uM221Degrees", "atn-cpdlc.uM221Degrees",
6569 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6570 "Degrees", HFILL
}},
6571 { &hf_atn_cpdlc_uM222NULL
,
6572 { "uM222NULL", "atn-cpdlc.uM222NULL_element",
6573 FT_NONE
, BASE_NONE
, NULL
, 0,
6575 { &hf_atn_cpdlc_uM223NULL
,
6576 { "uM223NULL", "atn-cpdlc.uM223NULL_element",
6577 FT_NONE
, BASE_NONE
, NULL
, 0,
6579 { &hf_atn_cpdlc_uM224NULL
,
6580 { "uM224NULL", "atn-cpdlc.uM224NULL_element",
6581 FT_NONE
, BASE_NONE
, NULL
, 0,
6583 { &hf_atn_cpdlc_uM225NULL
,
6584 { "uM225NULL", "atn-cpdlc.uM225NULL_element",
6585 FT_NONE
, BASE_NONE
, NULL
, 0,
6587 { &hf_atn_cpdlc_uM226Time
,
6588 { "uM226Time", "atn-cpdlc.uM226Time_element",
6589 FT_NONE
, BASE_NONE
, NULL
, 0,
6591 { &hf_atn_cpdlc_uM227NULL
,
6592 { "uM227NULL", "atn-cpdlc.uM227NULL_element",
6593 FT_NONE
, BASE_NONE
, NULL
, 0,
6595 { &hf_atn_cpdlc_uM228Position
,
6596 { "uM228Position", "atn-cpdlc.uM228Position",
6597 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6598 "Position", HFILL
}},
6599 { &hf_atn_cpdlc_uM229NULL
,
6600 { "uM229NULL", "atn-cpdlc.uM229NULL_element",
6601 FT_NONE
, BASE_NONE
, NULL
, 0,
6603 { &hf_atn_cpdlc_uM230NULL
,
6604 { "uM230NULL", "atn-cpdlc.uM230NULL_element",
6605 FT_NONE
, BASE_NONE
, NULL
, 0,
6607 { &hf_atn_cpdlc_uM231NULL
,
6608 { "uM231NULL", "atn-cpdlc.uM231NULL_element",
6609 FT_NONE
, BASE_NONE
, NULL
, 0,
6611 { &hf_atn_cpdlc_uM232NULL
,
6612 { "uM232NULL", "atn-cpdlc.uM232NULL_element",
6613 FT_NONE
, BASE_NONE
, NULL
, 0,
6615 { &hf_atn_cpdlc_uM233NULL
,
6616 { "uM233NULL", "atn-cpdlc.uM233NULL_element",
6617 FT_NONE
, BASE_NONE
, NULL
, 0,
6619 { &hf_atn_cpdlc_uM234NULL
,
6620 { "uM234NULL", "atn-cpdlc.uM234NULL_element",
6621 FT_NONE
, BASE_NONE
, NULL
, 0,
6623 { &hf_atn_cpdlc_uM235NULL
,
6624 { "uM235NULL", "atn-cpdlc.uM235NULL_element",
6625 FT_NONE
, BASE_NONE
, NULL
, 0,
6627 { &hf_atn_cpdlc_uM236NULL
,
6628 { "uM236NULL", "atn-cpdlc.uM236NULL_element",
6629 FT_NONE
, BASE_NONE
, NULL
, 0,
6631 { &hf_atn_cpdlc_uM237NULL
,
6632 { "uM237NULL", "atn-cpdlc.uM237NULL_element",
6633 FT_NONE
, BASE_NONE
, NULL
, 0,
6635 { &hf_atn_cpdlc_dM0NULL
,
6636 { "dM0NULL", "atn-cpdlc.dM0NULL_element",
6637 FT_NONE
, BASE_NONE
, NULL
, 0,
6639 { &hf_atn_cpdlc_dM1NULL
,
6640 { "dM1NULL", "atn-cpdlc.dM1NULL_element",
6641 FT_NONE
, BASE_NONE
, NULL
, 0,
6643 { &hf_atn_cpdlc_dM2NULL
,
6644 { "dM2NULL", "atn-cpdlc.dM2NULL_element",
6645 FT_NONE
, BASE_NONE
, NULL
, 0,
6647 { &hf_atn_cpdlc_dM3NULL
,
6648 { "dM3NULL", "atn-cpdlc.dM3NULL_element",
6649 FT_NONE
, BASE_NONE
, NULL
, 0,
6651 { &hf_atn_cpdlc_dM4NULL
,
6652 { "dM4NULL", "atn-cpdlc.dM4NULL_element",
6653 FT_NONE
, BASE_NONE
, NULL
, 0,
6655 { &hf_atn_cpdlc_dM5NULL
,
6656 { "dM5NULL", "atn-cpdlc.dM5NULL_element",
6657 FT_NONE
, BASE_NONE
, NULL
, 0,
6659 { &hf_atn_cpdlc_dM6Level
,
6660 { "dM6Level", "atn-cpdlc.dM6Level",
6661 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6663 { &hf_atn_cpdlc_dM7LevelLevel
,
6664 { "dM7LevelLevel", "atn-cpdlc.dM7LevelLevel",
6665 FT_UINT32
, BASE_DEC
, NULL
, 0,
6666 "LevelLevel", HFILL
}},
6667 { &hf_atn_cpdlc_dM8Level
,
6668 { "dM8Level", "atn-cpdlc.dM8Level",
6669 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6671 { &hf_atn_cpdlc_dM9Level
,
6672 { "dM9Level", "atn-cpdlc.dM9Level",
6673 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6675 { &hf_atn_cpdlc_dM10Level
,
6676 { "dM10Level", "atn-cpdlc.dM10Level",
6677 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6679 { &hf_atn_cpdlc_dM11PositionLevel
,
6680 { "dM11PositionLevel", "atn-cpdlc.dM11PositionLevel_element",
6681 FT_NONE
, BASE_NONE
, NULL
, 0,
6682 "PositionLevel", HFILL
}},
6683 { &hf_atn_cpdlc_dM12PositionLevel
,
6684 { "dM12PositionLevel", "atn-cpdlc.dM12PositionLevel_element",
6685 FT_NONE
, BASE_NONE
, NULL
, 0,
6686 "PositionLevel", HFILL
}},
6687 { &hf_atn_cpdlc_dM13TimeLevel
,
6688 { "dM13TimeLevel", "atn-cpdlc.dM13TimeLevel_element",
6689 FT_NONE
, BASE_NONE
, NULL
, 0,
6690 "TimeLevel", HFILL
}},
6691 { &hf_atn_cpdlc_dM14TimeLevel
,
6692 { "dM14TimeLevel", "atn-cpdlc.dM14TimeLevel_element",
6693 FT_NONE
, BASE_NONE
, NULL
, 0,
6694 "TimeLevel", HFILL
}},
6695 { &hf_atn_cpdlc_dM15DistanceSpecifiedDirection
,
6696 { "dM15DistanceSpecifiedDirection", "atn-cpdlc.dM15DistanceSpecifiedDirection_element",
6697 FT_NONE
, BASE_NONE
, NULL
, 0,
6698 "DistanceSpecifiedDirection", HFILL
}},
6699 { &hf_atn_cpdlc_dM16PositionDistanceSpecifiedDirection
,
6700 { "dM16PositionDistanceSpecifiedDirection", "atn-cpdlc.dM16PositionDistanceSpecifiedDirection_element",
6701 FT_NONE
, BASE_NONE
, NULL
, 0,
6702 "PositionDistanceSpecifiedDirection", HFILL
}},
6703 { &hf_atn_cpdlc_dM17TimeDistanceSpecifiedDirection
,
6704 { "dM17TimeDistanceSpecifiedDirection", "atn-cpdlc.dM17TimeDistanceSpecifiedDirection_element",
6705 FT_NONE
, BASE_NONE
, NULL
, 0,
6706 "TimeDistanceSpecifiedDirection", HFILL
}},
6707 { &hf_atn_cpdlc_dM18Speed
,
6708 { "dM18Speed", "atn-cpdlc.dM18Speed",
6709 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6711 { &hf_atn_cpdlc_dM19SpeedSpeed
,
6712 { "dM19SpeedSpeed", "atn-cpdlc.dM19SpeedSpeed",
6713 FT_UINT32
, BASE_DEC
, NULL
, 0,
6714 "SpeedSpeed", HFILL
}},
6715 { &hf_atn_cpdlc_dM20NULL
,
6716 { "dM20NULL", "atn-cpdlc.dM20NULL_element",
6717 FT_NONE
, BASE_NONE
, NULL
, 0,
6719 { &hf_atn_cpdlc_dM21Frequency
,
6720 { "dM21Frequency", "atn-cpdlc.dM21Frequency",
6721 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Frequency_vals
), 0,
6722 "Frequency", HFILL
}},
6723 { &hf_atn_cpdlc_dM22Position
,
6724 { "dM22Position", "atn-cpdlc.dM22Position",
6725 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6726 "Position", HFILL
}},
6727 { &hf_atn_cpdlc_dM23ProcedureName
,
6728 { "dM23ProcedureName", "atn-cpdlc.dM23ProcedureName_element",
6729 FT_NONE
, BASE_NONE
, NULL
, 0,
6730 "ProcedureName", HFILL
}},
6731 { &hf_atn_cpdlc_dM24RouteClearance
,
6732 { "dM24RouteClearance", "atn-cpdlc.dM24RouteClearance",
6733 FT_UINT32
, BASE_DEC
, NULL
, 0,
6734 "RouteClearanceIndex", HFILL
}},
6735 { &hf_atn_cpdlc_dM25ClearanceType
,
6736 { "dM25ClearanceType", "atn-cpdlc.dM25ClearanceType",
6737 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ClearanceType_vals
), 0,
6738 "ClearanceType", HFILL
}},
6739 { &hf_atn_cpdlc_dM26PositionRouteClearance
,
6740 { "dM26PositionRouteClearance", "atn-cpdlc.dM26PositionRouteClearance_element",
6741 FT_NONE
, BASE_NONE
, NULL
, 0,
6742 "PositionRouteClearanceIndex", HFILL
}},
6743 { &hf_atn_cpdlc_dM27DistanceSpecifiedDirection
,
6744 { "dM27DistanceSpecifiedDirection", "atn-cpdlc.dM27DistanceSpecifiedDirection_element",
6745 FT_NONE
, BASE_NONE
, NULL
, 0,
6746 "DistanceSpecifiedDirection", HFILL
}},
6747 { &hf_atn_cpdlc_dM28Level
,
6748 { "dM28Level", "atn-cpdlc.dM28Level",
6749 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6751 { &hf_atn_cpdlc_dM29Level
,
6752 { "dM29Level", "atn-cpdlc.dM29Level",
6753 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6755 { &hf_atn_cpdlc_dM30Level
,
6756 { "dM30Level", "atn-cpdlc.dM30Level",
6757 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6759 { &hf_atn_cpdlc_dM31Position
,
6760 { "dM31Position", "atn-cpdlc.dM31Position",
6761 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6762 "Position", HFILL
}},
6763 { &hf_atn_cpdlc_dM32Level
,
6764 { "dM32Level", "atn-cpdlc.dM32Level",
6765 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6767 { &hf_atn_cpdlc_dM33Position
,
6768 { "dM33Position", "atn-cpdlc.dM33Position",
6769 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6770 "Position", HFILL
}},
6771 { &hf_atn_cpdlc_dM34Speed
,
6772 { "dM34Speed", "atn-cpdlc.dM34Speed",
6773 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6775 { &hf_atn_cpdlc_dM35Degrees
,
6776 { "dM35Degrees", "atn-cpdlc.dM35Degrees",
6777 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6778 "Degrees", HFILL
}},
6779 { &hf_atn_cpdlc_dM36Degrees
,
6780 { "dM36Degrees", "atn-cpdlc.dM36Degrees",
6781 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6782 "Degrees", HFILL
}},
6783 { &hf_atn_cpdlc_dM37Level
,
6784 { "dM37Level", "atn-cpdlc.dM37Level",
6785 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6787 { &hf_atn_cpdlc_dM38Level
,
6788 { "dM38Level", "atn-cpdlc.dM38Level",
6789 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6791 { &hf_atn_cpdlc_dM39Speed
,
6792 { "dM39Speed", "atn-cpdlc.dM39Speed",
6793 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6795 { &hf_atn_cpdlc_dM40RouteClearance
,
6796 { "dM40RouteClearance", "atn-cpdlc.dM40RouteClearance",
6797 FT_UINT32
, BASE_DEC
, NULL
, 0,
6798 "RouteClearanceIndex", HFILL
}},
6799 { &hf_atn_cpdlc_dM41NULL
,
6800 { "dM41NULL", "atn-cpdlc.dM41NULL_element",
6801 FT_NONE
, BASE_NONE
, NULL
, 0,
6803 { &hf_atn_cpdlc_dM42Position
,
6804 { "dM42Position", "atn-cpdlc.dM42Position",
6805 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6806 "Position", HFILL
}},
6807 { &hf_atn_cpdlc_dM43Time
,
6808 { "dM43Time", "atn-cpdlc.dM43Time_element",
6809 FT_NONE
, BASE_NONE
, NULL
, 0,
6811 { &hf_atn_cpdlc_dM44Position
,
6812 { "dM44Position", "atn-cpdlc.dM44Position",
6813 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6814 "Position", HFILL
}},
6815 { &hf_atn_cpdlc_dM45Position
,
6816 { "dM45Position", "atn-cpdlc.dM45Position",
6817 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6818 "Position", HFILL
}},
6819 { &hf_atn_cpdlc_dM46Time
,
6820 { "dM46Time", "atn-cpdlc.dM46Time_element",
6821 FT_NONE
, BASE_NONE
, NULL
, 0,
6823 { &hf_atn_cpdlc_dM47Code
,
6824 { "dM47Code", "atn-cpdlc.dM47Code",
6825 FT_UINT32
, BASE_DEC
, NULL
, 0,
6827 { &hf_atn_cpdlc_dM48PositionReport
,
6828 { "dM48PositionReport", "atn-cpdlc.dM48PositionReport_element",
6829 FT_NONE
, BASE_NONE
, NULL
, 0,
6830 "PositionReport", HFILL
}},
6831 { &hf_atn_cpdlc_dM49Speed
,
6832 { "dM49Speed", "atn-cpdlc.dM49Speed",
6833 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6835 { &hf_atn_cpdlc_dM50SpeedSpeed
,
6836 { "dM50SpeedSpeed", "atn-cpdlc.dM50SpeedSpeed",
6837 FT_UINT32
, BASE_DEC
, NULL
, 0,
6838 "SpeedSpeed", HFILL
}},
6839 { &hf_atn_cpdlc_dM51NULL
,
6840 { "dM51NULL", "atn-cpdlc.dM51NULL_element",
6841 FT_NONE
, BASE_NONE
, NULL
, 0,
6843 { &hf_atn_cpdlc_dM52NULL
,
6844 { "dM52NULL", "atn-cpdlc.dM52NULL_element",
6845 FT_NONE
, BASE_NONE
, NULL
, 0,
6847 { &hf_atn_cpdlc_dM53NULL
,
6848 { "dM53NULL", "atn-cpdlc.dM53NULL_element",
6849 FT_NONE
, BASE_NONE
, NULL
, 0,
6851 { &hf_atn_cpdlc_dM54Level
,
6852 { "dM54Level", "atn-cpdlc.dM54Level",
6853 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6855 { &hf_atn_cpdlc_dM55NULL
,
6856 { "dM55NULL", "atn-cpdlc.dM55NULL_element",
6857 FT_NONE
, BASE_NONE
, NULL
, 0,
6859 { &hf_atn_cpdlc_dM56NULL
,
6860 { "dM56NULL", "atn-cpdlc.dM56NULL_element",
6861 FT_NONE
, BASE_NONE
, NULL
, 0,
6863 { &hf_atn_cpdlc_dM57RemainingFuelPersonsOnBoard
,
6864 { "dM57RemainingFuelPersonsOnBoard", "atn-cpdlc.dM57RemainingFuelPersonsOnBoard_element",
6865 FT_NONE
, BASE_NONE
, NULL
, 0,
6866 "RemainingFuelPersonsOnBoard", HFILL
}},
6867 { &hf_atn_cpdlc_dM58NULL
,
6868 { "dM58NULL", "atn-cpdlc.dM58NULL_element",
6869 FT_NONE
, BASE_NONE
, NULL
, 0,
6871 { &hf_atn_cpdlc_dM59PositionRouteClearance
,
6872 { "dM59PositionRouteClearance", "atn-cpdlc.dM59PositionRouteClearance_element",
6873 FT_NONE
, BASE_NONE
, NULL
, 0,
6874 "PositionRouteClearanceIndex", HFILL
}},
6875 { &hf_atn_cpdlc_dM60DistanceSpecifiedDirection
,
6876 { "dM60DistanceSpecifiedDirection", "atn-cpdlc.dM60DistanceSpecifiedDirection_element",
6877 FT_NONE
, BASE_NONE
, NULL
, 0,
6878 "DistanceSpecifiedDirection", HFILL
}},
6879 { &hf_atn_cpdlc_dM61Level
,
6880 { "dM61Level", "atn-cpdlc.dM61Level",
6881 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6883 { &hf_atn_cpdlc_dM62ErrorInformation
,
6884 { "dM62ErrorInformation", "atn-cpdlc.dM62ErrorInformation",
6885 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ErrorInformation_vals
), 0,
6886 "ErrorInformation", HFILL
}},
6887 { &hf_atn_cpdlc_dM63NULL
,
6888 { "dM63NULL", "atn-cpdlc.dM63NULL_element",
6889 FT_NONE
, BASE_NONE
, NULL
, 0,
6891 { &hf_atn_cpdlc_dM64FacilityDesignation
,
6892 { "dM64FacilityDesignation", "atn-cpdlc.dM64FacilityDesignation",
6893 FT_STRING
, BASE_NONE
, NULL
, 0,
6894 "FacilityDesignation", HFILL
}},
6895 { &hf_atn_cpdlc_dM65NULL
,
6896 { "dM65NULL", "atn-cpdlc.dM65NULL_element",
6897 FT_NONE
, BASE_NONE
, NULL
, 0,
6899 { &hf_atn_cpdlc_dM66NULL
,
6900 { "dM66NULL", "atn-cpdlc.dM66NULL_element",
6901 FT_NONE
, BASE_NONE
, NULL
, 0,
6903 { &hf_atn_cpdlc_dM67FreeText
,
6904 { "dM67FreeText", "atn-cpdlc.dM67FreeText",
6905 FT_STRING
, BASE_NONE
, NULL
, 0,
6906 "FreeText", HFILL
}},
6907 { &hf_atn_cpdlc_dM68FreeText
,
6908 { "dM68FreeText", "atn-cpdlc.dM68FreeText",
6909 FT_STRING
, BASE_NONE
, NULL
, 0,
6910 "FreeText", HFILL
}},
6911 { &hf_atn_cpdlc_dM69NULL
,
6912 { "dM69NULL", "atn-cpdlc.dM69NULL_element",
6913 FT_NONE
, BASE_NONE
, NULL
, 0,
6915 { &hf_atn_cpdlc_dM70Degrees
,
6916 { "dM70Degrees", "atn-cpdlc.dM70Degrees",
6917 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6918 "Degrees", HFILL
}},
6919 { &hf_atn_cpdlc_dM71Degrees
,
6920 { "dM71Degrees", "atn-cpdlc.dM71Degrees",
6921 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6922 "Degrees", HFILL
}},
6923 { &hf_atn_cpdlc_dM72Level
,
6924 { "dM72Level", "atn-cpdlc.dM72Level",
6925 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6927 { &hf_atn_cpdlc_dM73Versionnumber
,
6928 { "dM73Versionnumber", "atn-cpdlc.dM73Versionnumber",
6929 FT_UINT32
, BASE_DEC
, NULL
, 0,
6930 "VersionNumber", HFILL
}},
6931 { &hf_atn_cpdlc_dM74NULL
,
6932 { "dM74NULL", "atn-cpdlc.dM74NULL_element",
6933 FT_NONE
, BASE_NONE
, NULL
, 0,
6935 { &hf_atn_cpdlc_dM75NULL
,
6936 { "dM75NULL", "atn-cpdlc.dM75NULL_element",
6937 FT_NONE
, BASE_NONE
, NULL
, 0,
6939 { &hf_atn_cpdlc_dM76LevelLevel
,
6940 { "dM76LevelLevel", "atn-cpdlc.dM76LevelLevel",
6941 FT_UINT32
, BASE_DEC
, NULL
, 0,
6942 "LevelLevel", HFILL
}},
6943 { &hf_atn_cpdlc_dM77LevelLevel
,
6944 { "dM77LevelLevel", "atn-cpdlc.dM77LevelLevel",
6945 FT_UINT32
, BASE_DEC
, NULL
, 0,
6946 "LevelLevel", HFILL
}},
6947 { &hf_atn_cpdlc_dM78TimeDistanceToFromPosition
,
6948 { "dM78TimeDistanceToFromPosition", "atn-cpdlc.dM78TimeDistanceToFromPosition_element",
6949 FT_NONE
, BASE_NONE
, NULL
, 0,
6950 "TimeDistanceToFromPosition", HFILL
}},
6951 { &hf_atn_cpdlc_dM79AtisCode
,
6952 { "dM79AtisCode", "atn-cpdlc.dM79AtisCode",
6953 FT_STRING
, BASE_NONE
, NULL
, 0,
6954 "ATISCode", HFILL
}},
6955 { &hf_atn_cpdlc_dM80DistanceSpecifiedDirection
,
6956 { "dM80DistanceSpecifiedDirection", "atn-cpdlc.dM80DistanceSpecifiedDirection_element",
6957 FT_NONE
, BASE_NONE
, NULL
, 0,
6958 "DistanceSpecifiedDirection", HFILL
}},
6959 { &hf_atn_cpdlc_dM81LevelTime
,
6960 { "dM81LevelTime", "atn-cpdlc.dM81LevelTime_element",
6961 FT_NONE
, BASE_NONE
, NULL
, 0,
6962 "LevelTime", HFILL
}},
6963 { &hf_atn_cpdlc_dM82Level
,
6964 { "dM82Level", "atn-cpdlc.dM82Level",
6965 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6967 { &hf_atn_cpdlc_dM83SpeedTime
,
6968 { "dM83SpeedTime", "atn-cpdlc.dM83SpeedTime_element",
6969 FT_NONE
, BASE_NONE
, NULL
, 0,
6970 "SpeedTime", HFILL
}},
6971 { &hf_atn_cpdlc_dM84Speed
,
6972 { "dM84Speed", "atn-cpdlc.dM84Speed",
6973 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6975 { &hf_atn_cpdlc_dM85DistanceSpecifiedDirectionTime
,
6976 { "dM85DistanceSpecifiedDirectionTime", "atn-cpdlc.dM85DistanceSpecifiedDirectionTime_element",
6977 FT_NONE
, BASE_NONE
, NULL
, 0,
6978 "DistanceSpecifiedDirectionTime", HFILL
}},
6979 { &hf_atn_cpdlc_dM86DistanceSpecifiedDirection
,
6980 { "dM86DistanceSpecifiedDirection", "atn-cpdlc.dM86DistanceSpecifiedDirection_element",
6981 FT_NONE
, BASE_NONE
, NULL
, 0,
6982 "DistanceSpecifiedDirection", HFILL
}},
6983 { &hf_atn_cpdlc_dM87Level
,
6984 { "dM87Level", "atn-cpdlc.dM87Level",
6985 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6987 { &hf_atn_cpdlc_dM88Level
,
6988 { "dM88Level", "atn-cpdlc.dM88Level",
6989 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6991 { &hf_atn_cpdlc_dM89UnitnameFrequency
,
6992 { "dM89UnitnameFrequency", "atn-cpdlc.dM89UnitnameFrequency_element",
6993 FT_NONE
, BASE_NONE
, NULL
, 0,
6994 "UnitNameFrequency", HFILL
}},
6995 { &hf_atn_cpdlc_dM90FreeText
,
6996 { "dM90FreeText", "atn-cpdlc.dM90FreeText",
6997 FT_STRING
, BASE_NONE
, NULL
, 0,
6998 "FreeText", HFILL
}},
6999 { &hf_atn_cpdlc_dM91FreeText
,
7000 { "dM91FreeText", "atn-cpdlc.dM91FreeText",
7001 FT_STRING
, BASE_NONE
, NULL
, 0,
7002 "FreeText", HFILL
}},
7003 { &hf_atn_cpdlc_dM92FreeText
,
7004 { "dM92FreeText", "atn-cpdlc.dM92FreeText",
7005 FT_STRING
, BASE_NONE
, NULL
, 0,
7006 "FreeText", HFILL
}},
7007 { &hf_atn_cpdlc_dM93FreeText
,
7008 { "dM93FreeText", "atn-cpdlc.dM93FreeText",
7009 FT_STRING
, BASE_NONE
, NULL
, 0,
7010 "FreeText", HFILL
}},
7011 { &hf_atn_cpdlc_dM94FreeText
,
7012 { "dM94FreeText", "atn-cpdlc.dM94FreeText",
7013 FT_STRING
, BASE_NONE
, NULL
, 0,
7014 "FreeText", HFILL
}},
7015 { &hf_atn_cpdlc_dM95FreeText
,
7016 { "dM95FreeText", "atn-cpdlc.dM95FreeText",
7017 FT_STRING
, BASE_NONE
, NULL
, 0,
7018 "FreeText", HFILL
}},
7019 { &hf_atn_cpdlc_dM96FreeText
,
7020 { "dM96FreeText", "atn-cpdlc.dM96FreeText",
7021 FT_STRING
, BASE_NONE
, NULL
, 0,
7022 "FreeText", HFILL
}},
7023 { &hf_atn_cpdlc_dM97FreeText
,
7024 { "dM97FreeText", "atn-cpdlc.dM97FreeText",
7025 FT_STRING
, BASE_NONE
, NULL
, 0,
7026 "FreeText", HFILL
}},
7027 { &hf_atn_cpdlc_dM98FreeText
,
7028 { "dM98FreeText", "atn-cpdlc.dM98FreeText",
7029 FT_STRING
, BASE_NONE
, NULL
, 0,
7030 "FreeText", HFILL
}},
7031 { &hf_atn_cpdlc_dM99NULL
,
7032 { "dM99NULL", "atn-cpdlc.dM99NULL_element",
7033 FT_NONE
, BASE_NONE
, NULL
, 0,
7035 { &hf_atn_cpdlc_dM100NULL
,
7036 { "dM100NULL", "atn-cpdlc.dM100NULL_element",
7037 FT_NONE
, BASE_NONE
, NULL
, 0,
7039 { &hf_atn_cpdlc_dM101NULL
,
7040 { "dM101NULL", "atn-cpdlc.dM101NULL_element",
7041 FT_NONE
, BASE_NONE
, NULL
, 0,
7043 { &hf_atn_cpdlc_dM102NULL
,
7044 { "dM102NULL", "atn-cpdlc.dM102NULL_element",
7045 FT_NONE
, BASE_NONE
, NULL
, 0,
7047 { &hf_atn_cpdlc_dM103NULL
,
7048 { "dM103NULL", "atn-cpdlc.dM103NULL_element",
7049 FT_NONE
, BASE_NONE
, NULL
, 0,
7051 { &hf_atn_cpdlc_dM104PositionTime
,
7052 { "dM104PositionTime", "atn-cpdlc.dM104PositionTime_element",
7053 FT_NONE
, BASE_NONE
, NULL
, 0,
7054 "PositionTime", HFILL
}},
7055 { &hf_atn_cpdlc_dM105Airport
,
7056 { "dM105Airport", "atn-cpdlc.dM105Airport",
7057 FT_STRING
, BASE_NONE
, NULL
, 0,
7058 "Airport", HFILL
}},
7059 { &hf_atn_cpdlc_dM106Level
,
7060 { "dM106Level", "atn-cpdlc.dM106Level",
7061 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
7063 { &hf_atn_cpdlc_dM107NULL
,
7064 { "dM107NULL", "atn-cpdlc.dM107NULL_element",
7065 FT_NONE
, BASE_NONE
, NULL
, 0,
7067 { &hf_atn_cpdlc_dM108NULL
,
7068 { "dM108NULL", "atn-cpdlc.dM108NULL_element",
7069 FT_NONE
, BASE_NONE
, NULL
, 0,
7071 { &hf_atn_cpdlc_dM109Time
,
7072 { "dM109Time", "atn-cpdlc.dM109Time_element",
7073 FT_NONE
, BASE_NONE
, NULL
, 0,
7075 { &hf_atn_cpdlc_dM110Position
,
7076 { "dM110Position", "atn-cpdlc.dM110Position",
7077 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7078 "Position", HFILL
}},
7079 { &hf_atn_cpdlc_dM111TimePosition
,
7080 { "dM111TimePosition", "atn-cpdlc.dM111TimePosition_element",
7081 FT_NONE
, BASE_NONE
, NULL
, 0,
7082 "TimePosition", HFILL
}},
7083 { &hf_atn_cpdlc_dM112NULL
,
7084 { "dM112NULL", "atn-cpdlc.dM112NULL_element",
7085 FT_NONE
, BASE_NONE
, NULL
, 0,
7087 { &hf_atn_cpdlc_dM113SpeedTypeSpeedTypeSpeedTypeSpeed
,
7088 { "dM113SpeedTypeSpeedTypeSpeedTypeSpeed", "atn-cpdlc.dM113SpeedTypeSpeedTypeSpeedTypeSpeed_element",
7089 FT_NONE
, BASE_NONE
, NULL
, 0,
7090 "SpeedTypeSpeedTypeSpeedTypeSpeed", HFILL
}},
7091 { &hf_atn_cpdlc_altimeterEnglish
,
7092 { "altimeterEnglish", "atn-cpdlc.altimeterEnglish",
7093 FT_UINT32
, BASE_DEC
, NULL
, 0,
7095 { &hf_atn_cpdlc_altimeterMetric
,
7096 { "altimeterMetric", "atn-cpdlc.altimeterMetric",
7097 FT_UINT32
, BASE_DEC
, NULL
, 0,
7099 { &hf_atn_cpdlc_position
,
7100 { "position", "atn-cpdlc.position",
7101 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7103 { &hf_atn_cpdlc_aTWDistance
,
7104 { "aTWDistance", "atn-cpdlc.aTWDistance_element",
7105 FT_NONE
, BASE_NONE
, NULL
, 0,
7107 { &hf_atn_cpdlc_speed
,
7108 { "speed", "atn-cpdlc.speed",
7109 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
7111 { &hf_atn_cpdlc_aTWLevels
,
7112 { "aTWLevels", "atn-cpdlc.aTWLevels",
7113 FT_UINT32
, BASE_DEC
, NULL
, 0,
7114 "ATWLevelSequence", HFILL
}},
7115 { &hf_atn_cpdlc_atw
,
7116 { "atw", "atn-cpdlc.atw",
7117 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ATWLevelTolerance_vals
), 0,
7118 "ATWLevelTolerance", HFILL
}},
7119 { &hf_atn_cpdlc_level
,
7120 { "level", "atn-cpdlc.level",
7121 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
7123 { &hf_atn_cpdlc_ATWLevelSequence_item
,
7124 { "ATWLevel", "atn-cpdlc.ATWLevel_element",
7125 FT_NONE
, BASE_NONE
, NULL
, 0,
7127 { &hf_atn_cpdlc_atwDistanceTolerance
,
7128 { "atwDistanceTolerance", "atn-cpdlc.atwDistanceTolerance",
7129 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ATWDistanceTolerance_vals
), 0,
7131 { &hf_atn_cpdlc_distance
,
7132 { "distance", "atn-cpdlc.distance",
7133 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Distance_vals
), 0,
7135 { &hf_atn_cpdlc_Code_item
,
7136 { "CodeOctalDigit", "atn-cpdlc.CodeOctalDigit",
7137 FT_UINT32
, BASE_DEC
, NULL
, 0,
7139 { &hf_atn_cpdlc_time
,
7140 { "time", "atn-cpdlc.time_element",
7141 FT_NONE
, BASE_NONE
, NULL
, 0,
7143 { &hf_atn_cpdlc_timeTolerance
,
7144 { "timeTolerance", "atn-cpdlc.timeTolerance",
7145 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_TimeTolerance_vals
), 0,
7147 { &hf_atn_cpdlc_year
,
7148 { "year", "atn-cpdlc.year",
7149 FT_UINT32
, BASE_DEC
, NULL
, 0,
7151 { &hf_atn_cpdlc_month
,
7152 { "month", "atn-cpdlc.month",
7153 FT_UINT32
, BASE_DEC
, NULL
, 0,
7155 { &hf_atn_cpdlc_day
,
7156 { "day", "atn-cpdlc.day",
7157 FT_UINT32
, BASE_DEC
, NULL
, 0,
7159 { &hf_atn_cpdlc_date
,
7160 { "date", "atn-cpdlc.date_element",
7161 FT_NONE
, BASE_NONE
, NULL
, 0,
7163 { &hf_atn_cpdlc_timehhmmss
,
7164 { "timehhmmss", "atn-cpdlc.timehhmmss_element",
7165 FT_NONE
, BASE_NONE
, NULL
, 0,
7167 { &hf_atn_cpdlc_degreesMagnetic
,
7168 { "degreesMagnetic", "atn-cpdlc.degreesMagnetic",
7169 FT_UINT32
, BASE_DEC
, NULL
, 0,
7171 { &hf_atn_cpdlc_degreesTrue
,
7172 { "degreesTrue", "atn-cpdlc.degreesTrue",
7173 FT_UINT32
, BASE_DEC
, NULL
, 0,
7175 { &hf_atn_cpdlc_aircraftFlightIdentification
,
7176 { "aircraftFlightIdentification", "atn-cpdlc.aircraftFlightIdentification",
7177 FT_STRING
, BASE_NONE
, NULL
, 0,
7179 { &hf_atn_cpdlc_clearanceLimit
,
7180 { "clearanceLimit", "atn-cpdlc.clearanceLimit",
7181 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7182 "Position", HFILL
}},
7183 { &hf_atn_cpdlc_flightInformation
,
7184 { "flightInformation", "atn-cpdlc.flightInformation",
7185 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_FlightInformation_vals
), 0,
7187 { &hf_atn_cpdlc_furtherInstructions
,
7188 { "furtherInstructions", "atn-cpdlc.furtherInstructions_element",
7189 FT_NONE
, BASE_NONE
, NULL
, 0,
7191 { &hf_atn_cpdlc_direction
,
7192 { "direction", "atn-cpdlc.direction",
7193 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Direction_vals
), 0,
7195 { &hf_atn_cpdlc_degrees
,
7196 { "degrees", "atn-cpdlc.degrees",
7197 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
7199 { &hf_atn_cpdlc_distanceNm
,
7200 { "distanceNm", "atn-cpdlc.distanceNm",
7201 FT_UINT32
, BASE_DEC
, NULL
, 0,
7203 { &hf_atn_cpdlc_distanceKm
,
7204 { "distanceKm", "atn-cpdlc.distanceKm",
7205 FT_UINT32
, BASE_DEC
, NULL
, 0,
7207 { &hf_atn_cpdlc_distanceSpecifiedNm
,
7208 { "distanceSpecifiedNm", "atn-cpdlc.distanceSpecifiedNm",
7209 FT_UINT32
, BASE_DEC
, NULL
, 0,
7211 { &hf_atn_cpdlc_distanceSpecifiedKm
,
7212 { "distanceSpecifiedKm", "atn-cpdlc.distanceSpecifiedKm",
7213 FT_UINT32
, BASE_DEC
, NULL
, 0,
7215 { &hf_atn_cpdlc_distanceSpecified
,
7216 { "distanceSpecified", "atn-cpdlc.distanceSpecified",
7217 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_DistanceSpecified_vals
), 0,
7219 { &hf_atn_cpdlc_distanceSpecifiedDirection
,
7220 { "distanceSpecifiedDirection", "atn-cpdlc.distanceSpecifiedDirection_element",
7221 FT_NONE
, BASE_NONE
, NULL
, 0,
7223 { &hf_atn_cpdlc_noFacility
,
7224 { "noFacility", "atn-cpdlc.noFacility_element",
7225 FT_NONE
, BASE_NONE
, NULL
, 0,
7227 { &hf_atn_cpdlc_facilityDesignation
,
7228 { "facilityDesignation", "atn-cpdlc.facilityDesignation",
7229 FT_STRING
, BASE_NONE
, NULL
, 0,
7231 { &hf_atn_cpdlc_altimeter
,
7232 { "altimeter", "atn-cpdlc.altimeter",
7233 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Altimeter_vals
), 0,
7235 { &hf_atn_cpdlc_aTISCode
,
7236 { "aTISCode", "atn-cpdlc.aTISCode",
7237 FT_STRING
, BASE_NONE
, NULL
, 0,
7239 { &hf_atn_cpdlc_fixname_name
,
7240 { "name", "atn-cpdlc.name",
7241 FT_STRING
, BASE_NONE
, NULL
, 0,
7243 { &hf_atn_cpdlc_latlon
,
7244 { "latlon", "atn-cpdlc.latlon_element",
7245 FT_NONE
, BASE_NONE
, NULL
, 0,
7246 "LatitudeLongitude", HFILL
}},
7247 { &hf_atn_cpdlc_routeOfFlight
,
7248 { "routeOfFlight", "atn-cpdlc.routeOfFlight",
7249 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_RouteInformation_vals
), 0,
7250 "RouteInformation", HFILL
}},
7251 { &hf_atn_cpdlc_levelsOfFlight
,
7252 { "levelsOfFlight", "atn-cpdlc.levelsOfFlight",
7253 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LevelsOfFlight_vals
), 0,
7255 { &hf_atn_cpdlc_routeAndLevels
,
7256 { "routeAndLevels", "atn-cpdlc.routeAndLevels_element",
7257 FT_NONE
, BASE_NONE
, NULL
, 0,
7259 { &hf_atn_cpdlc_frequencyhf
,
7260 { "frequencyhf", "atn-cpdlc.frequencyhf",
7261 FT_UINT32
, BASE_DEC
, NULL
, 0,
7263 { &hf_atn_cpdlc_frequencyvhf
,
7264 { "frequencyvhf", "atn-cpdlc.frequencyvhf",
7265 FT_UINT32
, BASE_DEC
, NULL
, 0,
7267 { &hf_atn_cpdlc_frequencyuhf
,
7268 { "frequencyuhf", "atn-cpdlc.frequencyuhf",
7269 FT_UINT32
, BASE_DEC
, NULL
, 0,
7271 { &hf_atn_cpdlc_frequencysatchannel
,
7272 { "frequencysatchannel", "atn-cpdlc.frequencysatchannel",
7273 FT_STRING
, BASE_NONE
, NULL
, 0,
7275 { &hf_atn_cpdlc_code
,
7276 { "code", "atn-cpdlc.code",
7277 FT_UINT32
, BASE_DEC
, NULL
, 0,
7279 { &hf_atn_cpdlc_frequencyDeparture
,
7280 { "frequencyDeparture", "atn-cpdlc.frequencyDeparture_element",
7281 FT_NONE
, BASE_NONE
, NULL
, 0,
7282 "UnitNameFrequency", HFILL
}},
7283 { &hf_atn_cpdlc_clearanceExpiryTime
,
7284 { "clearanceExpiryTime", "atn-cpdlc.clearanceExpiryTime_element",
7285 FT_NONE
, BASE_NONE
, NULL
, 0,
7287 { &hf_atn_cpdlc_airportDeparture
,
7288 { "airportDeparture", "atn-cpdlc.airportDeparture",
7289 FT_STRING
, BASE_NONE
, NULL
, 0,
7290 "Airport", HFILL
}},
7291 { &hf_atn_cpdlc_airportDestination
,
7292 { "airportDestination", "atn-cpdlc.airportDestination",
7293 FT_STRING
, BASE_NONE
, NULL
, 0,
7294 "Airport", HFILL
}},
7295 { &hf_atn_cpdlc_timeDeparture
,
7296 { "timeDeparture", "atn-cpdlc.timeDeparture_element",
7297 FT_NONE
, BASE_NONE
, NULL
, 0,
7299 { &hf_atn_cpdlc_runwayDeparture
,
7300 { "runwayDeparture", "atn-cpdlc.runwayDeparture_element",
7301 FT_NONE
, BASE_NONE
, NULL
, 0,
7303 { &hf_atn_cpdlc_revisionNumber
,
7304 { "revisionNumber", "atn-cpdlc.revisionNumber",
7305 FT_UINT32
, BASE_DEC
, NULL
, 0,
7307 { &hf_atn_cpdlc_holdatwaypointspeedlow
,
7308 { "holdatwaypointspeedlow", "atn-cpdlc.holdatwaypointspeedlow",
7309 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
7311 { &hf_atn_cpdlc_aTWlevel
,
7312 { "aTWlevel", "atn-cpdlc.aTWlevel_element",
7313 FT_NONE
, BASE_NONE
, NULL
, 0,
7315 { &hf_atn_cpdlc_holdatwaypointspeedhigh
,
7316 { "holdatwaypointspeedhigh", "atn-cpdlc.holdatwaypointspeedhigh",
7317 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
7319 { &hf_atn_cpdlc_eFCtime
,
7320 { "eFCtime", "atn-cpdlc.eFCtime_element",
7321 FT_NONE
, BASE_NONE
, NULL
, 0,
7323 { &hf_atn_cpdlc_legtype
,
7324 { "legtype", "atn-cpdlc.legtype",
7325 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LegType_vals
), 0,
7327 { &hf_atn_cpdlc_legType
,
7328 { "legType", "atn-cpdlc.legType",
7329 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LegType_vals
), 0,
7331 { &hf_atn_cpdlc_fromSelection
,
7332 { "fromSelection", "atn-cpdlc.fromSelection",
7333 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_InterceptCourseFromSelection_vals
), 0,
7334 "InterceptCourseFromSelection", HFILL
}},
7335 { &hf_atn_cpdlc_publishedIdentifier
,
7336 { "publishedIdentifier", "atn-cpdlc.publishedIdentifier",
7337 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_PublishedIdentifier_vals
), 0,
7339 { &hf_atn_cpdlc_latitudeLongitude
,
7340 { "latitudeLongitude", "atn-cpdlc.latitudeLongitude_element",
7341 FT_NONE
, BASE_NONE
, NULL
, 0,
7343 { &hf_atn_cpdlc_placeBearingPlaceBearing
,
7344 { "placeBearingPlaceBearing", "atn-cpdlc.placeBearingPlaceBearing",
7345 FT_UINT32
, BASE_DEC
, NULL
, 0,
7347 { &hf_atn_cpdlc_placeBearingDistance
,
7348 { "placeBearingDistance", "atn-cpdlc.placeBearingDistance_element",
7349 FT_NONE
, BASE_NONE
, NULL
, 0,
7351 { &hf_atn_cpdlc_latitudeType
,
7352 { "latitudeType", "atn-cpdlc.latitudeType",
7353 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LatitudeType_vals
), 0,
7355 { &hf_atn_cpdlc_latitudeDirection
,
7356 { "latitudeDirection", "atn-cpdlc.latitudeDirection",
7357 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LatitudeDirection_vals
), 0,
7359 { &hf_atn_cpdlc_latitudeWholeDegrees
,
7360 { "latitudeWholeDegrees", "atn-cpdlc.latitudeWholeDegrees",
7361 FT_UINT32
, BASE_DEC
, NULL
, 0,
7363 { &hf_atn_cpdlc_minutesLatLon
,
7364 { "minutesLatLon", "atn-cpdlc.minutesLatLon",
7365 FT_UINT32
, BASE_DEC
, NULL
, 0,
7367 { &hf_atn_cpdlc_latlonWholeMinutes
,
7368 { "latlonWholeMinutes", "atn-cpdlc.latlonWholeMinutes",
7369 FT_UINT32
, BASE_DEC
, NULL
, 0,
7371 { &hf_atn_cpdlc_secondsLatLon
,
7372 { "secondsLatLon", "atn-cpdlc.secondsLatLon",
7373 FT_UINT32
, BASE_DEC
, NULL
, 0,
7375 { &hf_atn_cpdlc_latitude
,
7376 { "latitude", "atn-cpdlc.latitude_element",
7377 FT_NONE
, BASE_NONE
, NULL
, 0,
7379 { &hf_atn_cpdlc_longitude
,
7380 { "longitude", "atn-cpdlc.longitude_element",
7381 FT_NONE
, BASE_NONE
, NULL
, 0,
7383 { &hf_atn_cpdlc_latitudeDegrees
,
7384 { "latitudeDegrees", "atn-cpdlc.latitudeDegrees",
7385 FT_UINT32
, BASE_DEC
, NULL
, 0,
7387 { &hf_atn_cpdlc_latitudeDegreesMinutes
,
7388 { "latitudeDegreesMinutes", "atn-cpdlc.latitudeDegreesMinutes_element",
7389 FT_NONE
, BASE_NONE
, NULL
, 0,
7391 { &hf_atn_cpdlc_latitudeDMS
,
7392 { "latitudeDMS", "atn-cpdlc.latitudeDMS_element",
7393 FT_NONE
, BASE_NONE
, NULL
, 0,
7394 "LatitudeDegreesMinutesSeconds", HFILL
}},
7395 { &hf_atn_cpdlc_latitudeReportingPoints
,
7396 { "latitudeReportingPoints", "atn-cpdlc.latitudeReportingPoints_element",
7397 FT_NONE
, BASE_NONE
, NULL
, 0,
7399 { &hf_atn_cpdlc_longitudeReportingPoints
,
7400 { "longitudeReportingPoints", "atn-cpdlc.longitudeReportingPoints_element",
7401 FT_NONE
, BASE_NONE
, NULL
, 0,
7403 { &hf_atn_cpdlc_legDistanceEnglish
,
7404 { "legDistanceEnglish", "atn-cpdlc.legDistanceEnglish",
7405 FT_UINT32
, BASE_DEC
, NULL
, 0,
7407 { &hf_atn_cpdlc_legDistanceMetric
,
7408 { "legDistanceMetric", "atn-cpdlc.legDistanceMetric",
7409 FT_UINT32
, BASE_DEC
, NULL
, 0,
7411 { &hf_atn_cpdlc_legDistance
,
7412 { "legDistance", "atn-cpdlc.legDistance",
7413 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LegDistance_vals
), 0,
7415 { &hf_atn_cpdlc_legTime
,
7416 { "legTime", "atn-cpdlc.legTime",
7417 FT_UINT32
, BASE_DEC
, NULL
, 0,
7419 { &hf_atn_cpdlc_singleLevel
,
7420 { "singleLevel", "atn-cpdlc.singleLevel",
7421 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LevelType_vals
), 0,
7422 "LevelType", HFILL
}},
7423 { &hf_atn_cpdlc_blockLevel
,
7424 { "blockLevel", "atn-cpdlc.blockLevel",
7425 FT_UINT32
, BASE_DEC
, NULL
, 0,
7426 "SEQUENCE_SIZE_2_OF_LevelType", HFILL
}},
7427 { &hf_atn_cpdlc_blockLevel_item
,
7428 { "LevelType", "atn-cpdlc.LevelType",
7429 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LevelType_vals
), 0,
7431 { &hf_atn_cpdlc_LevelLevel_item
,
7432 { "Level", "atn-cpdlc.Level",
7433 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
7435 { &hf_atn_cpdlc_procedureName
,
7436 { "procedureName", "atn-cpdlc.procedureName_element",
7437 FT_NONE
, BASE_NONE
, NULL
, 0,
7439 { &hf_atn_cpdlc_levelProcedureName
,
7440 { "levelProcedureName", "atn-cpdlc.levelProcedureName_element",
7441 FT_NONE
, BASE_NONE
, NULL
, 0,
7443 { &hf_atn_cpdlc_levelspeed_speed
,
7444 { "speed", "atn-cpdlc.speed",
7445 FT_UINT32
, BASE_DEC
, NULL
, 0,
7446 "SpeedSpeed", HFILL
}},
7447 { &hf_atn_cpdlc_speeds
,
7448 { "speeds", "atn-cpdlc.speeds",
7449 FT_UINT32
, BASE_DEC
, NULL
, 0,
7450 "SpeedSpeed", HFILL
}},
7451 { &hf_atn_cpdlc_levelFeet
,
7452 { "levelFeet", "atn-cpdlc.levelFeet",
7453 FT_INT32
, BASE_DEC
, NULL
, 0,
7455 { &hf_atn_cpdlc_levelMeters
,
7456 { "levelMeters", "atn-cpdlc.levelMeters",
7457 FT_INT32
, BASE_DEC
, NULL
, 0,
7459 { &hf_atn_cpdlc_levelFlightLevel
,
7460 { "levelFlightLevel", "atn-cpdlc.levelFlightLevel",
7461 FT_UINT32
, BASE_DEC
, NULL
, 0,
7463 { &hf_atn_cpdlc_levelFlightLevelMetric
,
7464 { "levelFlightLevelMetric", "atn-cpdlc.levelFlightLevelMetric",
7465 FT_UINT32
, BASE_DEC
, NULL
, 0,
7467 { &hf_atn_cpdlc_longitudeType
,
7468 { "longitudeType", "atn-cpdlc.longitudeType",
7469 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LongitudeType_vals
), 0,
7471 { &hf_atn_cpdlc_longitudeDirection
,
7472 { "longitudeDirection", "atn-cpdlc.longitudeDirection",
7473 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LongitudeDirection_vals
), 0,
7475 { &hf_atn_cpdlc_longitudeWholeDegrees
,
7476 { "longitudeWholeDegrees", "atn-cpdlc.longitudeWholeDegrees",
7477 FT_UINT32
, BASE_DEC
, NULL
, 0,
7479 { &hf_atn_cpdlc_latLonWholeMinutes
,
7480 { "latLonWholeMinutes", "atn-cpdlc.latLonWholeMinutes",
7481 FT_UINT32
, BASE_DEC
, NULL
, 0,
7483 { &hf_atn_cpdlc_longitudeDegrees
,
7484 { "longitudeDegrees", "atn-cpdlc.longitudeDegrees",
7485 FT_UINT32
, BASE_DEC
, NULL
, 0,
7487 { &hf_atn_cpdlc_longitudeDegreesMinutes
,
7488 { "longitudeDegreesMinutes", "atn-cpdlc.longitudeDegreesMinutes_element",
7489 FT_NONE
, BASE_NONE
, NULL
, 0,
7491 { &hf_atn_cpdlc_longitudeDMS
,
7492 { "longitudeDMS", "atn-cpdlc.longitudeDMS_element",
7493 FT_NONE
, BASE_NONE
, NULL
, 0,
7494 "LongitudeDegreesMinutesSeconds", HFILL
}},
7495 { &hf_atn_cpdlc_navaid_name
,
7496 { "name", "atn-cpdlc.name",
7497 FT_STRING
, BASE_NONE
, NULL
, 0,
7498 "NavaidName", HFILL
}},
7499 { &hf_atn_cpdlc_PlaceBearingPlaceBearing_item
,
7500 { "PlaceBearing", "atn-cpdlc.PlaceBearing_element",
7501 FT_NONE
, BASE_NONE
, NULL
, 0,
7503 { &hf_atn_cpdlc_fixName
,
7504 { "fixName", "atn-cpdlc.fixName_element",
7505 FT_NONE
, BASE_NONE
, NULL
, 0,
7507 { &hf_atn_cpdlc_navaid
,
7508 { "navaid", "atn-cpdlc.navaid_element",
7509 FT_NONE
, BASE_NONE
, NULL
, 0,
7511 { &hf_atn_cpdlc_airport
,
7512 { "airport", "atn-cpdlc.airport",
7513 FT_STRING
, BASE_NONE
, NULL
, 0,
7515 { &hf_atn_cpdlc_levels
,
7516 { "levels", "atn-cpdlc.levels",
7517 FT_UINT32
, BASE_DEC
, NULL
, 0,
7518 "LevelLevel", HFILL
}},
7519 { &hf_atn_cpdlc_positionlevel
,
7520 { "positionlevel", "atn-cpdlc.positionlevel_element",
7521 FT_NONE
, BASE_NONE
, NULL
, 0,
7523 { &hf_atn_cpdlc_PositionPosition_item
,
7524 { "Position", "atn-cpdlc.Position",
7525 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7527 { &hf_atn_cpdlc_positioncurrent
,
7528 { "positioncurrent", "atn-cpdlc.positioncurrent",
7529 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7530 "Position", HFILL
}},
7531 { &hf_atn_cpdlc_timeatpositioncurrent
,
7532 { "timeatpositioncurrent", "atn-cpdlc.timeatpositioncurrent_element",
7533 FT_NONE
, BASE_NONE
, NULL
, 0,
7535 { &hf_atn_cpdlc_fixnext
,
7536 { "fixnext", "atn-cpdlc.fixnext",
7537 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7538 "Position", HFILL
}},
7539 { &hf_atn_cpdlc_timeetaatfixnext
,
7540 { "timeetaatfixnext", "atn-cpdlc.timeetaatfixnext_element",
7541 FT_NONE
, BASE_NONE
, NULL
, 0,
7543 { &hf_atn_cpdlc_fixnextplusone
,
7544 { "fixnextplusone", "atn-cpdlc.fixnextplusone",
7545 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7546 "Position", HFILL
}},
7547 { &hf_atn_cpdlc_timeetaatdestination
,
7548 { "timeetaatdestination", "atn-cpdlc.timeetaatdestination_element",
7549 FT_NONE
, BASE_NONE
, NULL
, 0,
7551 { &hf_atn_cpdlc_remainingFuel
,
7552 { "remainingFuel", "atn-cpdlc.remainingFuel_element",
7553 FT_NONE
, BASE_NONE
, NULL
, 0,
7555 { &hf_atn_cpdlc_temperature
,
7556 { "temperature", "atn-cpdlc.temperature",
7557 FT_INT32
, BASE_DEC
, NULL
, 0,
7559 { &hf_atn_cpdlc_winds
,
7560 { "winds", "atn-cpdlc.winds_element",
7561 FT_NONE
, BASE_NONE
, NULL
, 0,
7563 { &hf_atn_cpdlc_turbulence
,
7564 { "turbulence", "atn-cpdlc.turbulence",
7565 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Turbulence_vals
), 0,
7567 { &hf_atn_cpdlc_icing
,
7568 { "icing", "atn-cpdlc.icing",
7569 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Icing_vals
), 0,
7571 { &hf_atn_cpdlc_speedground
,
7572 { "speedground", "atn-cpdlc.speedground",
7573 FT_INT32
, BASE_DEC
, NULL
, 0,
7575 { &hf_atn_cpdlc_verticalChange
,
7576 { "verticalChange", "atn-cpdlc.verticalChange_element",
7577 FT_NONE
, BASE_NONE
, NULL
, 0,
7579 { &hf_atn_cpdlc_trackAngle
,
7580 { "trackAngle", "atn-cpdlc.trackAngle",
7581 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
7582 "Degrees", HFILL
}},
7583 { &hf_atn_cpdlc_heading
,
7584 { "heading", "atn-cpdlc.heading",
7585 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
7586 "Degrees", HFILL
}},
7587 { &hf_atn_cpdlc_humidity
,
7588 { "humidity", "atn-cpdlc.humidity",
7589 FT_UINT32
, BASE_DEC
, NULL
, 0,
7591 { &hf_atn_cpdlc_reportedWaypointPosition
,
7592 { "reportedWaypointPosition", "atn-cpdlc.reportedWaypointPosition",
7593 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7594 "Position", HFILL
}},
7595 { &hf_atn_cpdlc_reportedWaypointTime
,
7596 { "reportedWaypointTime", "atn-cpdlc.reportedWaypointTime_element",
7597 FT_NONE
, BASE_NONE
, NULL
, 0,
7599 { &hf_atn_cpdlc_reportedWaypointLevel
,
7600 { "reportedWaypointLevel", "atn-cpdlc.reportedWaypointLevel",
7601 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
7603 { &hf_atn_cpdlc_routeClearanceIndex
,
7604 { "routeClearanceIndex", "atn-cpdlc.routeClearanceIndex",
7605 FT_UINT32
, BASE_DEC
, NULL
, 0,
7607 { &hf_atn_cpdlc_positionTime
,
7608 { "positionTime", "atn-cpdlc.positionTime_element",
7609 FT_NONE
, BASE_NONE
, NULL
, 0,
7611 { &hf_atn_cpdlc_times
,
7612 { "times", "atn-cpdlc.times",
7613 FT_UINT32
, BASE_DEC
, NULL
, 0,
7614 "TimeTime", HFILL
}},
7615 { &hf_atn_cpdlc_unitname
,
7616 { "unitname", "atn-cpdlc.unitname_element",
7617 FT_NONE
, BASE_NONE
, NULL
, 0,
7619 { &hf_atn_cpdlc_frequency
,
7620 { "frequency", "atn-cpdlc.frequency",
7621 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Frequency_vals
), 0,
7623 { &hf_atn_cpdlc_type
,
7624 { "type", "atn-cpdlc.type",
7625 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ProcedureType_vals
), 0,
7626 "ProcedureType", HFILL
}},
7627 { &hf_atn_cpdlc_procedure
,
7628 { "procedure", "atn-cpdlc.procedure",
7629 FT_STRING
, BASE_NONE
, NULL
, 0,
7631 { &hf_atn_cpdlc_transition
,
7632 { "transition", "atn-cpdlc.transition",
7633 FT_STRING
, BASE_NONE
, NULL
, 0,
7634 "ProcedureTransition", HFILL
}},
7635 { &hf_atn_cpdlc_personsOnBoard
,
7636 { "personsOnBoard", "atn-cpdlc.personsOnBoard",
7637 FT_UINT32
, BASE_DEC
, NULL
, 0,
7639 { &hf_atn_cpdlc_latLonReportingPoints
,
7640 { "latLonReportingPoints", "atn-cpdlc.latLonReportingPoints",
7641 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LatLonReportingPoints_vals
), 0,
7643 { &hf_atn_cpdlc_degreeIncrement
,
7644 { "degreeIncrement", "atn-cpdlc.degreeIncrement",
7645 FT_UINT32
, BASE_DEC
, NULL
, 0,
7647 { &hf_atn_cpdlc_procedureDeparture
,
7648 { "procedureDeparture", "atn-cpdlc.procedureDeparture_element",
7649 FT_NONE
, BASE_NONE
, NULL
, 0,
7650 "ProcedureName", HFILL
}},
7651 { &hf_atn_cpdlc_runwayArrival
,
7652 { "runwayArrival", "atn-cpdlc.runwayArrival_element",
7653 FT_NONE
, BASE_NONE
, NULL
, 0,
7655 { &hf_atn_cpdlc_procedureApproach
,
7656 { "procedureApproach", "atn-cpdlc.procedureApproach_element",
7657 FT_NONE
, BASE_NONE
, NULL
, 0,
7658 "ProcedureName", HFILL
}},
7659 { &hf_atn_cpdlc_procedureArrival
,
7660 { "procedureArrival", "atn-cpdlc.procedureArrival_element",
7661 FT_NONE
, BASE_NONE
, NULL
, 0,
7662 "ProcedureName", HFILL
}},
7663 { &hf_atn_cpdlc_routeInformations
,
7664 { "routeInformations", "atn-cpdlc.routeInformations",
7665 FT_UINT32
, BASE_DEC
, NULL
, 0,
7666 "SEQUENCE_SIZE_1_128_OF_RouteInformation", HFILL
}},
7667 { &hf_atn_cpdlc_routeInformations_item
,
7668 { "RouteInformation", "atn-cpdlc.RouteInformation",
7669 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_RouteInformation_vals
), 0,
7671 { &hf_atn_cpdlc_routeInformationAdditional
,
7672 { "routeInformationAdditional", "atn-cpdlc.routeInformationAdditional_element",
7673 FT_NONE
, BASE_NONE
, NULL
, 0,
7675 { &hf_atn_cpdlc_aTSRouteDesignator
,
7676 { "aTSRouteDesignator", "atn-cpdlc.aTSRouteDesignator",
7677 FT_STRING
, BASE_NONE
, NULL
, 0,
7679 { &hf_atn_cpdlc_aTWAlongTrackWaypoints
,
7680 { "aTWAlongTrackWaypoints", "atn-cpdlc.aTWAlongTrackWaypoints",
7681 FT_UINT32
, BASE_DEC
, NULL
, 0,
7682 "SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint", HFILL
}},
7683 { &hf_atn_cpdlc_aTWAlongTrackWaypoints_item
,
7684 { "ATWAlongTrackWaypoint", "atn-cpdlc.ATWAlongTrackWaypoint_element",
7685 FT_NONE
, BASE_NONE
, NULL
, 0,
7687 { &hf_atn_cpdlc_reportingpoints
,
7688 { "reportingpoints", "atn-cpdlc.reportingpoints_element",
7689 FT_NONE
, BASE_NONE
, NULL
, 0,
7691 { &hf_atn_cpdlc_interceptCourseFroms
,
7692 { "interceptCourseFroms", "atn-cpdlc.interceptCourseFroms",
7693 FT_UINT32
, BASE_DEC
, NULL
, 0,
7694 "SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom", HFILL
}},
7695 { &hf_atn_cpdlc_interceptCourseFroms_item
,
7696 { "InterceptCourseFrom", "atn-cpdlc.InterceptCourseFrom_element",
7697 FT_NONE
, BASE_NONE
, NULL
, 0,
7699 { &hf_atn_cpdlc_holdAtWaypoints
,
7700 { "holdAtWaypoints", "atn-cpdlc.holdAtWaypoints",
7701 FT_UINT32
, BASE_DEC
, NULL
, 0,
7702 "SEQUENCE_SIZE_1_8_OF_Holdatwaypoint", HFILL
}},
7703 { &hf_atn_cpdlc_holdAtWaypoints_item
,
7704 { "Holdatwaypoint", "atn-cpdlc.Holdatwaypoint_element",
7705 FT_NONE
, BASE_NONE
, NULL
, 0,
7707 { &hf_atn_cpdlc_waypointSpeedLevels
,
7708 { "waypointSpeedLevels", "atn-cpdlc.waypointSpeedLevels",
7709 FT_UINT32
, BASE_DEC
, NULL
, 0,
7710 "SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel", HFILL
}},
7711 { &hf_atn_cpdlc_waypointSpeedLevels_item
,
7712 { "WaypointSpeedLevel", "atn-cpdlc.WaypointSpeedLevel_element",
7713 FT_NONE
, BASE_NONE
, NULL
, 0,
7715 { &hf_atn_cpdlc_rTARequiredTimeArrivals
,
7716 { "rTARequiredTimeArrivals", "atn-cpdlc.rTARequiredTimeArrivals",
7717 FT_UINT32
, BASE_DEC
, NULL
, 0,
7718 "SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival", HFILL
}},
7719 { &hf_atn_cpdlc_rTARequiredTimeArrivals_item
,
7720 { "RTARequiredTimeArrival", "atn-cpdlc.RTARequiredTimeArrival_element",
7721 FT_NONE
, BASE_NONE
, NULL
, 0,
7723 { &hf_atn_cpdlc_rTATime
,
7724 { "rTATime", "atn-cpdlc.rTATime_element",
7725 FT_NONE
, BASE_NONE
, NULL
, 0,
7727 { &hf_atn_cpdlc_rTATolerance
,
7728 { "rTATolerance", "atn-cpdlc.rTATolerance",
7729 FT_UINT32
, BASE_DEC
, NULL
, 0,
7731 { &hf_atn_cpdlc_runway_direction
,
7732 { "direction", "atn-cpdlc.direction",
7733 FT_UINT32
, BASE_DEC
, NULL
, 0,
7734 "RunwayDirection", HFILL
}},
7735 { &hf_atn_cpdlc_configuration
,
7736 { "configuration", "atn-cpdlc.configuration",
7737 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_RunwayConfiguration_vals
), 0,
7738 "RunwayConfiguration", HFILL
}},
7739 { &hf_atn_cpdlc_runway
,
7740 { "runway", "atn-cpdlc.runway_element",
7741 FT_NONE
, BASE_NONE
, NULL
, 0,
7743 { &hf_atn_cpdlc_rVR
,
7744 { "rVR", "atn-cpdlc.rVR",
7745 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_RVR_vals
), 0,
7747 { &hf_atn_cpdlc_rVRFeet
,
7748 { "rVRFeet", "atn-cpdlc.rVRFeet",
7749 FT_UINT32
, BASE_DEC
, NULL
, 0,
7751 { &hf_atn_cpdlc_rVRMeters
,
7752 { "rVRMeters", "atn-cpdlc.rVRMeters",
7753 FT_UINT32
, BASE_DEC
, NULL
, 0,
7755 { &hf_atn_cpdlc_speedIndicated
,
7756 { "speedIndicated", "atn-cpdlc.speedIndicated",
7757 FT_UINT32
, BASE_DEC
, NULL
, 0,
7759 { &hf_atn_cpdlc_speedIndicatedMetric
,
7760 { "speedIndicatedMetric", "atn-cpdlc.speedIndicatedMetric",
7761 FT_UINT32
, BASE_DEC
, NULL
, 0,
7763 { &hf_atn_cpdlc_speedTrue
,
7764 { "speedTrue", "atn-cpdlc.speedTrue",
7765 FT_UINT32
, BASE_DEC
, NULL
, 0,
7767 { &hf_atn_cpdlc_speedTrueMetric
,
7768 { "speedTrueMetric", "atn-cpdlc.speedTrueMetric",
7769 FT_UINT32
, BASE_DEC
, NULL
, 0,
7771 { &hf_atn_cpdlc_speedGround
,
7772 { "speedGround", "atn-cpdlc.speedGround",
7773 FT_INT32
, BASE_DEC
, NULL
, 0,
7775 { &hf_atn_cpdlc_speedGroundMetric
,
7776 { "speedGroundMetric", "atn-cpdlc.speedGroundMetric",
7777 FT_INT32
, BASE_DEC
, NULL
, 0,
7779 { &hf_atn_cpdlc_speedMach
,
7780 { "speedMach", "atn-cpdlc.speedMach",
7781 FT_UINT32
, BASE_DEC
, NULL
, 0,
7783 { &hf_atn_cpdlc_SpeedSpeed_item
,
7784 { "Speed", "atn-cpdlc.Speed",
7785 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
7787 { &hf_atn_cpdlc_SpeedTypeSpeedTypeSpeedType_item
,
7788 { "SpeedType", "atn-cpdlc.SpeedType",
7789 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_SpeedType_vals
), 0,
7791 { &hf_atn_cpdlc_speedTypes
,
7792 { "speedTypes", "atn-cpdlc.speedTypes",
7793 FT_UINT32
, BASE_DEC
, NULL
, 0,
7794 "SpeedTypeSpeedTypeSpeedType", HFILL
}},
7795 { &hf_atn_cpdlc_hours
,
7796 { "hours", "atn-cpdlc.hours",
7797 FT_UINT32
, BASE_DEC
, NULL
, 0,
7798 "TimeHours", HFILL
}},
7799 { &hf_atn_cpdlc_minutes
,
7800 { "minutes", "atn-cpdlc.minutes",
7801 FT_UINT32
, BASE_DEC
, NULL
, 0,
7802 "TimeMinutes", HFILL
}},
7803 { &hf_atn_cpdlc_timeDepartureAllocated
,
7804 { "timeDepartureAllocated", "atn-cpdlc.timeDepartureAllocated_element",
7805 FT_NONE
, BASE_NONE
, NULL
, 0,
7807 { &hf_atn_cpdlc_timeDepartureControlled
,
7808 { "timeDepartureControlled", "atn-cpdlc.timeDepartureControlled_element",
7809 FT_NONE
, BASE_NONE
, NULL
, 0,
7810 "ControlledTime", HFILL
}},
7811 { &hf_atn_cpdlc_timeDepartureClearanceExpected
,
7812 { "timeDepartureClearanceExpected", "atn-cpdlc.timeDepartureClearanceExpected_element",
7813 FT_NONE
, BASE_NONE
, NULL
, 0,
7815 { &hf_atn_cpdlc_departureMinimumInterval
,
7816 { "departureMinimumInterval", "atn-cpdlc.departureMinimumInterval",
7817 FT_UINT32
, BASE_DEC
, NULL
, 0,
7819 { &hf_atn_cpdlc_tofrom
,
7820 { "tofrom", "atn-cpdlc.tofrom",
7821 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ToFrom_vals
), 0,
7823 { &hf_atn_cpdlc_hoursminutes
,
7824 { "hoursminutes", "atn-cpdlc.hoursminutes_element",
7825 FT_NONE
, BASE_NONE
, NULL
, 0,
7827 { &hf_atn_cpdlc_seconds
,
7828 { "seconds", "atn-cpdlc.seconds",
7829 FT_UINT32
, BASE_DEC
, NULL
, 0,
7830 "TimeSeconds", HFILL
}},
7831 { &hf_atn_cpdlc_unitName
,
7832 { "unitName", "atn-cpdlc.unitName_element",
7833 FT_NONE
, BASE_NONE
, NULL
, 0,
7835 { &hf_atn_cpdlc_timeposition
,
7836 { "timeposition", "atn-cpdlc.timeposition_element",
7837 FT_NONE
, BASE_NONE
, NULL
, 0,
7839 { &hf_atn_cpdlc_levelspeed
,
7840 { "levelspeed", "atn-cpdlc.levelspeed_element",
7841 FT_NONE
, BASE_NONE
, NULL
, 0,
7843 { &hf_atn_cpdlc_speedspeed
,
7844 { "speedspeed", "atn-cpdlc.speedspeed",
7845 FT_UINT32
, BASE_DEC
, NULL
, 0,
7847 { &hf_atn_cpdlc_TimeTime_item
,
7848 { "Time", "atn-cpdlc.Time_element",
7849 FT_NONE
, BASE_NONE
, NULL
, 0,
7851 { &hf_atn_cpdlc_toFrom
,
7852 { "toFrom", "atn-cpdlc.toFrom",
7853 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ToFrom_vals
), 0,
7855 { &hf_atn_cpdlc_facilityName
,
7856 { "facilityName", "atn-cpdlc.facilityName",
7857 FT_STRING
, BASE_NONE
, NULL
, 0,
7859 { &hf_atn_cpdlc_facilityFunction
,
7860 { "facilityFunction", "atn-cpdlc.facilityFunction",
7861 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_FacilityFunction_vals
), 0,
7863 { &hf_atn_cpdlc_vertical_direction
,
7864 { "direction", "atn-cpdlc.direction",
7865 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalDirection_vals
), 0,
7866 "VerticalDirection", HFILL
}},
7867 { &hf_atn_cpdlc_rate
,
7868 { "rate", "atn-cpdlc.rate",
7869 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalRate_vals
), 0,
7870 "VerticalRate", HFILL
}},
7871 { &hf_atn_cpdlc_verticalRateEnglish
,
7872 { "verticalRateEnglish", "atn-cpdlc.verticalRateEnglish",
7873 FT_UINT32
, BASE_DEC
, NULL
, 0,
7875 { &hf_atn_cpdlc_verticalRateMetric
,
7876 { "verticalRateMetric", "atn-cpdlc.verticalRateMetric",
7877 FT_UINT32
, BASE_DEC
, NULL
, 0,
7879 { &hf_atn_cpdlc_winds_direction
,
7880 { "direction", "atn-cpdlc.direction",
7881 FT_UINT32
, BASE_DEC
, NULL
, 0,
7882 "WindDirection", HFILL
}},
7883 { &hf_atn_cpdlc_winds_speed
,
7884 { "speed", "atn-cpdlc.speed",
7885 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_WindSpeed_vals
), 0,
7886 "WindSpeed", HFILL
}},
7887 { &hf_atn_cpdlc_windSpeedEnglish
,
7888 { "windSpeedEnglish", "atn-cpdlc.windSpeedEnglish",
7889 FT_UINT32
, BASE_DEC
, NULL
, 0,
7891 { &hf_atn_cpdlc_windSpeedMetric
,
7892 { "windSpeedMetric", "atn-cpdlc.windSpeedMetric",
7893 FT_UINT32
, BASE_DEC
, NULL
, 0,
7897 static int *ett
[] = {
7898 &ett_atn_cpdlc_GroundPDUs
,
7899 &ett_atn_cpdlc_UplinkMessage
,
7900 &ett_atn_cpdlc_AircraftPDUs
,
7901 &ett_atn_cpdlc_StartDownMessage
,
7902 &ett_atn_cpdlc_DownlinkMessage
,
7903 &ett_atn_cpdlc_ProtectedGroundPDUs
,
7904 &ett_atn_cpdlc_ProtectedUplinkMessage
,
7905 &ett_atn_cpdlc_ATCForwardMessage
,
7906 &ett_atn_cpdlc_ForwardHeader
,
7907 &ett_atn_cpdlc_ForwardMessage
,
7908 &ett_atn_cpdlc_ProtectedAircraftPDUs
,
7909 &ett_atn_cpdlc_ProtectedStartDownMessage
,
7910 &ett_atn_cpdlc_ProtectedDownlinkMessage
,
7911 &ett_atn_cpdlc_ATCUplinkMessage
,
7912 &ett_atn_cpdlc_ATCUplinkMessageData
,
7913 &ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId
,
7914 &ett_atn_cpdlc_T_atcuplinkmessagedata_constraineddata
,
7915 &ett_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance
,
7916 &ett_atn_cpdlc_ATCDownlinkMessage
,
7917 &ett_atn_cpdlc_ATCDownlinkMessageData
,
7918 &ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId
,
7919 &ett_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata
,
7920 &ett_atn_cpdlc_ATCMessageHeader
,
7921 &ett_atn_cpdlc_ATCUplinkMsgElementId
,
7922 &ett_atn_cpdlc_ATCDownlinkMsgElementId
,
7923 &ett_atn_cpdlc_Altimeter
,
7924 &ett_atn_cpdlc_ATWAlongTrackWaypoint
,
7925 &ett_atn_cpdlc_ATWLevel
,
7926 &ett_atn_cpdlc_ATWLevelSequence
,
7927 &ett_atn_cpdlc_ATWDistance
,
7928 &ett_atn_cpdlc_Code
,
7929 &ett_atn_cpdlc_ControlledTime
,
7930 &ett_atn_cpdlc_Date
,
7931 &ett_atn_cpdlc_DateTimeGroup
,
7932 &ett_atn_cpdlc_Degrees
,
7933 &ett_atn_cpdlc_DepartureClearance
,
7934 &ett_atn_cpdlc_DirectionDegrees
,
7935 &ett_atn_cpdlc_Distance
,
7936 &ett_atn_cpdlc_DistanceSpecified
,
7937 &ett_atn_cpdlc_DistanceSpecifiedDirection
,
7938 &ett_atn_cpdlc_DistanceSpecifiedDirectionTime
,
7939 &ett_atn_cpdlc_Facility
,
7940 &ett_atn_cpdlc_FacilityDesignationAltimeter
,
7941 &ett_atn_cpdlc_FacilityDesignationATISCode
,
7942 &ett_atn_cpdlc_FixName
,
7943 &ett_atn_cpdlc_FlightInformation
,
7944 &ett_atn_cpdlc_Frequency
,
7945 &ett_atn_cpdlc_FurtherInstructions
,
7946 &ett_atn_cpdlc_Holdatwaypoint
,
7947 &ett_atn_cpdlc_HoldClearance
,
7948 &ett_atn_cpdlc_InterceptCourseFrom
,
7949 &ett_atn_cpdlc_InterceptCourseFromSelection
,
7950 &ett_atn_cpdlc_Latitude
,
7951 &ett_atn_cpdlc_LatitudeDegreesMinutes
,
7952 &ett_atn_cpdlc_LatitudeDegreesMinutesSeconds
,
7953 &ett_atn_cpdlc_LatitudeLongitude
,
7954 &ett_atn_cpdlc_LatitudeReportingPoints
,
7955 &ett_atn_cpdlc_LatitudeType
,
7956 &ett_atn_cpdlc_LatLonReportingPoints
,
7957 &ett_atn_cpdlc_LegDistance
,
7958 &ett_atn_cpdlc_LegType
,
7959 &ett_atn_cpdlc_Level
,
7960 &ett_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType
,
7961 &ett_atn_cpdlc_LevelLevel
,
7962 &ett_atn_cpdlc_LevelPosition
,
7963 &ett_atn_cpdlc_LevelProcedureName
,
7964 &ett_atn_cpdlc_LevelsOfFlight
,
7965 &ett_atn_cpdlc_LevelSpeed
,
7966 &ett_atn_cpdlc_LevelSpeedSpeed
,
7967 &ett_atn_cpdlc_LevelTime
,
7968 &ett_atn_cpdlc_LevelType
,
7969 &ett_atn_cpdlc_Longitude
,
7970 &ett_atn_cpdlc_LongitudeDegreesMinutes
,
7971 &ett_atn_cpdlc_LongitudeDegreesMinutesSeconds
,
7972 &ett_atn_cpdlc_LongitudeReportingPoints
,
7973 &ett_atn_cpdlc_LongitudeType
,
7974 &ett_atn_cpdlc_Navaid
,
7975 &ett_atn_cpdlc_PlaceBearing
,
7976 &ett_atn_cpdlc_PlaceBearingDistance
,
7977 &ett_atn_cpdlc_PlaceBearingPlaceBearing
,
7978 &ett_atn_cpdlc_Position
,
7979 &ett_atn_cpdlc_PositionDegrees
,
7980 &ett_atn_cpdlc_PositionDistanceSpecifiedDirection
,
7981 &ett_atn_cpdlc_PositionLevel
,
7982 &ett_atn_cpdlc_PositionLevelLevel
,
7983 &ett_atn_cpdlc_PositionLevelSpeed
,
7984 &ett_atn_cpdlc_PositionPosition
,
7985 &ett_atn_cpdlc_PositionProcedureName
,
7986 &ett_atn_cpdlc_PositionReport
,
7987 &ett_atn_cpdlc_PositionRouteClearanceIndex
,
7988 &ett_atn_cpdlc_PositionSpeed
,
7989 &ett_atn_cpdlc_PositionSpeedSpeed
,
7990 &ett_atn_cpdlc_PositionTime
,
7991 &ett_atn_cpdlc_PositionTimeLevel
,
7992 &ett_atn_cpdlc_PositionTimeTime
,
7993 &ett_atn_cpdlc_PositionUnitNameFrequency
,
7994 &ett_atn_cpdlc_ProcedureName
,
7995 &ett_atn_cpdlc_PublishedIdentifier
,
7996 &ett_atn_cpdlc_RemainingFuelPersonsOnBoard
,
7997 &ett_atn_cpdlc_ReportingPoints
,
7998 &ett_atn_cpdlc_RouteAndLevels
,
7999 &ett_atn_cpdlc_RouteClearance
,
8000 &ett_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation
,
8001 &ett_atn_cpdlc_RouteInformation
,
8002 &ett_atn_cpdlc_RouteInformationAdditional
,
8003 &ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint
,
8004 &ett_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom
,
8005 &ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint
,
8006 &ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel
,
8007 &ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival
,
8008 &ett_atn_cpdlc_RTARequiredTimeArrival
,
8009 &ett_atn_cpdlc_RTATime
,
8010 &ett_atn_cpdlc_Runway
,
8011 &ett_atn_cpdlc_RunwayRVR
,
8013 &ett_atn_cpdlc_Speed
,
8014 &ett_atn_cpdlc_SpeedSpeed
,
8015 &ett_atn_cpdlc_SpeedTime
,
8016 &ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedType
,
8017 &ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed
,
8018 &ett_atn_cpdlc_Time
,
8019 &ett_atn_cpdlc_TimeLevel
,
8020 &ett_atn_cpdlc_TimeDeparture
,
8021 &ett_atn_cpdlc_TimeDistanceSpecifiedDirection
,
8022 &ett_atn_cpdlc_TimeDistanceToFromPosition
,
8023 &ett_atn_cpdlc_Timehhmmss
,
8024 &ett_atn_cpdlc_TimeUnitNameFrequency
,
8025 &ett_atn_cpdlc_TimePosition
,
8026 &ett_atn_cpdlc_TimePositionLevel
,
8027 &ett_atn_cpdlc_TimePositionLevelSpeed
,
8028 &ett_atn_cpdlc_TimeSpeed
,
8029 &ett_atn_cpdlc_TimeSpeedSpeed
,
8030 &ett_atn_cpdlc_TimeTime
,
8031 &ett_atn_cpdlc_TimeToFromPosition
,
8032 &ett_atn_cpdlc_ToFromPosition
,
8033 &ett_atn_cpdlc_UnitName
,
8034 &ett_atn_cpdlc_UnitNameFrequency
,
8035 &ett_atn_cpdlc_VerticalChange
,
8036 &ett_atn_cpdlc_VerticalRate
,
8037 &ett_atn_cpdlc_WaypointSpeedLevel
,
8038 &ett_atn_cpdlc_Winds
,
8039 &ett_atn_cpdlc_WindSpeed
,
8043 /* register CPDLC */
8044 proto_atn_cpdlc
= proto_register_protocol(ATN_CPDLC_PROTO
, "ATN-CPDLC", "atn-cpdlc");
8046 proto_register_field_array(
8049 array_length(hf_atn_cpdlc
));
8051 proto_register_subtree_array(
8061 void proto_reg_handoff_atn_cpdlc(void)
8063 /* add session dissector to atn dissector list dissector list*/
8066 dissect_atn_cpdlc_heur
,
8067 "ATN-CPDLC over ATN-ULCS",
8069 proto_atn_cpdlc
, HEURISTIC_ENABLE
);
8073 * Editor modelines - https://www.wireshark.org/tools/modelines.html
8078 * indent-tabs-mode: nil
8081 * vi: set shiftwidth=4 tabstop=8 expandtab:
8082 * :indentSize=4:tabSize=8:noTabs=true: