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 /* ../../tools/asn2wrs.py -u -L -p atn-cpdlc -c ./atn-cpdlc.cnf -s ./packet-atn-cpdlc-template -D . -O ../../epan/dissectors atn-cpdlc.asn */
6 /* Input file: packet-atn-cpdlc-template.c */
8 #line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
9 /* c-basic-offset: 2; tab-width: 2; indent-tabs-mode: t
10 * vi: set shiftwidth=2 tabstop=2 noexpandtab:
11 * :indentSize=2:tabSize=2:noTabs=false:
14 /* packet-atn-cpdlc-template.c
15 * By Mathias Guettler <guettler@web.de>
20 * Routines for ATN Cpdlcc protocol packet disassembly
23 * http://en.wikipedia.org/wiki/CPDLC
24 * http://members.optusnet.com.au/~cjr/introduction.htm
27 * http://legacy.icao.int/anb/panels/acp/repository.cfm
30 * We are dealing with ATN/CPDLC aka ICAO Doc 9705 Ed2 here
31 * (CPDLC may also be transmitted via ACARS/AOA aka "FANS-1/A ").
34 * Wireshark - Network traffic analyzer
35 * By Gerald Combs <gerald@wireshark.org>
36 * Copyright 1998 Gerald Combs
38 * This program is free software; you can redistribute it and/or
39 * modify it under the terms of the GNU General Public License
40 * as published by the Free Software Foundation; either version 2
41 * of the License, or (at your option) any later version.
43 * This program is distributed in the hope that it will be useful,
44 * but WITHOUT ANY WARRANTY; without even the implied warranty of
45 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
46 * GNU General Public License for more details.
48 * You should have received a copy of the GNU General Public License
49 * along with this program; if not, write to the Free Software
50 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
55 Which CPDLC messages are supported ?
56 Protected Mode CPDLC (AeQualifier 22) and Plain Old CPDLC (AeQualifier 2)
57 The dissector has been tested with ICAO doc9705 Edition2 compliant traffic.
63 #include <epan/packet.h>
64 #include <epan/exceptions.h>
65 #include <epan/conversation.h>
66 #include <epan/dissectors/packet-ber.h>
67 #include <epan/dissectors/packet-per.h>
72 #include "packet-atn-ulcs.h"
74 #define ATN_CPDLC_PROTO "ICAO Doc9705 CPDLC"
76 static const char *object_identifier_id
;
78 /* forward declarations */
79 static void dissect_GroundPDUs_PDU(
81 packet_info
*pinfo _U_
,
82 proto_tree
*tree _U_
);
83 static void dissect_AircraftPDUs_PDU(
85 packet_info
*pinfo _U_
,
86 proto_tree
*tree _U_
);
87 static void dissect_ProtectedGroundPDUs_PDU(
89 packet_info
*pinfo _U_
,
90 proto_tree
*tree _U_
);
91 static void dissect_ProtectedAircraftPDUs_PDU(
93 packet_info
*pinfo _U_
,
94 proto_tree
*tree _U_
);
97 /*--- Included file: packet-atn-cpdlc-hf.c ---*/
98 #line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-hf.c"
99 static int hf_atn_cpdlc_GroundPDUs_PDU
= -1; /* GroundPDUs */
100 static int hf_atn_cpdlc_AircraftPDUs_PDU
= -1; /* AircraftPDUs */
101 static int hf_atn_cpdlc_ProtectedGroundPDUs_PDU
= -1; /* ProtectedGroundPDUs */
102 static int hf_atn_cpdlc_ProtectedAircraftPDUs_PDU
= -1; /* ProtectedAircraftPDUs */
103 static int hf_atn_cpdlc_abortUser
= -1; /* CPDLCUserAbortReason */
104 static int hf_atn_cpdlc_abortProvider
= -1; /* CPDLCProviderAbortReason */
105 static int hf_atn_cpdlc_startup
= -1; /* UplinkMessage */
106 static int hf_atn_cpdlc_groundpdus_send
= -1; /* ATCUplinkMessage */
107 static int hf_atn_cpdlc_forward
= -1; /* ATCForwardMessage */
108 static int hf_atn_cpdlc_forwardresponse
= -1; /* ATCForwardResponse */
109 static int hf_atn_cpdlc_noMessage
= -1; /* NULL */
110 static int hf_atn_cpdlc_aTCUplinkMessage
= -1; /* ATCUplinkMessage */
111 static int hf_atn_cpdlc_startdown
= -1; /* StartDownMessage */
112 static int hf_atn_cpdlc_aircraftpdus_send
= -1; /* ATCDownlinkMessage */
113 static int hf_atn_cpdlc_mode
= -1; /* Mode */
114 static int hf_atn_cpdlc_startDownlinkMessage
= -1; /* DownlinkMessage */
115 static int hf_atn_cpdlc_aTCDownlinkMessage
= -1; /* ATCDownlinkMessage */
116 static int hf_atn_cpdlc_pmcpdlcuserabortreason
= -1; /* PMCPDLCUserAbortReason */
117 static int hf_atn_cpdlc_pmcpdlcproviderabortreason
= -1; /* PMCPDLCProviderAbortReason */
118 static int hf_atn_cpdlc_protecteduplinkmessage
= -1; /* ProtectedUplinkMessage */
119 static int hf_atn_cpdlc_algorithmIdentifier
= -1; /* AlgorithmIdentifier */
120 static int hf_atn_cpdlc_protectedMessage
= -1; /* CPDLCMessage */
121 static int hf_atn_cpdlc_integrityCheck
= -1; /* BIT_STRING */
122 static int hf_atn_cpdlc_forwardHeader
= -1; /* ForwardHeader */
123 static int hf_atn_cpdlc_forwardMessage
= -1; /* ForwardMessage */
124 static int hf_atn_cpdlc_dateTime
= -1; /* DateTimeGroup */
125 static int hf_atn_cpdlc_aircraftID
= -1; /* AircraftFlightIdentification */
126 static int hf_atn_cpdlc_aircraftAddress
= -1; /* AircraftAddress */
127 static int hf_atn_cpdlc_upElementIDs
= -1; /* BIT_STRING */
128 static int hf_atn_cpdlc_downElementIDs
= -1; /* BIT_STRING */
129 static int hf_atn_cpdlc_protectedstartDownmessage
= -1; /* ProtectedStartDownMessage */
130 static int hf_atn_cpdlc_send
= -1; /* ProtectedDownlinkMessage */
131 static int hf_atn_cpdlc_protectedmode
= -1; /* ProtectedMode */
132 static int hf_atn_cpdlc_protecteddownlinkmessage
= -1; /* ProtectedDownlinkMessage */
133 static int hf_atn_cpdlc_header
= -1; /* ATCMessageHeader */
134 static int hf_atn_cpdlc_atcuplinkmessage_messagedata
= -1; /* ATCUplinkMessageData */
135 static int hf_atn_cpdlc_atcuplinkmessagedata_elementids
= -1; /* SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId */
136 static int hf_atn_cpdlc_atcuplinkmessagedata_elementids_item
= -1; /* ATCUplinkMsgElementId */
137 static int hf_atn_cpdlc_atcuplinkmessagedata_constraineddata
= -1; /* T_atcuplinkmessagedata_constraineddata */
138 static int hf_atn_cpdlc_routeClearanceData
= -1; /* SEQUENCE_SIZE_1_2_OF_RouteClearance */
139 static int hf_atn_cpdlc_routeClearanceData_item
= -1; /* RouteClearance */
140 static int hf_atn_cpdlc_atcdownlinkmessage_messagedata
= -1; /* ATCDownlinkMessageData */
141 static int hf_atn_cpdlc_atcdownlinkmessagedata_elementids
= -1; /* SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId */
142 static int hf_atn_cpdlc_atcdownlinkmessagedata_elementids_item
= -1; /* ATCDownlinkMsgElementId */
143 static int hf_atn_cpdlc_atcdownlinkmessagedata_constraineddata
= -1; /* T_atcdownlinkmessagedata_constraineddata */
144 static int hf_atn_cpdlc_messageIdNumber
= -1; /* MsgIdentificationNumber */
145 static int hf_atn_cpdlc_messageRefNumber
= -1; /* MsgReferenceNumber */
146 static int hf_atn_cpdlc_logicalAck
= -1; /* LogicalAck */
147 static int hf_atn_cpdlc_uM0NULL
= -1; /* NULL */
148 static int hf_atn_cpdlc_uM1NULL
= -1; /* NULL */
149 static int hf_atn_cpdlc_uM2NULL
= -1; /* NULL */
150 static int hf_atn_cpdlc_uM3NULL
= -1; /* NULL */
151 static int hf_atn_cpdlc_uM4NULL
= -1; /* NULL */
152 static int hf_atn_cpdlc_uM5NULL
= -1; /* NULL */
153 static int hf_atn_cpdlc_uM6Level
= -1; /* Level */
154 static int hf_atn_cpdlc_uM7Time
= -1; /* Time */
155 static int hf_atn_cpdlc_uM8Position
= -1; /* Position */
156 static int hf_atn_cpdlc_uM9Time
= -1; /* Time */
157 static int hf_atn_cpdlc_uM10Position
= -1; /* Position */
158 static int hf_atn_cpdlc_uM11Time
= -1; /* Time */
159 static int hf_atn_cpdlc_uM12Position
= -1; /* Position */
160 static int hf_atn_cpdlc_uM13TimeLevel
= -1; /* TimeLevel */
161 static int hf_atn_cpdlc_uM14PositionLevel
= -1; /* PositionLevel */
162 static int hf_atn_cpdlc_uM15TimeLevel
= -1; /* TimeLevel */
163 static int hf_atn_cpdlc_uM16PositionLevel
= -1; /* PositionLevel */
164 static int hf_atn_cpdlc_uM17TimeLevel
= -1; /* TimeLevel */
165 static int hf_atn_cpdlc_uM18PositionLevel
= -1; /* PositionLevel */
166 static int hf_atn_cpdlc_uM19Level
= -1; /* Level */
167 static int hf_atn_cpdlc_uM20Level
= -1; /* Level */
168 static int hf_atn_cpdlc_uM21TimeLevel
= -1; /* TimeLevel */
169 static int hf_atn_cpdlc_uM22PositionLevel
= -1; /* PositionLevel */
170 static int hf_atn_cpdlc_uM23Level
= -1; /* Level */
171 static int hf_atn_cpdlc_uM24TimeLevel
= -1; /* TimeLevel */
172 static int hf_atn_cpdlc_uM25PositionLevel
= -1; /* PositionLevel */
173 static int hf_atn_cpdlc_uM26LevelTime
= -1; /* LevelTime */
174 static int hf_atn_cpdlc_uM27LevelPosition
= -1; /* LevelPosition */
175 static int hf_atn_cpdlc_uM28LevelTime
= -1; /* LevelTime */
176 static int hf_atn_cpdlc_uM29LevelPosition
= -1; /* LevelPosition */
177 static int hf_atn_cpdlc_uM30LevelLevel
= -1; /* LevelLevel */
178 static int hf_atn_cpdlc_uM31LevelLevel
= -1; /* LevelLevel */
179 static int hf_atn_cpdlc_uM32LevelLevel
= -1; /* LevelLevel */
180 static int hf_atn_cpdlc_uM33NULL
= -1; /* NULL */
181 static int hf_atn_cpdlc_uM34Level
= -1; /* Level */
182 static int hf_atn_cpdlc_uM35Level
= -1; /* Level */
183 static int hf_atn_cpdlc_uM36Level
= -1; /* Level */
184 static int hf_atn_cpdlc_uM37Level
= -1; /* Level */
185 static int hf_atn_cpdlc_uM38Level
= -1; /* Level */
186 static int hf_atn_cpdlc_uM39Level
= -1; /* Level */
187 static int hf_atn_cpdlc_uM40NULL
= -1; /* NULL */
188 static int hf_atn_cpdlc_uM41NULL
= -1; /* NULL */
189 static int hf_atn_cpdlc_uM42PositionLevel
= -1; /* PositionLevel */
190 static int hf_atn_cpdlc_uM43PositionLevel
= -1; /* PositionLevel */
191 static int hf_atn_cpdlc_uM44PositionLevel
= -1; /* PositionLevel */
192 static int hf_atn_cpdlc_uM45PositionLevel
= -1; /* PositionLevel */
193 static int hf_atn_cpdlc_uM46PositionLevel
= -1; /* PositionLevel */
194 static int hf_atn_cpdlc_uM47PositionLevel
= -1; /* PositionLevel */
195 static int hf_atn_cpdlc_uM48PositionLevel
= -1; /* PositionLevel */
196 static int hf_atn_cpdlc_uM49PositionLevel
= -1; /* PositionLevel */
197 static int hf_atn_cpdlc_uM50PositionLevelLevel
= -1; /* PositionLevelLevel */
198 static int hf_atn_cpdlc_uM51PositionTime
= -1; /* PositionTime */
199 static int hf_atn_cpdlc_uM52PositionTime
= -1; /* PositionTime */
200 static int hf_atn_cpdlc_uM53PositionTime
= -1; /* PositionTime */
201 static int hf_atn_cpdlc_uM54PositionTimeTime
= -1; /* PositionTimeTime */
202 static int hf_atn_cpdlc_uM55PositionSpeed
= -1; /* PositionSpeed */
203 static int hf_atn_cpdlc_uM56PositionSpeed
= -1; /* PositionSpeed */
204 static int hf_atn_cpdlc_uM57PositionSpeed
= -1; /* PositionSpeed */
205 static int hf_atn_cpdlc_uM58PositionTimeLevel
= -1; /* PositionTimeLevel */
206 static int hf_atn_cpdlc_uM59PositionTimeLevel
= -1; /* PositionTimeLevel */
207 static int hf_atn_cpdlc_uM60PositionTimeLevel
= -1; /* PositionTimeLevel */
208 static int hf_atn_cpdlc_uM61PositionLevelSpeed
= -1; /* PositionLevelSpeed */
209 static int hf_atn_cpdlc_uM62TimePositionLevel
= -1; /* TimePositionLevel */
210 static int hf_atn_cpdlc_uM63TimePositionLevelSpeed
= -1; /* TimePositionLevelSpeed */
211 static int hf_atn_cpdlc_uM64DistanceSpecifiedDirection
= -1; /* DistanceSpecifiedDirection */
212 static int hf_atn_cpdlc_uM65PositionDistanceSpecifiedDirection
= -1; /* PositionDistanceSpecifiedDirection */
213 static int hf_atn_cpdlc_uM66TimeDistanceSpecifiedDirection
= -1; /* TimeDistanceSpecifiedDirection */
214 static int hf_atn_cpdlc_uM67NULL
= -1; /* NULL */
215 static int hf_atn_cpdlc_uM68Position
= -1; /* Position */
216 static int hf_atn_cpdlc_uM69Time
= -1; /* Time */
217 static int hf_atn_cpdlc_uM70Position
= -1; /* Position */
218 static int hf_atn_cpdlc_uM71Time
= -1; /* Time */
219 static int hf_atn_cpdlc_uM72NULL
= -1; /* NULL */
220 static int hf_atn_cpdlc_uM73DepartureClearance
= -1; /* DepartureClearance */
221 static int hf_atn_cpdlc_uM74Position
= -1; /* Position */
222 static int hf_atn_cpdlc_uM75Position
= -1; /* Position */
223 static int hf_atn_cpdlc_uM76TimePosition
= -1; /* TimePosition */
224 static int hf_atn_cpdlc_uM77PositionPosition
= -1; /* PositionPosition */
225 static int hf_atn_cpdlc_uM78LevelPosition
= -1; /* LevelPosition */
226 static int hf_atn_cpdlc_uM79PositionRouteClearance
= -1; /* PositionRouteClearanceIndex */
227 static int hf_atn_cpdlc_uM80RouteClearance
= -1; /* RouteClearanceIndex */
228 static int hf_atn_cpdlc_uM81ProcedureName
= -1; /* ProcedureName */
229 static int hf_atn_cpdlc_uM82DistanceSpecifiedDirection
= -1; /* DistanceSpecifiedDirection */
230 static int hf_atn_cpdlc_uM83PositionRouteClearance
= -1; /* PositionRouteClearanceIndex */
231 static int hf_atn_cpdlc_uM84PositionProcedureName
= -1; /* PositionProcedureName */
232 static int hf_atn_cpdlc_uM85RouteClearance
= -1; /* RouteClearanceIndex */
233 static int hf_atn_cpdlc_uM86PositionRouteClearance
= -1; /* PositionRouteClearanceIndex */
234 static int hf_atn_cpdlc_uM87Position
= -1; /* Position */
235 static int hf_atn_cpdlc_uM88PositionPosition
= -1; /* PositionPosition */
236 static int hf_atn_cpdlc_uM89TimePosition
= -1; /* TimePosition */
237 static int hf_atn_cpdlc_uM90LevelPosition
= -1; /* LevelPosition */
238 static int hf_atn_cpdlc_uM91HoldClearance
= -1; /* HoldClearance */
239 static int hf_atn_cpdlc_uM92PositionLevel
= -1; /* PositionLevel */
240 static int hf_atn_cpdlc_uM93Time
= -1; /* Time */
241 static int hf_atn_cpdlc_uM94DirectionDegrees
= -1; /* DirectionDegrees */
242 static int hf_atn_cpdlc_uM95DirectionDegrees
= -1; /* DirectionDegrees */
243 static int hf_atn_cpdlc_uM96NULL
= -1; /* NULL */
244 static int hf_atn_cpdlc_uM97PositionDegrees
= -1; /* PositionDegrees */
245 static int hf_atn_cpdlc_uM98DirectionDegrees
= -1; /* DirectionDegrees */
246 static int hf_atn_cpdlc_uM99ProcedureName
= -1; /* ProcedureName */
247 static int hf_atn_cpdlc_uM100TimeSpeed
= -1; /* TimeSpeed */
248 static int hf_atn_cpdlc_uM101PositionSpeed
= -1; /* PositionSpeed */
249 static int hf_atn_cpdlc_uM102LevelSpeed
= -1; /* LevelSpeed */
250 static int hf_atn_cpdlc_uM103TimeSpeedSpeed
= -1; /* TimeSpeedSpeed */
251 static int hf_atn_cpdlc_uM104PositionSpeedSpeed
= -1; /* PositionSpeedSpeed */
252 static int hf_atn_cpdlc_uM105LevelSpeedSpeed
= -1; /* LevelSpeedSpeed */
253 static int hf_atn_cpdlc_uM106Speed
= -1; /* Speed */
254 static int hf_atn_cpdlc_uM107NULL
= -1; /* NULL */
255 static int hf_atn_cpdlc_uM108Speed
= -1; /* Speed */
256 static int hf_atn_cpdlc_uM109Speed
= -1; /* Speed */
257 static int hf_atn_cpdlc_uM110SpeedSpeed
= -1; /* SpeedSpeed */
258 static int hf_atn_cpdlc_uM111Speed
= -1; /* Speed */
259 static int hf_atn_cpdlc_uM112Speed
= -1; /* Speed */
260 static int hf_atn_cpdlc_uM113Speed
= -1; /* Speed */
261 static int hf_atn_cpdlc_uM114Speed
= -1; /* Speed */
262 static int hf_atn_cpdlc_uM115Speed
= -1; /* Speed */
263 static int hf_atn_cpdlc_uM116NULL
= -1; /* NULL */
264 static int hf_atn_cpdlc_uM117UnitNameFrequency
= -1; /* UnitNameFrequency */
265 static int hf_atn_cpdlc_uM118PositionUnitNameFrequency
= -1; /* PositionUnitNameFrequency */
266 static int hf_atn_cpdlc_uM119TimeUnitNameFrequency
= -1; /* TimeUnitNameFrequency */
267 static int hf_atn_cpdlc_uM120UnitNameFrequency
= -1; /* UnitNameFrequency */
268 static int hf_atn_cpdlc_uM121PositionUnitNameFrequency
= -1; /* PositionUnitNameFrequency */
269 static int hf_atn_cpdlc_uM122TimeUnitNameFrequency
= -1; /* TimeUnitNameFrequency */
270 static int hf_atn_cpdlc_uM123Code
= -1; /* Code */
271 static int hf_atn_cpdlc_uM124NULL
= -1; /* NULL */
272 static int hf_atn_cpdlc_uM125NULL
= -1; /* NULL */
273 static int hf_atn_cpdlc_uM126NULL
= -1; /* NULL */
274 static int hf_atn_cpdlc_uM127NULL
= -1; /* NULL */
275 static int hf_atn_cpdlc_uM128Level
= -1; /* Level */
276 static int hf_atn_cpdlc_uM129Level
= -1; /* Level */
277 static int hf_atn_cpdlc_uM130Position
= -1; /* Position */
278 static int hf_atn_cpdlc_uM131NULL
= -1; /* NULL */
279 static int hf_atn_cpdlc_uM132NULL
= -1; /* NULL */
280 static int hf_atn_cpdlc_uM133NULL
= -1; /* NULL */
281 static int hf_atn_cpdlc_uM134SpeedTypeSpeedTypeSpeedType
= -1; /* SpeedTypeSpeedTypeSpeedType */
282 static int hf_atn_cpdlc_uM135NULL
= -1; /* NULL */
283 static int hf_atn_cpdlc_uM136NULL
= -1; /* NULL */
284 static int hf_atn_cpdlc_uM137NULL
= -1; /* NULL */
285 static int hf_atn_cpdlc_uM138NULL
= -1; /* NULL */
286 static int hf_atn_cpdlc_uM139NULL
= -1; /* NULL */
287 static int hf_atn_cpdlc_uM140NULL
= -1; /* NULL */
288 static int hf_atn_cpdlc_uM141NULL
= -1; /* NULL */
289 static int hf_atn_cpdlc_uM142NULL
= -1; /* NULL */
290 static int hf_atn_cpdlc_uM143NULL
= -1; /* NULL */
291 static int hf_atn_cpdlc_uM144NULL
= -1; /* NULL */
292 static int hf_atn_cpdlc_uM145NULL
= -1; /* NULL */
293 static int hf_atn_cpdlc_uM146NULL
= -1; /* NULL */
294 static int hf_atn_cpdlc_uM147NULL
= -1; /* NULL */
295 static int hf_atn_cpdlc_uM148Level
= -1; /* Level */
296 static int hf_atn_cpdlc_uM149LevelPosition
= -1; /* LevelPosition */
297 static int hf_atn_cpdlc_uM150LevelTime
= -1; /* LevelTime */
298 static int hf_atn_cpdlc_uM151Speed
= -1; /* Speed */
299 static int hf_atn_cpdlc_uM152DistanceSpecifiedDirection
= -1; /* DistanceSpecifiedDirection */
300 static int hf_atn_cpdlc_uM153Altimeter
= -1; /* Altimeter */
301 static int hf_atn_cpdlc_uM154NULL
= -1; /* NULL */
302 static int hf_atn_cpdlc_uM155Position
= -1; /* Position */
303 static int hf_atn_cpdlc_uM156NULL
= -1; /* NULL */
304 static int hf_atn_cpdlc_uM157Frequency
= -1; /* Frequency */
305 static int hf_atn_cpdlc_uM158AtisCode
= -1; /* ATISCode */
306 static int hf_atn_cpdlc_uM159ErrorInformation
= -1; /* ErrorInformation */
307 static int hf_atn_cpdlc_uM160Facility
= -1; /* Facility */
308 static int hf_atn_cpdlc_uM161NULL
= -1; /* NULL */
309 static int hf_atn_cpdlc_uM162NULL
= -1; /* NULL */
310 static int hf_atn_cpdlc_uM163FacilityDesignation
= -1; /* FacilityDesignation */
311 static int hf_atn_cpdlc_uM164NULL
= -1; /* NULL */
312 static int hf_atn_cpdlc_uM165NULL
= -1; /* NULL */
313 static int hf_atn_cpdlc_uM166TrafficType
= -1; /* TrafficType */
314 static int hf_atn_cpdlc_uM167NULL
= -1; /* NULL */
315 static int hf_atn_cpdlc_uM168NULL
= -1; /* NULL */
316 static int hf_atn_cpdlc_uM169FreeText
= -1; /* FreeText */
317 static int hf_atn_cpdlc_uM170FreeText
= -1; /* FreeText */
318 static int hf_atn_cpdlc_uM171VerticalRate
= -1; /* VerticalRate */
319 static int hf_atn_cpdlc_uM172VerticalRate
= -1; /* VerticalRate */
320 static int hf_atn_cpdlc_uM173VerticalRate
= -1; /* VerticalRate */
321 static int hf_atn_cpdlc_uM174VerticalRate
= -1; /* VerticalRate */
322 static int hf_atn_cpdlc_uM175Level
= -1; /* Level */
323 static int hf_atn_cpdlc_uM176NULL
= -1; /* NULL */
324 static int hf_atn_cpdlc_uM177NULL
= -1; /* NULL */
325 static int hf_atn_cpdlc_uM178NULL
= -1; /* NULL */
326 static int hf_atn_cpdlc_uM179NULL
= -1; /* NULL */
327 static int hf_atn_cpdlc_uM180LevelLevel
= -1; /* LevelLevel */
328 static int hf_atn_cpdlc_uM181ToFromPosition
= -1; /* ToFromPosition */
329 static int hf_atn_cpdlc_uM182NULL
= -1; /* NULL */
330 static int hf_atn_cpdlc_uM183FreeText
= -1; /* FreeText */
331 static int hf_atn_cpdlc_uM184TimeToFromPosition
= -1; /* TimeToFromPosition */
332 static int hf_atn_cpdlc_uM185PositionLevel
= -1; /* PositionLevel */
333 static int hf_atn_cpdlc_uM186PositionLevel
= -1; /* PositionLevel */
334 static int hf_atn_cpdlc_uM187FreeText
= -1; /* FreeText */
335 static int hf_atn_cpdlc_uM188PositionSpeed
= -1; /* PositionSpeed */
336 static int hf_atn_cpdlc_uM189Speed
= -1; /* Speed */
337 static int hf_atn_cpdlc_uM190Degrees
= -1; /* Degrees */
338 static int hf_atn_cpdlc_uM191NULL
= -1; /* NULL */
339 static int hf_atn_cpdlc_uM192LevelTime
= -1; /* LevelTime */
340 static int hf_atn_cpdlc_uM193NULL
= -1; /* NULL */
341 static int hf_atn_cpdlc_uM194FreeText
= -1; /* FreeText */
342 static int hf_atn_cpdlc_uM195FreeText
= -1; /* FreeText */
343 static int hf_atn_cpdlc_uM196FreeText
= -1; /* FreeText */
344 static int hf_atn_cpdlc_uM197FreeText
= -1; /* FreeText */
345 static int hf_atn_cpdlc_uM198FreeText
= -1; /* FreeText */
346 static int hf_atn_cpdlc_uM199FreeText
= -1; /* FreeText */
347 static int hf_atn_cpdlc_uM200NULL
= -1; /* NULL */
348 static int hf_atn_cpdlc_uM201NULL
= -1; /* NULL */
349 static int hf_atn_cpdlc_uM202NULL
= -1; /* NULL */
350 static int hf_atn_cpdlc_uM203FreeText
= -1; /* FreeText */
351 static int hf_atn_cpdlc_uM204FreeText
= -1; /* FreeText */
352 static int hf_atn_cpdlc_uM205FreeText
= -1; /* FreeText */
353 static int hf_atn_cpdlc_uM206FreeText
= -1; /* FreeText */
354 static int hf_atn_cpdlc_uM207FreeText
= -1; /* FreeText */
355 static int hf_atn_cpdlc_uM208FreeText
= -1; /* FreeText */
356 static int hf_atn_cpdlc_uM209LevelPosition
= -1; /* LevelPosition */
357 static int hf_atn_cpdlc_uM210Position
= -1; /* Position */
358 static int hf_atn_cpdlc_uM211NULL
= -1; /* NULL */
359 static int hf_atn_cpdlc_uM212FacilityDesignationATISCode
= -1; /* FacilityDesignationATISCode */
360 static int hf_atn_cpdlc_uM213FacilityDesignationAltimeter
= -1; /* FacilityDesignationAltimeter */
361 static int hf_atn_cpdlc_uM214RunwayRVR
= -1; /* RunwayRVR */
362 static int hf_atn_cpdlc_uM215DirectionDegrees
= -1; /* DirectionDegrees */
363 static int hf_atn_cpdlc_uM216NULL
= -1; /* NULL */
364 static int hf_atn_cpdlc_uM217NULL
= -1; /* NULL */
365 static int hf_atn_cpdlc_uM218NULL
= -1; /* NULL */
366 static int hf_atn_cpdlc_uM219Level
= -1; /* Level */
367 static int hf_atn_cpdlc_uM220Level
= -1; /* Level */
368 static int hf_atn_cpdlc_uM221Degrees
= -1; /* Degrees */
369 static int hf_atn_cpdlc_uM222NULL
= -1; /* NULL */
370 static int hf_atn_cpdlc_uM223NULL
= -1; /* NULL */
371 static int hf_atn_cpdlc_uM224NULL
= -1; /* NULL */
372 static int hf_atn_cpdlc_uM225NULL
= -1; /* NULL */
373 static int hf_atn_cpdlc_uM226Time
= -1; /* Time */
374 static int hf_atn_cpdlc_uM227NULL
= -1; /* NULL */
375 static int hf_atn_cpdlc_uM228Position
= -1; /* Position */
376 static int hf_atn_cpdlc_uM229NULL
= -1; /* NULL */
377 static int hf_atn_cpdlc_uM230NULL
= -1; /* NULL */
378 static int hf_atn_cpdlc_uM231NULL
= -1; /* NULL */
379 static int hf_atn_cpdlc_uM232NULL
= -1; /* NULL */
380 static int hf_atn_cpdlc_uM233NULL
= -1; /* NULL */
381 static int hf_atn_cpdlc_uM234NULL
= -1; /* NULL */
382 static int hf_atn_cpdlc_uM235NULL
= -1; /* NULL */
383 static int hf_atn_cpdlc_uM236NULL
= -1; /* NULL */
384 static int hf_atn_cpdlc_uM237NULL
= -1; /* NULL */
385 static int hf_atn_cpdlc_dM0NULL
= -1; /* NULL */
386 static int hf_atn_cpdlc_dM1NULL
= -1; /* NULL */
387 static int hf_atn_cpdlc_dM2NULL
= -1; /* NULL */
388 static int hf_atn_cpdlc_dM3NULL
= -1; /* NULL */
389 static int hf_atn_cpdlc_dM4NULL
= -1; /* NULL */
390 static int hf_atn_cpdlc_dM5NULL
= -1; /* NULL */
391 static int hf_atn_cpdlc_dM6Level
= -1; /* Level */
392 static int hf_atn_cpdlc_dM7LevelLevel
= -1; /* LevelLevel */
393 static int hf_atn_cpdlc_dM8Level
= -1; /* Level */
394 static int hf_atn_cpdlc_dM9Level
= -1; /* Level */
395 static int hf_atn_cpdlc_dM10Level
= -1; /* Level */
396 static int hf_atn_cpdlc_dM11PositionLevel
= -1; /* PositionLevel */
397 static int hf_atn_cpdlc_dM12PositionLevel
= -1; /* PositionLevel */
398 static int hf_atn_cpdlc_dM13TimeLevel
= -1; /* TimeLevel */
399 static int hf_atn_cpdlc_dM14TimeLevel
= -1; /* TimeLevel */
400 static int hf_atn_cpdlc_dM15DistanceSpecifiedDirection
= -1; /* DistanceSpecifiedDirection */
401 static int hf_atn_cpdlc_dM16PositionDistanceSpecifiedDirection
= -1; /* PositionDistanceSpecifiedDirection */
402 static int hf_atn_cpdlc_dM17TimeDistanceSpecifiedDirection
= -1; /* TimeDistanceSpecifiedDirection */
403 static int hf_atn_cpdlc_dM18Speed
= -1; /* Speed */
404 static int hf_atn_cpdlc_dM19SpeedSpeed
= -1; /* SpeedSpeed */
405 static int hf_atn_cpdlc_dM20NULL
= -1; /* NULL */
406 static int hf_atn_cpdlc_dM21Frequency
= -1; /* Frequency */
407 static int hf_atn_cpdlc_dM22Position
= -1; /* Position */
408 static int hf_atn_cpdlc_dM23ProcedureName
= -1; /* ProcedureName */
409 static int hf_atn_cpdlc_dM24RouteClearance
= -1; /* RouteClearanceIndex */
410 static int hf_atn_cpdlc_dM25ClearanceType
= -1; /* ClearanceType */
411 static int hf_atn_cpdlc_dM26PositionRouteClearance
= -1; /* PositionRouteClearanceIndex */
412 static int hf_atn_cpdlc_dM27DistanceSpecifiedDirection
= -1; /* DistanceSpecifiedDirection */
413 static int hf_atn_cpdlc_dM28Level
= -1; /* Level */
414 static int hf_atn_cpdlc_dM29Level
= -1; /* Level */
415 static int hf_atn_cpdlc_dM30Level
= -1; /* Level */
416 static int hf_atn_cpdlc_dM31Position
= -1; /* Position */
417 static int hf_atn_cpdlc_dM32Level
= -1; /* Level */
418 static int hf_atn_cpdlc_dM33Position
= -1; /* Position */
419 static int hf_atn_cpdlc_dM34Speed
= -1; /* Speed */
420 static int hf_atn_cpdlc_dM35Degrees
= -1; /* Degrees */
421 static int hf_atn_cpdlc_dM36Degrees
= -1; /* Degrees */
422 static int hf_atn_cpdlc_dM37Level
= -1; /* Level */
423 static int hf_atn_cpdlc_dM38Level
= -1; /* Level */
424 static int hf_atn_cpdlc_dM39Speed
= -1; /* Speed */
425 static int hf_atn_cpdlc_dM40RouteClearance
= -1; /* RouteClearanceIndex */
426 static int hf_atn_cpdlc_dM41NULL
= -1; /* NULL */
427 static int hf_atn_cpdlc_dM42Position
= -1; /* Position */
428 static int hf_atn_cpdlc_dM43Time
= -1; /* Time */
429 static int hf_atn_cpdlc_dM44Position
= -1; /* Position */
430 static int hf_atn_cpdlc_dM45Position
= -1; /* Position */
431 static int hf_atn_cpdlc_dM46Time
= -1; /* Time */
432 static int hf_atn_cpdlc_dM47Code
= -1; /* Code */
433 static int hf_atn_cpdlc_dM48PositionReport
= -1; /* PositionReport */
434 static int hf_atn_cpdlc_dM49Speed
= -1; /* Speed */
435 static int hf_atn_cpdlc_dM50SpeedSpeed
= -1; /* SpeedSpeed */
436 static int hf_atn_cpdlc_dM51NULL
= -1; /* NULL */
437 static int hf_atn_cpdlc_dM52NULL
= -1; /* NULL */
438 static int hf_atn_cpdlc_dM53NULL
= -1; /* NULL */
439 static int hf_atn_cpdlc_dM54Level
= -1; /* Level */
440 static int hf_atn_cpdlc_dM55NULL
= -1; /* NULL */
441 static int hf_atn_cpdlc_dM56NULL
= -1; /* NULL */
442 static int hf_atn_cpdlc_dM57RemainingFuelPersonsOnBoard
= -1; /* RemainingFuelPersonsOnBoard */
443 static int hf_atn_cpdlc_dM58NULL
= -1; /* NULL */
444 static int hf_atn_cpdlc_dM59PositionRouteClearance
= -1; /* PositionRouteClearanceIndex */
445 static int hf_atn_cpdlc_dM60DistanceSpecifiedDirection
= -1; /* DistanceSpecifiedDirection */
446 static int hf_atn_cpdlc_dM61Level
= -1; /* Level */
447 static int hf_atn_cpdlc_dM62ErrorInformation
= -1; /* ErrorInformation */
448 static int hf_atn_cpdlc_dM63NULL
= -1; /* NULL */
449 static int hf_atn_cpdlc_dM64FacilityDesignation
= -1; /* FacilityDesignation */
450 static int hf_atn_cpdlc_dM65NULL
= -1; /* NULL */
451 static int hf_atn_cpdlc_dM66NULL
= -1; /* NULL */
452 static int hf_atn_cpdlc_dM67FreeText
= -1; /* FreeText */
453 static int hf_atn_cpdlc_dM68FreeText
= -1; /* FreeText */
454 static int hf_atn_cpdlc_dM69NULL
= -1; /* NULL */
455 static int hf_atn_cpdlc_dM70Degrees
= -1; /* Degrees */
456 static int hf_atn_cpdlc_dM71Degrees
= -1; /* Degrees */
457 static int hf_atn_cpdlc_dM72Level
= -1; /* Level */
458 static int hf_atn_cpdlc_dM73Versionnumber
= -1; /* VersionNumber */
459 static int hf_atn_cpdlc_dM74NULL
= -1; /* NULL */
460 static int hf_atn_cpdlc_dM75NULL
= -1; /* NULL */
461 static int hf_atn_cpdlc_dM76LevelLevel
= -1; /* LevelLevel */
462 static int hf_atn_cpdlc_dM77LevelLevel
= -1; /* LevelLevel */
463 static int hf_atn_cpdlc_dM78TimeDistanceToFromPosition
= -1; /* TimeDistanceToFromPosition */
464 static int hf_atn_cpdlc_dM79AtisCode
= -1; /* ATISCode */
465 static int hf_atn_cpdlc_dM80DistanceSpecifiedDirection
= -1; /* DistanceSpecifiedDirection */
466 static int hf_atn_cpdlc_dM81LevelTime
= -1; /* LevelTime */
467 static int hf_atn_cpdlc_dM82Level
= -1; /* Level */
468 static int hf_atn_cpdlc_dM83SpeedTime
= -1; /* SpeedTime */
469 static int hf_atn_cpdlc_dM84Speed
= -1; /* Speed */
470 static int hf_atn_cpdlc_dM85DistanceSpecifiedDirectionTime
= -1; /* DistanceSpecifiedDirectionTime */
471 static int hf_atn_cpdlc_dM86DistanceSpecifiedDirection
= -1; /* DistanceSpecifiedDirection */
472 static int hf_atn_cpdlc_dM87Level
= -1; /* Level */
473 static int hf_atn_cpdlc_dM88Level
= -1; /* Level */
474 static int hf_atn_cpdlc_dM89UnitnameFrequency
= -1; /* UnitNameFrequency */
475 static int hf_atn_cpdlc_dM90FreeText
= -1; /* FreeText */
476 static int hf_atn_cpdlc_dM91FreeText
= -1; /* FreeText */
477 static int hf_atn_cpdlc_dM92FreeText
= -1; /* FreeText */
478 static int hf_atn_cpdlc_dM93FreeText
= -1; /* FreeText */
479 static int hf_atn_cpdlc_dM94FreeText
= -1; /* FreeText */
480 static int hf_atn_cpdlc_dM95FreeText
= -1; /* FreeText */
481 static int hf_atn_cpdlc_dM96FreeText
= -1; /* FreeText */
482 static int hf_atn_cpdlc_dM97FreeText
= -1; /* FreeText */
483 static int hf_atn_cpdlc_dM98FreeText
= -1; /* FreeText */
484 static int hf_atn_cpdlc_dM99NULL
= -1; /* NULL */
485 static int hf_atn_cpdlc_dM100NULL
= -1; /* NULL */
486 static int hf_atn_cpdlc_dM101NULL
= -1; /* NULL */
487 static int hf_atn_cpdlc_dM102NULL
= -1; /* NULL */
488 static int hf_atn_cpdlc_dM103NULL
= -1; /* NULL */
489 static int hf_atn_cpdlc_dM104PositionTime
= -1; /* PositionTime */
490 static int hf_atn_cpdlc_dM105Airport
= -1; /* Airport */
491 static int hf_atn_cpdlc_dM106Level
= -1; /* Level */
492 static int hf_atn_cpdlc_dM107NULL
= -1; /* NULL */
493 static int hf_atn_cpdlc_dM108NULL
= -1; /* NULL */
494 static int hf_atn_cpdlc_dM109Time
= -1; /* Time */
495 static int hf_atn_cpdlc_dM110Position
= -1; /* Position */
496 static int hf_atn_cpdlc_dM111TimePosition
= -1; /* TimePosition */
497 static int hf_atn_cpdlc_dM112NULL
= -1; /* NULL */
498 static int hf_atn_cpdlc_dM113SpeedTypeSpeedTypeSpeedTypeSpeed
= -1; /* SpeedTypeSpeedTypeSpeedTypeSpeed */
499 static int hf_atn_cpdlc_altimeterEnglish
= -1; /* AltimeterEnglish */
500 static int hf_atn_cpdlc_altimeterMetric
= -1; /* AltimeterMetric */
501 static int hf_atn_cpdlc_position
= -1; /* Position */
502 static int hf_atn_cpdlc_aTWDistance
= -1; /* ATWDistance */
503 static int hf_atn_cpdlc_speed
= -1; /* Speed */
504 static int hf_atn_cpdlc_aTWLevels
= -1; /* ATWLevelSequence */
505 static int hf_atn_cpdlc_atw
= -1; /* ATWLevelTolerance */
506 static int hf_atn_cpdlc_level
= -1; /* Level */
507 static int hf_atn_cpdlc_ATWLevelSequence_item
= -1; /* ATWLevel */
508 static int hf_atn_cpdlc_atwDistanceTolerance
= -1; /* ATWDistanceTolerance */
509 static int hf_atn_cpdlc_distance
= -1; /* Distance */
510 static int hf_atn_cpdlc_Code_item
= -1; /* CodeOctalDigit */
511 static int hf_atn_cpdlc_time
= -1; /* Time */
512 static int hf_atn_cpdlc_timeTolerance
= -1; /* TimeTolerance */
513 static int hf_atn_cpdlc_year
= -1; /* Year */
514 static int hf_atn_cpdlc_month
= -1; /* Month */
515 static int hf_atn_cpdlc_day
= -1; /* Day */
516 static int hf_atn_cpdlc_date
= -1; /* Date */
517 static int hf_atn_cpdlc_timehhmmss
= -1; /* Timehhmmss */
518 static int hf_atn_cpdlc_degreesMagnetic
= -1; /* DegreesMagnetic */
519 static int hf_atn_cpdlc_degreesTrue
= -1; /* DegreesTrue */
520 static int hf_atn_cpdlc_aircraftFlightIdentification
= -1; /* AircraftFlightIdentification */
521 static int hf_atn_cpdlc_clearanceLimit
= -1; /* Position */
522 static int hf_atn_cpdlc_flightInformation
= -1; /* FlightInformation */
523 static int hf_atn_cpdlc_furtherInstructions
= -1; /* FurtherInstructions */
524 static int hf_atn_cpdlc_direction
= -1; /* Direction */
525 static int hf_atn_cpdlc_degrees
= -1; /* Degrees */
526 static int hf_atn_cpdlc_distanceNm
= -1; /* DistanceNm */
527 static int hf_atn_cpdlc_distanceKm
= -1; /* DistanceKm */
528 static int hf_atn_cpdlc_distanceSpecifiedNm
= -1; /* DistanceSpecifiedNm */
529 static int hf_atn_cpdlc_distanceSpecifiedKm
= -1; /* DistanceSpecifiedKm */
530 static int hf_atn_cpdlc_distanceSpecified
= -1; /* DistanceSpecified */
531 static int hf_atn_cpdlc_distanceSpecifiedDirection
= -1; /* DistanceSpecifiedDirection */
532 static int hf_atn_cpdlc_noFacility
= -1; /* NULL */
533 static int hf_atn_cpdlc_facilityDesignation
= -1; /* FacilityDesignation */
534 static int hf_atn_cpdlc_altimeter
= -1; /* Altimeter */
535 static int hf_atn_cpdlc_aTISCode
= -1; /* ATISCode */
536 static int hf_atn_cpdlc_fixname_name
= -1; /* Fix */
537 static int hf_atn_cpdlc_latlon
= -1; /* LatitudeLongitude */
538 static int hf_atn_cpdlc_routeOfFlight
= -1; /* RouteInformation */
539 static int hf_atn_cpdlc_levelsOfFlight
= -1; /* LevelsOfFlight */
540 static int hf_atn_cpdlc_routeAndLevels
= -1; /* RouteAndLevels */
541 static int hf_atn_cpdlc_frequencyhf
= -1; /* Frequencyhf */
542 static int hf_atn_cpdlc_frequencyvhf
= -1; /* Frequencyvhf */
543 static int hf_atn_cpdlc_frequencyuhf
= -1; /* Frequencyuhf */
544 static int hf_atn_cpdlc_frequencysatchannel
= -1; /* Frequencysatchannel */
545 static int hf_atn_cpdlc_code
= -1; /* Code */
546 static int hf_atn_cpdlc_frequencyDeparture
= -1; /* UnitNameFrequency */
547 static int hf_atn_cpdlc_clearanceExpiryTime
= -1; /* Time */
548 static int hf_atn_cpdlc_airportDeparture
= -1; /* Airport */
549 static int hf_atn_cpdlc_airportDestination
= -1; /* Airport */
550 static int hf_atn_cpdlc_timeDeparture
= -1; /* TimeDeparture */
551 static int hf_atn_cpdlc_runwayDeparture
= -1; /* Runway */
552 static int hf_atn_cpdlc_revisionNumber
= -1; /* RevisionNumber */
553 static int hf_atn_cpdlc_holdatwaypointspeedlow
= -1; /* Speed */
554 static int hf_atn_cpdlc_aTWlevel
= -1; /* ATWLevel */
555 static int hf_atn_cpdlc_holdatwaypointspeedhigh
= -1; /* Speed */
556 static int hf_atn_cpdlc_eFCtime
= -1; /* Time */
557 static int hf_atn_cpdlc_legtype
= -1; /* LegType */
558 static int hf_atn_cpdlc_legType
= -1; /* LegType */
559 static int hf_atn_cpdlc_fromSelection
= -1; /* InterceptCourseFromSelection */
560 static int hf_atn_cpdlc_publishedIdentifier
= -1; /* PublishedIdentifier */
561 static int hf_atn_cpdlc_latitudeLongitude
= -1; /* LatitudeLongitude */
562 static int hf_atn_cpdlc_placeBearingPlaceBearing
= -1; /* PlaceBearingPlaceBearing */
563 static int hf_atn_cpdlc_placeBearingDistance
= -1; /* PlaceBearingDistance */
564 static int hf_atn_cpdlc_latitudeType
= -1; /* LatitudeType */
565 static int hf_atn_cpdlc_latitudeDirection
= -1; /* LatitudeDirection */
566 static int hf_atn_cpdlc_latitudeWholeDegrees
= -1; /* LatitudeWholeDegrees */
567 static int hf_atn_cpdlc_minutesLatLon
= -1; /* MinutesLatLon */
568 static int hf_atn_cpdlc_latlonWholeMinutes
= -1; /* LatLonWholeMinutes */
569 static int hf_atn_cpdlc_secondsLatLon
= -1; /* SecondsLatLon */
570 static int hf_atn_cpdlc_latitude
= -1; /* Latitude */
571 static int hf_atn_cpdlc_longitude
= -1; /* Longitude */
572 static int hf_atn_cpdlc_latitudeDegrees
= -1; /* LatitudeDegrees */
573 static int hf_atn_cpdlc_latitudeDegreesMinutes
= -1; /* LatitudeDegreesMinutes */
574 static int hf_atn_cpdlc_latitudeDMS
= -1; /* LatitudeDegreesMinutesSeconds */
575 static int hf_atn_cpdlc_latitudeReportingPoints
= -1; /* LatitudeReportingPoints */
576 static int hf_atn_cpdlc_longitudeReportingPoints
= -1; /* LongitudeReportingPoints */
577 static int hf_atn_cpdlc_legDistanceEnglish
= -1; /* LegDistanceEnglish */
578 static int hf_atn_cpdlc_legDistanceMetric
= -1; /* LegDistanceMetric */
579 static int hf_atn_cpdlc_legDistance
= -1; /* LegDistance */
580 static int hf_atn_cpdlc_legTime
= -1; /* LegTime */
581 static int hf_atn_cpdlc_singleLevel
= -1; /* LevelType */
582 static int hf_atn_cpdlc_blockLevel
= -1; /* SEQUENCE_SIZE_2_OF_LevelType */
583 static int hf_atn_cpdlc_blockLevel_item
= -1; /* LevelType */
584 static int hf_atn_cpdlc_LevelLevel_item
= -1; /* Level */
585 static int hf_atn_cpdlc_procedureName
= -1; /* ProcedureName */
586 static int hf_atn_cpdlc_levelProcedureName
= -1; /* LevelProcedureName */
587 static int hf_atn_cpdlc_levelspeed_speed
= -1; /* SpeedSpeed */
588 static int hf_atn_cpdlc_speeds
= -1; /* SpeedSpeed */
589 static int hf_atn_cpdlc_levelFeet
= -1; /* LevelFeet */
590 static int hf_atn_cpdlc_levelMeters
= -1; /* LevelMeters */
591 static int hf_atn_cpdlc_levelFlightLevel
= -1; /* LevelFlightLevel */
592 static int hf_atn_cpdlc_levelFlightLevelMetric
= -1; /* LevelFlightLevelMetric */
593 static int hf_atn_cpdlc_longitudeType
= -1; /* LongitudeType */
594 static int hf_atn_cpdlc_longitudeDirection
= -1; /* LongitudeDirection */
595 static int hf_atn_cpdlc_longitudeWholeDegrees
= -1; /* LongitudeWholeDegrees */
596 static int hf_atn_cpdlc_latLonWholeMinutes
= -1; /* LatLonWholeMinutes */
597 static int hf_atn_cpdlc_longitudeDegrees
= -1; /* LongitudeDegrees */
598 static int hf_atn_cpdlc_longitudeDegreesMinutes
= -1; /* LongitudeDegreesMinutes */
599 static int hf_atn_cpdlc_longitudeDMS
= -1; /* LongitudeDegreesMinutesSeconds */
600 static int hf_atn_cpdlc_navaid_name
= -1; /* NavaidName */
601 static int hf_atn_cpdlc_PlaceBearingPlaceBearing_item
= -1; /* PlaceBearing */
602 static int hf_atn_cpdlc_fixName
= -1; /* FixName */
603 static int hf_atn_cpdlc_navaid
= -1; /* Navaid */
604 static int hf_atn_cpdlc_airport
= -1; /* Airport */
605 static int hf_atn_cpdlc_levels
= -1; /* LevelLevel */
606 static int hf_atn_cpdlc_positionlevel
= -1; /* PositionLevel */
607 static int hf_atn_cpdlc_PositionPosition_item
= -1; /* Position */
608 static int hf_atn_cpdlc_positioncurrent
= -1; /* Position */
609 static int hf_atn_cpdlc_timeatpositioncurrent
= -1; /* Time */
610 static int hf_atn_cpdlc_fixnext
= -1; /* Position */
611 static int hf_atn_cpdlc_timeetaatfixnext
= -1; /* Time */
612 static int hf_atn_cpdlc_fixnextplusone
= -1; /* Position */
613 static int hf_atn_cpdlc_timeetaatdestination
= -1; /* Time */
614 static int hf_atn_cpdlc_remainingFuel
= -1; /* RemainingFuel */
615 static int hf_atn_cpdlc_temperature
= -1; /* Temperature */
616 static int hf_atn_cpdlc_winds
= -1; /* Winds */
617 static int hf_atn_cpdlc_turbulence
= -1; /* Turbulence */
618 static int hf_atn_cpdlc_icing
= -1; /* Icing */
619 static int hf_atn_cpdlc_speedground
= -1; /* SpeedGround */
620 static int hf_atn_cpdlc_verticalChange
= -1; /* VerticalChange */
621 static int hf_atn_cpdlc_trackAngle
= -1; /* Degrees */
622 static int hf_atn_cpdlc_heading
= -1; /* Degrees */
623 static int hf_atn_cpdlc_humidity
= -1; /* Humidity */
624 static int hf_atn_cpdlc_reportedWaypointPosition
= -1; /* Position */
625 static int hf_atn_cpdlc_reportedWaypointTime
= -1; /* Time */
626 static int hf_atn_cpdlc_reportedWaypointLevel
= -1; /* Level */
627 static int hf_atn_cpdlc_routeClearanceIndex
= -1; /* RouteClearanceIndex */
628 static int hf_atn_cpdlc_positionTime
= -1; /* PositionTime */
629 static int hf_atn_cpdlc_times
= -1; /* TimeTime */
630 static int hf_atn_cpdlc_unitname
= -1; /* UnitName */
631 static int hf_atn_cpdlc_frequency
= -1; /* Frequency */
632 static int hf_atn_cpdlc_type
= -1; /* ProcedureType */
633 static int hf_atn_cpdlc_procedure
= -1; /* Procedure */
634 static int hf_atn_cpdlc_transition
= -1; /* ProcedureTransition */
635 static int hf_atn_cpdlc_personsOnBoard
= -1; /* PersonsOnBoard */
636 static int hf_atn_cpdlc_latLonReportingPoints
= -1; /* LatLonReportingPoints */
637 static int hf_atn_cpdlc_degreeIncrement
= -1; /* DegreeIncrement */
638 static int hf_atn_cpdlc_procedureDeparture
= -1; /* ProcedureName */
639 static int hf_atn_cpdlc_runwayArrival
= -1; /* Runway */
640 static int hf_atn_cpdlc_procedureApproach
= -1; /* ProcedureName */
641 static int hf_atn_cpdlc_procedureArrival
= -1; /* ProcedureName */
642 static int hf_atn_cpdlc_routeInformations
= -1; /* SEQUENCE_SIZE_1_128_OF_RouteInformation */
643 static int hf_atn_cpdlc_routeInformations_item
= -1; /* RouteInformation */
644 static int hf_atn_cpdlc_routeInformationAdditional
= -1; /* RouteInformationAdditional */
645 static int hf_atn_cpdlc_aTSRouteDesignator
= -1; /* ATSRouteDesignator */
646 static int hf_atn_cpdlc_aTWAlongTrackWaypoints
= -1; /* SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint */
647 static int hf_atn_cpdlc_aTWAlongTrackWaypoints_item
= -1; /* ATWAlongTrackWaypoint */
648 static int hf_atn_cpdlc_reportingpoints
= -1; /* ReportingPoints */
649 static int hf_atn_cpdlc_interceptCourseFroms
= -1; /* SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom */
650 static int hf_atn_cpdlc_interceptCourseFroms_item
= -1; /* InterceptCourseFrom */
651 static int hf_atn_cpdlc_holdAtWaypoints
= -1; /* SEQUENCE_SIZE_1_8_OF_Holdatwaypoint */
652 static int hf_atn_cpdlc_holdAtWaypoints_item
= -1; /* Holdatwaypoint */
653 static int hf_atn_cpdlc_waypointSpeedLevels
= -1; /* SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel */
654 static int hf_atn_cpdlc_waypointSpeedLevels_item
= -1; /* WaypointSpeedLevel */
655 static int hf_atn_cpdlc_rTARequiredTimeArrivals
= -1; /* SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival */
656 static int hf_atn_cpdlc_rTARequiredTimeArrivals_item
= -1; /* RTARequiredTimeArrival */
657 static int hf_atn_cpdlc_rTATime
= -1; /* RTATime */
658 static int hf_atn_cpdlc_rTATolerance
= -1; /* RTATolerance */
659 static int hf_atn_cpdlc_runway_direction
= -1; /* RunwayDirection */
660 static int hf_atn_cpdlc_configuration
= -1; /* RunwayConfiguration */
661 static int hf_atn_cpdlc_runway
= -1; /* Runway */
662 static int hf_atn_cpdlc_rVR
= -1; /* RVR */
663 static int hf_atn_cpdlc_rVRFeet
= -1; /* RVRFeet */
664 static int hf_atn_cpdlc_rVRMeters
= -1; /* RVRMeters */
665 static int hf_atn_cpdlc_speedIndicated
= -1; /* SpeedIndicated */
666 static int hf_atn_cpdlc_speedIndicatedMetric
= -1; /* SpeedIndicatedMetric */
667 static int hf_atn_cpdlc_speedTrue
= -1; /* SpeedTrue */
668 static int hf_atn_cpdlc_speedTrueMetric
= -1; /* SpeedTrueMetric */
669 static int hf_atn_cpdlc_speedGround
= -1; /* SpeedGround */
670 static int hf_atn_cpdlc_speedGroundMetric
= -1; /* SpeedGroundMetric */
671 static int hf_atn_cpdlc_speedMach
= -1; /* SpeedMach */
672 static int hf_atn_cpdlc_SpeedSpeed_item
= -1; /* Speed */
673 static int hf_atn_cpdlc_SpeedTypeSpeedTypeSpeedType_item
= -1; /* SpeedType */
674 static int hf_atn_cpdlc_speedTypes
= -1; /* SpeedTypeSpeedTypeSpeedType */
675 static int hf_atn_cpdlc_hours
= -1; /* TimeHours */
676 static int hf_atn_cpdlc_minutes
= -1; /* TimeMinutes */
677 static int hf_atn_cpdlc_timeDepartureAllocated
= -1; /* Time */
678 static int hf_atn_cpdlc_timeDepartureControlled
= -1; /* ControlledTime */
679 static int hf_atn_cpdlc_timeDepartureClearanceExpected
= -1; /* Time */
680 static int hf_atn_cpdlc_departureMinimumInterval
= -1; /* DepartureMinimumInterval */
681 static int hf_atn_cpdlc_tofrom
= -1; /* ToFrom */
682 static int hf_atn_cpdlc_hoursminutes
= -1; /* Time */
683 static int hf_atn_cpdlc_seconds
= -1; /* TimeSeconds */
684 static int hf_atn_cpdlc_unitName
= -1; /* UnitName */
685 static int hf_atn_cpdlc_timeposition
= -1; /* TimePosition */
686 static int hf_atn_cpdlc_levelspeed
= -1; /* LevelSpeed */
687 static int hf_atn_cpdlc_speedspeed
= -1; /* SpeedSpeed */
688 static int hf_atn_cpdlc_TimeTime_item
= -1; /* Time */
689 static int hf_atn_cpdlc_toFrom
= -1; /* ToFrom */
690 static int hf_atn_cpdlc_facilityName
= -1; /* FacilityName */
691 static int hf_atn_cpdlc_facilityFunction
= -1; /* FacilityFunction */
692 static int hf_atn_cpdlc_vertical_direction
= -1; /* VerticalDirection */
693 static int hf_atn_cpdlc_rate
= -1; /* VerticalRate */
694 static int hf_atn_cpdlc_verticalRateEnglish
= -1; /* VerticalRateEnglish */
695 static int hf_atn_cpdlc_verticalRateMetric
= -1; /* VerticalRateMetric */
696 static int hf_atn_cpdlc_winds_direction
= -1; /* WindDirection */
697 static int hf_atn_cpdlc_winds_speed
= -1; /* WindSpeed */
698 static int hf_atn_cpdlc_windSpeedEnglish
= -1; /* WindSpeedEnglish */
699 static int hf_atn_cpdlc_windSpeedMetric
= -1; /* WindSpeedMetric */
701 /*--- End of included file: packet-atn-cpdlc-hf.c ---*/
702 #line 89 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
705 /*--- Included file: packet-atn-cpdlc-ett.c ---*/
706 #line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-ett.c"
707 static gint ett_atn_cpdlc_GroundPDUs
= -1;
708 static gint ett_atn_cpdlc_UplinkMessage
= -1;
709 static gint ett_atn_cpdlc_AircraftPDUs
= -1;
710 static gint ett_atn_cpdlc_StartDownMessage
= -1;
711 static gint ett_atn_cpdlc_DownlinkMessage
= -1;
712 static gint ett_atn_cpdlc_ProtectedGroundPDUs
= -1;
713 static gint ett_atn_cpdlc_ProtectedUplinkMessage
= -1;
714 static gint ett_atn_cpdlc_ATCForwardMessage
= -1;
715 static gint ett_atn_cpdlc_ForwardHeader
= -1;
716 static gint ett_atn_cpdlc_ForwardMessage
= -1;
717 static gint ett_atn_cpdlc_ProtectedAircraftPDUs
= -1;
718 static gint ett_atn_cpdlc_ProtectedStartDownMessage
= -1;
719 static gint ett_atn_cpdlc_ProtectedDownlinkMessage
= -1;
720 static gint ett_atn_cpdlc_ATCUplinkMessage
= -1;
721 static gint ett_atn_cpdlc_ATCUplinkMessageData
= -1;
722 static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId
= -1;
723 static gint ett_atn_cpdlc_T_atcuplinkmessagedata_constraineddata
= -1;
724 static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance
= -1;
725 static gint ett_atn_cpdlc_ATCDownlinkMessage
= -1;
726 static gint ett_atn_cpdlc_ATCDownlinkMessageData
= -1;
727 static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId
= -1;
728 static gint ett_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata
= -1;
729 static gint ett_atn_cpdlc_ATCMessageHeader
= -1;
730 static gint ett_atn_cpdlc_ATCUplinkMsgElementId
= -1;
731 static gint ett_atn_cpdlc_ATCDownlinkMsgElementId
= -1;
732 static gint ett_atn_cpdlc_Altimeter
= -1;
733 static gint ett_atn_cpdlc_ATWAlongTrackWaypoint
= -1;
734 static gint ett_atn_cpdlc_ATWLevel
= -1;
735 static gint ett_atn_cpdlc_ATWLevelSequence
= -1;
736 static gint ett_atn_cpdlc_ATWDistance
= -1;
737 static gint ett_atn_cpdlc_Code
= -1;
738 static gint ett_atn_cpdlc_ControlledTime
= -1;
739 static gint ett_atn_cpdlc_Date
= -1;
740 static gint ett_atn_cpdlc_DateTimeGroup
= -1;
741 static gint ett_atn_cpdlc_Degrees
= -1;
742 static gint ett_atn_cpdlc_DepartureClearance
= -1;
743 static gint ett_atn_cpdlc_DirectionDegrees
= -1;
744 static gint ett_atn_cpdlc_Distance
= -1;
745 static gint ett_atn_cpdlc_DistanceSpecified
= -1;
746 static gint ett_atn_cpdlc_DistanceSpecifiedDirection
= -1;
747 static gint ett_atn_cpdlc_DistanceSpecifiedDirectionTime
= -1;
748 static gint ett_atn_cpdlc_Facility
= -1;
749 static gint ett_atn_cpdlc_FacilityDesignationAltimeter
= -1;
750 static gint ett_atn_cpdlc_FacilityDesignationATISCode
= -1;
751 static gint ett_atn_cpdlc_FixName
= -1;
752 static gint ett_atn_cpdlc_FlightInformation
= -1;
753 static gint ett_atn_cpdlc_Frequency
= -1;
754 static gint ett_atn_cpdlc_FurtherInstructions
= -1;
755 static gint ett_atn_cpdlc_Holdatwaypoint
= -1;
756 static gint ett_atn_cpdlc_HoldClearance
= -1;
757 static gint ett_atn_cpdlc_InterceptCourseFrom
= -1;
758 static gint ett_atn_cpdlc_InterceptCourseFromSelection
= -1;
759 static gint ett_atn_cpdlc_Latitude
= -1;
760 static gint ett_atn_cpdlc_LatitudeDegreesMinutes
= -1;
761 static gint ett_atn_cpdlc_LatitudeDegreesMinutesSeconds
= -1;
762 static gint ett_atn_cpdlc_LatitudeLongitude
= -1;
763 static gint ett_atn_cpdlc_LatitudeReportingPoints
= -1;
764 static gint ett_atn_cpdlc_LatitudeType
= -1;
765 static gint ett_atn_cpdlc_LatLonReportingPoints
= -1;
766 static gint ett_atn_cpdlc_LegDistance
= -1;
767 static gint ett_atn_cpdlc_LegType
= -1;
768 static gint ett_atn_cpdlc_Level
= -1;
769 static gint ett_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType
= -1;
770 static gint ett_atn_cpdlc_LevelLevel
= -1;
771 static gint ett_atn_cpdlc_LevelPosition
= -1;
772 static gint ett_atn_cpdlc_LevelProcedureName
= -1;
773 static gint ett_atn_cpdlc_LevelsOfFlight
= -1;
774 static gint ett_atn_cpdlc_LevelSpeed
= -1;
775 static gint ett_atn_cpdlc_LevelSpeedSpeed
= -1;
776 static gint ett_atn_cpdlc_LevelTime
= -1;
777 static gint ett_atn_cpdlc_LevelType
= -1;
778 static gint ett_atn_cpdlc_Longitude
= -1;
779 static gint ett_atn_cpdlc_LongitudeDegreesMinutes
= -1;
780 static gint ett_atn_cpdlc_LongitudeDegreesMinutesSeconds
= -1;
781 static gint ett_atn_cpdlc_LongitudeReportingPoints
= -1;
782 static gint ett_atn_cpdlc_LongitudeType
= -1;
783 static gint ett_atn_cpdlc_Navaid
= -1;
784 static gint ett_atn_cpdlc_PlaceBearing
= -1;
785 static gint ett_atn_cpdlc_PlaceBearingDistance
= -1;
786 static gint ett_atn_cpdlc_PlaceBearingPlaceBearing
= -1;
787 static gint ett_atn_cpdlc_Position
= -1;
788 static gint ett_atn_cpdlc_PositionDegrees
= -1;
789 static gint ett_atn_cpdlc_PositionDistanceSpecifiedDirection
= -1;
790 static gint ett_atn_cpdlc_PositionLevel
= -1;
791 static gint ett_atn_cpdlc_PositionLevelLevel
= -1;
792 static gint ett_atn_cpdlc_PositionLevelSpeed
= -1;
793 static gint ett_atn_cpdlc_PositionPosition
= -1;
794 static gint ett_atn_cpdlc_PositionProcedureName
= -1;
795 static gint ett_atn_cpdlc_PositionReport
= -1;
796 static gint ett_atn_cpdlc_PositionRouteClearanceIndex
= -1;
797 static gint ett_atn_cpdlc_PositionSpeed
= -1;
798 static gint ett_atn_cpdlc_PositionSpeedSpeed
= -1;
799 static gint ett_atn_cpdlc_PositionTime
= -1;
800 static gint ett_atn_cpdlc_PositionTimeLevel
= -1;
801 static gint ett_atn_cpdlc_PositionTimeTime
= -1;
802 static gint ett_atn_cpdlc_PositionUnitNameFrequency
= -1;
803 static gint ett_atn_cpdlc_ProcedureName
= -1;
804 static gint ett_atn_cpdlc_PublishedIdentifier
= -1;
805 static gint ett_atn_cpdlc_RemainingFuelPersonsOnBoard
= -1;
806 static gint ett_atn_cpdlc_ReportingPoints
= -1;
807 static gint ett_atn_cpdlc_RouteAndLevels
= -1;
808 static gint ett_atn_cpdlc_RouteClearance
= -1;
809 static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation
= -1;
810 static gint ett_atn_cpdlc_RouteInformation
= -1;
811 static gint ett_atn_cpdlc_RouteInformationAdditional
= -1;
812 static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint
= -1;
813 static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom
= -1;
814 static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint
= -1;
815 static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel
= -1;
816 static gint ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival
= -1;
817 static gint ett_atn_cpdlc_RTARequiredTimeArrival
= -1;
818 static gint ett_atn_cpdlc_RTATime
= -1;
819 static gint ett_atn_cpdlc_Runway
= -1;
820 static gint ett_atn_cpdlc_RunwayRVR
= -1;
821 static gint ett_atn_cpdlc_RVR
= -1;
822 static gint ett_atn_cpdlc_Speed
= -1;
823 static gint ett_atn_cpdlc_SpeedSpeed
= -1;
824 static gint ett_atn_cpdlc_SpeedTime
= -1;
825 static gint ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedType
= -1;
826 static gint ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed
= -1;
827 static gint ett_atn_cpdlc_Time
= -1;
828 static gint ett_atn_cpdlc_TimeLevel
= -1;
829 static gint ett_atn_cpdlc_TimeDeparture
= -1;
830 static gint ett_atn_cpdlc_TimeDistanceSpecifiedDirection
= -1;
831 static gint ett_atn_cpdlc_TimeDistanceToFromPosition
= -1;
832 static gint ett_atn_cpdlc_Timehhmmss
= -1;
833 static gint ett_atn_cpdlc_TimeUnitNameFrequency
= -1;
834 static gint ett_atn_cpdlc_TimePosition
= -1;
835 static gint ett_atn_cpdlc_TimePositionLevel
= -1;
836 static gint ett_atn_cpdlc_TimePositionLevelSpeed
= -1;
837 static gint ett_atn_cpdlc_TimeSpeed
= -1;
838 static gint ett_atn_cpdlc_TimeSpeedSpeed
= -1;
839 static gint ett_atn_cpdlc_TimeTime
= -1;
840 static gint ett_atn_cpdlc_TimeToFromPosition
= -1;
841 static gint ett_atn_cpdlc_ToFromPosition
= -1;
842 static gint ett_atn_cpdlc_UnitName
= -1;
843 static gint ett_atn_cpdlc_UnitNameFrequency
= -1;
844 static gint ett_atn_cpdlc_VerticalChange
= -1;
845 static gint ett_atn_cpdlc_VerticalRate
= -1;
846 static gint ett_atn_cpdlc_WaypointSpeedLevel
= -1;
847 static gint ett_atn_cpdlc_Winds
= -1;
848 static gint ett_atn_cpdlc_WindSpeed
= -1;
850 /*--- End of included file: packet-atn-cpdlc-ett.c ---*/
851 #line 91 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
852 static gint ett_atn_cpdlc
= -1;
855 /*--- Included file: packet-atn-cpdlc-fn.c ---*/
856 #line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-fn.c"
858 static const value_string atn_cpdlc_CPDLCUserAbortReason_vals
[] = {
860 { 1, "no-message-identification-numbers-available" },
861 { 2, "duplicate-message-identification-numbers" },
862 { 3, "no-longer-next-data-authority" },
863 { 4, "current-data-authority-abort" },
864 { 5, "commanded-termination" },
865 { 6, "invalid-response" },
871 dissect_atn_cpdlc_CPDLCUserAbortReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
872 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
873 7, NULL
, TRUE
, 0, NULL
);
879 static const value_string atn_cpdlc_CPDLCProviderAbortReason_vals
[] = {
880 { 0, "timer-expired" },
881 { 1, "undefined-error" },
882 { 2, "invalid-PDU" },
883 { 3, "protocol-error" },
884 { 4, "communication-service-error" },
885 { 5, "communication-service-failure" },
886 { 6, "invalid-QOS-parameter" },
887 { 7, "expected-PDU-missing" },
893 dissect_atn_cpdlc_CPDLCProviderAbortReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
894 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
895 8, NULL
, TRUE
, 0, NULL
);
903 dissect_atn_cpdlc_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
904 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
912 dissect_atn_cpdlc_MsgIdentificationNumber(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
913 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
914 0U, 63U, NULL
, FALSE
);
922 dissect_atn_cpdlc_MsgReferenceNumber(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
923 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
924 0U, 63U, NULL
, FALSE
);
932 dissect_atn_cpdlc_Year(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
933 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
934 1996U, 2095U, NULL
, FALSE
);
942 dissect_atn_cpdlc_Month(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
943 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
944 1U, 12U, NULL
, FALSE
);
952 dissect_atn_cpdlc_Day(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
953 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
954 1U, 31U, NULL
, FALSE
);
960 static const per_sequence_t Date_sequence
[] = {
961 { &hf_atn_cpdlc_year
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Year
},
962 { &hf_atn_cpdlc_month
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Month
},
963 { &hf_atn_cpdlc_day
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Day
},
968 dissect_atn_cpdlc_Date(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
969 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
970 ett_atn_cpdlc_Date
, Date_sequence
);
978 dissect_atn_cpdlc_TimeHours(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
979 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
980 0U, 23U, NULL
, FALSE
);
988 dissect_atn_cpdlc_TimeMinutes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
989 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
990 0U, 59U, NULL
, FALSE
);
996 static const per_sequence_t Time_sequence
[] = {
997 { &hf_atn_cpdlc_hours
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeHours
},
998 { &hf_atn_cpdlc_minutes
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeMinutes
},
1003 dissect_atn_cpdlc_Time(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1004 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1005 ett_atn_cpdlc_Time
, Time_sequence
);
1013 dissect_atn_cpdlc_TimeSeconds(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1014 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1015 0U, 59U, NULL
, FALSE
);
1021 static const per_sequence_t Timehhmmss_sequence
[] = {
1022 { &hf_atn_cpdlc_hoursminutes
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1023 { &hf_atn_cpdlc_seconds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeSeconds
},
1024 { NULL
, 0, 0, NULL
}
1028 dissect_atn_cpdlc_Timehhmmss(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1029 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1030 ett_atn_cpdlc_Timehhmmss
, Timehhmmss_sequence
);
1036 static const per_sequence_t DateTimeGroup_sequence
[] = {
1037 { &hf_atn_cpdlc_date
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Date
},
1038 { &hf_atn_cpdlc_timehhmmss
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Timehhmmss
},
1039 { NULL
, 0, 0, NULL
}
1043 dissect_atn_cpdlc_DateTimeGroup(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1044 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1045 ett_atn_cpdlc_DateTimeGroup
, DateTimeGroup_sequence
);
1051 static const value_string atn_cpdlc_LogicalAck_vals
[] = {
1053 { 1, "notRequired" },
1059 dissect_atn_cpdlc_LogicalAck(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1060 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1061 2, NULL
, FALSE
, 0, NULL
);
1067 static const per_sequence_t ATCMessageHeader_sequence
[] = {
1068 { &hf_atn_cpdlc_messageIdNumber
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_MsgIdentificationNumber
},
1069 { &hf_atn_cpdlc_messageRefNumber
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_MsgReferenceNumber
},
1070 { &hf_atn_cpdlc_dateTime
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DateTimeGroup
},
1071 { &hf_atn_cpdlc_logicalAck
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_LogicalAck
},
1072 { NULL
, 0, 0, NULL
}
1076 dissect_atn_cpdlc_ATCMessageHeader(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1077 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1078 ett_atn_cpdlc_ATCMessageHeader
, ATCMessageHeader_sequence
);
1086 dissect_atn_cpdlc_LevelFeet(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1087 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1088 -60, 7000U, NULL
, FALSE
);
1096 dissect_atn_cpdlc_LevelMeters(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1097 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1098 -30, 25000U, NULL
, FALSE
);
1106 dissect_atn_cpdlc_LevelFlightLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1107 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1108 30U, 700U, NULL
, FALSE
);
1116 dissect_atn_cpdlc_LevelFlightLevelMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1117 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1118 100U, 2500U, NULL
, FALSE
);
1124 static const value_string atn_cpdlc_LevelType_vals
[] = {
1126 { 1, "levelMeters" },
1127 { 2, "levelFlightLevel" },
1128 { 3, "levelFlightLevelMetric" },
1132 static const per_choice_t LevelType_choice
[] = {
1133 { 0, &hf_atn_cpdlc_levelFeet
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelFeet
},
1134 { 1, &hf_atn_cpdlc_levelMeters
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelMeters
},
1135 { 2, &hf_atn_cpdlc_levelFlightLevel
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelFlightLevel
},
1136 { 3, &hf_atn_cpdlc_levelFlightLevelMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelFlightLevelMetric
},
1137 { 0, NULL
, 0, NULL
}
1141 dissect_atn_cpdlc_LevelType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1142 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1143 ett_atn_cpdlc_LevelType
, LevelType_choice
,
1150 static const per_sequence_t SEQUENCE_SIZE_2_OF_LevelType_sequence_of
[1] = {
1151 { &hf_atn_cpdlc_blockLevel_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LevelType
},
1155 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_
) {
1156 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1157 ett_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType
, SEQUENCE_SIZE_2_OF_LevelType_sequence_of
,
1164 static const value_string atn_cpdlc_Level_vals
[] = {
1165 { 0, "singleLevel" },
1166 { 1, "blockLevel" },
1170 static const per_choice_t Level_choice
[] = {
1171 { 0, &hf_atn_cpdlc_singleLevel
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelType
},
1172 { 1, &hf_atn_cpdlc_blockLevel
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType
},
1173 { 0, NULL
, 0, NULL
}
1177 dissect_atn_cpdlc_Level(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1178 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1179 ett_atn_cpdlc_Level
, Level_choice
,
1188 dissect_atn_cpdlc_Fix(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1189 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 5, FALSE
, ia5alpha
, 127, NULL
);
1197 dissect_atn_cpdlc_LatitudeDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1198 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1199 0U, 90000U, NULL
, FALSE
);
1207 dissect_atn_cpdlc_LatitudeWholeDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1208 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1209 0U, 89U, NULL
, FALSE
);
1217 dissect_atn_cpdlc_MinutesLatLon(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1218 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1219 0U, 5999U, NULL
, FALSE
);
1225 static const per_sequence_t LatitudeDegreesMinutes_sequence
[] = {
1226 { &hf_atn_cpdlc_latitudeWholeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeWholeDegrees
},
1227 { &hf_atn_cpdlc_minutesLatLon
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_MinutesLatLon
},
1228 { NULL
, 0, 0, NULL
}
1232 dissect_atn_cpdlc_LatitudeDegreesMinutes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1233 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1234 ett_atn_cpdlc_LatitudeDegreesMinutes
, LatitudeDegreesMinutes_sequence
);
1242 dissect_atn_cpdlc_LatLonWholeMinutes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1243 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1244 0U, 59U, NULL
, FALSE
);
1252 dissect_atn_cpdlc_SecondsLatLon(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1253 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1254 0U, 59U, NULL
, FALSE
);
1260 static const per_sequence_t LatitudeDegreesMinutesSeconds_sequence
[] = {
1261 { &hf_atn_cpdlc_latitudeWholeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeWholeDegrees
},
1262 { &hf_atn_cpdlc_latlonWholeMinutes
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatLonWholeMinutes
},
1263 { &hf_atn_cpdlc_secondsLatLon
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SecondsLatLon
},
1264 { NULL
, 0, 0, NULL
}
1268 dissect_atn_cpdlc_LatitudeDegreesMinutesSeconds(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1269 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1270 ett_atn_cpdlc_LatitudeDegreesMinutesSeconds
, LatitudeDegreesMinutesSeconds_sequence
);
1276 static const value_string atn_cpdlc_LatitudeType_vals
[] = {
1277 { 0, "latitudeDegrees" },
1278 { 1, "latitudeDegreesMinutes" },
1279 { 2, "latitudeDMS" },
1283 static const per_choice_t LatitudeType_choice
[] = {
1284 { 0, &hf_atn_cpdlc_latitudeDegrees
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeDegrees
},
1285 { 1, &hf_atn_cpdlc_latitudeDegreesMinutes
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeDegreesMinutes
},
1286 { 2, &hf_atn_cpdlc_latitudeDMS
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeDegreesMinutesSeconds
},
1287 { 0, NULL
, 0, NULL
}
1291 dissect_atn_cpdlc_LatitudeType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1292 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1293 ett_atn_cpdlc_LatitudeType
, LatitudeType_choice
,
1300 static const value_string atn_cpdlc_LatitudeDirection_vals
[] = {
1308 dissect_atn_cpdlc_LatitudeDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1309 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1310 2, NULL
, FALSE
, 0, NULL
);
1316 static const per_sequence_t Latitude_sequence
[] = {
1317 { &hf_atn_cpdlc_latitudeType
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeType
},
1318 { &hf_atn_cpdlc_latitudeDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeDirection
},
1319 { NULL
, 0, 0, NULL
}
1323 dissect_atn_cpdlc_Latitude(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1324 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1325 ett_atn_cpdlc_Latitude
, Latitude_sequence
);
1333 dissect_atn_cpdlc_LongitudeDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1334 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1335 0U, 180000U, NULL
, FALSE
);
1343 dissect_atn_cpdlc_LongitudeWholeDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1344 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1345 0U, 179U, NULL
, FALSE
);
1351 static const per_sequence_t LongitudeDegreesMinutes_sequence
[] = {
1352 { &hf_atn_cpdlc_longitudeWholeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeWholeDegrees
},
1353 { &hf_atn_cpdlc_minutesLatLon
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_MinutesLatLon
},
1354 { NULL
, 0, 0, NULL
}
1358 dissect_atn_cpdlc_LongitudeDegreesMinutes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1359 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1360 ett_atn_cpdlc_LongitudeDegreesMinutes
, LongitudeDegreesMinutes_sequence
);
1366 static const per_sequence_t LongitudeDegreesMinutesSeconds_sequence
[] = {
1367 { &hf_atn_cpdlc_longitudeWholeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeWholeDegrees
},
1368 { &hf_atn_cpdlc_latLonWholeMinutes
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatLonWholeMinutes
},
1369 { &hf_atn_cpdlc_secondsLatLon
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SecondsLatLon
},
1370 { NULL
, 0, 0, NULL
}
1374 dissect_atn_cpdlc_LongitudeDegreesMinutesSeconds(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1375 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1376 ett_atn_cpdlc_LongitudeDegreesMinutesSeconds
, LongitudeDegreesMinutesSeconds_sequence
);
1382 static const value_string atn_cpdlc_LongitudeType_vals
[] = {
1383 { 0, "longitudeDegrees" },
1384 { 1, "longitudeDegreesMinutes" },
1385 { 2, "longitudeDMS" },
1389 static const per_choice_t LongitudeType_choice
[] = {
1390 { 0, &hf_atn_cpdlc_longitudeDegrees
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LongitudeDegrees
},
1391 { 1, &hf_atn_cpdlc_longitudeDegreesMinutes
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LongitudeDegreesMinutes
},
1392 { 2, &hf_atn_cpdlc_longitudeDMS
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LongitudeDegreesMinutesSeconds
},
1393 { 0, NULL
, 0, NULL
}
1397 dissect_atn_cpdlc_LongitudeType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1398 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1399 ett_atn_cpdlc_LongitudeType
, LongitudeType_choice
,
1406 static const value_string atn_cpdlc_LongitudeDirection_vals
[] = {
1414 dissect_atn_cpdlc_LongitudeDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1415 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1416 2, NULL
, FALSE
, 0, NULL
);
1422 static const per_sequence_t Longitude_sequence
[] = {
1423 { &hf_atn_cpdlc_longitudeType
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeType
},
1424 { &hf_atn_cpdlc_longitudeDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeDirection
},
1425 { NULL
, 0, 0, NULL
}
1429 dissect_atn_cpdlc_Longitude(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1430 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1431 ett_atn_cpdlc_Longitude
, Longitude_sequence
);
1437 static const per_sequence_t LatitudeLongitude_sequence
[] = {
1438 { &hf_atn_cpdlc_latitude
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Latitude
},
1439 { &hf_atn_cpdlc_longitude
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Longitude
},
1440 { NULL
, 0, 0, NULL
}
1444 dissect_atn_cpdlc_LatitudeLongitude(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1445 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1446 ett_atn_cpdlc_LatitudeLongitude
, LatitudeLongitude_sequence
);
1452 static const per_sequence_t FixName_sequence
[] = {
1453 { &hf_atn_cpdlc_fixname_name
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Fix
},
1454 { &hf_atn_cpdlc_latlon
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_LatitudeLongitude
},
1455 { NULL
, 0, 0, NULL
}
1459 dissect_atn_cpdlc_FixName(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_FixName
, FixName_sequence
);
1469 dissect_atn_cpdlc_NavaidName(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
,1, 4, FALSE
, ia5alpha
, 127, NULL
);
1476 static const per_sequence_t Navaid_sequence
[] = {
1477 { &hf_atn_cpdlc_navaid_name
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_NavaidName
},
1478 { &hf_atn_cpdlc_latlon
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_LatitudeLongitude
},
1479 { NULL
, 0, 0, NULL
}
1483 dissect_atn_cpdlc_Navaid(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1484 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1485 ett_atn_cpdlc_Navaid
, Navaid_sequence
);
1493 dissect_atn_cpdlc_Airport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1494 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,4, 4, FALSE
, ia5alpha
, 127, NULL
);
1500 static const value_string atn_cpdlc_PublishedIdentifier_vals
[] = {
1506 static const per_choice_t PublishedIdentifier_choice
[] = {
1507 { 0, &hf_atn_cpdlc_fixName
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_FixName
},
1508 { 1, &hf_atn_cpdlc_navaid
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Navaid
},
1509 { 0, NULL
, 0, NULL
}
1513 dissect_atn_cpdlc_PublishedIdentifier(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1514 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1515 ett_atn_cpdlc_PublishedIdentifier
, PublishedIdentifier_choice
,
1524 dissect_atn_cpdlc_DegreesMagnetic(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1525 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1526 1U, 360U, NULL
, FALSE
);
1534 dissect_atn_cpdlc_DegreesTrue(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1535 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1536 1U, 360U, NULL
, FALSE
);
1542 static const value_string atn_cpdlc_Degrees_vals
[] = {
1543 { 0, "degreesMagnetic" },
1544 { 1, "degreesTrue" },
1548 static const per_choice_t Degrees_choice
[] = {
1549 { 0, &hf_atn_cpdlc_degreesMagnetic
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DegreesMagnetic
},
1550 { 1, &hf_atn_cpdlc_degreesTrue
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DegreesTrue
},
1551 { 0, NULL
, 0, NULL
}
1555 dissect_atn_cpdlc_Degrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1556 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1557 ett_atn_cpdlc_Degrees
, Degrees_choice
,
1566 dissect_atn_cpdlc_DistanceNm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1567 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1568 0U, 9999U, NULL
, FALSE
);
1576 dissect_atn_cpdlc_DistanceKm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1577 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1578 0U, 8000U, NULL
, FALSE
);
1584 static const value_string atn_cpdlc_Distance_vals
[] = {
1585 { 0, "distanceNm" },
1586 { 1, "distanceKm" },
1590 static const per_choice_t Distance_choice
[] = {
1591 { 0, &hf_atn_cpdlc_distanceNm
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DistanceNm
},
1592 { 1, &hf_atn_cpdlc_distanceKm
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DistanceKm
},
1593 { 0, NULL
, 0, NULL
}
1597 dissect_atn_cpdlc_Distance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1598 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1599 ett_atn_cpdlc_Distance
, Distance_choice
,
1606 static const per_sequence_t PlaceBearingDistance_sequence
[] = {
1607 { &hf_atn_cpdlc_publishedIdentifier
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PublishedIdentifier
},
1608 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
1609 { &hf_atn_cpdlc_distance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Distance
},
1610 { NULL
, 0, 0, NULL
}
1614 dissect_atn_cpdlc_PlaceBearingDistance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1615 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1616 ett_atn_cpdlc_PlaceBearingDistance
, PlaceBearingDistance_sequence
);
1622 static const value_string atn_cpdlc_Position_vals
[] = {
1626 { 3, "latitudeLongitude" },
1627 { 4, "placeBearingDistance" },
1631 static const per_choice_t Position_choice
[] = {
1632 { 0, &hf_atn_cpdlc_fixName
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_FixName
},
1633 { 1, &hf_atn_cpdlc_navaid
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Navaid
},
1634 { 2, &hf_atn_cpdlc_airport
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Airport
},
1635 { 3, &hf_atn_cpdlc_latitudeLongitude
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeLongitude
},
1636 { 4, &hf_atn_cpdlc_placeBearingDistance
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PlaceBearingDistance
},
1637 { 0, NULL
, 0, NULL
}
1641 dissect_atn_cpdlc_Position(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1642 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1643 ett_atn_cpdlc_Position
, Position_choice
,
1650 static const per_sequence_t TimeLevel_sequence
[] = {
1651 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1652 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1653 { NULL
, 0, 0, NULL
}
1657 dissect_atn_cpdlc_TimeLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1658 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1659 ett_atn_cpdlc_TimeLevel
, TimeLevel_sequence
);
1665 static const per_sequence_t PositionLevel_sequence
[] = {
1666 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1667 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1668 { NULL
, 0, 0, NULL
}
1672 dissect_atn_cpdlc_PositionLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1673 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1674 ett_atn_cpdlc_PositionLevel
, PositionLevel_sequence
);
1680 static const per_sequence_t LevelTime_sequence
[] = {
1681 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1682 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1683 { NULL
, 0, 0, NULL
}
1687 dissect_atn_cpdlc_LevelTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1688 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1689 ett_atn_cpdlc_LevelTime
, LevelTime_sequence
);
1695 static const per_sequence_t LevelPosition_sequence
[] = {
1696 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1697 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1698 { NULL
, 0, 0, NULL
}
1702 dissect_atn_cpdlc_LevelPosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1703 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1704 ett_atn_cpdlc_LevelPosition
, LevelPosition_sequence
);
1710 static const per_sequence_t LevelLevel_sequence_of
[1] = {
1711 { &hf_atn_cpdlc_LevelLevel_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1715 dissect_atn_cpdlc_LevelLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1716 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1717 ett_atn_cpdlc_LevelLevel
, LevelLevel_sequence_of
,
1724 static const per_sequence_t PositionLevelLevel_sequence
[] = {
1725 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1726 { &hf_atn_cpdlc_levels
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LevelLevel
},
1727 { NULL
, 0, 0, NULL
}
1731 dissect_atn_cpdlc_PositionLevelLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1732 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1733 ett_atn_cpdlc_PositionLevelLevel
, PositionLevelLevel_sequence
);
1739 static const per_sequence_t PositionTime_sequence
[] = {
1740 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1741 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1742 { NULL
, 0, 0, NULL
}
1746 dissect_atn_cpdlc_PositionTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1747 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1748 ett_atn_cpdlc_PositionTime
, PositionTime_sequence
);
1754 static const per_sequence_t TimeTime_sequence_of
[1] = {
1755 { &hf_atn_cpdlc_TimeTime_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1759 dissect_atn_cpdlc_TimeTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1760 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1761 ett_atn_cpdlc_TimeTime
, TimeTime_sequence_of
,
1768 static const per_sequence_t PositionTimeTime_sequence
[] = {
1769 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1770 { &hf_atn_cpdlc_times
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeTime
},
1771 { NULL
, 0, 0, NULL
}
1775 dissect_atn_cpdlc_PositionTimeTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1776 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1777 ett_atn_cpdlc_PositionTimeTime
, PositionTimeTime_sequence
);
1785 dissect_atn_cpdlc_SpeedIndicated(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1786 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1787 0U, 400U, NULL
, FALSE
);
1795 dissect_atn_cpdlc_SpeedIndicatedMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1796 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1797 0U, 800U, NULL
, FALSE
);
1805 dissect_atn_cpdlc_SpeedTrue(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1806 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1807 0U, 2000U, NULL
, FALSE
);
1815 dissect_atn_cpdlc_SpeedTrueMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1816 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1817 0U, 4000U, NULL
, FALSE
);
1825 dissect_atn_cpdlc_SpeedGround(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1826 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1827 -50, 2000U, NULL
, FALSE
);
1835 dissect_atn_cpdlc_SpeedGroundMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1836 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1837 -100, 4000U, NULL
, FALSE
);
1845 dissect_atn_cpdlc_SpeedMach(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1846 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1847 500U, 4000U, NULL
, FALSE
);
1853 static const value_string atn_cpdlc_Speed_vals
[] = {
1854 { 0, "speedIndicated" },
1855 { 1, "speedIndicatedMetric" },
1857 { 3, "speedTrueMetric" },
1858 { 4, "speedGround" },
1859 { 5, "speedGroundMetric" },
1864 static const per_choice_t Speed_choice
[] = {
1865 { 0, &hf_atn_cpdlc_speedIndicated
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedIndicated
},
1866 { 1, &hf_atn_cpdlc_speedIndicatedMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedIndicatedMetric
},
1867 { 2, &hf_atn_cpdlc_speedTrue
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedTrue
},
1868 { 3, &hf_atn_cpdlc_speedTrueMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedTrueMetric
},
1869 { 4, &hf_atn_cpdlc_speedGround
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedGround
},
1870 { 5, &hf_atn_cpdlc_speedGroundMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedGroundMetric
},
1871 { 6, &hf_atn_cpdlc_speedMach
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_SpeedMach
},
1872 { 0, NULL
, 0, NULL
}
1876 dissect_atn_cpdlc_Speed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1877 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1878 ett_atn_cpdlc_Speed
, Speed_choice
,
1885 static const per_sequence_t PositionSpeed_sequence
[] = {
1886 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1887 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
1888 { NULL
, 0, 0, NULL
}
1892 dissect_atn_cpdlc_PositionSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1893 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1894 ett_atn_cpdlc_PositionSpeed
, PositionSpeed_sequence
);
1900 static const per_sequence_t PositionTimeLevel_sequence
[] = {
1901 { &hf_atn_cpdlc_positionTime
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PositionTime
},
1902 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1903 { NULL
, 0, 0, NULL
}
1907 dissect_atn_cpdlc_PositionTimeLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1908 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1909 ett_atn_cpdlc_PositionTimeLevel
, PositionTimeLevel_sequence
);
1915 static const per_sequence_t PositionLevelSpeed_sequence
[] = {
1916 { &hf_atn_cpdlc_positionlevel
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PositionLevel
},
1917 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
1918 { NULL
, 0, 0, NULL
}
1922 dissect_atn_cpdlc_PositionLevelSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1923 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1924 ett_atn_cpdlc_PositionLevelSpeed
, PositionLevelSpeed_sequence
);
1930 static const per_sequence_t TimePosition_sequence
[] = {
1931 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
1932 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
1933 { NULL
, 0, 0, NULL
}
1937 dissect_atn_cpdlc_TimePosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1938 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1939 ett_atn_cpdlc_TimePosition
, TimePosition_sequence
);
1945 static const per_sequence_t TimePositionLevel_sequence
[] = {
1946 { &hf_atn_cpdlc_timeposition
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimePosition
},
1947 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1948 { NULL
, 0, 0, NULL
}
1952 dissect_atn_cpdlc_TimePositionLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1953 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1954 ett_atn_cpdlc_TimePositionLevel
, TimePositionLevel_sequence
);
1960 static const per_sequence_t SpeedSpeed_sequence_of
[1] = {
1961 { &hf_atn_cpdlc_SpeedSpeed_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
1965 dissect_atn_cpdlc_SpeedSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1966 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1967 ett_atn_cpdlc_SpeedSpeed
, SpeedSpeed_sequence_of
,
1974 static const per_sequence_t LevelSpeed_sequence
[] = {
1975 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
1976 { &hf_atn_cpdlc_levelspeed_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedSpeed
},
1977 { NULL
, 0, 0, NULL
}
1981 dissect_atn_cpdlc_LevelSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1982 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1983 ett_atn_cpdlc_LevelSpeed
, LevelSpeed_sequence
);
1989 static const per_sequence_t TimePositionLevelSpeed_sequence
[] = {
1990 { &hf_atn_cpdlc_timeposition
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimePosition
},
1991 { &hf_atn_cpdlc_levelspeed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LevelSpeed
},
1992 { NULL
, 0, 0, NULL
}
1996 dissect_atn_cpdlc_TimePositionLevelSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1997 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1998 ett_atn_cpdlc_TimePositionLevelSpeed
, TimePositionLevelSpeed_sequence
);
2006 dissect_atn_cpdlc_DistanceSpecifiedNm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2007 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2008 1U, 250U, NULL
, FALSE
);
2016 dissect_atn_cpdlc_DistanceSpecifiedKm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2017 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2018 1U, 500U, NULL
, FALSE
);
2024 static const value_string atn_cpdlc_DistanceSpecified_vals
[] = {
2025 { 0, "distanceSpecifiedNm" },
2026 { 1, "distanceSpecifiedKm" },
2030 static const per_choice_t DistanceSpecified_choice
[] = {
2031 { 0, &hf_atn_cpdlc_distanceSpecifiedNm
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DistanceSpecifiedNm
},
2032 { 1, &hf_atn_cpdlc_distanceSpecifiedKm
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_DistanceSpecifiedKm
},
2033 { 0, NULL
, 0, NULL
}
2037 dissect_atn_cpdlc_DistanceSpecified(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2038 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2039 ett_atn_cpdlc_DistanceSpecified
, DistanceSpecified_choice
,
2046 static const value_string atn_cpdlc_Direction_vals
[] = {
2049 { 2, "eitherSide" },
2057 { 10, "southWest" },
2063 dissect_atn_cpdlc_Direction(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2064 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2065 11, NULL
, FALSE
, 0, NULL
);
2071 static const per_sequence_t DistanceSpecifiedDirection_sequence
[] = {
2072 { &hf_atn_cpdlc_distanceSpecified
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DistanceSpecified
},
2073 { &hf_atn_cpdlc_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Direction
},
2074 { NULL
, 0, 0, NULL
}
2078 dissect_atn_cpdlc_DistanceSpecifiedDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2079 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2080 ett_atn_cpdlc_DistanceSpecifiedDirection
, DistanceSpecifiedDirection_sequence
);
2086 static const per_sequence_t PositionDistanceSpecifiedDirection_sequence
[] = {
2087 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2088 { &hf_atn_cpdlc_distanceSpecifiedDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
2089 { NULL
, 0, 0, NULL
}
2093 dissect_atn_cpdlc_PositionDistanceSpecifiedDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2094 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2095 ett_atn_cpdlc_PositionDistanceSpecifiedDirection
, PositionDistanceSpecifiedDirection_sequence
);
2101 static const per_sequence_t TimeDistanceSpecifiedDirection_sequence
[] = {
2102 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
2103 { &hf_atn_cpdlc_distanceSpecifiedDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
2104 { NULL
, 0, 0, NULL
}
2108 dissect_atn_cpdlc_TimeDistanceSpecifiedDirection(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_TimeDistanceSpecifiedDirection
, TimeDistanceSpecifiedDirection_sequence
);
2118 dissect_atn_cpdlc_AircraftFlightIdentification(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2119 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,2, 8, FALSE
, ia5alpha
, 127, NULL
);
2125 static const per_sequence_t PlaceBearing_sequence
[] = {
2126 { &hf_atn_cpdlc_publishedIdentifier
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PublishedIdentifier
},
2127 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
2128 { NULL
, 0, 0, NULL
}
2132 dissect_atn_cpdlc_PlaceBearing(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2133 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2134 ett_atn_cpdlc_PlaceBearing
, PlaceBearing_sequence
);
2140 static const per_sequence_t PlaceBearingPlaceBearing_sequence_of
[1] = {
2141 { &hf_atn_cpdlc_PlaceBearingPlaceBearing_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PlaceBearing
},
2145 dissect_atn_cpdlc_PlaceBearingPlaceBearing(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2146 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2147 ett_atn_cpdlc_PlaceBearingPlaceBearing
, PlaceBearingPlaceBearing_sequence_of
,
2156 dissect_atn_cpdlc_ATSRouteDesignator(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2157 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,2, 7, FALSE
, ia5alpha
, 127, NULL
);
2163 static const value_string atn_cpdlc_RouteInformation_vals
[] = {
2164 { 0, "publishedIdentifier" },
2165 { 1, "latitudeLongitude" },
2166 { 2, "placeBearingPlaceBearing" },
2167 { 3, "placeBearingDistance" },
2168 { 4, "aTSRouteDesignator" },
2172 static const per_choice_t RouteInformation_choice
[] = {
2173 { 0, &hf_atn_cpdlc_publishedIdentifier
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PublishedIdentifier
},
2174 { 1, &hf_atn_cpdlc_latitudeLongitude
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeLongitude
},
2175 { 2, &hf_atn_cpdlc_placeBearingPlaceBearing
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PlaceBearingPlaceBearing
},
2176 { 3, &hf_atn_cpdlc_placeBearingDistance
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PlaceBearingDistance
},
2177 { 4, &hf_atn_cpdlc_aTSRouteDesignator
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_ATSRouteDesignator
},
2178 { 0, NULL
, 0, NULL
}
2182 dissect_atn_cpdlc_RouteInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2183 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2184 ett_atn_cpdlc_RouteInformation
, RouteInformation_choice
,
2191 static const value_string atn_cpdlc_ProcedureType_vals
[] = {
2200 dissect_atn_cpdlc_ProcedureType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2201 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2202 3, NULL
, FALSE
, 0, NULL
);
2210 dissect_atn_cpdlc_Procedure(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2211 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 20, FALSE
, ia5alpha
, 127, NULL
);
2219 dissect_atn_cpdlc_ProcedureTransition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2220 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 5, FALSE
, ia5alpha
, 127, NULL
);
2226 static const per_sequence_t ProcedureName_sequence
[] = {
2227 { &hf_atn_cpdlc_type
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ProcedureType
},
2228 { &hf_atn_cpdlc_procedure
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Procedure
},
2229 { &hf_atn_cpdlc_transition
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ProcedureTransition
},
2230 { NULL
, 0, 0, NULL
}
2234 dissect_atn_cpdlc_ProcedureName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2235 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2236 ett_atn_cpdlc_ProcedureName
, ProcedureName_sequence
);
2242 static const per_sequence_t LevelProcedureName_sequence
[] = {
2243 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
2244 { &hf_atn_cpdlc_procedureName
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ProcedureName
},
2245 { NULL
, 0, 0, NULL
}
2249 dissect_atn_cpdlc_LevelProcedureName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2250 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2251 ett_atn_cpdlc_LevelProcedureName
, LevelProcedureName_sequence
);
2257 static const value_string atn_cpdlc_LevelsOfFlight_vals
[] = {
2259 { 1, "procedureName" },
2260 { 2, "levelProcedureName" },
2264 static const per_choice_t LevelsOfFlight_choice
[] = {
2265 { 0, &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Level
},
2266 { 1, &hf_atn_cpdlc_procedureName
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_ProcedureName
},
2267 { 2, &hf_atn_cpdlc_levelProcedureName
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelProcedureName
},
2268 { 0, NULL
, 0, NULL
}
2272 dissect_atn_cpdlc_LevelsOfFlight(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2273 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2274 ett_atn_cpdlc_LevelsOfFlight
, LevelsOfFlight_choice
,
2281 static const per_sequence_t RouteAndLevels_sequence
[] = {
2282 { &hf_atn_cpdlc_routeOfFlight
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RouteInformation
},
2283 { &hf_atn_cpdlc_levelsOfFlight
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LevelsOfFlight
},
2284 { NULL
, 0, 0, NULL
}
2288 dissect_atn_cpdlc_RouteAndLevels(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2289 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2290 ett_atn_cpdlc_RouteAndLevels
, RouteAndLevels_sequence
);
2296 static const value_string atn_cpdlc_FlightInformation_vals
[] = {
2297 { 0, "routeOfFlight" },
2298 { 1, "levelsOfFlight" },
2299 { 2, "routeAndLevels" },
2303 static const per_choice_t FlightInformation_choice
[] = {
2304 { 0, &hf_atn_cpdlc_routeOfFlight
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_RouteInformation
},
2305 { 1, &hf_atn_cpdlc_levelsOfFlight
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LevelsOfFlight
},
2306 { 2, &hf_atn_cpdlc_routeAndLevels
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_RouteAndLevels
},
2307 { 0, NULL
, 0, NULL
}
2311 dissect_atn_cpdlc_FlightInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2312 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2313 ett_atn_cpdlc_FlightInformation
, FlightInformation_choice
,
2322 dissect_atn_cpdlc_CodeOctalDigit(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2323 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2324 0U, 7U, NULL
, FALSE
);
2330 static const per_sequence_t Code_sequence_of
[1] = {
2331 { &hf_atn_cpdlc_Code_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_CodeOctalDigit
},
2335 dissect_atn_cpdlc_Code(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2336 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2337 ett_atn_cpdlc_Code
, Code_sequence_of
,
2346 dissect_atn_cpdlc_FacilityDesignation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2347 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,4, 8, FALSE
, ia5alpha
, 127, NULL
);
2355 dissect_atn_cpdlc_FacilityName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2356 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,3, 18, FALSE
, ia5alpha
, 127, NULL
);
2362 static const value_string atn_cpdlc_FacilityFunction_vals
[] = {
2367 { 4, "groundControl" },
2368 { 5, "clearanceDelivery" },
2377 dissect_atn_cpdlc_FacilityFunction(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2378 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2379 9, NULL
, TRUE
, 0, NULL
);
2385 static const per_sequence_t UnitName_sequence
[] = {
2386 { &hf_atn_cpdlc_facilityDesignation
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_FacilityDesignation
},
2387 { &hf_atn_cpdlc_facilityName
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_FacilityName
},
2388 { &hf_atn_cpdlc_facilityFunction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_FacilityFunction
},
2389 { NULL
, 0, 0, NULL
}
2393 dissect_atn_cpdlc_UnitName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2394 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2395 ett_atn_cpdlc_UnitName
, UnitName_sequence
);
2403 dissect_atn_cpdlc_Frequencyhf(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2404 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2405 2850U, 28000U, NULL
, FALSE
);
2413 dissect_atn_cpdlc_Frequencyvhf(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2414 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2415 23600U, 27398U, NULL
, FALSE
);
2423 dissect_atn_cpdlc_Frequencyuhf(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2424 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2425 9000U, 15999U, NULL
, FALSE
);
2433 dissect_atn_cpdlc_Frequencysatchannel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2434 offset
= dissect_per_NumericString(tvb
, offset
, actx
, tree
, hf_index
,
2441 static const value_string atn_cpdlc_Frequency_vals
[] = {
2442 { 0, "frequencyhf" },
2443 { 1, "frequencyvhf" },
2444 { 2, "frequencyuhf" },
2445 { 3, "frequencysatchannel" },
2449 static const per_choice_t Frequency_choice
[] = {
2450 { 0, &hf_atn_cpdlc_frequencyhf
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Frequencyhf
},
2451 { 1, &hf_atn_cpdlc_frequencyvhf
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Frequencyvhf
},
2452 { 2, &hf_atn_cpdlc_frequencyuhf
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Frequencyuhf
},
2453 { 3, &hf_atn_cpdlc_frequencysatchannel
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_Frequencysatchannel
},
2454 { 0, NULL
, 0, NULL
}
2458 dissect_atn_cpdlc_Frequency(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2459 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2460 ett_atn_cpdlc_Frequency
, Frequency_choice
,
2467 static const per_sequence_t UnitNameFrequency_sequence
[] = {
2468 { &hf_atn_cpdlc_unitName
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_UnitName
},
2469 { &hf_atn_cpdlc_frequency
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Frequency
},
2470 { NULL
, 0, 0, NULL
}
2474 dissect_atn_cpdlc_UnitNameFrequency(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2475 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2476 ett_atn_cpdlc_UnitNameFrequency
, UnitNameFrequency_sequence
);
2482 static const value_string atn_cpdlc_TimeTolerance_vals
[] = {
2485 { 2, "atorbefore" },
2491 dissect_atn_cpdlc_TimeTolerance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2492 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2493 3, NULL
, FALSE
, 0, NULL
);
2499 static const per_sequence_t ControlledTime_sequence
[] = {
2500 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
2501 { &hf_atn_cpdlc_timeTolerance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeTolerance
},
2502 { NULL
, 0, 0, NULL
}
2506 dissect_atn_cpdlc_ControlledTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2507 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2508 ett_atn_cpdlc_ControlledTime
, ControlledTime_sequence
);
2516 dissect_atn_cpdlc_DepartureMinimumInterval(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2517 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2518 1U, 150U, NULL
, FALSE
);
2524 static const per_sequence_t TimeDeparture_sequence
[] = {
2525 { &hf_atn_cpdlc_timeDepartureAllocated
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
2526 { &hf_atn_cpdlc_timeDepartureControlled
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ControlledTime
},
2527 { &hf_atn_cpdlc_timeDepartureClearanceExpected
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
2528 { &hf_atn_cpdlc_departureMinimumInterval
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_DepartureMinimumInterval
},
2529 { NULL
, 0, 0, NULL
}
2533 dissect_atn_cpdlc_TimeDeparture(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2534 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2535 ett_atn_cpdlc_TimeDeparture
, TimeDeparture_sequence
);
2543 dissect_atn_cpdlc_RunwayDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2544 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2545 1U, 36U, NULL
, FALSE
);
2551 static const value_string atn_cpdlc_RunwayConfiguration_vals
[] = {
2561 dissect_atn_cpdlc_RunwayConfiguration(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2562 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2563 4, NULL
, FALSE
, 0, NULL
);
2569 static const per_sequence_t Runway_sequence
[] = {
2570 { &hf_atn_cpdlc_runway_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RunwayDirection
},
2571 { &hf_atn_cpdlc_configuration
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RunwayConfiguration
},
2572 { NULL
, 0, 0, NULL
}
2576 dissect_atn_cpdlc_Runway(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2577 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2578 ett_atn_cpdlc_Runway
, Runway_sequence
);
2586 dissect_atn_cpdlc_RevisionNumber(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2587 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2588 1U, 16U, NULL
, FALSE
);
2596 dissect_atn_cpdlc_ATISCode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2597 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 1, FALSE
, ia5alpha
, 127, NULL
);
2603 static const per_sequence_t FurtherInstructions_sequence
[] = {
2604 { &hf_atn_cpdlc_code
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Code
},
2605 { &hf_atn_cpdlc_frequencyDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_UnitNameFrequency
},
2606 { &hf_atn_cpdlc_clearanceExpiryTime
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
2607 { &hf_atn_cpdlc_airportDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Airport
},
2608 { &hf_atn_cpdlc_airportDestination
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Airport
},
2609 { &hf_atn_cpdlc_timeDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_TimeDeparture
},
2610 { &hf_atn_cpdlc_runwayDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Runway
},
2611 { &hf_atn_cpdlc_revisionNumber
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_RevisionNumber
},
2612 { &hf_atn_cpdlc_aTISCode
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ATISCode
},
2613 { NULL
, 0, 0, NULL
}
2617 dissect_atn_cpdlc_FurtherInstructions(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2618 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2619 ett_atn_cpdlc_FurtherInstructions
, FurtherInstructions_sequence
);
2625 static const per_sequence_t DepartureClearance_sequence
[] = {
2626 { &hf_atn_cpdlc_aircraftFlightIdentification
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_AircraftFlightIdentification
},
2627 { &hf_atn_cpdlc_clearanceLimit
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2628 { &hf_atn_cpdlc_flightInformation
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_FlightInformation
},
2629 { &hf_atn_cpdlc_furtherInstructions
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_FurtherInstructions
},
2630 { NULL
, 0, 0, NULL
}
2634 dissect_atn_cpdlc_DepartureClearance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2635 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2636 ett_atn_cpdlc_DepartureClearance
, DepartureClearance_sequence
);
2642 static const per_sequence_t PositionPosition_sequence_of
[1] = {
2643 { &hf_atn_cpdlc_PositionPosition_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2647 dissect_atn_cpdlc_PositionPosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2648 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2649 ett_atn_cpdlc_PositionPosition
, PositionPosition_sequence_of
,
2658 dissect_atn_cpdlc_RouteClearanceIndex(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2659 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2660 1U, 2U, NULL
, FALSE
);
2666 static const per_sequence_t PositionRouteClearanceIndex_sequence
[] = {
2667 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2668 { &hf_atn_cpdlc_routeClearanceIndex
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RouteClearanceIndex
},
2669 { NULL
, 0, 0, NULL
}
2673 dissect_atn_cpdlc_PositionRouteClearanceIndex(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2674 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2675 ett_atn_cpdlc_PositionRouteClearanceIndex
, PositionRouteClearanceIndex_sequence
);
2681 static const per_sequence_t PositionProcedureName_sequence
[] = {
2682 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2683 { &hf_atn_cpdlc_procedureName
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ProcedureName
},
2684 { NULL
, 0, 0, NULL
}
2688 dissect_atn_cpdlc_PositionProcedureName(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2689 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2690 ett_atn_cpdlc_PositionProcedureName
, PositionProcedureName_sequence
);
2698 dissect_atn_cpdlc_LegDistanceEnglish(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2699 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2700 0U, 50U, NULL
, FALSE
);
2708 dissect_atn_cpdlc_LegDistanceMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2709 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2710 1U, 128U, NULL
, FALSE
);
2716 static const value_string atn_cpdlc_LegDistance_vals
[] = {
2717 { 0, "legDistanceEnglish" },
2718 { 1, "legDistanceMetric" },
2722 static const per_choice_t LegDistance_choice
[] = {
2723 { 0, &hf_atn_cpdlc_legDistanceEnglish
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LegDistanceEnglish
},
2724 { 1, &hf_atn_cpdlc_legDistanceMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LegDistanceMetric
},
2725 { 0, NULL
, 0, NULL
}
2729 dissect_atn_cpdlc_LegDistance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2730 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2731 ett_atn_cpdlc_LegDistance
, LegDistance_choice
,
2740 dissect_atn_cpdlc_LegTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2741 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2742 0U, 10U, NULL
, FALSE
);
2748 static const value_string atn_cpdlc_LegType_vals
[] = {
2749 { 0, "legDistance" },
2754 static const per_choice_t LegType_choice
[] = {
2755 { 0, &hf_atn_cpdlc_legDistance
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LegDistance
},
2756 { 1, &hf_atn_cpdlc_legTime
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LegTime
},
2757 { 0, NULL
, 0, NULL
}
2761 dissect_atn_cpdlc_LegType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2762 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2763 ett_atn_cpdlc_LegType
, LegType_choice
,
2770 static const per_sequence_t HoldClearance_sequence
[] = {
2771 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2772 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
2773 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
2774 { &hf_atn_cpdlc_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Direction
},
2775 { &hf_atn_cpdlc_legType
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_LegType
},
2776 { NULL
, 0, 0, NULL
}
2780 dissect_atn_cpdlc_HoldClearance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2781 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2782 ett_atn_cpdlc_HoldClearance
, HoldClearance_sequence
);
2788 static const per_sequence_t DirectionDegrees_sequence
[] = {
2789 { &hf_atn_cpdlc_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Direction
},
2790 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
2791 { NULL
, 0, 0, NULL
}
2795 dissect_atn_cpdlc_DirectionDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2796 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2797 ett_atn_cpdlc_DirectionDegrees
, DirectionDegrees_sequence
);
2803 static const per_sequence_t PositionDegrees_sequence
[] = {
2804 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2805 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
2806 { NULL
, 0, 0, NULL
}
2810 dissect_atn_cpdlc_PositionDegrees(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2811 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2812 ett_atn_cpdlc_PositionDegrees
, PositionDegrees_sequence
);
2818 static const per_sequence_t TimeSpeed_sequence
[] = {
2819 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
2820 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
2821 { NULL
, 0, 0, NULL
}
2825 dissect_atn_cpdlc_TimeSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2826 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2827 ett_atn_cpdlc_TimeSpeed
, TimeSpeed_sequence
);
2833 static const per_sequence_t TimeSpeedSpeed_sequence
[] = {
2834 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
2835 { &hf_atn_cpdlc_speedspeed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedSpeed
},
2836 { NULL
, 0, 0, NULL
}
2840 dissect_atn_cpdlc_TimeSpeedSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2841 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2842 ett_atn_cpdlc_TimeSpeedSpeed
, TimeSpeedSpeed_sequence
);
2848 static const per_sequence_t PositionSpeedSpeed_sequence
[] = {
2849 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2850 { &hf_atn_cpdlc_speeds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedSpeed
},
2851 { NULL
, 0, 0, NULL
}
2855 dissect_atn_cpdlc_PositionSpeedSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2856 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2857 ett_atn_cpdlc_PositionSpeedSpeed
, PositionSpeedSpeed_sequence
);
2863 static const per_sequence_t LevelSpeedSpeed_sequence
[] = {
2864 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
2865 { &hf_atn_cpdlc_speeds
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedSpeed
},
2866 { NULL
, 0, 0, NULL
}
2870 dissect_atn_cpdlc_LevelSpeedSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2871 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2872 ett_atn_cpdlc_LevelSpeedSpeed
, LevelSpeedSpeed_sequence
);
2878 static const per_sequence_t PositionUnitNameFrequency_sequence
[] = {
2879 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
2880 { &hf_atn_cpdlc_unitname
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_UnitName
},
2881 { &hf_atn_cpdlc_frequency
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Frequency
},
2882 { NULL
, 0, 0, NULL
}
2886 dissect_atn_cpdlc_PositionUnitNameFrequency(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2887 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2888 ett_atn_cpdlc_PositionUnitNameFrequency
, PositionUnitNameFrequency_sequence
);
2894 static const per_sequence_t TimeUnitNameFrequency_sequence
[] = {
2895 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
2896 { &hf_atn_cpdlc_unitName
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_UnitName
},
2897 { &hf_atn_cpdlc_frequency
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Frequency
},
2898 { NULL
, 0, 0, NULL
}
2902 dissect_atn_cpdlc_TimeUnitNameFrequency(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2903 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2904 ett_atn_cpdlc_TimeUnitNameFrequency
, TimeUnitNameFrequency_sequence
);
2910 static const value_string atn_cpdlc_SpeedType_vals
[] = {
2911 { 0, "noneSpecified" },
2925 dissect_atn_cpdlc_SpeedType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2926 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
2927 9, NULL
, TRUE
, 0, NULL
);
2933 static const per_sequence_t SpeedTypeSpeedTypeSpeedType_sequence_of
[1] = {
2934 { &hf_atn_cpdlc_SpeedTypeSpeedTypeSpeedType_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedType
},
2938 dissect_atn_cpdlc_SpeedTypeSpeedTypeSpeedType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2939 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2940 ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedType
, SpeedTypeSpeedTypeSpeedType_sequence_of
,
2949 dissect_atn_cpdlc_AltimeterEnglish(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2950 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2951 2200U, 3200U, NULL
, FALSE
);
2959 dissect_atn_cpdlc_AltimeterMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2960 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2961 7500U, 12500U, NULL
, FALSE
);
2967 static const value_string atn_cpdlc_Altimeter_vals
[] = {
2968 { 0, "altimeterEnglish" },
2969 { 1, "altimeterMetric" },
2973 static const per_choice_t Altimeter_choice
[] = {
2974 { 0, &hf_atn_cpdlc_altimeterEnglish
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_AltimeterEnglish
},
2975 { 1, &hf_atn_cpdlc_altimeterMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_AltimeterMetric
},
2976 { 0, NULL
, 0, NULL
}
2980 dissect_atn_cpdlc_Altimeter(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2981 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2982 ett_atn_cpdlc_Altimeter
, Altimeter_choice
,
2989 static const value_string atn_cpdlc_ErrorInformation_vals
[] = {
2990 { 0, "unrecognizedMsgReferenceNumber" },
2991 { 1, "logicalAcknowledgmentNotAccepted" },
2992 { 2, "insufficientResources" },
2993 { 3, "invalidMessageElementCombination" },
2994 { 4, "invalidMessageElement" },
3000 dissect_atn_cpdlc_ErrorInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3001 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
3002 5, NULL
, TRUE
, 0, NULL
);
3008 static const value_string atn_cpdlc_Facility_vals
[] = {
3009 { 0, "noFacility" },
3010 { 1, "facilityDesignation" },
3014 static const per_choice_t Facility_choice
[] = {
3015 { 0, &hf_atn_cpdlc_noFacility
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_NULL
},
3016 { 1, &hf_atn_cpdlc_facilityDesignation
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_FacilityDesignation
},
3017 { 0, NULL
, 0, NULL
}
3021 dissect_atn_cpdlc_Facility(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3022 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3023 ett_atn_cpdlc_Facility
, Facility_choice
,
3030 static const value_string atn_cpdlc_TrafficType_vals
[] = {
3031 { 0, "noneSpecified" },
3032 { 1, "oppositeDirection" },
3033 { 2, "sameDirection" },
3034 { 3, "converging" },
3042 dissect_atn_cpdlc_TrafficType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3043 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
3044 6, NULL
, TRUE
, 0, NULL
);
3052 dissect_atn_cpdlc_FreeText(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3053 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,1, 256, FALSE
, ia5alpha
, 127, NULL
);
3061 dissect_atn_cpdlc_VerticalRateEnglish(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3062 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
3063 0U, 3000U, NULL
, FALSE
);
3071 dissect_atn_cpdlc_VerticalRateMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3072 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
3073 0U, 1000U, NULL
, FALSE
);
3079 static const value_string atn_cpdlc_VerticalRate_vals
[] = {
3080 { 0, "verticalRateEnglish" },
3081 { 1, "verticalRateMetric" },
3085 static const per_choice_t VerticalRate_choice
[] = {
3086 { 0, &hf_atn_cpdlc_verticalRateEnglish
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_VerticalRateEnglish
},
3087 { 1, &hf_atn_cpdlc_verticalRateMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_VerticalRateMetric
},
3088 { 0, NULL
, 0, NULL
}
3092 dissect_atn_cpdlc_VerticalRate(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3093 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3094 ett_atn_cpdlc_VerticalRate
, VerticalRate_choice
,
3101 static const value_string atn_cpdlc_ToFrom_vals
[] = {
3109 dissect_atn_cpdlc_ToFrom(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3110 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
3111 2, NULL
, FALSE
, 0, NULL
);
3117 static const per_sequence_t ToFromPosition_sequence
[] = {
3118 { &hf_atn_cpdlc_toFrom
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ToFrom
},
3119 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
3120 { NULL
, 0, 0, NULL
}
3124 dissect_atn_cpdlc_ToFromPosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3125 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3126 ett_atn_cpdlc_ToFromPosition
, ToFromPosition_sequence
);
3132 static const per_sequence_t TimeToFromPosition_sequence
[] = {
3133 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
3134 { &hf_atn_cpdlc_tofrom
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ToFrom
},
3135 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
3136 { NULL
, 0, 0, NULL
}
3140 dissect_atn_cpdlc_TimeToFromPosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3141 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3142 ett_atn_cpdlc_TimeToFromPosition
, TimeToFromPosition_sequence
);
3148 static const per_sequence_t FacilityDesignationATISCode_sequence
[] = {
3149 { &hf_atn_cpdlc_facilityDesignation
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_FacilityDesignation
},
3150 { &hf_atn_cpdlc_aTISCode
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATISCode
},
3151 { NULL
, 0, 0, NULL
}
3155 dissect_atn_cpdlc_FacilityDesignationATISCode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3156 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3157 ett_atn_cpdlc_FacilityDesignationATISCode
, FacilityDesignationATISCode_sequence
);
3163 static const per_sequence_t FacilityDesignationAltimeter_sequence
[] = {
3164 { &hf_atn_cpdlc_facilityDesignation
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_FacilityDesignation
},
3165 { &hf_atn_cpdlc_altimeter
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Altimeter
},
3166 { NULL
, 0, 0, NULL
}
3170 dissect_atn_cpdlc_FacilityDesignationAltimeter(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3171 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3172 ett_atn_cpdlc_FacilityDesignationAltimeter
, FacilityDesignationAltimeter_sequence
);
3180 dissect_atn_cpdlc_RVRFeet(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3181 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
3182 0U, 6100U, NULL
, FALSE
);
3190 dissect_atn_cpdlc_RVRMeters(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3191 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
3192 0U, 1500U, NULL
, FALSE
);
3198 static const value_string atn_cpdlc_RVR_vals
[] = {
3204 static const per_choice_t RVR_choice
[] = {
3205 { 0, &hf_atn_cpdlc_rVRFeet
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_RVRFeet
},
3206 { 1, &hf_atn_cpdlc_rVRMeters
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_RVRMeters
},
3207 { 0, NULL
, 0, NULL
}
3211 dissect_atn_cpdlc_RVR(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3212 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3213 ett_atn_cpdlc_RVR
, RVR_choice
,
3220 static const per_sequence_t RunwayRVR_sequence
[] = {
3221 { &hf_atn_cpdlc_runway
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Runway
},
3222 { &hf_atn_cpdlc_rVR
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RVR
},
3223 { NULL
, 0, 0, NULL
}
3227 dissect_atn_cpdlc_RunwayRVR(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3228 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3229 ett_atn_cpdlc_RunwayRVR
, RunwayRVR_sequence
);
3235 static const value_string atn_cpdlc_ATCUplinkMsgElementId_vals
[] = {
3244 { 8, "uM8Position" },
3246 { 10, "uM10Position" },
3248 { 12, "uM12Position" },
3249 { 13, "uM13TimeLevel" },
3250 { 14, "uM14PositionLevel" },
3251 { 15, "uM15TimeLevel" },
3252 { 16, "uM16PositionLevel" },
3253 { 17, "uM17TimeLevel" },
3254 { 18, "uM18PositionLevel" },
3255 { 19, "uM19Level" },
3256 { 20, "uM20Level" },
3257 { 21, "uM21TimeLevel" },
3258 { 22, "uM22PositionLevel" },
3259 { 23, "uM23Level" },
3260 { 24, "uM24TimeLevel" },
3261 { 25, "uM25PositionLevel" },
3262 { 26, "uM26LevelTime" },
3263 { 27, "uM27LevelPosition" },
3264 { 28, "uM28LevelTime" },
3265 { 29, "uM29LevelPosition" },
3266 { 30, "uM30LevelLevel" },
3267 { 31, "uM31LevelLevel" },
3268 { 32, "uM32LevelLevel" },
3270 { 34, "uM34Level" },
3271 { 35, "uM35Level" },
3272 { 36, "uM36Level" },
3273 { 37, "uM37Level" },
3274 { 38, "uM38Level" },
3275 { 39, "uM39Level" },
3278 { 42, "uM42PositionLevel" },
3279 { 43, "uM43PositionLevel" },
3280 { 44, "uM44PositionLevel" },
3281 { 45, "uM45PositionLevel" },
3282 { 46, "uM46PositionLevel" },
3283 { 47, "uM47PositionLevel" },
3284 { 48, "uM48PositionLevel" },
3285 { 49, "uM49PositionLevel" },
3286 { 50, "uM50PositionLevelLevel" },
3287 { 51, "uM51PositionTime" },
3288 { 52, "uM52PositionTime" },
3289 { 53, "uM53PositionTime" },
3290 { 54, "uM54PositionTimeTime" },
3291 { 55, "uM55PositionSpeed" },
3292 { 56, "uM56PositionSpeed" },
3293 { 57, "uM57PositionSpeed" },
3294 { 58, "uM58PositionTimeLevel" },
3295 { 59, "uM59PositionTimeLevel" },
3296 { 60, "uM60PositionTimeLevel" },
3297 { 61, "uM61PositionLevelSpeed" },
3298 { 62, "uM62TimePositionLevel" },
3299 { 63, "uM63TimePositionLevelSpeed" },
3300 { 64, "uM64DistanceSpecifiedDirection" },
3301 { 65, "uM65PositionDistanceSpecifiedDirection" },
3302 { 66, "uM66TimeDistanceSpecifiedDirection" },
3304 { 68, "uM68Position" },
3306 { 70, "uM70Position" },
3309 { 73, "uM73DepartureClearance" },
3310 { 74, "uM74Position" },
3311 { 75, "uM75Position" },
3312 { 76, "uM76TimePosition" },
3313 { 77, "uM77PositionPosition" },
3314 { 78, "uM78LevelPosition" },
3315 { 79, "uM79PositionRouteClearance" },
3316 { 80, "uM80RouteClearance" },
3317 { 81, "uM81ProcedureName" },
3318 { 82, "uM82DistanceSpecifiedDirection" },
3319 { 83, "uM83PositionRouteClearance" },
3320 { 84, "uM84PositionProcedureName" },
3321 { 85, "uM85RouteClearance" },
3322 { 86, "uM86PositionRouteClearance" },
3323 { 87, "uM87Position" },
3324 { 88, "uM88PositionPosition" },
3325 { 89, "uM89TimePosition" },
3326 { 90, "uM90LevelPosition" },
3327 { 91, "uM91HoldClearance" },
3328 { 92, "uM92PositionLevel" },
3330 { 94, "uM94DirectionDegrees" },
3331 { 95, "uM95DirectionDegrees" },
3333 { 97, "uM97PositionDegrees" },
3334 { 98, "uM98DirectionDegrees" },
3335 { 99, "uM99ProcedureName" },
3336 { 100, "uM100TimeSpeed" },
3337 { 101, "uM101PositionSpeed" },
3338 { 102, "uM102LevelSpeed" },
3339 { 103, "uM103TimeSpeedSpeed" },
3340 { 104, "uM104PositionSpeedSpeed" },
3341 { 105, "uM105LevelSpeedSpeed" },
3342 { 106, "uM106Speed" },
3343 { 107, "uM107NULL" },
3344 { 108, "uM108Speed" },
3345 { 109, "uM109Speed" },
3346 { 110, "uM110SpeedSpeed" },
3347 { 111, "uM111Speed" },
3348 { 112, "uM112Speed" },
3349 { 113, "uM113Speed" },
3350 { 114, "uM114Speed" },
3351 { 115, "uM115Speed" },
3352 { 116, "uM116NULL" },
3353 { 117, "uM117UnitNameFrequency" },
3354 { 118, "uM118PositionUnitNameFrequency" },
3355 { 119, "uM119TimeUnitNameFrequency" },
3356 { 120, "uM120UnitNameFrequency" },
3357 { 121, "uM121PositionUnitNameFrequency" },
3358 { 122, "uM122TimeUnitNameFrequency" },
3359 { 123, "uM123Code" },
3360 { 124, "uM124NULL" },
3361 { 125, "uM125NULL" },
3362 { 126, "uM126NULL" },
3363 { 127, "uM127NULL" },
3364 { 128, "uM128Level" },
3365 { 129, "uM129Level" },
3366 { 130, "uM130Position" },
3367 { 131, "uM131NULL" },
3368 { 132, "uM132NULL" },
3369 { 133, "uM133NULL" },
3370 { 134, "uM134SpeedTypeSpeedTypeSpeedType" },
3371 { 135, "uM135NULL" },
3372 { 136, "uM136NULL" },
3373 { 137, "uM137NULL" },
3374 { 138, "uM138NULL" },
3375 { 139, "uM139NULL" },
3376 { 140, "uM140NULL" },
3377 { 141, "uM141NULL" },
3378 { 142, "uM142NULL" },
3379 { 143, "uM143NULL" },
3380 { 144, "uM144NULL" },
3381 { 145, "uM145NULL" },
3382 { 146, "uM146NULL" },
3383 { 147, "uM147NULL" },
3384 { 148, "uM148Level" },
3385 { 149, "uM149LevelPosition" },
3386 { 150, "uM150LevelTime" },
3387 { 151, "uM151Speed" },
3388 { 152, "uM152DistanceSpecifiedDirection" },
3389 { 153, "uM153Altimeter" },
3390 { 154, "uM154NULL" },
3391 { 155, "uM155Position" },
3392 { 156, "uM156NULL" },
3393 { 157, "uM157Frequency" },
3394 { 158, "uM158AtisCode" },
3395 { 159, "uM159ErrorInformation" },
3396 { 160, "uM160Facility" },
3397 { 161, "uM161NULL" },
3398 { 162, "uM162NULL" },
3399 { 163, "uM163FacilityDesignation" },
3400 { 164, "uM164NULL" },
3401 { 165, "uM165NULL" },
3402 { 166, "uM166TrafficType" },
3403 { 167, "uM167NULL" },
3404 { 168, "uM168NULL" },
3405 { 169, "uM169FreeText" },
3406 { 170, "uM170FreeText" },
3407 { 171, "uM171VerticalRate" },
3408 { 172, "uM172VerticalRate" },
3409 { 173, "uM173VerticalRate" },
3410 { 174, "uM174VerticalRate" },
3411 { 175, "uM175Level" },
3412 { 176, "uM176NULL" },
3413 { 177, "uM177NULL" },
3414 { 178, "uM178NULL" },
3415 { 179, "uM179NULL" },
3416 { 180, "uM180LevelLevel" },
3417 { 181, "uM181ToFromPosition" },
3418 { 182, "uM182NULL" },
3419 { 183, "uM183FreeText" },
3420 { 184, "uM184TimeToFromPosition" },
3421 { 185, "uM185PositionLevel" },
3422 { 186, "uM186PositionLevel" },
3423 { 187, "uM187FreeText" },
3424 { 188, "uM188PositionSpeed" },
3425 { 189, "uM189Speed" },
3426 { 190, "uM190Degrees" },
3427 { 191, "uM191NULL" },
3428 { 192, "uM192LevelTime" },
3429 { 193, "uM193NULL" },
3430 { 194, "uM194FreeText" },
3431 { 195, "uM195FreeText" },
3432 { 196, "uM196FreeText" },
3433 { 197, "uM197FreeText" },
3434 { 198, "uM198FreeText" },
3435 { 199, "uM199FreeText" },
3436 { 200, "uM200NULL" },
3437 { 201, "uM201NULL" },
3438 { 202, "uM202NULL" },
3439 { 203, "uM203FreeText" },
3440 { 204, "uM204FreeText" },
3441 { 205, "uM205FreeText" },
3442 { 206, "uM206FreeText" },
3443 { 207, "uM207FreeText" },
3444 { 208, "uM208FreeText" },
3445 { 209, "uM209LevelPosition" },
3446 { 210, "uM210Position" },
3447 { 211, "uM211NULL" },
3448 { 212, "uM212FacilityDesignationATISCode" },
3449 { 213, "uM213FacilityDesignationAltimeter" },
3450 { 214, "uM214RunwayRVR" },
3451 { 215, "uM215DirectionDegrees" },
3452 { 216, "uM216NULL" },
3453 { 217, "uM217NULL" },
3454 { 218, "uM218NULL" },
3455 { 219, "uM219Level" },
3456 { 220, "uM220Level" },
3457 { 221, "uM221Degrees" },
3458 { 222, "uM222NULL" },
3459 { 223, "uM223NULL" },
3460 { 224, "uM224NULL" },
3461 { 225, "uM225NULL" },
3462 { 226, "uM226Time" },
3463 { 227, "uM227NULL" },
3464 { 228, "uM228Position" },
3465 { 229, "uM229NULL" },
3466 { 230, "uM230NULL" },
3467 { 231, "uM231NULL" },
3468 { 232, "uM232NULL" },
3469 { 233, "uM233NULL" },
3470 { 234, "uM234NULL" },
3471 { 235, "uM235NULL" },
3472 { 236, "uM236NULL" },
3473 { 237, "uM237NULL" },
3477 static const per_choice_t ATCUplinkMsgElementId_choice
[] = {
3478 { 0, &hf_atn_cpdlc_uM0NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3479 { 1, &hf_atn_cpdlc_uM1NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3480 { 2, &hf_atn_cpdlc_uM2NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3481 { 3, &hf_atn_cpdlc_uM3NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3482 { 4, &hf_atn_cpdlc_uM4NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3483 { 5, &hf_atn_cpdlc_uM5NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3484 { 6, &hf_atn_cpdlc_uM6Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3485 { 7, &hf_atn_cpdlc_uM7Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3486 { 8, &hf_atn_cpdlc_uM8Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3487 { 9, &hf_atn_cpdlc_uM9Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3488 { 10, &hf_atn_cpdlc_uM10Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3489 { 11, &hf_atn_cpdlc_uM11Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3490 { 12, &hf_atn_cpdlc_uM12Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3491 { 13, &hf_atn_cpdlc_uM13TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
3492 { 14, &hf_atn_cpdlc_uM14PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3493 { 15, &hf_atn_cpdlc_uM15TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
3494 { 16, &hf_atn_cpdlc_uM16PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3495 { 17, &hf_atn_cpdlc_uM17TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
3496 { 18, &hf_atn_cpdlc_uM18PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3497 { 19, &hf_atn_cpdlc_uM19Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3498 { 20, &hf_atn_cpdlc_uM20Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3499 { 21, &hf_atn_cpdlc_uM21TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
3500 { 22, &hf_atn_cpdlc_uM22PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3501 { 23, &hf_atn_cpdlc_uM23Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3502 { 24, &hf_atn_cpdlc_uM24TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
3503 { 25, &hf_atn_cpdlc_uM25PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3504 { 26, &hf_atn_cpdlc_uM26LevelTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelTime
},
3505 { 27, &hf_atn_cpdlc_uM27LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3506 { 28, &hf_atn_cpdlc_uM28LevelTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelTime
},
3507 { 29, &hf_atn_cpdlc_uM29LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3508 { 30, &hf_atn_cpdlc_uM30LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
3509 { 31, &hf_atn_cpdlc_uM31LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
3510 { 32, &hf_atn_cpdlc_uM32LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
3511 { 33, &hf_atn_cpdlc_uM33NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3512 { 34, &hf_atn_cpdlc_uM34Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3513 { 35, &hf_atn_cpdlc_uM35Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3514 { 36, &hf_atn_cpdlc_uM36Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3515 { 37, &hf_atn_cpdlc_uM37Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3516 { 38, &hf_atn_cpdlc_uM38Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3517 { 39, &hf_atn_cpdlc_uM39Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3518 { 40, &hf_atn_cpdlc_uM40NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3519 { 41, &hf_atn_cpdlc_uM41NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3520 { 42, &hf_atn_cpdlc_uM42PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3521 { 43, &hf_atn_cpdlc_uM43PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3522 { 44, &hf_atn_cpdlc_uM44PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3523 { 45, &hf_atn_cpdlc_uM45PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3524 { 46, &hf_atn_cpdlc_uM46PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3525 { 47, &hf_atn_cpdlc_uM47PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3526 { 48, &hf_atn_cpdlc_uM48PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3527 { 49, &hf_atn_cpdlc_uM49PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3528 { 50, &hf_atn_cpdlc_uM50PositionLevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevelLevel
},
3529 { 51, &hf_atn_cpdlc_uM51PositionTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTime
},
3530 { 52, &hf_atn_cpdlc_uM52PositionTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTime
},
3531 { 53, &hf_atn_cpdlc_uM53PositionTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTime
},
3532 { 54, &hf_atn_cpdlc_uM54PositionTimeTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTimeTime
},
3533 { 55, &hf_atn_cpdlc_uM55PositionSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeed
},
3534 { 56, &hf_atn_cpdlc_uM56PositionSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeed
},
3535 { 57, &hf_atn_cpdlc_uM57PositionSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeed
},
3536 { 58, &hf_atn_cpdlc_uM58PositionTimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTimeLevel
},
3537 { 59, &hf_atn_cpdlc_uM59PositionTimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTimeLevel
},
3538 { 60, &hf_atn_cpdlc_uM60PositionTimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTimeLevel
},
3539 { 61, &hf_atn_cpdlc_uM61PositionLevelSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevelSpeed
},
3540 { 62, &hf_atn_cpdlc_uM62TimePositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimePositionLevel
},
3541 { 63, &hf_atn_cpdlc_uM63TimePositionLevelSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimePositionLevelSpeed
},
3542 { 64, &hf_atn_cpdlc_uM64DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
3543 { 65, &hf_atn_cpdlc_uM65PositionDistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionDistanceSpecifiedDirection
},
3544 { 66, &hf_atn_cpdlc_uM66TimeDistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeDistanceSpecifiedDirection
},
3545 { 67, &hf_atn_cpdlc_uM67NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3546 { 68, &hf_atn_cpdlc_uM68Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3547 { 69, &hf_atn_cpdlc_uM69Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3548 { 70, &hf_atn_cpdlc_uM70Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3549 { 71, &hf_atn_cpdlc_uM71Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3550 { 72, &hf_atn_cpdlc_uM72NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3551 { 73, &hf_atn_cpdlc_uM73DepartureClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DepartureClearance
},
3552 { 74, &hf_atn_cpdlc_uM74Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3553 { 75, &hf_atn_cpdlc_uM75Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3554 { 76, &hf_atn_cpdlc_uM76TimePosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimePosition
},
3555 { 77, &hf_atn_cpdlc_uM77PositionPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionPosition
},
3556 { 78, &hf_atn_cpdlc_uM78LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3557 { 79, &hf_atn_cpdlc_uM79PositionRouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionRouteClearanceIndex
},
3558 { 80, &hf_atn_cpdlc_uM80RouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RouteClearanceIndex
},
3559 { 81, &hf_atn_cpdlc_uM81ProcedureName
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProcedureName
},
3560 { 82, &hf_atn_cpdlc_uM82DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
3561 { 83, &hf_atn_cpdlc_uM83PositionRouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionRouteClearanceIndex
},
3562 { 84, &hf_atn_cpdlc_uM84PositionProcedureName
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionProcedureName
},
3563 { 85, &hf_atn_cpdlc_uM85RouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RouteClearanceIndex
},
3564 { 86, &hf_atn_cpdlc_uM86PositionRouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionRouteClearanceIndex
},
3565 { 87, &hf_atn_cpdlc_uM87Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3566 { 88, &hf_atn_cpdlc_uM88PositionPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionPosition
},
3567 { 89, &hf_atn_cpdlc_uM89TimePosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimePosition
},
3568 { 90, &hf_atn_cpdlc_uM90LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3569 { 91, &hf_atn_cpdlc_uM91HoldClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_HoldClearance
},
3570 { 92, &hf_atn_cpdlc_uM92PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3571 { 93, &hf_atn_cpdlc_uM93Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3572 { 94, &hf_atn_cpdlc_uM94DirectionDegrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DirectionDegrees
},
3573 { 95, &hf_atn_cpdlc_uM95DirectionDegrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DirectionDegrees
},
3574 { 96, &hf_atn_cpdlc_uM96NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3575 { 97, &hf_atn_cpdlc_uM97PositionDegrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionDegrees
},
3576 { 98, &hf_atn_cpdlc_uM98DirectionDegrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DirectionDegrees
},
3577 { 99, &hf_atn_cpdlc_uM99ProcedureName
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProcedureName
},
3578 { 100, &hf_atn_cpdlc_uM100TimeSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeSpeed
},
3579 { 101, &hf_atn_cpdlc_uM101PositionSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeed
},
3580 { 102, &hf_atn_cpdlc_uM102LevelSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelSpeed
},
3581 { 103, &hf_atn_cpdlc_uM103TimeSpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeSpeedSpeed
},
3582 { 104, &hf_atn_cpdlc_uM104PositionSpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeedSpeed
},
3583 { 105, &hf_atn_cpdlc_uM105LevelSpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelSpeedSpeed
},
3584 { 106, &hf_atn_cpdlc_uM106Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3585 { 107, &hf_atn_cpdlc_uM107NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3586 { 108, &hf_atn_cpdlc_uM108Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3587 { 109, &hf_atn_cpdlc_uM109Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3588 { 110, &hf_atn_cpdlc_uM110SpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedSpeed
},
3589 { 111, &hf_atn_cpdlc_uM111Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3590 { 112, &hf_atn_cpdlc_uM112Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3591 { 113, &hf_atn_cpdlc_uM113Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3592 { 114, &hf_atn_cpdlc_uM114Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3593 { 115, &hf_atn_cpdlc_uM115Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3594 { 116, &hf_atn_cpdlc_uM116NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3595 { 117, &hf_atn_cpdlc_uM117UnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_UnitNameFrequency
},
3596 { 118, &hf_atn_cpdlc_uM118PositionUnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionUnitNameFrequency
},
3597 { 119, &hf_atn_cpdlc_uM119TimeUnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeUnitNameFrequency
},
3598 { 120, &hf_atn_cpdlc_uM120UnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_UnitNameFrequency
},
3599 { 121, &hf_atn_cpdlc_uM121PositionUnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionUnitNameFrequency
},
3600 { 122, &hf_atn_cpdlc_uM122TimeUnitNameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeUnitNameFrequency
},
3601 { 123, &hf_atn_cpdlc_uM123Code
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Code
},
3602 { 124, &hf_atn_cpdlc_uM124NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3603 { 125, &hf_atn_cpdlc_uM125NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3604 { 126, &hf_atn_cpdlc_uM126NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3605 { 127, &hf_atn_cpdlc_uM127NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3606 { 128, &hf_atn_cpdlc_uM128Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3607 { 129, &hf_atn_cpdlc_uM129Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3608 { 130, &hf_atn_cpdlc_uM130Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3609 { 131, &hf_atn_cpdlc_uM131NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3610 { 132, &hf_atn_cpdlc_uM132NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3611 { 133, &hf_atn_cpdlc_uM133NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3612 { 134, &hf_atn_cpdlc_uM134SpeedTypeSpeedTypeSpeedType
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedTypeSpeedTypeSpeedType
},
3613 { 135, &hf_atn_cpdlc_uM135NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3614 { 136, &hf_atn_cpdlc_uM136NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3615 { 137, &hf_atn_cpdlc_uM137NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3616 { 138, &hf_atn_cpdlc_uM138NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3617 { 139, &hf_atn_cpdlc_uM139NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3618 { 140, &hf_atn_cpdlc_uM140NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3619 { 141, &hf_atn_cpdlc_uM141NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3620 { 142, &hf_atn_cpdlc_uM142NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3621 { 143, &hf_atn_cpdlc_uM143NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3622 { 144, &hf_atn_cpdlc_uM144NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3623 { 145, &hf_atn_cpdlc_uM145NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3624 { 146, &hf_atn_cpdlc_uM146NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3625 { 147, &hf_atn_cpdlc_uM147NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3626 { 148, &hf_atn_cpdlc_uM148Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3627 { 149, &hf_atn_cpdlc_uM149LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3628 { 150, &hf_atn_cpdlc_uM150LevelTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelTime
},
3629 { 151, &hf_atn_cpdlc_uM151Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3630 { 152, &hf_atn_cpdlc_uM152DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
3631 { 153, &hf_atn_cpdlc_uM153Altimeter
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Altimeter
},
3632 { 154, &hf_atn_cpdlc_uM154NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3633 { 155, &hf_atn_cpdlc_uM155Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3634 { 156, &hf_atn_cpdlc_uM156NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3635 { 157, &hf_atn_cpdlc_uM157Frequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Frequency
},
3636 { 158, &hf_atn_cpdlc_uM158AtisCode
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATISCode
},
3637 { 159, &hf_atn_cpdlc_uM159ErrorInformation
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ErrorInformation
},
3638 { 160, &hf_atn_cpdlc_uM160Facility
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Facility
},
3639 { 161, &hf_atn_cpdlc_uM161NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3640 { 162, &hf_atn_cpdlc_uM162NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3641 { 163, &hf_atn_cpdlc_uM163FacilityDesignation
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FacilityDesignation
},
3642 { 164, &hf_atn_cpdlc_uM164NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3643 { 165, &hf_atn_cpdlc_uM165NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3644 { 166, &hf_atn_cpdlc_uM166TrafficType
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TrafficType
},
3645 { 167, &hf_atn_cpdlc_uM167NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3646 { 168, &hf_atn_cpdlc_uM168NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3647 { 169, &hf_atn_cpdlc_uM169FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3648 { 170, &hf_atn_cpdlc_uM170FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3649 { 171, &hf_atn_cpdlc_uM171VerticalRate
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_VerticalRate
},
3650 { 172, &hf_atn_cpdlc_uM172VerticalRate
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_VerticalRate
},
3651 { 173, &hf_atn_cpdlc_uM173VerticalRate
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_VerticalRate
},
3652 { 174, &hf_atn_cpdlc_uM174VerticalRate
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_VerticalRate
},
3653 { 175, &hf_atn_cpdlc_uM175Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3654 { 176, &hf_atn_cpdlc_uM176NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3655 { 177, &hf_atn_cpdlc_uM177NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3656 { 178, &hf_atn_cpdlc_uM178NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3657 { 179, &hf_atn_cpdlc_uM179NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3658 { 180, &hf_atn_cpdlc_uM180LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
3659 { 181, &hf_atn_cpdlc_uM181ToFromPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ToFromPosition
},
3660 { 182, &hf_atn_cpdlc_uM182NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3661 { 183, &hf_atn_cpdlc_uM183FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3662 { 184, &hf_atn_cpdlc_uM184TimeToFromPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeToFromPosition
},
3663 { 185, &hf_atn_cpdlc_uM185PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3664 { 186, &hf_atn_cpdlc_uM186PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
3665 { 187, &hf_atn_cpdlc_uM187FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3666 { 188, &hf_atn_cpdlc_uM188PositionSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionSpeed
},
3667 { 189, &hf_atn_cpdlc_uM189Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
3668 { 190, &hf_atn_cpdlc_uM190Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
3669 { 191, &hf_atn_cpdlc_uM191NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3670 { 192, &hf_atn_cpdlc_uM192LevelTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelTime
},
3671 { 193, &hf_atn_cpdlc_uM193NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3672 { 194, &hf_atn_cpdlc_uM194FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3673 { 195, &hf_atn_cpdlc_uM195FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3674 { 196, &hf_atn_cpdlc_uM196FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3675 { 197, &hf_atn_cpdlc_uM197FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3676 { 198, &hf_atn_cpdlc_uM198FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3677 { 199, &hf_atn_cpdlc_uM199FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3678 { 200, &hf_atn_cpdlc_uM200NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3679 { 201, &hf_atn_cpdlc_uM201NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3680 { 202, &hf_atn_cpdlc_uM202NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3681 { 203, &hf_atn_cpdlc_uM203FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3682 { 204, &hf_atn_cpdlc_uM204FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3683 { 205, &hf_atn_cpdlc_uM205FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3684 { 206, &hf_atn_cpdlc_uM206FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3685 { 207, &hf_atn_cpdlc_uM207FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3686 { 208, &hf_atn_cpdlc_uM208FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
3687 { 209, &hf_atn_cpdlc_uM209LevelPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelPosition
},
3688 { 210, &hf_atn_cpdlc_uM210Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3689 { 211, &hf_atn_cpdlc_uM211NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3690 { 212, &hf_atn_cpdlc_uM212FacilityDesignationATISCode
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FacilityDesignationATISCode
},
3691 { 213, &hf_atn_cpdlc_uM213FacilityDesignationAltimeter
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FacilityDesignationAltimeter
},
3692 { 214, &hf_atn_cpdlc_uM214RunwayRVR
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RunwayRVR
},
3693 { 215, &hf_atn_cpdlc_uM215DirectionDegrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DirectionDegrees
},
3694 { 216, &hf_atn_cpdlc_uM216NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3695 { 217, &hf_atn_cpdlc_uM217NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3696 { 218, &hf_atn_cpdlc_uM218NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3697 { 219, &hf_atn_cpdlc_uM219Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3698 { 220, &hf_atn_cpdlc_uM220Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
3699 { 221, &hf_atn_cpdlc_uM221Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
3700 { 222, &hf_atn_cpdlc_uM222NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3701 { 223, &hf_atn_cpdlc_uM223NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3702 { 224, &hf_atn_cpdlc_uM224NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3703 { 225, &hf_atn_cpdlc_uM225NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3704 { 226, &hf_atn_cpdlc_uM226Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
3705 { 227, &hf_atn_cpdlc_uM227NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3706 { 228, &hf_atn_cpdlc_uM228Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
3707 { 229, &hf_atn_cpdlc_uM229NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3708 { 230, &hf_atn_cpdlc_uM230NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3709 { 231, &hf_atn_cpdlc_uM231NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3710 { 232, &hf_atn_cpdlc_uM232NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3711 { 233, &hf_atn_cpdlc_uM233NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3712 { 234, &hf_atn_cpdlc_uM234NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3713 { 235, &hf_atn_cpdlc_uM235NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3714 { 236, &hf_atn_cpdlc_uM236NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3715 { 237, &hf_atn_cpdlc_uM237NULL
, ASN1_NOT_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
3716 { 0, NULL
, 0, NULL
}
3720 dissect_atn_cpdlc_ATCUplinkMsgElementId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3721 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3722 ett_atn_cpdlc_ATCUplinkMsgElementId
, ATCUplinkMsgElementId_choice
,
3729 static const per_sequence_t SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId_sequence_of
[1] = {
3730 { &hf_atn_cpdlc_atcuplinkmessagedata_elementids_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCUplinkMsgElementId
},
3734 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_
) {
3735 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
3736 ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId
, SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId_sequence_of
,
3743 static const per_sequence_t SEQUENCE_SIZE_1_128_OF_RouteInformation_sequence_of
[1] = {
3744 { &hf_atn_cpdlc_routeInformations_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RouteInformation
},
3748 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_
) {
3749 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
3750 ett_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation
, SEQUENCE_SIZE_1_128_OF_RouteInformation_sequence_of
,
3757 static const value_string atn_cpdlc_ATWDistanceTolerance_vals
[] = {
3765 dissect_atn_cpdlc_ATWDistanceTolerance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3766 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
3767 2, NULL
, FALSE
, 0, NULL
);
3773 static const per_sequence_t ATWDistance_sequence
[] = {
3774 { &hf_atn_cpdlc_atwDistanceTolerance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATWDistanceTolerance
},
3775 { &hf_atn_cpdlc_distance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Distance
},
3776 { NULL
, 0, 0, NULL
}
3780 dissect_atn_cpdlc_ATWDistance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3781 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3782 ett_atn_cpdlc_ATWDistance
, ATWDistance_sequence
);
3788 static const value_string atn_cpdlc_ATWLevelTolerance_vals
[] = {
3797 dissect_atn_cpdlc_ATWLevelTolerance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3798 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
3799 3, NULL
, FALSE
, 0, NULL
);
3805 static const per_sequence_t ATWLevel_sequence
[] = {
3806 { &hf_atn_cpdlc_atw
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATWLevelTolerance
},
3807 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
3808 { NULL
, 0, 0, NULL
}
3812 dissect_atn_cpdlc_ATWLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3813 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3814 ett_atn_cpdlc_ATWLevel
, ATWLevel_sequence
);
3820 static const per_sequence_t ATWLevelSequence_sequence_of
[1] = {
3821 { &hf_atn_cpdlc_ATWLevelSequence_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATWLevel
},
3825 dissect_atn_cpdlc_ATWLevelSequence(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3826 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
3827 ett_atn_cpdlc_ATWLevelSequence
, ATWLevelSequence_sequence_of
,
3834 static const per_sequence_t ATWAlongTrackWaypoint_sequence
[] = {
3835 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
3836 { &hf_atn_cpdlc_aTWDistance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATWDistance
},
3837 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Speed
},
3838 { &hf_atn_cpdlc_aTWLevels
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ATWLevelSequence
},
3839 { NULL
, 0, 0, NULL
}
3843 dissect_atn_cpdlc_ATWAlongTrackWaypoint(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3844 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3845 ett_atn_cpdlc_ATWAlongTrackWaypoint
, ATWAlongTrackWaypoint_sequence
);
3851 static const per_sequence_t SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint_sequence_of
[1] = {
3852 { &hf_atn_cpdlc_aTWAlongTrackWaypoints_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATWAlongTrackWaypoint
},
3856 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_
) {
3857 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
3858 ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint
, SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint_sequence_of
,
3865 static const per_sequence_t LatitudeReportingPoints_sequence
[] = {
3866 { &hf_atn_cpdlc_latitudeDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeDirection
},
3867 { &hf_atn_cpdlc_latitudeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatitudeDegrees
},
3868 { NULL
, 0, 0, NULL
}
3872 dissect_atn_cpdlc_LatitudeReportingPoints(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3873 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3874 ett_atn_cpdlc_LatitudeReportingPoints
, LatitudeReportingPoints_sequence
);
3880 static const per_sequence_t LongitudeReportingPoints_sequence
[] = {
3881 { &hf_atn_cpdlc_longitudeDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeDirection
},
3882 { &hf_atn_cpdlc_longitudeDegrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LongitudeDegrees
},
3883 { NULL
, 0, 0, NULL
}
3887 dissect_atn_cpdlc_LongitudeReportingPoints(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3888 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3889 ett_atn_cpdlc_LongitudeReportingPoints
, LongitudeReportingPoints_sequence
);
3895 static const value_string atn_cpdlc_LatLonReportingPoints_vals
[] = {
3896 { 0, "latitudeReportingPoints" },
3897 { 1, "longitudeReportingPoints" },
3901 static const per_choice_t LatLonReportingPoints_choice
[] = {
3902 { 0, &hf_atn_cpdlc_latitudeReportingPoints
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeReportingPoints
},
3903 { 1, &hf_atn_cpdlc_longitudeReportingPoints
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LongitudeReportingPoints
},
3904 { 0, NULL
, 0, NULL
}
3908 dissect_atn_cpdlc_LatLonReportingPoints(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3909 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3910 ett_atn_cpdlc_LatLonReportingPoints
, LatLonReportingPoints_choice
,
3919 dissect_atn_cpdlc_DegreeIncrement(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3920 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
3921 1U, 20U, NULL
, FALSE
);
3927 static const per_sequence_t ReportingPoints_sequence
[] = {
3928 { &hf_atn_cpdlc_latLonReportingPoints
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_LatLonReportingPoints
},
3929 { &hf_atn_cpdlc_degreeIncrement
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_DegreeIncrement
},
3930 { NULL
, 0, 0, NULL
}
3934 dissect_atn_cpdlc_ReportingPoints(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3935 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3936 ett_atn_cpdlc_ReportingPoints
, ReportingPoints_sequence
);
3942 static const value_string atn_cpdlc_InterceptCourseFromSelection_vals
[] = {
3943 { 0, "publishedIdentifier" },
3944 { 1, "latitudeLongitude" },
3945 { 2, "placeBearingPlaceBearing" },
3946 { 3, "placeBearingDistance" },
3950 static const per_choice_t InterceptCourseFromSelection_choice
[] = {
3951 { 0, &hf_atn_cpdlc_publishedIdentifier
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PublishedIdentifier
},
3952 { 1, &hf_atn_cpdlc_latitudeLongitude
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_LatitudeLongitude
},
3953 { 2, &hf_atn_cpdlc_placeBearingPlaceBearing
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PlaceBearingPlaceBearing
},
3954 { 3, &hf_atn_cpdlc_placeBearingDistance
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_PlaceBearingDistance
},
3955 { 0, NULL
, 0, NULL
}
3959 dissect_atn_cpdlc_InterceptCourseFromSelection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3960 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
3961 ett_atn_cpdlc_InterceptCourseFromSelection
, InterceptCourseFromSelection_choice
,
3968 static const per_sequence_t InterceptCourseFrom_sequence
[] = {
3969 { &hf_atn_cpdlc_fromSelection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_InterceptCourseFromSelection
},
3970 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
3971 { NULL
, 0, 0, NULL
}
3975 dissect_atn_cpdlc_InterceptCourseFrom(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3976 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
3977 ett_atn_cpdlc_InterceptCourseFrom
, InterceptCourseFrom_sequence
);
3983 static const per_sequence_t SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom_sequence_of
[1] = {
3984 { &hf_atn_cpdlc_interceptCourseFroms_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_InterceptCourseFrom
},
3988 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_
) {
3989 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
3990 ett_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom
, SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom_sequence_of
,
3997 static const per_sequence_t Holdatwaypoint_sequence
[] = {
3998 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
3999 { &hf_atn_cpdlc_holdatwaypointspeedlow
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Speed
},
4000 { &hf_atn_cpdlc_aTWlevel
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ATWLevel
},
4001 { &hf_atn_cpdlc_holdatwaypointspeedhigh
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Speed
},
4002 { &hf_atn_cpdlc_direction
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Direction
},
4003 { &hf_atn_cpdlc_degrees
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
4004 { &hf_atn_cpdlc_eFCtime
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
4005 { &hf_atn_cpdlc_legtype
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_LegType
},
4006 { NULL
, 0, 0, NULL
}
4010 dissect_atn_cpdlc_Holdatwaypoint(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4011 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4012 ett_atn_cpdlc_Holdatwaypoint
, Holdatwaypoint_sequence
);
4018 static const per_sequence_t SEQUENCE_SIZE_1_8_OF_Holdatwaypoint_sequence_of
[1] = {
4019 { &hf_atn_cpdlc_holdAtWaypoints_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Holdatwaypoint
},
4023 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_
) {
4024 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
4025 ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint
, SEQUENCE_SIZE_1_8_OF_Holdatwaypoint_sequence_of
,
4032 static const per_sequence_t WaypointSpeedLevel_sequence
[] = {
4033 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
4034 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Speed
},
4035 { &hf_atn_cpdlc_aTWLevels
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ATWLevelSequence
},
4036 { NULL
, 0, 0, NULL
}
4040 dissect_atn_cpdlc_WaypointSpeedLevel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4041 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4042 ett_atn_cpdlc_WaypointSpeedLevel
, WaypointSpeedLevel_sequence
);
4048 static const per_sequence_t SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel_sequence_of
[1] = {
4049 { &hf_atn_cpdlc_waypointSpeedLevels_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_WaypointSpeedLevel
},
4053 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_
) {
4054 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
4055 ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel
, SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel_sequence_of
,
4062 static const per_sequence_t RTATime_sequence
[] = {
4063 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
4064 { &hf_atn_cpdlc_timeTolerance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_TimeTolerance
},
4065 { NULL
, 0, 0, NULL
}
4069 dissect_atn_cpdlc_RTATime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4070 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4071 ett_atn_cpdlc_RTATime
, RTATime_sequence
);
4079 dissect_atn_cpdlc_RTATolerance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4080 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4081 1U, 150U, NULL
, FALSE
);
4087 static const per_sequence_t RTARequiredTimeArrival_sequence
[] = {
4088 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
4089 { &hf_atn_cpdlc_rTATime
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RTATime
},
4090 { &hf_atn_cpdlc_rTATolerance
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_RTATolerance
},
4091 { NULL
, 0, 0, NULL
}
4095 dissect_atn_cpdlc_RTARequiredTimeArrival(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4096 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4097 ett_atn_cpdlc_RTARequiredTimeArrival
, RTARequiredTimeArrival_sequence
);
4103 static const per_sequence_t SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival_sequence_of
[1] = {
4104 { &hf_atn_cpdlc_rTARequiredTimeArrivals_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RTARequiredTimeArrival
},
4108 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_
) {
4109 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
4110 ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival
, SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival_sequence_of
,
4117 static const per_sequence_t RouteInformationAdditional_sequence
[] = {
4118 { &hf_atn_cpdlc_aTWAlongTrackWaypoints
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint
},
4119 { &hf_atn_cpdlc_reportingpoints
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ReportingPoints
},
4120 { &hf_atn_cpdlc_interceptCourseFroms
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom
},
4121 { &hf_atn_cpdlc_holdAtWaypoints
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint
},
4122 { &hf_atn_cpdlc_waypointSpeedLevels
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel
},
4123 { &hf_atn_cpdlc_rTARequiredTimeArrivals
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival
},
4124 { NULL
, 0, 0, NULL
}
4128 dissect_atn_cpdlc_RouteInformationAdditional(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4129 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4130 ett_atn_cpdlc_RouteInformationAdditional
, RouteInformationAdditional_sequence
);
4136 static const per_sequence_t RouteClearance_sequence
[] = {
4137 { &hf_atn_cpdlc_airportDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Airport
},
4138 { &hf_atn_cpdlc_airportDestination
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Airport
},
4139 { &hf_atn_cpdlc_runwayDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Runway
},
4140 { &hf_atn_cpdlc_procedureDeparture
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ProcedureName
},
4141 { &hf_atn_cpdlc_runwayArrival
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Runway
},
4142 { &hf_atn_cpdlc_procedureApproach
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ProcedureName
},
4143 { &hf_atn_cpdlc_procedureArrival
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ProcedureName
},
4144 { &hf_atn_cpdlc_routeInformations
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation
},
4145 { &hf_atn_cpdlc_routeInformationAdditional
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_RouteInformationAdditional
},
4146 { NULL
, 0, 0, NULL
}
4150 dissect_atn_cpdlc_RouteClearance(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4151 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4152 ett_atn_cpdlc_RouteClearance
, RouteClearance_sequence
);
4158 static const per_sequence_t SEQUENCE_SIZE_1_2_OF_RouteClearance_sequence_of
[1] = {
4159 { &hf_atn_cpdlc_routeClearanceData_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RouteClearance
},
4163 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_
) {
4164 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
4165 ett_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance
, SEQUENCE_SIZE_1_2_OF_RouteClearance_sequence_of
,
4172 static const per_sequence_t T_atcuplinkmessagedata_constraineddata_sequence
[] = {
4173 { &hf_atn_cpdlc_routeClearanceData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance
},
4174 { NULL
, 0, 0, NULL
}
4178 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_
) {
4179 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4180 ett_atn_cpdlc_T_atcuplinkmessagedata_constraineddata
, T_atcuplinkmessagedata_constraineddata_sequence
);
4186 static const per_sequence_t ATCUplinkMessageData_sequence
[] = {
4187 { &hf_atn_cpdlc_atcuplinkmessagedata_elementids
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId
},
4188 { &hf_atn_cpdlc_atcuplinkmessagedata_constraineddata
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_T_atcuplinkmessagedata_constraineddata
},
4189 { NULL
, 0, 0, NULL
}
4193 dissect_atn_cpdlc_ATCUplinkMessageData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4194 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4195 ett_atn_cpdlc_ATCUplinkMessageData
, ATCUplinkMessageData_sequence
);
4201 static const per_sequence_t ATCUplinkMessage_sequence
[] = {
4202 { &hf_atn_cpdlc_header
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCMessageHeader
},
4203 { &hf_atn_cpdlc_atcuplinkmessage_messagedata
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCUplinkMessageData
},
4204 { NULL
, 0, 0, NULL
}
4208 dissect_atn_cpdlc_ATCUplinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4209 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4210 ett_atn_cpdlc_ATCUplinkMessage
, ATCUplinkMessage_sequence
);
4216 static const value_string atn_cpdlc_UplinkMessage_vals
[] = {
4218 { 1, "aTCUplinkMessage" },
4222 static const per_choice_t UplinkMessage_choice
[] = {
4223 { 0, &hf_atn_cpdlc_noMessage
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_NULL
},
4224 { 1, &hf_atn_cpdlc_aTCUplinkMessage
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_ATCUplinkMessage
},
4225 { 0, NULL
, 0, NULL
}
4229 dissect_atn_cpdlc_UplinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4230 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4231 ett_atn_cpdlc_UplinkMessage
, UplinkMessage_choice
,
4240 dissect_atn_cpdlc_AircraftAddress(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4241 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
4242 24, 24, FALSE
, NULL
);
4248 static const per_sequence_t ForwardHeader_sequence
[] = {
4249 { &hf_atn_cpdlc_dateTime
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DateTimeGroup
},
4250 { &hf_atn_cpdlc_aircraftID
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_AircraftFlightIdentification
},
4251 { &hf_atn_cpdlc_aircraftAddress
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_AircraftAddress
},
4252 { NULL
, 0, 0, NULL
}
4256 dissect_atn_cpdlc_ForwardHeader(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4257 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4258 ett_atn_cpdlc_ForwardHeader
, ForwardHeader_sequence
);
4266 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_
) {
4267 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
,
4268 NO_BOUND
, NO_BOUND
, FALSE
, NULL
);
4274 static const value_string atn_cpdlc_ForwardMessage_vals
[] = {
4275 { 0, "upElementIDs" },
4276 { 1, "downElementIDs" },
4280 static const per_choice_t ForwardMessage_choice
[] = {
4281 { 0, &hf_atn_cpdlc_upElementIDs
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_BIT_STRING
},
4282 { 1, &hf_atn_cpdlc_downElementIDs
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_BIT_STRING
},
4283 { 0, NULL
, 0, NULL
}
4287 dissect_atn_cpdlc_ForwardMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4288 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4289 ett_atn_cpdlc_ForwardMessage
, ForwardMessage_choice
,
4296 static const per_sequence_t ATCForwardMessage_sequence
[] = {
4297 { &hf_atn_cpdlc_forwardHeader
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ForwardHeader
},
4298 { &hf_atn_cpdlc_forwardMessage
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ForwardMessage
},
4299 { NULL
, 0, 0, NULL
}
4303 dissect_atn_cpdlc_ATCForwardMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4304 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4305 ett_atn_cpdlc_ATCForwardMessage
, ATCForwardMessage_sequence
);
4311 static const value_string atn_cpdlc_ATCForwardResponse_vals
[] = {
4313 { 1, "service-not-supported" },
4314 { 2, "version-not-equal" },
4320 dissect_atn_cpdlc_ATCForwardResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4321 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4322 3, NULL
, TRUE
, 0, NULL
);
4328 static const value_string atn_cpdlc_GroundPDUs_vals
[] = {
4330 { 1, "abortProvider" },
4334 { 5, "forwardresponse" },
4338 static const per_choice_t GroundPDUs_choice
[] = {
4339 { 0, &hf_atn_cpdlc_abortUser
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_CPDLCUserAbortReason
},
4340 { 1, &hf_atn_cpdlc_abortProvider
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_CPDLCProviderAbortReason
},
4341 { 2, &hf_atn_cpdlc_startup
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_UplinkMessage
},
4342 { 3, &hf_atn_cpdlc_groundpdus_send
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCUplinkMessage
},
4343 { 4, &hf_atn_cpdlc_forward
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCForwardMessage
},
4344 { 5, &hf_atn_cpdlc_forwardresponse
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCForwardResponse
},
4345 { 0, NULL
, 0, NULL
}
4349 dissect_atn_cpdlc_GroundPDUs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4350 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4351 ett_atn_cpdlc_GroundPDUs
, GroundPDUs_choice
,
4358 static const value_string atn_cpdlc_Mode_vals
[] = {
4366 dissect_atn_cpdlc_Mode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4367 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4368 2, NULL
, FALSE
, 0, NULL
);
4374 static const value_string atn_cpdlc_ClearanceType_vals
[] = {
4375 { 0, "noneSpecified" },
4386 { 11, "downstream" },
4392 dissect_atn_cpdlc_ClearanceType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4393 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4394 12, NULL
, TRUE
, 0, NULL
);
4402 dissect_atn_cpdlc_RemainingFuel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4403 offset
= dissect_atn_cpdlc_Time(tvb
, offset
, actx
, tree
, hf_index
);
4411 dissect_atn_cpdlc_Temperature(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4412 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4413 -100, 100U, NULL
, FALSE
);
4421 dissect_atn_cpdlc_WindDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4422 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4423 1U, 360U, NULL
, FALSE
);
4431 dissect_atn_cpdlc_WindSpeedEnglish(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4432 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4433 0U, 255U, NULL
, FALSE
);
4441 dissect_atn_cpdlc_WindSpeedMetric(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4442 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4443 0U, 511U, NULL
, FALSE
);
4449 static const value_string atn_cpdlc_WindSpeed_vals
[] = {
4450 { 0, "windSpeedEnglish" },
4451 { 1, "windSpeedMetric" },
4455 static const per_choice_t WindSpeed_choice
[] = {
4456 { 0, &hf_atn_cpdlc_windSpeedEnglish
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_WindSpeedEnglish
},
4457 { 1, &hf_atn_cpdlc_windSpeedMetric
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_WindSpeedMetric
},
4458 { 0, NULL
, 0, NULL
}
4462 dissect_atn_cpdlc_WindSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4463 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4464 ett_atn_cpdlc_WindSpeed
, WindSpeed_choice
,
4471 static const per_sequence_t Winds_sequence
[] = {
4472 { &hf_atn_cpdlc_winds_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_WindDirection
},
4473 { &hf_atn_cpdlc_winds_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_WindSpeed
},
4474 { NULL
, 0, 0, NULL
}
4478 dissect_atn_cpdlc_Winds(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4479 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4480 ett_atn_cpdlc_Winds
, Winds_sequence
);
4486 static const value_string atn_cpdlc_Turbulence_vals
[] = {
4495 dissect_atn_cpdlc_Turbulence(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4496 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4497 3, NULL
, FALSE
, 0, NULL
);
4503 static const value_string atn_cpdlc_Icing_vals
[] = {
4513 dissect_atn_cpdlc_Icing(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4514 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4515 4, NULL
, FALSE
, 0, NULL
);
4521 static const value_string atn_cpdlc_VerticalDirection_vals
[] = {
4529 dissect_atn_cpdlc_VerticalDirection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4530 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
4531 2, NULL
, FALSE
, 0, NULL
);
4537 static const per_sequence_t VerticalChange_sequence
[] = {
4538 { &hf_atn_cpdlc_vertical_direction
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_VerticalDirection
},
4539 { &hf_atn_cpdlc_rate
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_VerticalRate
},
4540 { NULL
, 0, 0, NULL
}
4544 dissect_atn_cpdlc_VerticalChange(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4545 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4546 ett_atn_cpdlc_VerticalChange
, VerticalChange_sequence
);
4554 dissect_atn_cpdlc_Humidity(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4555 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4556 0U, 100U, NULL
, FALSE
);
4562 static const per_sequence_t PositionReport_sequence
[] = {
4563 { &hf_atn_cpdlc_positioncurrent
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
4564 { &hf_atn_cpdlc_timeatpositioncurrent
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
4565 { &hf_atn_cpdlc_level
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Level
},
4566 { &hf_atn_cpdlc_fixnext
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Position
},
4567 { &hf_atn_cpdlc_timeetaatfixnext
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
4568 { &hf_atn_cpdlc_fixnextplusone
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Position
},
4569 { &hf_atn_cpdlc_timeetaatdestination
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
4570 { &hf_atn_cpdlc_remainingFuel
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_RemainingFuel
},
4571 { &hf_atn_cpdlc_temperature
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Temperature
},
4572 { &hf_atn_cpdlc_winds
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Winds
},
4573 { &hf_atn_cpdlc_turbulence
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Turbulence
},
4574 { &hf_atn_cpdlc_icing
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Icing
},
4575 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Speed
},
4576 { &hf_atn_cpdlc_speedground
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SpeedGround
},
4577 { &hf_atn_cpdlc_verticalChange
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_VerticalChange
},
4578 { &hf_atn_cpdlc_trackAngle
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
4579 { &hf_atn_cpdlc_heading
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Degrees
},
4580 { &hf_atn_cpdlc_distance
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Distance
},
4581 { &hf_atn_cpdlc_humidity
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Humidity
},
4582 { &hf_atn_cpdlc_reportedWaypointPosition
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Position
},
4583 { &hf_atn_cpdlc_reportedWaypointTime
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Time
},
4584 { &hf_atn_cpdlc_reportedWaypointLevel
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Level
},
4585 { NULL
, 0, 0, NULL
}
4589 dissect_atn_cpdlc_PositionReport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4590 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4591 ett_atn_cpdlc_PositionReport
, PositionReport_sequence
);
4599 dissect_atn_cpdlc_PersonsOnBoard(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4600 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4601 1U, 1024U, NULL
, FALSE
);
4607 static const per_sequence_t RemainingFuelPersonsOnBoard_sequence
[] = {
4608 { &hf_atn_cpdlc_remainingFuel
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_RemainingFuel
},
4609 { &hf_atn_cpdlc_personsOnBoard
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_PersonsOnBoard
},
4610 { NULL
, 0, 0, NULL
}
4614 dissect_atn_cpdlc_RemainingFuelPersonsOnBoard(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4615 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4616 ett_atn_cpdlc_RemainingFuelPersonsOnBoard
, RemainingFuelPersonsOnBoard_sequence
);
4624 dissect_atn_cpdlc_VersionNumber(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4625 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
4626 0U, 15U, NULL
, FALSE
);
4632 static const per_sequence_t TimeDistanceToFromPosition_sequence
[] = {
4633 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
4634 { &hf_atn_cpdlc_distance
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Distance
},
4635 { &hf_atn_cpdlc_tofrom
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ToFrom
},
4636 { &hf_atn_cpdlc_position
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Position
},
4637 { NULL
, 0, 0, NULL
}
4641 dissect_atn_cpdlc_TimeDistanceToFromPosition(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4642 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4643 ett_atn_cpdlc_TimeDistanceToFromPosition
, TimeDistanceToFromPosition_sequence
);
4649 static const per_sequence_t SpeedTime_sequence
[] = {
4650 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
4651 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
4652 { NULL
, 0, 0, NULL
}
4656 dissect_atn_cpdlc_SpeedTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4657 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4658 ett_atn_cpdlc_SpeedTime
, SpeedTime_sequence
);
4664 static const per_sequence_t DistanceSpecifiedDirectionTime_sequence
[] = {
4665 { &hf_atn_cpdlc_distanceSpecifiedDirection
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4666 { &hf_atn_cpdlc_time
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Time
},
4667 { NULL
, 0, 0, NULL
}
4671 dissect_atn_cpdlc_DistanceSpecifiedDirectionTime(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4672 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4673 ett_atn_cpdlc_DistanceSpecifiedDirectionTime
, DistanceSpecifiedDirectionTime_sequence
);
4679 static const per_sequence_t SpeedTypeSpeedTypeSpeedTypeSpeed_sequence
[] = {
4680 { &hf_atn_cpdlc_speedTypes
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SpeedTypeSpeedTypeSpeedType
},
4681 { &hf_atn_cpdlc_speed
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_Speed
},
4682 { NULL
, 0, 0, NULL
}
4686 dissect_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4687 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4688 ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed
, SpeedTypeSpeedTypeSpeedTypeSpeed_sequence
);
4694 static const value_string atn_cpdlc_ATCDownlinkMsgElementId_vals
[] = {
4702 { 7, "dM7LevelLevel" },
4705 { 10, "dM10Level" },
4706 { 11, "dM11PositionLevel" },
4707 { 12, "dM12PositionLevel" },
4708 { 13, "dM13TimeLevel" },
4709 { 14, "dM14TimeLevel" },
4710 { 15, "dM15DistanceSpecifiedDirection" },
4711 { 16, "dM16PositionDistanceSpecifiedDirection" },
4712 { 17, "dM17TimeDistanceSpecifiedDirection" },
4713 { 18, "dM18Speed" },
4714 { 19, "dM19SpeedSpeed" },
4716 { 21, "dM21Frequency" },
4717 { 22, "dM22Position" },
4718 { 23, "dM23ProcedureName" },
4719 { 24, "dM24RouteClearance" },
4720 { 25, "dM25ClearanceType" },
4721 { 26, "dM26PositionRouteClearance" },
4722 { 27, "dM27DistanceSpecifiedDirection" },
4723 { 28, "dM28Level" },
4724 { 29, "dM29Level" },
4725 { 30, "dM30Level" },
4726 { 31, "dM31Position" },
4727 { 32, "dM32Level" },
4728 { 33, "dM33Position" },
4729 { 34, "dM34Speed" },
4730 { 35, "dM35Degrees" },
4731 { 36, "dM36Degrees" },
4732 { 37, "dM37Level" },
4733 { 38, "dM38Level" },
4734 { 39, "dM39Speed" },
4735 { 40, "dM40RouteClearance" },
4737 { 42, "dM42Position" },
4739 { 44, "dM44Position" },
4740 { 45, "dM45Position" },
4743 { 48, "dM48PositionReport" },
4744 { 49, "dM49Speed" },
4745 { 50, "dM50SpeedSpeed" },
4749 { 54, "dM54Level" },
4752 { 57, "dM57RemainingFuelPersonsOnBoard" },
4754 { 59, "dM59PositionRouteClearance" },
4755 { 60, "dM60DistanceSpecifiedDirection" },
4756 { 61, "dM61Level" },
4757 { 62, "dM62ErrorInformation" },
4759 { 64, "dM64FacilityDesignation" },
4762 { 67, "dM67FreeText" },
4763 { 68, "dM68FreeText" },
4765 { 70, "dM70Degrees" },
4766 { 71, "dM71Degrees" },
4767 { 72, "dM72Level" },
4768 { 73, "dM73Versionnumber" },
4771 { 76, "dM76LevelLevel" },
4772 { 77, "dM77LevelLevel" },
4773 { 78, "dM78TimeDistanceToFromPosition" },
4774 { 79, "dM79AtisCode" },
4775 { 80, "dM80DistanceSpecifiedDirection" },
4776 { 81, "dM81LevelTime" },
4777 { 82, "dM82Level" },
4778 { 83, "dM83SpeedTime" },
4779 { 84, "dM84Speed" },
4780 { 85, "dM85DistanceSpecifiedDirectionTime" },
4781 { 86, "dM86DistanceSpecifiedDirection" },
4782 { 87, "dM87Level" },
4783 { 88, "dM88Level" },
4784 { 89, "dM89UnitnameFrequency" },
4785 { 90, "dM90FreeText" },
4786 { 91, "dM91FreeText" },
4787 { 92, "dM92FreeText" },
4788 { 93, "dM93FreeText" },
4789 { 94, "dM94FreeText" },
4790 { 95, "dM95FreeText" },
4791 { 96, "dM96FreeText" },
4792 { 97, "dM97FreeText" },
4793 { 98, "dM98FreeText" },
4795 { 100, "dM100NULL" },
4796 { 101, "dM101NULL" },
4797 { 102, "dM102NULL" },
4798 { 103, "dM103NULL" },
4799 { 104, "dM104PositionTime" },
4800 { 105, "dM105Airport" },
4801 { 106, "dM106Level" },
4802 { 107, "dM107NULL" },
4803 { 108, "dM108NULL" },
4804 { 109, "dM109Time" },
4805 { 110, "dM110Position" },
4806 { 111, "dM111TimePosition" },
4807 { 112, "dM112NULL" },
4808 { 113, "dM113SpeedTypeSpeedTypeSpeedTypeSpeed" },
4812 static const per_choice_t ATCDownlinkMsgElementId_choice
[] = {
4813 { 0, &hf_atn_cpdlc_dM0NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4814 { 1, &hf_atn_cpdlc_dM1NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4815 { 2, &hf_atn_cpdlc_dM2NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4816 { 3, &hf_atn_cpdlc_dM3NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4817 { 4, &hf_atn_cpdlc_dM4NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4818 { 5, &hf_atn_cpdlc_dM5NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4819 { 6, &hf_atn_cpdlc_dM6Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4820 { 7, &hf_atn_cpdlc_dM7LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
4821 { 8, &hf_atn_cpdlc_dM8Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4822 { 9, &hf_atn_cpdlc_dM9Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4823 { 10, &hf_atn_cpdlc_dM10Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4824 { 11, &hf_atn_cpdlc_dM11PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
4825 { 12, &hf_atn_cpdlc_dM12PositionLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionLevel
},
4826 { 13, &hf_atn_cpdlc_dM13TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
4827 { 14, &hf_atn_cpdlc_dM14TimeLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeLevel
},
4828 { 15, &hf_atn_cpdlc_dM15DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4829 { 16, &hf_atn_cpdlc_dM16PositionDistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionDistanceSpecifiedDirection
},
4830 { 17, &hf_atn_cpdlc_dM17TimeDistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeDistanceSpecifiedDirection
},
4831 { 18, &hf_atn_cpdlc_dM18Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
4832 { 19, &hf_atn_cpdlc_dM19SpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedSpeed
},
4833 { 20, &hf_atn_cpdlc_dM20NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4834 { 21, &hf_atn_cpdlc_dM21Frequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Frequency
},
4835 { 22, &hf_atn_cpdlc_dM22Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4836 { 23, &hf_atn_cpdlc_dM23ProcedureName
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProcedureName
},
4837 { 24, &hf_atn_cpdlc_dM24RouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RouteClearanceIndex
},
4838 { 25, &hf_atn_cpdlc_dM25ClearanceType
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ClearanceType
},
4839 { 26, &hf_atn_cpdlc_dM26PositionRouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionRouteClearanceIndex
},
4840 { 27, &hf_atn_cpdlc_dM27DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4841 { 28, &hf_atn_cpdlc_dM28Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4842 { 29, &hf_atn_cpdlc_dM29Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4843 { 30, &hf_atn_cpdlc_dM30Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4844 { 31, &hf_atn_cpdlc_dM31Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4845 { 32, &hf_atn_cpdlc_dM32Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4846 { 33, &hf_atn_cpdlc_dM33Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4847 { 34, &hf_atn_cpdlc_dM34Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
4848 { 35, &hf_atn_cpdlc_dM35Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
4849 { 36, &hf_atn_cpdlc_dM36Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
4850 { 37, &hf_atn_cpdlc_dM37Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4851 { 38, &hf_atn_cpdlc_dM38Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4852 { 39, &hf_atn_cpdlc_dM39Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
4853 { 40, &hf_atn_cpdlc_dM40RouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RouteClearanceIndex
},
4854 { 41, &hf_atn_cpdlc_dM41NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4855 { 42, &hf_atn_cpdlc_dM42Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4856 { 43, &hf_atn_cpdlc_dM43Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
4857 { 44, &hf_atn_cpdlc_dM44Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4858 { 45, &hf_atn_cpdlc_dM45Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4859 { 46, &hf_atn_cpdlc_dM46Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
4860 { 47, &hf_atn_cpdlc_dM47Code
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Code
},
4861 { 48, &hf_atn_cpdlc_dM48PositionReport
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionReport
},
4862 { 49, &hf_atn_cpdlc_dM49Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
4863 { 50, &hf_atn_cpdlc_dM50SpeedSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedSpeed
},
4864 { 51, &hf_atn_cpdlc_dM51NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4865 { 52, &hf_atn_cpdlc_dM52NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4866 { 53, &hf_atn_cpdlc_dM53NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4867 { 54, &hf_atn_cpdlc_dM54Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4868 { 55, &hf_atn_cpdlc_dM55NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4869 { 56, &hf_atn_cpdlc_dM56NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4870 { 57, &hf_atn_cpdlc_dM57RemainingFuelPersonsOnBoard
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_RemainingFuelPersonsOnBoard
},
4871 { 58, &hf_atn_cpdlc_dM58NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4872 { 59, &hf_atn_cpdlc_dM59PositionRouteClearance
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionRouteClearanceIndex
},
4873 { 60, &hf_atn_cpdlc_dM60DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4874 { 61, &hf_atn_cpdlc_dM61Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4875 { 62, &hf_atn_cpdlc_dM62ErrorInformation
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ErrorInformation
},
4876 { 63, &hf_atn_cpdlc_dM63NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4877 { 64, &hf_atn_cpdlc_dM64FacilityDesignation
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FacilityDesignation
},
4878 { 65, &hf_atn_cpdlc_dM65NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4879 { 66, &hf_atn_cpdlc_dM66NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4880 { 67, &hf_atn_cpdlc_dM67FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4881 { 68, &hf_atn_cpdlc_dM68FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4882 { 69, &hf_atn_cpdlc_dM69NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4883 { 70, &hf_atn_cpdlc_dM70Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
4884 { 71, &hf_atn_cpdlc_dM71Degrees
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Degrees
},
4885 { 72, &hf_atn_cpdlc_dM72Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4886 { 73, &hf_atn_cpdlc_dM73Versionnumber
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_VersionNumber
},
4887 { 74, &hf_atn_cpdlc_dM74NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4888 { 75, &hf_atn_cpdlc_dM75NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4889 { 76, &hf_atn_cpdlc_dM76LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
4890 { 77, &hf_atn_cpdlc_dM77LevelLevel
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelLevel
},
4891 { 78, &hf_atn_cpdlc_dM78TimeDistanceToFromPosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimeDistanceToFromPosition
},
4892 { 79, &hf_atn_cpdlc_dM79AtisCode
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATISCode
},
4893 { 80, &hf_atn_cpdlc_dM80DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4894 { 81, &hf_atn_cpdlc_dM81LevelTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_LevelTime
},
4895 { 82, &hf_atn_cpdlc_dM82Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4896 { 83, &hf_atn_cpdlc_dM83SpeedTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedTime
},
4897 { 84, &hf_atn_cpdlc_dM84Speed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Speed
},
4898 { 85, &hf_atn_cpdlc_dM85DistanceSpecifiedDirectionTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirectionTime
},
4899 { 86, &hf_atn_cpdlc_dM86DistanceSpecifiedDirection
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_DistanceSpecifiedDirection
},
4900 { 87, &hf_atn_cpdlc_dM87Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4901 { 88, &hf_atn_cpdlc_dM88Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4902 { 89, &hf_atn_cpdlc_dM89UnitnameFrequency
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_UnitNameFrequency
},
4903 { 90, &hf_atn_cpdlc_dM90FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4904 { 91, &hf_atn_cpdlc_dM91FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4905 { 92, &hf_atn_cpdlc_dM92FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4906 { 93, &hf_atn_cpdlc_dM93FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4907 { 94, &hf_atn_cpdlc_dM94FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4908 { 95, &hf_atn_cpdlc_dM95FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4909 { 96, &hf_atn_cpdlc_dM96FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4910 { 97, &hf_atn_cpdlc_dM97FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4911 { 98, &hf_atn_cpdlc_dM98FreeText
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_FreeText
},
4912 { 99, &hf_atn_cpdlc_dM99NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4913 { 100, &hf_atn_cpdlc_dM100NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4914 { 101, &hf_atn_cpdlc_dM101NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4915 { 102, &hf_atn_cpdlc_dM102NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4916 { 103, &hf_atn_cpdlc_dM103NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4917 { 104, &hf_atn_cpdlc_dM104PositionTime
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PositionTime
},
4918 { 105, &hf_atn_cpdlc_dM105Airport
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Airport
},
4919 { 106, &hf_atn_cpdlc_dM106Level
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Level
},
4920 { 107, &hf_atn_cpdlc_dM107NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4921 { 108, &hf_atn_cpdlc_dM108NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4922 { 109, &hf_atn_cpdlc_dM109Time
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Time
},
4923 { 110, &hf_atn_cpdlc_dM110Position
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_Position
},
4924 { 111, &hf_atn_cpdlc_dM111TimePosition
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_TimePosition
},
4925 { 112, &hf_atn_cpdlc_dM112NULL
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_NULL
},
4926 { 113, &hf_atn_cpdlc_dM113SpeedTypeSpeedTypeSpeedTypeSpeed
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed
},
4927 { 0, NULL
, 0, NULL
}
4931 dissect_atn_cpdlc_ATCDownlinkMsgElementId(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4932 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
4933 ett_atn_cpdlc_ATCDownlinkMsgElementId
, ATCDownlinkMsgElementId_choice
,
4940 static const per_sequence_t SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId_sequence_of
[1] = {
4941 { &hf_atn_cpdlc_atcdownlinkmessagedata_elementids_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCDownlinkMsgElementId
},
4945 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_
) {
4946 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
4947 ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId
, SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId_sequence_of
,
4954 static const per_sequence_t T_atcdownlinkmessagedata_constraineddata_sequence
[] = {
4955 { &hf_atn_cpdlc_routeClearanceData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance
},
4956 { NULL
, 0, 0, NULL
}
4960 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_
) {
4961 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4962 ett_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata
, T_atcdownlinkmessagedata_constraineddata_sequence
);
4968 static const per_sequence_t ATCDownlinkMessageData_sequence
[] = {
4969 { &hf_atn_cpdlc_atcdownlinkmessagedata_elementids
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId
},
4970 { &hf_atn_cpdlc_atcdownlinkmessagedata_constraineddata
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata
},
4971 { NULL
, 0, 0, NULL
}
4975 dissect_atn_cpdlc_ATCDownlinkMessageData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4976 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4977 ett_atn_cpdlc_ATCDownlinkMessageData
, ATCDownlinkMessageData_sequence
);
4983 static const per_sequence_t ATCDownlinkMessage_sequence
[] = {
4984 { &hf_atn_cpdlc_header
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCMessageHeader
},
4985 { &hf_atn_cpdlc_atcdownlinkmessage_messagedata
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ATCDownlinkMessageData
},
4986 { NULL
, 0, 0, NULL
}
4990 dissect_atn_cpdlc_ATCDownlinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4991 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
4992 ett_atn_cpdlc_ATCDownlinkMessage
, ATCDownlinkMessage_sequence
);
4998 static const value_string atn_cpdlc_DownlinkMessage_vals
[] = {
5000 { 1, "aTCDownlinkMessage" },
5004 static const per_choice_t DownlinkMessage_choice
[] = {
5005 { 0, &hf_atn_cpdlc_noMessage
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_NULL
},
5006 { 1, &hf_atn_cpdlc_aTCDownlinkMessage
, ASN1_NO_EXTENSIONS
, dissect_atn_cpdlc_ATCDownlinkMessage
},
5007 { 0, NULL
, 0, NULL
}
5011 dissect_atn_cpdlc_DownlinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5012 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
5013 ett_atn_cpdlc_DownlinkMessage
, DownlinkMessage_choice
,
5020 static const per_sequence_t StartDownMessage_sequence
[] = {
5021 { &hf_atn_cpdlc_mode
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_Mode
},
5022 { &hf_atn_cpdlc_startDownlinkMessage
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_DownlinkMessage
},
5023 { NULL
, 0, 0, NULL
}
5027 dissect_atn_cpdlc_StartDownMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5028 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
5029 ett_atn_cpdlc_StartDownMessage
, StartDownMessage_sequence
);
5035 static const value_string atn_cpdlc_AircraftPDUs_vals
[] = {
5037 { 1, "abortProvider" },
5043 static const per_choice_t AircraftPDUs_choice
[] = {
5044 { 0, &hf_atn_cpdlc_abortUser
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_CPDLCUserAbortReason
},
5045 { 1, &hf_atn_cpdlc_abortProvider
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_CPDLCProviderAbortReason
},
5046 { 2, &hf_atn_cpdlc_startdown
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_StartDownMessage
},
5047 { 3, &hf_atn_cpdlc_aircraftpdus_send
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCDownlinkMessage
},
5048 { 0, NULL
, 0, NULL
}
5052 dissect_atn_cpdlc_AircraftPDUs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5053 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
5054 ett_atn_cpdlc_AircraftPDUs
, AircraftPDUs_choice
,
5061 static const value_string atn_cpdlc_PMCPDLCUserAbortReason_vals
[] = {
5063 { 1, "no-message-identification-numbers-available" },
5064 { 2, "duplicate-message-identification-numbers" },
5065 { 3, "no-longer-next-data-authority" },
5066 { 4, "current-data-authority-abort" },
5067 { 5, "commanded-termination" },
5068 { 6, "invalid-response" },
5069 { 7, "time-out-of-synchronisation" },
5070 { 8, "unknown-integrity-check" },
5071 { 9, "validation-failure" },
5072 { 10, "unable-to-decode-message" },
5073 { 11, "invalid-pdu" },
5074 { 12, "invalid-CPDLC-message" },
5080 dissect_atn_cpdlc_PMCPDLCUserAbortReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5081 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
5082 13, NULL
, TRUE
, 0, NULL
);
5088 static const value_string atn_cpdlc_PMCPDLCProviderAbortReason_vals
[] = {
5089 { 0, "timer-expired" },
5090 { 1, "undefined-error" },
5091 { 2, "invalid-PDU" },
5092 { 3, "protocol-error" },
5093 { 4, "communication-service-error" },
5094 { 5, "communication-service-failure" },
5095 { 6, "invalid-QOS-parameter" },
5096 { 7, "expected-PDU-missing" },
5102 dissect_atn_cpdlc_PMCPDLCProviderAbortReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5103 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
5104 8, NULL
, TRUE
, 0, NULL
);
5112 dissect_atn_cpdlc_AlgorithmIdentifier(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5113 proto_tree
*top_tree
=NULL
;
5115 offset
=call_ber_oid_callback(object_identifier_id
, tvb
, offset
, actx
->pinfo
, top_tree
, NULL
);
5124 dissect_atn_cpdlc_CPDLCMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5125 tvbuff_t
*tvb_usr
= NULL
;
5127 offset
= dissect_per_bit_string(tvb
, offset
, actx
, tree
, hf_index
, NO_BOUND
, NO_BOUND
, FALSE
, &tvb_usr
);
5130 switch(check_heur_msg_type(actx
->pinfo
)){
5132 dissect_atn_cpdlc_ATCDownlinkMessage(tvb_new_subset_remaining(tvb_usr
, 0), 0, actx
, tree
, hf_index
);
5135 dissect_atn_cpdlc_ATCUplinkMessage(tvb_new_subset_remaining(tvb_usr
, 0), 0, actx
, tree
, hf_index
);
5147 static const per_sequence_t ProtectedUplinkMessage_sequence
[] = {
5148 { &hf_atn_cpdlc_algorithmIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_AlgorithmIdentifier
},
5149 { &hf_atn_cpdlc_protectedMessage
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_CPDLCMessage
},
5150 { &hf_atn_cpdlc_integrityCheck
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_BIT_STRING
},
5151 { NULL
, 0, 0, NULL
}
5155 dissect_atn_cpdlc_ProtectedUplinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5156 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
5157 ett_atn_cpdlc_ProtectedUplinkMessage
, ProtectedUplinkMessage_sequence
);
5163 static const value_string atn_cpdlc_ProtectedGroundPDUs_vals
[] = {
5165 { 1, "abortProvider" },
5169 { 5, "forwardresponse" },
5173 static const per_choice_t ProtectedGroundPDUs_choice
[] = {
5174 { 0, &hf_atn_cpdlc_pmcpdlcuserabortreason
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PMCPDLCUserAbortReason
},
5175 { 1, &hf_atn_cpdlc_pmcpdlcproviderabortreason
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PMCPDLCProviderAbortReason
},
5176 { 2, &hf_atn_cpdlc_protecteduplinkmessage
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProtectedUplinkMessage
},
5177 { 3, &hf_atn_cpdlc_protecteduplinkmessage
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProtectedUplinkMessage
},
5178 { 4, &hf_atn_cpdlc_forward
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCForwardMessage
},
5179 { 5, &hf_atn_cpdlc_forwardresponse
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ATCForwardResponse
},
5180 { 0, NULL
, 0, NULL
}
5184 dissect_atn_cpdlc_ProtectedGroundPDUs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5185 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
5186 ett_atn_cpdlc_ProtectedGroundPDUs
, ProtectedGroundPDUs_choice
,
5193 static const value_string atn_cpdlc_ProtectedMode_vals
[] = {
5201 dissect_atn_cpdlc_ProtectedMode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5202 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
5203 2, NULL
, FALSE
, 0, NULL
);
5209 static const per_sequence_t ProtectedDownlinkMessage_sequence
[] = {
5210 { &hf_atn_cpdlc_algorithmIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_AlgorithmIdentifier
},
5211 { &hf_atn_cpdlc_protectedMessage
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_atn_cpdlc_CPDLCMessage
},
5212 { &hf_atn_cpdlc_integrityCheck
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_BIT_STRING
},
5213 { NULL
, 0, 0, NULL
}
5217 dissect_atn_cpdlc_ProtectedDownlinkMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5218 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
5219 ett_atn_cpdlc_ProtectedDownlinkMessage
, ProtectedDownlinkMessage_sequence
);
5225 static const per_sequence_t ProtectedStartDownMessage_sequence
[] = {
5226 { &hf_atn_cpdlc_protectedmode
, ASN1_NO_EXTENSIONS
, ASN1_OPTIONAL
, dissect_atn_cpdlc_ProtectedMode
},
5227 { &hf_atn_cpdlc_protecteddownlinkmessage
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_atn_cpdlc_ProtectedDownlinkMessage
},
5228 { NULL
, 0, 0, NULL
}
5232 dissect_atn_cpdlc_ProtectedStartDownMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5233 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
5234 ett_atn_cpdlc_ProtectedStartDownMessage
, ProtectedStartDownMessage_sequence
);
5240 static const value_string atn_cpdlc_ProtectedAircraftPDUs_vals
[] = {
5242 { 1, "abortProvider" },
5248 static const per_choice_t ProtectedAircraftPDUs_choice
[] = {
5249 { 0, &hf_atn_cpdlc_pmcpdlcuserabortreason
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PMCPDLCUserAbortReason
},
5250 { 1, &hf_atn_cpdlc_pmcpdlcproviderabortreason
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_PMCPDLCProviderAbortReason
},
5251 { 2, &hf_atn_cpdlc_protectedstartDownmessage
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProtectedStartDownMessage
},
5252 { 3, &hf_atn_cpdlc_send
, ASN1_EXTENSION_ROOT
, dissect_atn_cpdlc_ProtectedDownlinkMessage
},
5253 { 0, NULL
, 0, NULL
}
5257 dissect_atn_cpdlc_ProtectedAircraftPDUs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5258 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
5259 ett_atn_cpdlc_ProtectedAircraftPDUs
, ProtectedAircraftPDUs_choice
,
5267 static void dissect_GroundPDUs_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
5268 asn1_ctx_t asn1_ctx
;
5269 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, FALSE
, pinfo
);
5270 dissect_atn_cpdlc_GroundPDUs(tvb
, 0, &asn1_ctx
, tree
, hf_atn_cpdlc_GroundPDUs_PDU
);
5272 static void dissect_AircraftPDUs_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
5273 asn1_ctx_t asn1_ctx
;
5274 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, FALSE
, pinfo
);
5275 dissect_atn_cpdlc_AircraftPDUs(tvb
, 0, &asn1_ctx
, tree
, hf_atn_cpdlc_AircraftPDUs_PDU
);
5277 static void dissect_ProtectedGroundPDUs_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
5278 asn1_ctx_t asn1_ctx
;
5279 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, FALSE
, pinfo
);
5280 dissect_atn_cpdlc_ProtectedGroundPDUs(tvb
, 0, &asn1_ctx
, tree
, hf_atn_cpdlc_ProtectedGroundPDUs_PDU
);
5282 static void dissect_ProtectedAircraftPDUs_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
) {
5283 asn1_ctx_t asn1_ctx
;
5284 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, FALSE
, pinfo
);
5285 dissect_atn_cpdlc_ProtectedAircraftPDUs(tvb
, 0, &asn1_ctx
, tree
, hf_atn_cpdlc_ProtectedAircraftPDUs_PDU
);
5289 /*--- End of included file: packet-atn-cpdlc-fn.c ---*/
5290 #line 94 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
5292 /* Wireshark ID of CPDLC protocol */
5293 static int proto_atn_cpdlc
= -1;
5304 /* there are two co-existing applications of CPDLC: */
5305 /* "plain old" (ae-qualifier 2) and */
5306 /* "protected mode" (ae-qualifier 22) CPDLC. */
5307 /* "protected mode" was introduced to cope with a */
5308 /* safety issue in which a message would sent to the wrong aircraft. */
5311 /* The protection is an additional checksum and covers the message content, */
5312 /* the 24-bit address of the aircraft, the current flight id and */
5313 /* the current ground facility so that an aircraft would be able to reject */
5314 /* messages which are unexpected (i.e. messages to another flight or */
5315 /* messages from the wrong center). */
5318 /* although "plain old" CPDLC is more or less deprecated */
5319 /* many aircraft cannot perform */
5320 /* "protected mode" for this largely depends on */
5321 /* upgraded avionics packages */
5324 /* The use of CPDLC is *optional* as the pilot */
5325 /* may always use a voice radio channel to talk to the controller.*/
5327 proto_item
*ti
= NULL
;
5328 proto_tree
*atn_cpdlc_tree
= NULL
;
5329 atn_conversation_t
*atn_cv
= NULL
;
5332 /* we need the ae qualifier stored within the conversation */
5333 /* to decode "plain old cpdlc" or */
5334 /* "protected mode cpdlc correctly " */
5336 /* DT: dstref present, srcref is always zero */
5337 if((pinfo
->clnp_dstref
) && (!pinfo
->clnp_srcref
)){
5338 atn_cv
= find_atn_conversation(
5343 /* CR: srcref present, dstref is always zero */
5344 if((!pinfo
->clnp_dstref
) && (pinfo
->clnp_srcref
)){
5345 atn_cv
= find_atn_conversation(
5350 /* CC: srcref and dstref present, always use src/srcref & dst */
5351 if((pinfo
->clnp_dstref
) && (pinfo
->clnp_srcref
)){
5352 atn_cv
= find_atn_conversation(
5358 if(!atn_cv
){ /* atn conversation not found */
5361 ti
= proto_tree_add_text(
5365 tvb_reported_length_remaining(tvb
, 0) ,
5368 atn_cpdlc_tree
= proto_item_add_subtree(
5372 switch(atn_cv
->ae_qualifier
){
5374 if( check_heur_msg_type(pinfo
) == um
) {
5375 /* uplink PDU's = Ground PDU's */
5376 dissect_ProtectedGroundPDUs_PDU(
5380 }else { /* downlink PDU's = Aircraft PDU's */
5381 dissect_ProtectedAircraftPDUs_PDU(
5388 if( check_heur_msg_type(pinfo
) == um
) {
5389 /* uplink PDU's = Ground PDU's */
5390 dissect_GroundPDUs_PDU(
5394 }else { /* downlink PDU's = Aircraft PDU's */
5395 dissect_AircraftPDUs_PDU(
5404 return tvb_reported_length_remaining(tvb
, 0);
5408 dissect_atn_cpdlc_heur(
5414 atn_conversation_t
*atn_cv
= NULL
;
5415 gboolean is_atn_cpdlc
= FALSE
;
5416 gboolean is_pm
= FALSE
;
5419 type
= check_heur_msg_type(pinfo
);
5424 dissect_ProtectedGroundPDUs_PDU(tvb
, pinfo
, NULL
);
5425 is_atn_cpdlc
= TRUE
;
5429 is_atn_cpdlc
= FALSE
;
5433 dissect_GroundPDUs_PDU(tvb
, pinfo
, NULL
);
5435 is_atn_cpdlc
= TRUE
;
5438 is_atn_cpdlc
= FALSE
;
5444 dissect_ProtectedAircraftPDUs_PDU(tvb
, pinfo
, NULL
);
5445 is_atn_cpdlc
= TRUE
;
5449 is_atn_cpdlc
= FALSE
;
5453 dissect_AircraftPDUs_PDU(tvb
, pinfo
, NULL
);
5454 is_atn_cpdlc
= TRUE
;
5458 is_atn_cpdlc
= FALSE
;
5468 /* all subsequent PDU's belonging to this conversation */
5469 /* are considered CPDLC */
5470 /* if the first CPDLC PDU has been decoded succesfully */
5471 /* (This is done in "atn-ulcs" by using "call_dissector_with_data()") */
5473 /* DT: dstref present, srcref is always zero */
5474 if((pinfo
->clnp_dstref
) && (!pinfo
->clnp_srcref
)){
5475 atn_cv
= find_atn_conversation(&pinfo
->dst
,
5479 /* CR: srcref present, dstref is always zero */
5480 if((!pinfo
->clnp_dstref
) && (pinfo
->clnp_srcref
)){
5481 atn_cv
= find_atn_conversation(&pinfo
->src
,
5485 /* CC: srcref and dstref present, always use src/srcref & dst */
5486 if((pinfo
->clnp_dstref
) && (pinfo
->clnp_srcref
)){
5487 atn_cv
= find_atn_conversation(&pinfo
->src
,
5492 if(atn_cv
){ /* atn conversation found */
5494 atn_cv
->ae_qualifier
= pmcpdlc
; }
5496 atn_cv
->ae_qualifier
= cpdlc
; }
5497 dissect_atn_cpdlc(tvb
, pinfo
, tree
, NULL
);
5499 }else { /* there should *always* be an atn conversation */
5500 is_atn_cpdlc
= FALSE
;
5503 return is_atn_cpdlc
;
5508 void proto_register_atn_cpdlc (void)
5510 static hf_register_info hf_atn_cpdlc
[] = {
5512 /*--- Included file: packet-atn-cpdlc-hfarr.c ---*/
5513 #line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-hfarr.c"
5514 { &hf_atn_cpdlc_GroundPDUs_PDU
,
5515 { "GroundPDUs", "atn-cpdlc.GroundPDUs",
5516 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_GroundPDUs_vals
), 0,
5518 { &hf_atn_cpdlc_AircraftPDUs_PDU
,
5519 { "AircraftPDUs", "atn-cpdlc.AircraftPDUs",
5520 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_AircraftPDUs_vals
), 0,
5522 { &hf_atn_cpdlc_ProtectedGroundPDUs_PDU
,
5523 { "ProtectedGroundPDUs", "atn-cpdlc.ProtectedGroundPDUs",
5524 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ProtectedGroundPDUs_vals
), 0,
5526 { &hf_atn_cpdlc_ProtectedAircraftPDUs_PDU
,
5527 { "ProtectedAircraftPDUs", "atn-cpdlc.ProtectedAircraftPDUs",
5528 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ProtectedAircraftPDUs_vals
), 0,
5530 { &hf_atn_cpdlc_abortUser
,
5531 { "abortUser", "atn-cpdlc.abortUser",
5532 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_CPDLCUserAbortReason_vals
), 0,
5533 "CPDLCUserAbortReason", HFILL
}},
5534 { &hf_atn_cpdlc_abortProvider
,
5535 { "abortProvider", "atn-cpdlc.abortProvider",
5536 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_CPDLCProviderAbortReason_vals
), 0,
5537 "CPDLCProviderAbortReason", HFILL
}},
5538 { &hf_atn_cpdlc_startup
,
5539 { "startup", "atn-cpdlc.startup",
5540 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_UplinkMessage_vals
), 0,
5541 "UplinkMessage", HFILL
}},
5542 { &hf_atn_cpdlc_groundpdus_send
,
5543 { "send", "atn-cpdlc.send_element",
5544 FT_NONE
, BASE_NONE
, NULL
, 0,
5545 "ATCUplinkMessage", HFILL
}},
5546 { &hf_atn_cpdlc_forward
,
5547 { "forward", "atn-cpdlc.forward_element",
5548 FT_NONE
, BASE_NONE
, NULL
, 0,
5549 "ATCForwardMessage", HFILL
}},
5550 { &hf_atn_cpdlc_forwardresponse
,
5551 { "forwardresponse", "atn-cpdlc.forwardresponse",
5552 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ATCForwardResponse_vals
), 0,
5553 "ATCForwardResponse", HFILL
}},
5554 { &hf_atn_cpdlc_noMessage
,
5555 { "noMessage", "atn-cpdlc.noMessage_element",
5556 FT_NONE
, BASE_NONE
, NULL
, 0,
5558 { &hf_atn_cpdlc_aTCUplinkMessage
,
5559 { "aTCUplinkMessage", "atn-cpdlc.aTCUplinkMessage_element",
5560 FT_NONE
, BASE_NONE
, NULL
, 0,
5562 { &hf_atn_cpdlc_startdown
,
5563 { "startdown", "atn-cpdlc.startdown_element",
5564 FT_NONE
, BASE_NONE
, NULL
, 0,
5565 "StartDownMessage", HFILL
}},
5566 { &hf_atn_cpdlc_aircraftpdus_send
,
5567 { "send", "atn-cpdlc.send_element",
5568 FT_NONE
, BASE_NONE
, NULL
, 0,
5569 "ATCDownlinkMessage", HFILL
}},
5570 { &hf_atn_cpdlc_mode
,
5571 { "mode", "atn-cpdlc.mode",
5572 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Mode_vals
), 0,
5574 { &hf_atn_cpdlc_startDownlinkMessage
,
5575 { "startDownlinkMessage", "atn-cpdlc.startDownlinkMessage",
5576 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_DownlinkMessage_vals
), 0,
5577 "DownlinkMessage", HFILL
}},
5578 { &hf_atn_cpdlc_aTCDownlinkMessage
,
5579 { "aTCDownlinkMessage", "atn-cpdlc.aTCDownlinkMessage_element",
5580 FT_NONE
, BASE_NONE
, NULL
, 0,
5582 { &hf_atn_cpdlc_pmcpdlcuserabortreason
,
5583 { "abortUser", "atn-cpdlc.abortUser",
5584 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_PMCPDLCUserAbortReason_vals
), 0,
5585 "PMCPDLCUserAbortReason", HFILL
}},
5586 { &hf_atn_cpdlc_pmcpdlcproviderabortreason
,
5587 { "abortProvider", "atn-cpdlc.abortProvider",
5588 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_PMCPDLCProviderAbortReason_vals
), 0,
5589 "PMCPDLCProviderAbortReason", HFILL
}},
5590 { &hf_atn_cpdlc_protecteduplinkmessage
,
5591 { "startup", "atn-cpdlc.startup_element",
5592 FT_NONE
, BASE_NONE
, NULL
, 0,
5593 "ProtectedUplinkMessage", HFILL
}},
5594 { &hf_atn_cpdlc_algorithmIdentifier
,
5595 { "algorithmIdentifier", "atn-cpdlc.algorithmIdentifier",
5596 FT_REL_OID
, BASE_NONE
, NULL
, 0,
5598 { &hf_atn_cpdlc_protectedMessage
,
5599 { "protectedMessage", "atn-cpdlc.protectedMessage",
5600 FT_BYTES
, BASE_NONE
, NULL
, 0,
5601 "CPDLCMessage", HFILL
}},
5602 { &hf_atn_cpdlc_integrityCheck
,
5603 { "integrityCheck", "atn-cpdlc.integrityCheck",
5604 FT_BYTES
, BASE_NONE
, NULL
, 0,
5605 "BIT_STRING", HFILL
}},
5606 { &hf_atn_cpdlc_forwardHeader
,
5607 { "forwardHeader", "atn-cpdlc.forwardHeader_element",
5608 FT_NONE
, BASE_NONE
, NULL
, 0,
5610 { &hf_atn_cpdlc_forwardMessage
,
5611 { "forwardMessage", "atn-cpdlc.forwardMessage",
5612 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ForwardMessage_vals
), 0,
5614 { &hf_atn_cpdlc_dateTime
,
5615 { "dateTime", "atn-cpdlc.dateTime_element",
5616 FT_NONE
, BASE_NONE
, NULL
, 0,
5617 "DateTimeGroup", HFILL
}},
5618 { &hf_atn_cpdlc_aircraftID
,
5619 { "aircraftID", "atn-cpdlc.aircraftID",
5620 FT_STRING
, BASE_NONE
, NULL
, 0,
5621 "AircraftFlightIdentification", HFILL
}},
5622 { &hf_atn_cpdlc_aircraftAddress
,
5623 { "aircraftAddress", "atn-cpdlc.aircraftAddress",
5624 FT_BYTES
, BASE_NONE
, NULL
, 0,
5626 { &hf_atn_cpdlc_upElementIDs
,
5627 { "upElementIDs", "atn-cpdlc.upElementIDs",
5628 FT_BYTES
, BASE_NONE
, NULL
, 0,
5629 "BIT_STRING", HFILL
}},
5630 { &hf_atn_cpdlc_downElementIDs
,
5631 { "downElementIDs", "atn-cpdlc.downElementIDs",
5632 FT_BYTES
, BASE_NONE
, NULL
, 0,
5633 "BIT_STRING", HFILL
}},
5634 { &hf_atn_cpdlc_protectedstartDownmessage
,
5635 { "startdown", "atn-cpdlc.startdown_element",
5636 FT_NONE
, BASE_NONE
, NULL
, 0,
5637 "ProtectedStartDownMessage", HFILL
}},
5638 { &hf_atn_cpdlc_send
,
5639 { "send", "atn-cpdlc.send_element",
5640 FT_NONE
, BASE_NONE
, NULL
, 0,
5641 "ProtectedDownlinkMessage", HFILL
}},
5642 { &hf_atn_cpdlc_protectedmode
,
5643 { "mode", "atn-cpdlc.mode",
5644 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ProtectedMode_vals
), 0,
5645 "ProtectedMode", HFILL
}},
5646 { &hf_atn_cpdlc_protecteddownlinkmessage
,
5647 { "startDownlinkMessage", "atn-cpdlc.startDownlinkMessage_element",
5648 FT_NONE
, BASE_NONE
, NULL
, 0,
5649 "ProtectedDownlinkMessage", HFILL
}},
5650 { &hf_atn_cpdlc_header
,
5651 { "header", "atn-cpdlc.header_element",
5652 FT_NONE
, BASE_NONE
, NULL
, 0,
5653 "ATCMessageHeader", HFILL
}},
5654 { &hf_atn_cpdlc_atcuplinkmessage_messagedata
,
5655 { "messageData", "atn-cpdlc.messageData_element",
5656 FT_NONE
, BASE_NONE
, NULL
, 0,
5657 "ATCUplinkMessageData", HFILL
}},
5658 { &hf_atn_cpdlc_atcuplinkmessagedata_elementids
,
5659 { "elementIds", "atn-cpdlc.elementIds",
5660 FT_UINT32
, BASE_DEC
, NULL
, 0,
5661 "SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId", HFILL
}},
5662 { &hf_atn_cpdlc_atcuplinkmessagedata_elementids_item
,
5663 { "ATCUplinkMsgElementId", "atn-cpdlc.ATCUplinkMsgElementId",
5664 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ATCUplinkMsgElementId_vals
), 0,
5666 { &hf_atn_cpdlc_atcuplinkmessagedata_constraineddata
,
5667 { "constrainedData", "atn-cpdlc.constrainedData_element",
5668 FT_NONE
, BASE_NONE
, NULL
, 0,
5669 "T_atcuplinkmessagedata_constraineddata", HFILL
}},
5670 { &hf_atn_cpdlc_routeClearanceData
,
5671 { "routeClearanceData", "atn-cpdlc.routeClearanceData",
5672 FT_UINT32
, BASE_DEC
, NULL
, 0,
5673 "SEQUENCE_SIZE_1_2_OF_RouteClearance", HFILL
}},
5674 { &hf_atn_cpdlc_routeClearanceData_item
,
5675 { "RouteClearance", "atn-cpdlc.RouteClearance_element",
5676 FT_NONE
, BASE_NONE
, NULL
, 0,
5678 { &hf_atn_cpdlc_atcdownlinkmessage_messagedata
,
5679 { "messageData", "atn-cpdlc.messageData_element",
5680 FT_NONE
, BASE_NONE
, NULL
, 0,
5681 "ATCDownlinkMessageData", HFILL
}},
5682 { &hf_atn_cpdlc_atcdownlinkmessagedata_elementids
,
5683 { "elementIds", "atn-cpdlc.elementIds",
5684 FT_UINT32
, BASE_DEC
, NULL
, 0,
5685 "SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId", HFILL
}},
5686 { &hf_atn_cpdlc_atcdownlinkmessagedata_elementids_item
,
5687 { "ATCDownlinkMsgElementId", "atn-cpdlc.ATCDownlinkMsgElementId",
5688 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ATCDownlinkMsgElementId_vals
), 0,
5690 { &hf_atn_cpdlc_atcdownlinkmessagedata_constraineddata
,
5691 { "constrainedData", "atn-cpdlc.constrainedData_element",
5692 FT_NONE
, BASE_NONE
, NULL
, 0,
5693 "T_atcdownlinkmessagedata_constraineddata", HFILL
}},
5694 { &hf_atn_cpdlc_messageIdNumber
,
5695 { "messageIdNumber", "atn-cpdlc.messageIdNumber",
5696 FT_UINT32
, BASE_DEC
, NULL
, 0,
5697 "MsgIdentificationNumber", HFILL
}},
5698 { &hf_atn_cpdlc_messageRefNumber
,
5699 { "messageRefNumber", "atn-cpdlc.messageRefNumber",
5700 FT_UINT32
, BASE_DEC
, NULL
, 0,
5701 "MsgReferenceNumber", HFILL
}},
5702 { &hf_atn_cpdlc_logicalAck
,
5703 { "logicalAck", "atn-cpdlc.logicalAck",
5704 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LogicalAck_vals
), 0,
5706 { &hf_atn_cpdlc_uM0NULL
,
5707 { "uM0NULL", "atn-cpdlc.uM0NULL_element",
5708 FT_NONE
, BASE_NONE
, NULL
, 0,
5710 { &hf_atn_cpdlc_uM1NULL
,
5711 { "uM1NULL", "atn-cpdlc.uM1NULL_element",
5712 FT_NONE
, BASE_NONE
, NULL
, 0,
5714 { &hf_atn_cpdlc_uM2NULL
,
5715 { "uM2NULL", "atn-cpdlc.uM2NULL_element",
5716 FT_NONE
, BASE_NONE
, NULL
, 0,
5718 { &hf_atn_cpdlc_uM3NULL
,
5719 { "uM3NULL", "atn-cpdlc.uM3NULL_element",
5720 FT_NONE
, BASE_NONE
, NULL
, 0,
5722 { &hf_atn_cpdlc_uM4NULL
,
5723 { "uM4NULL", "atn-cpdlc.uM4NULL_element",
5724 FT_NONE
, BASE_NONE
, NULL
, 0,
5726 { &hf_atn_cpdlc_uM5NULL
,
5727 { "uM5NULL", "atn-cpdlc.uM5NULL_element",
5728 FT_NONE
, BASE_NONE
, NULL
, 0,
5730 { &hf_atn_cpdlc_uM6Level
,
5731 { "uM6Level", "atn-cpdlc.uM6Level",
5732 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5734 { &hf_atn_cpdlc_uM7Time
,
5735 { "uM7Time", "atn-cpdlc.uM7Time_element",
5736 FT_NONE
, BASE_NONE
, NULL
, 0,
5738 { &hf_atn_cpdlc_uM8Position
,
5739 { "uM8Position", "atn-cpdlc.uM8Position",
5740 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5741 "Position", HFILL
}},
5742 { &hf_atn_cpdlc_uM9Time
,
5743 { "uM9Time", "atn-cpdlc.uM9Time_element",
5744 FT_NONE
, BASE_NONE
, NULL
, 0,
5746 { &hf_atn_cpdlc_uM10Position
,
5747 { "uM10Position", "atn-cpdlc.uM10Position",
5748 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5749 "Position", HFILL
}},
5750 { &hf_atn_cpdlc_uM11Time
,
5751 { "uM11Time", "atn-cpdlc.uM11Time_element",
5752 FT_NONE
, BASE_NONE
, NULL
, 0,
5754 { &hf_atn_cpdlc_uM12Position
,
5755 { "uM12Position", "atn-cpdlc.uM12Position",
5756 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5757 "Position", HFILL
}},
5758 { &hf_atn_cpdlc_uM13TimeLevel
,
5759 { "uM13TimeLevel", "atn-cpdlc.uM13TimeLevel_element",
5760 FT_NONE
, BASE_NONE
, NULL
, 0,
5761 "TimeLevel", HFILL
}},
5762 { &hf_atn_cpdlc_uM14PositionLevel
,
5763 { "uM14PositionLevel", "atn-cpdlc.uM14PositionLevel_element",
5764 FT_NONE
, BASE_NONE
, NULL
, 0,
5765 "PositionLevel", HFILL
}},
5766 { &hf_atn_cpdlc_uM15TimeLevel
,
5767 { "uM15TimeLevel", "atn-cpdlc.uM15TimeLevel_element",
5768 FT_NONE
, BASE_NONE
, NULL
, 0,
5769 "TimeLevel", HFILL
}},
5770 { &hf_atn_cpdlc_uM16PositionLevel
,
5771 { "uM16PositionLevel", "atn-cpdlc.uM16PositionLevel_element",
5772 FT_NONE
, BASE_NONE
, NULL
, 0,
5773 "PositionLevel", HFILL
}},
5774 { &hf_atn_cpdlc_uM17TimeLevel
,
5775 { "uM17TimeLevel", "atn-cpdlc.uM17TimeLevel_element",
5776 FT_NONE
, BASE_NONE
, NULL
, 0,
5777 "TimeLevel", HFILL
}},
5778 { &hf_atn_cpdlc_uM18PositionLevel
,
5779 { "uM18PositionLevel", "atn-cpdlc.uM18PositionLevel_element",
5780 FT_NONE
, BASE_NONE
, NULL
, 0,
5781 "PositionLevel", HFILL
}},
5782 { &hf_atn_cpdlc_uM19Level
,
5783 { "uM19Level", "atn-cpdlc.uM19Level",
5784 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5786 { &hf_atn_cpdlc_uM20Level
,
5787 { "uM20Level", "atn-cpdlc.uM20Level",
5788 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5790 { &hf_atn_cpdlc_uM21TimeLevel
,
5791 { "uM21TimeLevel", "atn-cpdlc.uM21TimeLevel_element",
5792 FT_NONE
, BASE_NONE
, NULL
, 0,
5793 "TimeLevel", HFILL
}},
5794 { &hf_atn_cpdlc_uM22PositionLevel
,
5795 { "uM22PositionLevel", "atn-cpdlc.uM22PositionLevel_element",
5796 FT_NONE
, BASE_NONE
, NULL
, 0,
5797 "PositionLevel", HFILL
}},
5798 { &hf_atn_cpdlc_uM23Level
,
5799 { "uM23Level", "atn-cpdlc.uM23Level",
5800 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5802 { &hf_atn_cpdlc_uM24TimeLevel
,
5803 { "uM24TimeLevel", "atn-cpdlc.uM24TimeLevel_element",
5804 FT_NONE
, BASE_NONE
, NULL
, 0,
5805 "TimeLevel", HFILL
}},
5806 { &hf_atn_cpdlc_uM25PositionLevel
,
5807 { "uM25PositionLevel", "atn-cpdlc.uM25PositionLevel_element",
5808 FT_NONE
, BASE_NONE
, NULL
, 0,
5809 "PositionLevel", HFILL
}},
5810 { &hf_atn_cpdlc_uM26LevelTime
,
5811 { "uM26LevelTime", "atn-cpdlc.uM26LevelTime_element",
5812 FT_NONE
, BASE_NONE
, NULL
, 0,
5813 "LevelTime", HFILL
}},
5814 { &hf_atn_cpdlc_uM27LevelPosition
,
5815 { "uM27LevelPosition", "atn-cpdlc.uM27LevelPosition_element",
5816 FT_NONE
, BASE_NONE
, NULL
, 0,
5817 "LevelPosition", HFILL
}},
5818 { &hf_atn_cpdlc_uM28LevelTime
,
5819 { "uM28LevelTime", "atn-cpdlc.uM28LevelTime_element",
5820 FT_NONE
, BASE_NONE
, NULL
, 0,
5821 "LevelTime", HFILL
}},
5822 { &hf_atn_cpdlc_uM29LevelPosition
,
5823 { "uM29LevelPosition", "atn-cpdlc.uM29LevelPosition_element",
5824 FT_NONE
, BASE_NONE
, NULL
, 0,
5825 "LevelPosition", HFILL
}},
5826 { &hf_atn_cpdlc_uM30LevelLevel
,
5827 { "uM30LevelLevel", "atn-cpdlc.uM30LevelLevel",
5828 FT_UINT32
, BASE_DEC
, NULL
, 0,
5829 "LevelLevel", HFILL
}},
5830 { &hf_atn_cpdlc_uM31LevelLevel
,
5831 { "uM31LevelLevel", "atn-cpdlc.uM31LevelLevel",
5832 FT_UINT32
, BASE_DEC
, NULL
, 0,
5833 "LevelLevel", HFILL
}},
5834 { &hf_atn_cpdlc_uM32LevelLevel
,
5835 { "uM32LevelLevel", "atn-cpdlc.uM32LevelLevel",
5836 FT_UINT32
, BASE_DEC
, NULL
, 0,
5837 "LevelLevel", HFILL
}},
5838 { &hf_atn_cpdlc_uM33NULL
,
5839 { "uM33NULL", "atn-cpdlc.uM33NULL_element",
5840 FT_NONE
, BASE_NONE
, NULL
, 0,
5842 { &hf_atn_cpdlc_uM34Level
,
5843 { "uM34Level", "atn-cpdlc.uM34Level",
5844 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5846 { &hf_atn_cpdlc_uM35Level
,
5847 { "uM35Level", "atn-cpdlc.uM35Level",
5848 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5850 { &hf_atn_cpdlc_uM36Level
,
5851 { "uM36Level", "atn-cpdlc.uM36Level",
5852 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5854 { &hf_atn_cpdlc_uM37Level
,
5855 { "uM37Level", "atn-cpdlc.uM37Level",
5856 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5858 { &hf_atn_cpdlc_uM38Level
,
5859 { "uM38Level", "atn-cpdlc.uM38Level",
5860 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5862 { &hf_atn_cpdlc_uM39Level
,
5863 { "uM39Level", "atn-cpdlc.uM39Level",
5864 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
5866 { &hf_atn_cpdlc_uM40NULL
,
5867 { "uM40NULL", "atn-cpdlc.uM40NULL_element",
5868 FT_NONE
, BASE_NONE
, NULL
, 0,
5870 { &hf_atn_cpdlc_uM41NULL
,
5871 { "uM41NULL", "atn-cpdlc.uM41NULL_element",
5872 FT_NONE
, BASE_NONE
, NULL
, 0,
5874 { &hf_atn_cpdlc_uM42PositionLevel
,
5875 { "uM42PositionLevel", "atn-cpdlc.uM42PositionLevel_element",
5876 FT_NONE
, BASE_NONE
, NULL
, 0,
5877 "PositionLevel", HFILL
}},
5878 { &hf_atn_cpdlc_uM43PositionLevel
,
5879 { "uM43PositionLevel", "atn-cpdlc.uM43PositionLevel_element",
5880 FT_NONE
, BASE_NONE
, NULL
, 0,
5881 "PositionLevel", HFILL
}},
5882 { &hf_atn_cpdlc_uM44PositionLevel
,
5883 { "uM44PositionLevel", "atn-cpdlc.uM44PositionLevel_element",
5884 FT_NONE
, BASE_NONE
, NULL
, 0,
5885 "PositionLevel", HFILL
}},
5886 { &hf_atn_cpdlc_uM45PositionLevel
,
5887 { "uM45PositionLevel", "atn-cpdlc.uM45PositionLevel_element",
5888 FT_NONE
, BASE_NONE
, NULL
, 0,
5889 "PositionLevel", HFILL
}},
5890 { &hf_atn_cpdlc_uM46PositionLevel
,
5891 { "uM46PositionLevel", "atn-cpdlc.uM46PositionLevel_element",
5892 FT_NONE
, BASE_NONE
, NULL
, 0,
5893 "PositionLevel", HFILL
}},
5894 { &hf_atn_cpdlc_uM47PositionLevel
,
5895 { "uM47PositionLevel", "atn-cpdlc.uM47PositionLevel_element",
5896 FT_NONE
, BASE_NONE
, NULL
, 0,
5897 "PositionLevel", HFILL
}},
5898 { &hf_atn_cpdlc_uM48PositionLevel
,
5899 { "uM48PositionLevel", "atn-cpdlc.uM48PositionLevel_element",
5900 FT_NONE
, BASE_NONE
, NULL
, 0,
5901 "PositionLevel", HFILL
}},
5902 { &hf_atn_cpdlc_uM49PositionLevel
,
5903 { "uM49PositionLevel", "atn-cpdlc.uM49PositionLevel_element",
5904 FT_NONE
, BASE_NONE
, NULL
, 0,
5905 "PositionLevel", HFILL
}},
5906 { &hf_atn_cpdlc_uM50PositionLevelLevel
,
5907 { "uM50PositionLevelLevel", "atn-cpdlc.uM50PositionLevelLevel_element",
5908 FT_NONE
, BASE_NONE
, NULL
, 0,
5909 "PositionLevelLevel", HFILL
}},
5910 { &hf_atn_cpdlc_uM51PositionTime
,
5911 { "uM51PositionTime", "atn-cpdlc.uM51PositionTime_element",
5912 FT_NONE
, BASE_NONE
, NULL
, 0,
5913 "PositionTime", HFILL
}},
5914 { &hf_atn_cpdlc_uM52PositionTime
,
5915 { "uM52PositionTime", "atn-cpdlc.uM52PositionTime_element",
5916 FT_NONE
, BASE_NONE
, NULL
, 0,
5917 "PositionTime", HFILL
}},
5918 { &hf_atn_cpdlc_uM53PositionTime
,
5919 { "uM53PositionTime", "atn-cpdlc.uM53PositionTime_element",
5920 FT_NONE
, BASE_NONE
, NULL
, 0,
5921 "PositionTime", HFILL
}},
5922 { &hf_atn_cpdlc_uM54PositionTimeTime
,
5923 { "uM54PositionTimeTime", "atn-cpdlc.uM54PositionTimeTime_element",
5924 FT_NONE
, BASE_NONE
, NULL
, 0,
5925 "PositionTimeTime", HFILL
}},
5926 { &hf_atn_cpdlc_uM55PositionSpeed
,
5927 { "uM55PositionSpeed", "atn-cpdlc.uM55PositionSpeed_element",
5928 FT_NONE
, BASE_NONE
, NULL
, 0,
5929 "PositionSpeed", HFILL
}},
5930 { &hf_atn_cpdlc_uM56PositionSpeed
,
5931 { "uM56PositionSpeed", "atn-cpdlc.uM56PositionSpeed_element",
5932 FT_NONE
, BASE_NONE
, NULL
, 0,
5933 "PositionSpeed", HFILL
}},
5934 { &hf_atn_cpdlc_uM57PositionSpeed
,
5935 { "uM57PositionSpeed", "atn-cpdlc.uM57PositionSpeed_element",
5936 FT_NONE
, BASE_NONE
, NULL
, 0,
5937 "PositionSpeed", HFILL
}},
5938 { &hf_atn_cpdlc_uM58PositionTimeLevel
,
5939 { "uM58PositionTimeLevel", "atn-cpdlc.uM58PositionTimeLevel_element",
5940 FT_NONE
, BASE_NONE
, NULL
, 0,
5941 "PositionTimeLevel", HFILL
}},
5942 { &hf_atn_cpdlc_uM59PositionTimeLevel
,
5943 { "uM59PositionTimeLevel", "atn-cpdlc.uM59PositionTimeLevel_element",
5944 FT_NONE
, BASE_NONE
, NULL
, 0,
5945 "PositionTimeLevel", HFILL
}},
5946 { &hf_atn_cpdlc_uM60PositionTimeLevel
,
5947 { "uM60PositionTimeLevel", "atn-cpdlc.uM60PositionTimeLevel_element",
5948 FT_NONE
, BASE_NONE
, NULL
, 0,
5949 "PositionTimeLevel", HFILL
}},
5950 { &hf_atn_cpdlc_uM61PositionLevelSpeed
,
5951 { "uM61PositionLevelSpeed", "atn-cpdlc.uM61PositionLevelSpeed_element",
5952 FT_NONE
, BASE_NONE
, NULL
, 0,
5953 "PositionLevelSpeed", HFILL
}},
5954 { &hf_atn_cpdlc_uM62TimePositionLevel
,
5955 { "uM62TimePositionLevel", "atn-cpdlc.uM62TimePositionLevel_element",
5956 FT_NONE
, BASE_NONE
, NULL
, 0,
5957 "TimePositionLevel", HFILL
}},
5958 { &hf_atn_cpdlc_uM63TimePositionLevelSpeed
,
5959 { "uM63TimePositionLevelSpeed", "atn-cpdlc.uM63TimePositionLevelSpeed_element",
5960 FT_NONE
, BASE_NONE
, NULL
, 0,
5961 "TimePositionLevelSpeed", HFILL
}},
5962 { &hf_atn_cpdlc_uM64DistanceSpecifiedDirection
,
5963 { "uM64DistanceSpecifiedDirection", "atn-cpdlc.uM64DistanceSpecifiedDirection_element",
5964 FT_NONE
, BASE_NONE
, NULL
, 0,
5965 "DistanceSpecifiedDirection", HFILL
}},
5966 { &hf_atn_cpdlc_uM65PositionDistanceSpecifiedDirection
,
5967 { "uM65PositionDistanceSpecifiedDirection", "atn-cpdlc.uM65PositionDistanceSpecifiedDirection_element",
5968 FT_NONE
, BASE_NONE
, NULL
, 0,
5969 "PositionDistanceSpecifiedDirection", HFILL
}},
5970 { &hf_atn_cpdlc_uM66TimeDistanceSpecifiedDirection
,
5971 { "uM66TimeDistanceSpecifiedDirection", "atn-cpdlc.uM66TimeDistanceSpecifiedDirection_element",
5972 FT_NONE
, BASE_NONE
, NULL
, 0,
5973 "TimeDistanceSpecifiedDirection", HFILL
}},
5974 { &hf_atn_cpdlc_uM67NULL
,
5975 { "uM67NULL", "atn-cpdlc.uM67NULL_element",
5976 FT_NONE
, BASE_NONE
, NULL
, 0,
5978 { &hf_atn_cpdlc_uM68Position
,
5979 { "uM68Position", "atn-cpdlc.uM68Position",
5980 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5981 "Position", HFILL
}},
5982 { &hf_atn_cpdlc_uM69Time
,
5983 { "uM69Time", "atn-cpdlc.uM69Time_element",
5984 FT_NONE
, BASE_NONE
, NULL
, 0,
5986 { &hf_atn_cpdlc_uM70Position
,
5987 { "uM70Position", "atn-cpdlc.uM70Position",
5988 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
5989 "Position", HFILL
}},
5990 { &hf_atn_cpdlc_uM71Time
,
5991 { "uM71Time", "atn-cpdlc.uM71Time_element",
5992 FT_NONE
, BASE_NONE
, NULL
, 0,
5994 { &hf_atn_cpdlc_uM72NULL
,
5995 { "uM72NULL", "atn-cpdlc.uM72NULL_element",
5996 FT_NONE
, BASE_NONE
, NULL
, 0,
5998 { &hf_atn_cpdlc_uM73DepartureClearance
,
5999 { "uM73DepartureClearance", "atn-cpdlc.uM73DepartureClearance_element",
6000 FT_NONE
, BASE_NONE
, NULL
, 0,
6001 "DepartureClearance", HFILL
}},
6002 { &hf_atn_cpdlc_uM74Position
,
6003 { "uM74Position", "atn-cpdlc.uM74Position",
6004 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6005 "Position", HFILL
}},
6006 { &hf_atn_cpdlc_uM75Position
,
6007 { "uM75Position", "atn-cpdlc.uM75Position",
6008 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6009 "Position", HFILL
}},
6010 { &hf_atn_cpdlc_uM76TimePosition
,
6011 { "uM76TimePosition", "atn-cpdlc.uM76TimePosition_element",
6012 FT_NONE
, BASE_NONE
, NULL
, 0,
6013 "TimePosition", HFILL
}},
6014 { &hf_atn_cpdlc_uM77PositionPosition
,
6015 { "uM77PositionPosition", "atn-cpdlc.uM77PositionPosition",
6016 FT_UINT32
, BASE_DEC
, NULL
, 0,
6017 "PositionPosition", HFILL
}},
6018 { &hf_atn_cpdlc_uM78LevelPosition
,
6019 { "uM78LevelPosition", "atn-cpdlc.uM78LevelPosition_element",
6020 FT_NONE
, BASE_NONE
, NULL
, 0,
6021 "LevelPosition", HFILL
}},
6022 { &hf_atn_cpdlc_uM79PositionRouteClearance
,
6023 { "uM79PositionRouteClearance", "atn-cpdlc.uM79PositionRouteClearance_element",
6024 FT_NONE
, BASE_NONE
, NULL
, 0,
6025 "PositionRouteClearanceIndex", HFILL
}},
6026 { &hf_atn_cpdlc_uM80RouteClearance
,
6027 { "uM80RouteClearance", "atn-cpdlc.uM80RouteClearance",
6028 FT_UINT32
, BASE_DEC
, NULL
, 0,
6029 "RouteClearanceIndex", HFILL
}},
6030 { &hf_atn_cpdlc_uM81ProcedureName
,
6031 { "uM81ProcedureName", "atn-cpdlc.uM81ProcedureName_element",
6032 FT_NONE
, BASE_NONE
, NULL
, 0,
6033 "ProcedureName", HFILL
}},
6034 { &hf_atn_cpdlc_uM82DistanceSpecifiedDirection
,
6035 { "uM82DistanceSpecifiedDirection", "atn-cpdlc.uM82DistanceSpecifiedDirection_element",
6036 FT_NONE
, BASE_NONE
, NULL
, 0,
6037 "DistanceSpecifiedDirection", HFILL
}},
6038 { &hf_atn_cpdlc_uM83PositionRouteClearance
,
6039 { "uM83PositionRouteClearance", "atn-cpdlc.uM83PositionRouteClearance_element",
6040 FT_NONE
, BASE_NONE
, NULL
, 0,
6041 "PositionRouteClearanceIndex", HFILL
}},
6042 { &hf_atn_cpdlc_uM84PositionProcedureName
,
6043 { "uM84PositionProcedureName", "atn-cpdlc.uM84PositionProcedureName_element",
6044 FT_NONE
, BASE_NONE
, NULL
, 0,
6045 "PositionProcedureName", HFILL
}},
6046 { &hf_atn_cpdlc_uM85RouteClearance
,
6047 { "uM85RouteClearance", "atn-cpdlc.uM85RouteClearance",
6048 FT_UINT32
, BASE_DEC
, NULL
, 0,
6049 "RouteClearanceIndex", HFILL
}},
6050 { &hf_atn_cpdlc_uM86PositionRouteClearance
,
6051 { "uM86PositionRouteClearance", "atn-cpdlc.uM86PositionRouteClearance_element",
6052 FT_NONE
, BASE_NONE
, NULL
, 0,
6053 "PositionRouteClearanceIndex", HFILL
}},
6054 { &hf_atn_cpdlc_uM87Position
,
6055 { "uM87Position", "atn-cpdlc.uM87Position",
6056 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6057 "Position", HFILL
}},
6058 { &hf_atn_cpdlc_uM88PositionPosition
,
6059 { "uM88PositionPosition", "atn-cpdlc.uM88PositionPosition",
6060 FT_UINT32
, BASE_DEC
, NULL
, 0,
6061 "PositionPosition", HFILL
}},
6062 { &hf_atn_cpdlc_uM89TimePosition
,
6063 { "uM89TimePosition", "atn-cpdlc.uM89TimePosition_element",
6064 FT_NONE
, BASE_NONE
, NULL
, 0,
6065 "TimePosition", HFILL
}},
6066 { &hf_atn_cpdlc_uM90LevelPosition
,
6067 { "uM90LevelPosition", "atn-cpdlc.uM90LevelPosition_element",
6068 FT_NONE
, BASE_NONE
, NULL
, 0,
6069 "LevelPosition", HFILL
}},
6070 { &hf_atn_cpdlc_uM91HoldClearance
,
6071 { "uM91HoldClearance", "atn-cpdlc.uM91HoldClearance_element",
6072 FT_NONE
, BASE_NONE
, NULL
, 0,
6073 "HoldClearance", HFILL
}},
6074 { &hf_atn_cpdlc_uM92PositionLevel
,
6075 { "uM92PositionLevel", "atn-cpdlc.uM92PositionLevel_element",
6076 FT_NONE
, BASE_NONE
, NULL
, 0,
6077 "PositionLevel", HFILL
}},
6078 { &hf_atn_cpdlc_uM93Time
,
6079 { "uM93Time", "atn-cpdlc.uM93Time_element",
6080 FT_NONE
, BASE_NONE
, NULL
, 0,
6082 { &hf_atn_cpdlc_uM94DirectionDegrees
,
6083 { "uM94DirectionDegrees", "atn-cpdlc.uM94DirectionDegrees_element",
6084 FT_NONE
, BASE_NONE
, NULL
, 0,
6085 "DirectionDegrees", HFILL
}},
6086 { &hf_atn_cpdlc_uM95DirectionDegrees
,
6087 { "uM95DirectionDegrees", "atn-cpdlc.uM95DirectionDegrees_element",
6088 FT_NONE
, BASE_NONE
, NULL
, 0,
6089 "DirectionDegrees", HFILL
}},
6090 { &hf_atn_cpdlc_uM96NULL
,
6091 { "uM96NULL", "atn-cpdlc.uM96NULL_element",
6092 FT_NONE
, BASE_NONE
, NULL
, 0,
6094 { &hf_atn_cpdlc_uM97PositionDegrees
,
6095 { "uM97PositionDegrees", "atn-cpdlc.uM97PositionDegrees_element",
6096 FT_NONE
, BASE_NONE
, NULL
, 0,
6097 "PositionDegrees", HFILL
}},
6098 { &hf_atn_cpdlc_uM98DirectionDegrees
,
6099 { "uM98DirectionDegrees", "atn-cpdlc.uM98DirectionDegrees_element",
6100 FT_NONE
, BASE_NONE
, NULL
, 0,
6101 "DirectionDegrees", HFILL
}},
6102 { &hf_atn_cpdlc_uM99ProcedureName
,
6103 { "uM99ProcedureName", "atn-cpdlc.uM99ProcedureName_element",
6104 FT_NONE
, BASE_NONE
, NULL
, 0,
6105 "ProcedureName", HFILL
}},
6106 { &hf_atn_cpdlc_uM100TimeSpeed
,
6107 { "uM100TimeSpeed", "atn-cpdlc.uM100TimeSpeed_element",
6108 FT_NONE
, BASE_NONE
, NULL
, 0,
6109 "TimeSpeed", HFILL
}},
6110 { &hf_atn_cpdlc_uM101PositionSpeed
,
6111 { "uM101PositionSpeed", "atn-cpdlc.uM101PositionSpeed_element",
6112 FT_NONE
, BASE_NONE
, NULL
, 0,
6113 "PositionSpeed", HFILL
}},
6114 { &hf_atn_cpdlc_uM102LevelSpeed
,
6115 { "uM102LevelSpeed", "atn-cpdlc.uM102LevelSpeed_element",
6116 FT_NONE
, BASE_NONE
, NULL
, 0,
6117 "LevelSpeed", HFILL
}},
6118 { &hf_atn_cpdlc_uM103TimeSpeedSpeed
,
6119 { "uM103TimeSpeedSpeed", "atn-cpdlc.uM103TimeSpeedSpeed_element",
6120 FT_NONE
, BASE_NONE
, NULL
, 0,
6121 "TimeSpeedSpeed", HFILL
}},
6122 { &hf_atn_cpdlc_uM104PositionSpeedSpeed
,
6123 { "uM104PositionSpeedSpeed", "atn-cpdlc.uM104PositionSpeedSpeed_element",
6124 FT_NONE
, BASE_NONE
, NULL
, 0,
6125 "PositionSpeedSpeed", HFILL
}},
6126 { &hf_atn_cpdlc_uM105LevelSpeedSpeed
,
6127 { "uM105LevelSpeedSpeed", "atn-cpdlc.uM105LevelSpeedSpeed_element",
6128 FT_NONE
, BASE_NONE
, NULL
, 0,
6129 "LevelSpeedSpeed", HFILL
}},
6130 { &hf_atn_cpdlc_uM106Speed
,
6131 { "uM106Speed", "atn-cpdlc.uM106Speed",
6132 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6134 { &hf_atn_cpdlc_uM107NULL
,
6135 { "uM107NULL", "atn-cpdlc.uM107NULL_element",
6136 FT_NONE
, BASE_NONE
, NULL
, 0,
6138 { &hf_atn_cpdlc_uM108Speed
,
6139 { "uM108Speed", "atn-cpdlc.uM108Speed",
6140 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6142 { &hf_atn_cpdlc_uM109Speed
,
6143 { "uM109Speed", "atn-cpdlc.uM109Speed",
6144 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6146 { &hf_atn_cpdlc_uM110SpeedSpeed
,
6147 { "uM110SpeedSpeed", "atn-cpdlc.uM110SpeedSpeed",
6148 FT_UINT32
, BASE_DEC
, NULL
, 0,
6149 "SpeedSpeed", HFILL
}},
6150 { &hf_atn_cpdlc_uM111Speed
,
6151 { "uM111Speed", "atn-cpdlc.uM111Speed",
6152 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6154 { &hf_atn_cpdlc_uM112Speed
,
6155 { "uM112Speed", "atn-cpdlc.uM112Speed",
6156 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6158 { &hf_atn_cpdlc_uM113Speed
,
6159 { "uM113Speed", "atn-cpdlc.uM113Speed",
6160 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6162 { &hf_atn_cpdlc_uM114Speed
,
6163 { "uM114Speed", "atn-cpdlc.uM114Speed",
6164 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6166 { &hf_atn_cpdlc_uM115Speed
,
6167 { "uM115Speed", "atn-cpdlc.uM115Speed",
6168 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6170 { &hf_atn_cpdlc_uM116NULL
,
6171 { "uM116NULL", "atn-cpdlc.uM116NULL_element",
6172 FT_NONE
, BASE_NONE
, NULL
, 0,
6174 { &hf_atn_cpdlc_uM117UnitNameFrequency
,
6175 { "uM117UnitNameFrequency", "atn-cpdlc.uM117UnitNameFrequency_element",
6176 FT_NONE
, BASE_NONE
, NULL
, 0,
6177 "UnitNameFrequency", HFILL
}},
6178 { &hf_atn_cpdlc_uM118PositionUnitNameFrequency
,
6179 { "uM118PositionUnitNameFrequency", "atn-cpdlc.uM118PositionUnitNameFrequency_element",
6180 FT_NONE
, BASE_NONE
, NULL
, 0,
6181 "PositionUnitNameFrequency", HFILL
}},
6182 { &hf_atn_cpdlc_uM119TimeUnitNameFrequency
,
6183 { "uM119TimeUnitNameFrequency", "atn-cpdlc.uM119TimeUnitNameFrequency_element",
6184 FT_NONE
, BASE_NONE
, NULL
, 0,
6185 "TimeUnitNameFrequency", HFILL
}},
6186 { &hf_atn_cpdlc_uM120UnitNameFrequency
,
6187 { "uM120UnitNameFrequency", "atn-cpdlc.uM120UnitNameFrequency_element",
6188 FT_NONE
, BASE_NONE
, NULL
, 0,
6189 "UnitNameFrequency", HFILL
}},
6190 { &hf_atn_cpdlc_uM121PositionUnitNameFrequency
,
6191 { "uM121PositionUnitNameFrequency", "atn-cpdlc.uM121PositionUnitNameFrequency_element",
6192 FT_NONE
, BASE_NONE
, NULL
, 0,
6193 "PositionUnitNameFrequency", HFILL
}},
6194 { &hf_atn_cpdlc_uM122TimeUnitNameFrequency
,
6195 { "uM122TimeUnitNameFrequency", "atn-cpdlc.uM122TimeUnitNameFrequency_element",
6196 FT_NONE
, BASE_NONE
, NULL
, 0,
6197 "TimeUnitNameFrequency", HFILL
}},
6198 { &hf_atn_cpdlc_uM123Code
,
6199 { "uM123Code", "atn-cpdlc.uM123Code",
6200 FT_UINT32
, BASE_DEC
, NULL
, 0,
6202 { &hf_atn_cpdlc_uM124NULL
,
6203 { "uM124NULL", "atn-cpdlc.uM124NULL_element",
6204 FT_NONE
, BASE_NONE
, NULL
, 0,
6206 { &hf_atn_cpdlc_uM125NULL
,
6207 { "uM125NULL", "atn-cpdlc.uM125NULL_element",
6208 FT_NONE
, BASE_NONE
, NULL
, 0,
6210 { &hf_atn_cpdlc_uM126NULL
,
6211 { "uM126NULL", "atn-cpdlc.uM126NULL_element",
6212 FT_NONE
, BASE_NONE
, NULL
, 0,
6214 { &hf_atn_cpdlc_uM127NULL
,
6215 { "uM127NULL", "atn-cpdlc.uM127NULL_element",
6216 FT_NONE
, BASE_NONE
, NULL
, 0,
6218 { &hf_atn_cpdlc_uM128Level
,
6219 { "uM128Level", "atn-cpdlc.uM128Level",
6220 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6222 { &hf_atn_cpdlc_uM129Level
,
6223 { "uM129Level", "atn-cpdlc.uM129Level",
6224 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6226 { &hf_atn_cpdlc_uM130Position
,
6227 { "uM130Position", "atn-cpdlc.uM130Position",
6228 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6229 "Position", HFILL
}},
6230 { &hf_atn_cpdlc_uM131NULL
,
6231 { "uM131NULL", "atn-cpdlc.uM131NULL_element",
6232 FT_NONE
, BASE_NONE
, NULL
, 0,
6234 { &hf_atn_cpdlc_uM132NULL
,
6235 { "uM132NULL", "atn-cpdlc.uM132NULL_element",
6236 FT_NONE
, BASE_NONE
, NULL
, 0,
6238 { &hf_atn_cpdlc_uM133NULL
,
6239 { "uM133NULL", "atn-cpdlc.uM133NULL_element",
6240 FT_NONE
, BASE_NONE
, NULL
, 0,
6242 { &hf_atn_cpdlc_uM134SpeedTypeSpeedTypeSpeedType
,
6243 { "uM134SpeedTypeSpeedTypeSpeedType", "atn-cpdlc.uM134SpeedTypeSpeedTypeSpeedType",
6244 FT_UINT32
, BASE_DEC
, NULL
, 0,
6245 "SpeedTypeSpeedTypeSpeedType", HFILL
}},
6246 { &hf_atn_cpdlc_uM135NULL
,
6247 { "uM135NULL", "atn-cpdlc.uM135NULL_element",
6248 FT_NONE
, BASE_NONE
, NULL
, 0,
6250 { &hf_atn_cpdlc_uM136NULL
,
6251 { "uM136NULL", "atn-cpdlc.uM136NULL_element",
6252 FT_NONE
, BASE_NONE
, NULL
, 0,
6254 { &hf_atn_cpdlc_uM137NULL
,
6255 { "uM137NULL", "atn-cpdlc.uM137NULL_element",
6256 FT_NONE
, BASE_NONE
, NULL
, 0,
6258 { &hf_atn_cpdlc_uM138NULL
,
6259 { "uM138NULL", "atn-cpdlc.uM138NULL_element",
6260 FT_NONE
, BASE_NONE
, NULL
, 0,
6262 { &hf_atn_cpdlc_uM139NULL
,
6263 { "uM139NULL", "atn-cpdlc.uM139NULL_element",
6264 FT_NONE
, BASE_NONE
, NULL
, 0,
6266 { &hf_atn_cpdlc_uM140NULL
,
6267 { "uM140NULL", "atn-cpdlc.uM140NULL_element",
6268 FT_NONE
, BASE_NONE
, NULL
, 0,
6270 { &hf_atn_cpdlc_uM141NULL
,
6271 { "uM141NULL", "atn-cpdlc.uM141NULL_element",
6272 FT_NONE
, BASE_NONE
, NULL
, 0,
6274 { &hf_atn_cpdlc_uM142NULL
,
6275 { "uM142NULL", "atn-cpdlc.uM142NULL_element",
6276 FT_NONE
, BASE_NONE
, NULL
, 0,
6278 { &hf_atn_cpdlc_uM143NULL
,
6279 { "uM143NULL", "atn-cpdlc.uM143NULL_element",
6280 FT_NONE
, BASE_NONE
, NULL
, 0,
6282 { &hf_atn_cpdlc_uM144NULL
,
6283 { "uM144NULL", "atn-cpdlc.uM144NULL_element",
6284 FT_NONE
, BASE_NONE
, NULL
, 0,
6286 { &hf_atn_cpdlc_uM145NULL
,
6287 { "uM145NULL", "atn-cpdlc.uM145NULL_element",
6288 FT_NONE
, BASE_NONE
, NULL
, 0,
6290 { &hf_atn_cpdlc_uM146NULL
,
6291 { "uM146NULL", "atn-cpdlc.uM146NULL_element",
6292 FT_NONE
, BASE_NONE
, NULL
, 0,
6294 { &hf_atn_cpdlc_uM147NULL
,
6295 { "uM147NULL", "atn-cpdlc.uM147NULL_element",
6296 FT_NONE
, BASE_NONE
, NULL
, 0,
6298 { &hf_atn_cpdlc_uM148Level
,
6299 { "uM148Level", "atn-cpdlc.uM148Level",
6300 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6302 { &hf_atn_cpdlc_uM149LevelPosition
,
6303 { "uM149LevelPosition", "atn-cpdlc.uM149LevelPosition_element",
6304 FT_NONE
, BASE_NONE
, NULL
, 0,
6305 "LevelPosition", HFILL
}},
6306 { &hf_atn_cpdlc_uM150LevelTime
,
6307 { "uM150LevelTime", "atn-cpdlc.uM150LevelTime_element",
6308 FT_NONE
, BASE_NONE
, NULL
, 0,
6309 "LevelTime", HFILL
}},
6310 { &hf_atn_cpdlc_uM151Speed
,
6311 { "uM151Speed", "atn-cpdlc.uM151Speed",
6312 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6314 { &hf_atn_cpdlc_uM152DistanceSpecifiedDirection
,
6315 { "uM152DistanceSpecifiedDirection", "atn-cpdlc.uM152DistanceSpecifiedDirection_element",
6316 FT_NONE
, BASE_NONE
, NULL
, 0,
6317 "DistanceSpecifiedDirection", HFILL
}},
6318 { &hf_atn_cpdlc_uM153Altimeter
,
6319 { "uM153Altimeter", "atn-cpdlc.uM153Altimeter",
6320 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Altimeter_vals
), 0,
6321 "Altimeter", HFILL
}},
6322 { &hf_atn_cpdlc_uM154NULL
,
6323 { "uM154NULL", "atn-cpdlc.uM154NULL_element",
6324 FT_NONE
, BASE_NONE
, NULL
, 0,
6326 { &hf_atn_cpdlc_uM155Position
,
6327 { "uM155Position", "atn-cpdlc.uM155Position",
6328 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6329 "Position", HFILL
}},
6330 { &hf_atn_cpdlc_uM156NULL
,
6331 { "uM156NULL", "atn-cpdlc.uM156NULL_element",
6332 FT_NONE
, BASE_NONE
, NULL
, 0,
6334 { &hf_atn_cpdlc_uM157Frequency
,
6335 { "uM157Frequency", "atn-cpdlc.uM157Frequency",
6336 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Frequency_vals
), 0,
6337 "Frequency", HFILL
}},
6338 { &hf_atn_cpdlc_uM158AtisCode
,
6339 { "uM158AtisCode", "atn-cpdlc.uM158AtisCode",
6340 FT_STRING
, BASE_NONE
, NULL
, 0,
6341 "ATISCode", HFILL
}},
6342 { &hf_atn_cpdlc_uM159ErrorInformation
,
6343 { "uM159ErrorInformation", "atn-cpdlc.uM159ErrorInformation",
6344 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ErrorInformation_vals
), 0,
6345 "ErrorInformation", HFILL
}},
6346 { &hf_atn_cpdlc_uM160Facility
,
6347 { "uM160Facility", "atn-cpdlc.uM160Facility",
6348 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Facility_vals
), 0,
6349 "Facility", HFILL
}},
6350 { &hf_atn_cpdlc_uM161NULL
,
6351 { "uM161NULL", "atn-cpdlc.uM161NULL_element",
6352 FT_NONE
, BASE_NONE
, NULL
, 0,
6354 { &hf_atn_cpdlc_uM162NULL
,
6355 { "uM162NULL", "atn-cpdlc.uM162NULL_element",
6356 FT_NONE
, BASE_NONE
, NULL
, 0,
6358 { &hf_atn_cpdlc_uM163FacilityDesignation
,
6359 { "uM163FacilityDesignation", "atn-cpdlc.uM163FacilityDesignation",
6360 FT_STRING
, BASE_NONE
, NULL
, 0,
6361 "FacilityDesignation", HFILL
}},
6362 { &hf_atn_cpdlc_uM164NULL
,
6363 { "uM164NULL", "atn-cpdlc.uM164NULL_element",
6364 FT_NONE
, BASE_NONE
, NULL
, 0,
6366 { &hf_atn_cpdlc_uM165NULL
,
6367 { "uM165NULL", "atn-cpdlc.uM165NULL_element",
6368 FT_NONE
, BASE_NONE
, NULL
, 0,
6370 { &hf_atn_cpdlc_uM166TrafficType
,
6371 { "uM166TrafficType", "atn-cpdlc.uM166TrafficType",
6372 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_TrafficType_vals
), 0,
6373 "TrafficType", HFILL
}},
6374 { &hf_atn_cpdlc_uM167NULL
,
6375 { "uM167NULL", "atn-cpdlc.uM167NULL_element",
6376 FT_NONE
, BASE_NONE
, NULL
, 0,
6378 { &hf_atn_cpdlc_uM168NULL
,
6379 { "uM168NULL", "atn-cpdlc.uM168NULL_element",
6380 FT_NONE
, BASE_NONE
, NULL
, 0,
6382 { &hf_atn_cpdlc_uM169FreeText
,
6383 { "uM169FreeText", "atn-cpdlc.uM169FreeText",
6384 FT_STRING
, BASE_NONE
, NULL
, 0,
6385 "FreeText", HFILL
}},
6386 { &hf_atn_cpdlc_uM170FreeText
,
6387 { "uM170FreeText", "atn-cpdlc.uM170FreeText",
6388 FT_STRING
, BASE_NONE
, NULL
, 0,
6389 "FreeText", HFILL
}},
6390 { &hf_atn_cpdlc_uM171VerticalRate
,
6391 { "uM171VerticalRate", "atn-cpdlc.uM171VerticalRate",
6392 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalRate_vals
), 0,
6393 "VerticalRate", HFILL
}},
6394 { &hf_atn_cpdlc_uM172VerticalRate
,
6395 { "uM172VerticalRate", "atn-cpdlc.uM172VerticalRate",
6396 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalRate_vals
), 0,
6397 "VerticalRate", HFILL
}},
6398 { &hf_atn_cpdlc_uM173VerticalRate
,
6399 { "uM173VerticalRate", "atn-cpdlc.uM173VerticalRate",
6400 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalRate_vals
), 0,
6401 "VerticalRate", HFILL
}},
6402 { &hf_atn_cpdlc_uM174VerticalRate
,
6403 { "uM174VerticalRate", "atn-cpdlc.uM174VerticalRate",
6404 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalRate_vals
), 0,
6405 "VerticalRate", HFILL
}},
6406 { &hf_atn_cpdlc_uM175Level
,
6407 { "uM175Level", "atn-cpdlc.uM175Level",
6408 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6410 { &hf_atn_cpdlc_uM176NULL
,
6411 { "uM176NULL", "atn-cpdlc.uM176NULL_element",
6412 FT_NONE
, BASE_NONE
, NULL
, 0,
6414 { &hf_atn_cpdlc_uM177NULL
,
6415 { "uM177NULL", "atn-cpdlc.uM177NULL_element",
6416 FT_NONE
, BASE_NONE
, NULL
, 0,
6418 { &hf_atn_cpdlc_uM178NULL
,
6419 { "uM178NULL", "atn-cpdlc.uM178NULL_element",
6420 FT_NONE
, BASE_NONE
, NULL
, 0,
6422 { &hf_atn_cpdlc_uM179NULL
,
6423 { "uM179NULL", "atn-cpdlc.uM179NULL_element",
6424 FT_NONE
, BASE_NONE
, NULL
, 0,
6426 { &hf_atn_cpdlc_uM180LevelLevel
,
6427 { "uM180LevelLevel", "atn-cpdlc.uM180LevelLevel",
6428 FT_UINT32
, BASE_DEC
, NULL
, 0,
6429 "LevelLevel", HFILL
}},
6430 { &hf_atn_cpdlc_uM181ToFromPosition
,
6431 { "uM181ToFromPosition", "atn-cpdlc.uM181ToFromPosition_element",
6432 FT_NONE
, BASE_NONE
, NULL
, 0,
6433 "ToFromPosition", HFILL
}},
6434 { &hf_atn_cpdlc_uM182NULL
,
6435 { "uM182NULL", "atn-cpdlc.uM182NULL_element",
6436 FT_NONE
, BASE_NONE
, NULL
, 0,
6438 { &hf_atn_cpdlc_uM183FreeText
,
6439 { "uM183FreeText", "atn-cpdlc.uM183FreeText",
6440 FT_STRING
, BASE_NONE
, NULL
, 0,
6441 "FreeText", HFILL
}},
6442 { &hf_atn_cpdlc_uM184TimeToFromPosition
,
6443 { "uM184TimeToFromPosition", "atn-cpdlc.uM184TimeToFromPosition_element",
6444 FT_NONE
, BASE_NONE
, NULL
, 0,
6445 "TimeToFromPosition", HFILL
}},
6446 { &hf_atn_cpdlc_uM185PositionLevel
,
6447 { "uM185PositionLevel", "atn-cpdlc.uM185PositionLevel_element",
6448 FT_NONE
, BASE_NONE
, NULL
, 0,
6449 "PositionLevel", HFILL
}},
6450 { &hf_atn_cpdlc_uM186PositionLevel
,
6451 { "uM186PositionLevel", "atn-cpdlc.uM186PositionLevel_element",
6452 FT_NONE
, BASE_NONE
, NULL
, 0,
6453 "PositionLevel", HFILL
}},
6454 { &hf_atn_cpdlc_uM187FreeText
,
6455 { "uM187FreeText", "atn-cpdlc.uM187FreeText",
6456 FT_STRING
, BASE_NONE
, NULL
, 0,
6457 "FreeText", HFILL
}},
6458 { &hf_atn_cpdlc_uM188PositionSpeed
,
6459 { "uM188PositionSpeed", "atn-cpdlc.uM188PositionSpeed_element",
6460 FT_NONE
, BASE_NONE
, NULL
, 0,
6461 "PositionSpeed", HFILL
}},
6462 { &hf_atn_cpdlc_uM189Speed
,
6463 { "uM189Speed", "atn-cpdlc.uM189Speed",
6464 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6466 { &hf_atn_cpdlc_uM190Degrees
,
6467 { "uM190Degrees", "atn-cpdlc.uM190Degrees",
6468 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6469 "Degrees", HFILL
}},
6470 { &hf_atn_cpdlc_uM191NULL
,
6471 { "uM191NULL", "atn-cpdlc.uM191NULL_element",
6472 FT_NONE
, BASE_NONE
, NULL
, 0,
6474 { &hf_atn_cpdlc_uM192LevelTime
,
6475 { "uM192LevelTime", "atn-cpdlc.uM192LevelTime_element",
6476 FT_NONE
, BASE_NONE
, NULL
, 0,
6477 "LevelTime", HFILL
}},
6478 { &hf_atn_cpdlc_uM193NULL
,
6479 { "uM193NULL", "atn-cpdlc.uM193NULL_element",
6480 FT_NONE
, BASE_NONE
, NULL
, 0,
6482 { &hf_atn_cpdlc_uM194FreeText
,
6483 { "uM194FreeText", "atn-cpdlc.uM194FreeText",
6484 FT_STRING
, BASE_NONE
, NULL
, 0,
6485 "FreeText", HFILL
}},
6486 { &hf_atn_cpdlc_uM195FreeText
,
6487 { "uM195FreeText", "atn-cpdlc.uM195FreeText",
6488 FT_STRING
, BASE_NONE
, NULL
, 0,
6489 "FreeText", HFILL
}},
6490 { &hf_atn_cpdlc_uM196FreeText
,
6491 { "uM196FreeText", "atn-cpdlc.uM196FreeText",
6492 FT_STRING
, BASE_NONE
, NULL
, 0,
6493 "FreeText", HFILL
}},
6494 { &hf_atn_cpdlc_uM197FreeText
,
6495 { "uM197FreeText", "atn-cpdlc.uM197FreeText",
6496 FT_STRING
, BASE_NONE
, NULL
, 0,
6497 "FreeText", HFILL
}},
6498 { &hf_atn_cpdlc_uM198FreeText
,
6499 { "uM198FreeText", "atn-cpdlc.uM198FreeText",
6500 FT_STRING
, BASE_NONE
, NULL
, 0,
6501 "FreeText", HFILL
}},
6502 { &hf_atn_cpdlc_uM199FreeText
,
6503 { "uM199FreeText", "atn-cpdlc.uM199FreeText",
6504 FT_STRING
, BASE_NONE
, NULL
, 0,
6505 "FreeText", HFILL
}},
6506 { &hf_atn_cpdlc_uM200NULL
,
6507 { "uM200NULL", "atn-cpdlc.uM200NULL_element",
6508 FT_NONE
, BASE_NONE
, NULL
, 0,
6510 { &hf_atn_cpdlc_uM201NULL
,
6511 { "uM201NULL", "atn-cpdlc.uM201NULL_element",
6512 FT_NONE
, BASE_NONE
, NULL
, 0,
6514 { &hf_atn_cpdlc_uM202NULL
,
6515 { "uM202NULL", "atn-cpdlc.uM202NULL_element",
6516 FT_NONE
, BASE_NONE
, NULL
, 0,
6518 { &hf_atn_cpdlc_uM203FreeText
,
6519 { "uM203FreeText", "atn-cpdlc.uM203FreeText",
6520 FT_STRING
, BASE_NONE
, NULL
, 0,
6521 "FreeText", HFILL
}},
6522 { &hf_atn_cpdlc_uM204FreeText
,
6523 { "uM204FreeText", "atn-cpdlc.uM204FreeText",
6524 FT_STRING
, BASE_NONE
, NULL
, 0,
6525 "FreeText", HFILL
}},
6526 { &hf_atn_cpdlc_uM205FreeText
,
6527 { "uM205FreeText", "atn-cpdlc.uM205FreeText",
6528 FT_STRING
, BASE_NONE
, NULL
, 0,
6529 "FreeText", HFILL
}},
6530 { &hf_atn_cpdlc_uM206FreeText
,
6531 { "uM206FreeText", "atn-cpdlc.uM206FreeText",
6532 FT_STRING
, BASE_NONE
, NULL
, 0,
6533 "FreeText", HFILL
}},
6534 { &hf_atn_cpdlc_uM207FreeText
,
6535 { "uM207FreeText", "atn-cpdlc.uM207FreeText",
6536 FT_STRING
, BASE_NONE
, NULL
, 0,
6537 "FreeText", HFILL
}},
6538 { &hf_atn_cpdlc_uM208FreeText
,
6539 { "uM208FreeText", "atn-cpdlc.uM208FreeText",
6540 FT_STRING
, BASE_NONE
, NULL
, 0,
6541 "FreeText", HFILL
}},
6542 { &hf_atn_cpdlc_uM209LevelPosition
,
6543 { "uM209LevelPosition", "atn-cpdlc.uM209LevelPosition_element",
6544 FT_NONE
, BASE_NONE
, NULL
, 0,
6545 "LevelPosition", HFILL
}},
6546 { &hf_atn_cpdlc_uM210Position
,
6547 { "uM210Position", "atn-cpdlc.uM210Position",
6548 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6549 "Position", HFILL
}},
6550 { &hf_atn_cpdlc_uM211NULL
,
6551 { "uM211NULL", "atn-cpdlc.uM211NULL_element",
6552 FT_NONE
, BASE_NONE
, NULL
, 0,
6554 { &hf_atn_cpdlc_uM212FacilityDesignationATISCode
,
6555 { "uM212FacilityDesignationATISCode", "atn-cpdlc.uM212FacilityDesignationATISCode_element",
6556 FT_NONE
, BASE_NONE
, NULL
, 0,
6557 "FacilityDesignationATISCode", HFILL
}},
6558 { &hf_atn_cpdlc_uM213FacilityDesignationAltimeter
,
6559 { "uM213FacilityDesignationAltimeter", "atn-cpdlc.uM213FacilityDesignationAltimeter_element",
6560 FT_NONE
, BASE_NONE
, NULL
, 0,
6561 "FacilityDesignationAltimeter", HFILL
}},
6562 { &hf_atn_cpdlc_uM214RunwayRVR
,
6563 { "uM214RunwayRVR", "atn-cpdlc.uM214RunwayRVR_element",
6564 FT_NONE
, BASE_NONE
, NULL
, 0,
6565 "RunwayRVR", HFILL
}},
6566 { &hf_atn_cpdlc_uM215DirectionDegrees
,
6567 { "uM215DirectionDegrees", "atn-cpdlc.uM215DirectionDegrees_element",
6568 FT_NONE
, BASE_NONE
, NULL
, 0,
6569 "DirectionDegrees", HFILL
}},
6570 { &hf_atn_cpdlc_uM216NULL
,
6571 { "uM216NULL", "atn-cpdlc.uM216NULL_element",
6572 FT_NONE
, BASE_NONE
, NULL
, 0,
6574 { &hf_atn_cpdlc_uM217NULL
,
6575 { "uM217NULL", "atn-cpdlc.uM217NULL_element",
6576 FT_NONE
, BASE_NONE
, NULL
, 0,
6578 { &hf_atn_cpdlc_uM218NULL
,
6579 { "uM218NULL", "atn-cpdlc.uM218NULL_element",
6580 FT_NONE
, BASE_NONE
, NULL
, 0,
6582 { &hf_atn_cpdlc_uM219Level
,
6583 { "uM219Level", "atn-cpdlc.uM219Level",
6584 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6586 { &hf_atn_cpdlc_uM220Level
,
6587 { "uM220Level", "atn-cpdlc.uM220Level",
6588 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6590 { &hf_atn_cpdlc_uM221Degrees
,
6591 { "uM221Degrees", "atn-cpdlc.uM221Degrees",
6592 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6593 "Degrees", HFILL
}},
6594 { &hf_atn_cpdlc_uM222NULL
,
6595 { "uM222NULL", "atn-cpdlc.uM222NULL_element",
6596 FT_NONE
, BASE_NONE
, NULL
, 0,
6598 { &hf_atn_cpdlc_uM223NULL
,
6599 { "uM223NULL", "atn-cpdlc.uM223NULL_element",
6600 FT_NONE
, BASE_NONE
, NULL
, 0,
6602 { &hf_atn_cpdlc_uM224NULL
,
6603 { "uM224NULL", "atn-cpdlc.uM224NULL_element",
6604 FT_NONE
, BASE_NONE
, NULL
, 0,
6606 { &hf_atn_cpdlc_uM225NULL
,
6607 { "uM225NULL", "atn-cpdlc.uM225NULL_element",
6608 FT_NONE
, BASE_NONE
, NULL
, 0,
6610 { &hf_atn_cpdlc_uM226Time
,
6611 { "uM226Time", "atn-cpdlc.uM226Time_element",
6612 FT_NONE
, BASE_NONE
, NULL
, 0,
6614 { &hf_atn_cpdlc_uM227NULL
,
6615 { "uM227NULL", "atn-cpdlc.uM227NULL_element",
6616 FT_NONE
, BASE_NONE
, NULL
, 0,
6618 { &hf_atn_cpdlc_uM228Position
,
6619 { "uM228Position", "atn-cpdlc.uM228Position",
6620 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6621 "Position", HFILL
}},
6622 { &hf_atn_cpdlc_uM229NULL
,
6623 { "uM229NULL", "atn-cpdlc.uM229NULL_element",
6624 FT_NONE
, BASE_NONE
, NULL
, 0,
6626 { &hf_atn_cpdlc_uM230NULL
,
6627 { "uM230NULL", "atn-cpdlc.uM230NULL_element",
6628 FT_NONE
, BASE_NONE
, NULL
, 0,
6630 { &hf_atn_cpdlc_uM231NULL
,
6631 { "uM231NULL", "atn-cpdlc.uM231NULL_element",
6632 FT_NONE
, BASE_NONE
, NULL
, 0,
6634 { &hf_atn_cpdlc_uM232NULL
,
6635 { "uM232NULL", "atn-cpdlc.uM232NULL_element",
6636 FT_NONE
, BASE_NONE
, NULL
, 0,
6638 { &hf_atn_cpdlc_uM233NULL
,
6639 { "uM233NULL", "atn-cpdlc.uM233NULL_element",
6640 FT_NONE
, BASE_NONE
, NULL
, 0,
6642 { &hf_atn_cpdlc_uM234NULL
,
6643 { "uM234NULL", "atn-cpdlc.uM234NULL_element",
6644 FT_NONE
, BASE_NONE
, NULL
, 0,
6646 { &hf_atn_cpdlc_uM235NULL
,
6647 { "uM235NULL", "atn-cpdlc.uM235NULL_element",
6648 FT_NONE
, BASE_NONE
, NULL
, 0,
6650 { &hf_atn_cpdlc_uM236NULL
,
6651 { "uM236NULL", "atn-cpdlc.uM236NULL_element",
6652 FT_NONE
, BASE_NONE
, NULL
, 0,
6654 { &hf_atn_cpdlc_uM237NULL
,
6655 { "uM237NULL", "atn-cpdlc.uM237NULL_element",
6656 FT_NONE
, BASE_NONE
, NULL
, 0,
6658 { &hf_atn_cpdlc_dM0NULL
,
6659 { "dM0NULL", "atn-cpdlc.dM0NULL_element",
6660 FT_NONE
, BASE_NONE
, NULL
, 0,
6662 { &hf_atn_cpdlc_dM1NULL
,
6663 { "dM1NULL", "atn-cpdlc.dM1NULL_element",
6664 FT_NONE
, BASE_NONE
, NULL
, 0,
6666 { &hf_atn_cpdlc_dM2NULL
,
6667 { "dM2NULL", "atn-cpdlc.dM2NULL_element",
6668 FT_NONE
, BASE_NONE
, NULL
, 0,
6670 { &hf_atn_cpdlc_dM3NULL
,
6671 { "dM3NULL", "atn-cpdlc.dM3NULL_element",
6672 FT_NONE
, BASE_NONE
, NULL
, 0,
6674 { &hf_atn_cpdlc_dM4NULL
,
6675 { "dM4NULL", "atn-cpdlc.dM4NULL_element",
6676 FT_NONE
, BASE_NONE
, NULL
, 0,
6678 { &hf_atn_cpdlc_dM5NULL
,
6679 { "dM5NULL", "atn-cpdlc.dM5NULL_element",
6680 FT_NONE
, BASE_NONE
, NULL
, 0,
6682 { &hf_atn_cpdlc_dM6Level
,
6683 { "dM6Level", "atn-cpdlc.dM6Level",
6684 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6686 { &hf_atn_cpdlc_dM7LevelLevel
,
6687 { "dM7LevelLevel", "atn-cpdlc.dM7LevelLevel",
6688 FT_UINT32
, BASE_DEC
, NULL
, 0,
6689 "LevelLevel", HFILL
}},
6690 { &hf_atn_cpdlc_dM8Level
,
6691 { "dM8Level", "atn-cpdlc.dM8Level",
6692 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6694 { &hf_atn_cpdlc_dM9Level
,
6695 { "dM9Level", "atn-cpdlc.dM9Level",
6696 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6698 { &hf_atn_cpdlc_dM10Level
,
6699 { "dM10Level", "atn-cpdlc.dM10Level",
6700 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6702 { &hf_atn_cpdlc_dM11PositionLevel
,
6703 { "dM11PositionLevel", "atn-cpdlc.dM11PositionLevel_element",
6704 FT_NONE
, BASE_NONE
, NULL
, 0,
6705 "PositionLevel", HFILL
}},
6706 { &hf_atn_cpdlc_dM12PositionLevel
,
6707 { "dM12PositionLevel", "atn-cpdlc.dM12PositionLevel_element",
6708 FT_NONE
, BASE_NONE
, NULL
, 0,
6709 "PositionLevel", HFILL
}},
6710 { &hf_atn_cpdlc_dM13TimeLevel
,
6711 { "dM13TimeLevel", "atn-cpdlc.dM13TimeLevel_element",
6712 FT_NONE
, BASE_NONE
, NULL
, 0,
6713 "TimeLevel", HFILL
}},
6714 { &hf_atn_cpdlc_dM14TimeLevel
,
6715 { "dM14TimeLevel", "atn-cpdlc.dM14TimeLevel_element",
6716 FT_NONE
, BASE_NONE
, NULL
, 0,
6717 "TimeLevel", HFILL
}},
6718 { &hf_atn_cpdlc_dM15DistanceSpecifiedDirection
,
6719 { "dM15DistanceSpecifiedDirection", "atn-cpdlc.dM15DistanceSpecifiedDirection_element",
6720 FT_NONE
, BASE_NONE
, NULL
, 0,
6721 "DistanceSpecifiedDirection", HFILL
}},
6722 { &hf_atn_cpdlc_dM16PositionDistanceSpecifiedDirection
,
6723 { "dM16PositionDistanceSpecifiedDirection", "atn-cpdlc.dM16PositionDistanceSpecifiedDirection_element",
6724 FT_NONE
, BASE_NONE
, NULL
, 0,
6725 "PositionDistanceSpecifiedDirection", HFILL
}},
6726 { &hf_atn_cpdlc_dM17TimeDistanceSpecifiedDirection
,
6727 { "dM17TimeDistanceSpecifiedDirection", "atn-cpdlc.dM17TimeDistanceSpecifiedDirection_element",
6728 FT_NONE
, BASE_NONE
, NULL
, 0,
6729 "TimeDistanceSpecifiedDirection", HFILL
}},
6730 { &hf_atn_cpdlc_dM18Speed
,
6731 { "dM18Speed", "atn-cpdlc.dM18Speed",
6732 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6734 { &hf_atn_cpdlc_dM19SpeedSpeed
,
6735 { "dM19SpeedSpeed", "atn-cpdlc.dM19SpeedSpeed",
6736 FT_UINT32
, BASE_DEC
, NULL
, 0,
6737 "SpeedSpeed", HFILL
}},
6738 { &hf_atn_cpdlc_dM20NULL
,
6739 { "dM20NULL", "atn-cpdlc.dM20NULL_element",
6740 FT_NONE
, BASE_NONE
, NULL
, 0,
6742 { &hf_atn_cpdlc_dM21Frequency
,
6743 { "dM21Frequency", "atn-cpdlc.dM21Frequency",
6744 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Frequency_vals
), 0,
6745 "Frequency", HFILL
}},
6746 { &hf_atn_cpdlc_dM22Position
,
6747 { "dM22Position", "atn-cpdlc.dM22Position",
6748 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6749 "Position", HFILL
}},
6750 { &hf_atn_cpdlc_dM23ProcedureName
,
6751 { "dM23ProcedureName", "atn-cpdlc.dM23ProcedureName_element",
6752 FT_NONE
, BASE_NONE
, NULL
, 0,
6753 "ProcedureName", HFILL
}},
6754 { &hf_atn_cpdlc_dM24RouteClearance
,
6755 { "dM24RouteClearance", "atn-cpdlc.dM24RouteClearance",
6756 FT_UINT32
, BASE_DEC
, NULL
, 0,
6757 "RouteClearanceIndex", HFILL
}},
6758 { &hf_atn_cpdlc_dM25ClearanceType
,
6759 { "dM25ClearanceType", "atn-cpdlc.dM25ClearanceType",
6760 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ClearanceType_vals
), 0,
6761 "ClearanceType", HFILL
}},
6762 { &hf_atn_cpdlc_dM26PositionRouteClearance
,
6763 { "dM26PositionRouteClearance", "atn-cpdlc.dM26PositionRouteClearance_element",
6764 FT_NONE
, BASE_NONE
, NULL
, 0,
6765 "PositionRouteClearanceIndex", HFILL
}},
6766 { &hf_atn_cpdlc_dM27DistanceSpecifiedDirection
,
6767 { "dM27DistanceSpecifiedDirection", "atn-cpdlc.dM27DistanceSpecifiedDirection_element",
6768 FT_NONE
, BASE_NONE
, NULL
, 0,
6769 "DistanceSpecifiedDirection", HFILL
}},
6770 { &hf_atn_cpdlc_dM28Level
,
6771 { "dM28Level", "atn-cpdlc.dM28Level",
6772 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6774 { &hf_atn_cpdlc_dM29Level
,
6775 { "dM29Level", "atn-cpdlc.dM29Level",
6776 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6778 { &hf_atn_cpdlc_dM30Level
,
6779 { "dM30Level", "atn-cpdlc.dM30Level",
6780 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6782 { &hf_atn_cpdlc_dM31Position
,
6783 { "dM31Position", "atn-cpdlc.dM31Position",
6784 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6785 "Position", HFILL
}},
6786 { &hf_atn_cpdlc_dM32Level
,
6787 { "dM32Level", "atn-cpdlc.dM32Level",
6788 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6790 { &hf_atn_cpdlc_dM33Position
,
6791 { "dM33Position", "atn-cpdlc.dM33Position",
6792 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6793 "Position", HFILL
}},
6794 { &hf_atn_cpdlc_dM34Speed
,
6795 { "dM34Speed", "atn-cpdlc.dM34Speed",
6796 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6798 { &hf_atn_cpdlc_dM35Degrees
,
6799 { "dM35Degrees", "atn-cpdlc.dM35Degrees",
6800 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6801 "Degrees", HFILL
}},
6802 { &hf_atn_cpdlc_dM36Degrees
,
6803 { "dM36Degrees", "atn-cpdlc.dM36Degrees",
6804 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6805 "Degrees", HFILL
}},
6806 { &hf_atn_cpdlc_dM37Level
,
6807 { "dM37Level", "atn-cpdlc.dM37Level",
6808 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6810 { &hf_atn_cpdlc_dM38Level
,
6811 { "dM38Level", "atn-cpdlc.dM38Level",
6812 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6814 { &hf_atn_cpdlc_dM39Speed
,
6815 { "dM39Speed", "atn-cpdlc.dM39Speed",
6816 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6818 { &hf_atn_cpdlc_dM40RouteClearance
,
6819 { "dM40RouteClearance", "atn-cpdlc.dM40RouteClearance",
6820 FT_UINT32
, BASE_DEC
, NULL
, 0,
6821 "RouteClearanceIndex", HFILL
}},
6822 { &hf_atn_cpdlc_dM41NULL
,
6823 { "dM41NULL", "atn-cpdlc.dM41NULL_element",
6824 FT_NONE
, BASE_NONE
, NULL
, 0,
6826 { &hf_atn_cpdlc_dM42Position
,
6827 { "dM42Position", "atn-cpdlc.dM42Position",
6828 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6829 "Position", HFILL
}},
6830 { &hf_atn_cpdlc_dM43Time
,
6831 { "dM43Time", "atn-cpdlc.dM43Time_element",
6832 FT_NONE
, BASE_NONE
, NULL
, 0,
6834 { &hf_atn_cpdlc_dM44Position
,
6835 { "dM44Position", "atn-cpdlc.dM44Position",
6836 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6837 "Position", HFILL
}},
6838 { &hf_atn_cpdlc_dM45Position
,
6839 { "dM45Position", "atn-cpdlc.dM45Position",
6840 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
6841 "Position", HFILL
}},
6842 { &hf_atn_cpdlc_dM46Time
,
6843 { "dM46Time", "atn-cpdlc.dM46Time_element",
6844 FT_NONE
, BASE_NONE
, NULL
, 0,
6846 { &hf_atn_cpdlc_dM47Code
,
6847 { "dM47Code", "atn-cpdlc.dM47Code",
6848 FT_UINT32
, BASE_DEC
, NULL
, 0,
6850 { &hf_atn_cpdlc_dM48PositionReport
,
6851 { "dM48PositionReport", "atn-cpdlc.dM48PositionReport_element",
6852 FT_NONE
, BASE_NONE
, NULL
, 0,
6853 "PositionReport", HFILL
}},
6854 { &hf_atn_cpdlc_dM49Speed
,
6855 { "dM49Speed", "atn-cpdlc.dM49Speed",
6856 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6858 { &hf_atn_cpdlc_dM50SpeedSpeed
,
6859 { "dM50SpeedSpeed", "atn-cpdlc.dM50SpeedSpeed",
6860 FT_UINT32
, BASE_DEC
, NULL
, 0,
6861 "SpeedSpeed", HFILL
}},
6862 { &hf_atn_cpdlc_dM51NULL
,
6863 { "dM51NULL", "atn-cpdlc.dM51NULL_element",
6864 FT_NONE
, BASE_NONE
, NULL
, 0,
6866 { &hf_atn_cpdlc_dM52NULL
,
6867 { "dM52NULL", "atn-cpdlc.dM52NULL_element",
6868 FT_NONE
, BASE_NONE
, NULL
, 0,
6870 { &hf_atn_cpdlc_dM53NULL
,
6871 { "dM53NULL", "atn-cpdlc.dM53NULL_element",
6872 FT_NONE
, BASE_NONE
, NULL
, 0,
6874 { &hf_atn_cpdlc_dM54Level
,
6875 { "dM54Level", "atn-cpdlc.dM54Level",
6876 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6878 { &hf_atn_cpdlc_dM55NULL
,
6879 { "dM55NULL", "atn-cpdlc.dM55NULL_element",
6880 FT_NONE
, BASE_NONE
, NULL
, 0,
6882 { &hf_atn_cpdlc_dM56NULL
,
6883 { "dM56NULL", "atn-cpdlc.dM56NULL_element",
6884 FT_NONE
, BASE_NONE
, NULL
, 0,
6886 { &hf_atn_cpdlc_dM57RemainingFuelPersonsOnBoard
,
6887 { "dM57RemainingFuelPersonsOnBoard", "atn-cpdlc.dM57RemainingFuelPersonsOnBoard_element",
6888 FT_NONE
, BASE_NONE
, NULL
, 0,
6889 "RemainingFuelPersonsOnBoard", HFILL
}},
6890 { &hf_atn_cpdlc_dM58NULL
,
6891 { "dM58NULL", "atn-cpdlc.dM58NULL_element",
6892 FT_NONE
, BASE_NONE
, NULL
, 0,
6894 { &hf_atn_cpdlc_dM59PositionRouteClearance
,
6895 { "dM59PositionRouteClearance", "atn-cpdlc.dM59PositionRouteClearance_element",
6896 FT_NONE
, BASE_NONE
, NULL
, 0,
6897 "PositionRouteClearanceIndex", HFILL
}},
6898 { &hf_atn_cpdlc_dM60DistanceSpecifiedDirection
,
6899 { "dM60DistanceSpecifiedDirection", "atn-cpdlc.dM60DistanceSpecifiedDirection_element",
6900 FT_NONE
, BASE_NONE
, NULL
, 0,
6901 "DistanceSpecifiedDirection", HFILL
}},
6902 { &hf_atn_cpdlc_dM61Level
,
6903 { "dM61Level", "atn-cpdlc.dM61Level",
6904 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6906 { &hf_atn_cpdlc_dM62ErrorInformation
,
6907 { "dM62ErrorInformation", "atn-cpdlc.dM62ErrorInformation",
6908 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ErrorInformation_vals
), 0,
6909 "ErrorInformation", HFILL
}},
6910 { &hf_atn_cpdlc_dM63NULL
,
6911 { "dM63NULL", "atn-cpdlc.dM63NULL_element",
6912 FT_NONE
, BASE_NONE
, NULL
, 0,
6914 { &hf_atn_cpdlc_dM64FacilityDesignation
,
6915 { "dM64FacilityDesignation", "atn-cpdlc.dM64FacilityDesignation",
6916 FT_STRING
, BASE_NONE
, NULL
, 0,
6917 "FacilityDesignation", HFILL
}},
6918 { &hf_atn_cpdlc_dM65NULL
,
6919 { "dM65NULL", "atn-cpdlc.dM65NULL_element",
6920 FT_NONE
, BASE_NONE
, NULL
, 0,
6922 { &hf_atn_cpdlc_dM66NULL
,
6923 { "dM66NULL", "atn-cpdlc.dM66NULL_element",
6924 FT_NONE
, BASE_NONE
, NULL
, 0,
6926 { &hf_atn_cpdlc_dM67FreeText
,
6927 { "dM67FreeText", "atn-cpdlc.dM67FreeText",
6928 FT_STRING
, BASE_NONE
, NULL
, 0,
6929 "FreeText", HFILL
}},
6930 { &hf_atn_cpdlc_dM68FreeText
,
6931 { "dM68FreeText", "atn-cpdlc.dM68FreeText",
6932 FT_STRING
, BASE_NONE
, NULL
, 0,
6933 "FreeText", HFILL
}},
6934 { &hf_atn_cpdlc_dM69NULL
,
6935 { "dM69NULL", "atn-cpdlc.dM69NULL_element",
6936 FT_NONE
, BASE_NONE
, NULL
, 0,
6938 { &hf_atn_cpdlc_dM70Degrees
,
6939 { "dM70Degrees", "atn-cpdlc.dM70Degrees",
6940 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6941 "Degrees", HFILL
}},
6942 { &hf_atn_cpdlc_dM71Degrees
,
6943 { "dM71Degrees", "atn-cpdlc.dM71Degrees",
6944 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
6945 "Degrees", HFILL
}},
6946 { &hf_atn_cpdlc_dM72Level
,
6947 { "dM72Level", "atn-cpdlc.dM72Level",
6948 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6950 { &hf_atn_cpdlc_dM73Versionnumber
,
6951 { "dM73Versionnumber", "atn-cpdlc.dM73Versionnumber",
6952 FT_UINT32
, BASE_DEC
, NULL
, 0,
6953 "VersionNumber", HFILL
}},
6954 { &hf_atn_cpdlc_dM74NULL
,
6955 { "dM74NULL", "atn-cpdlc.dM74NULL_element",
6956 FT_NONE
, BASE_NONE
, NULL
, 0,
6958 { &hf_atn_cpdlc_dM75NULL
,
6959 { "dM75NULL", "atn-cpdlc.dM75NULL_element",
6960 FT_NONE
, BASE_NONE
, NULL
, 0,
6962 { &hf_atn_cpdlc_dM76LevelLevel
,
6963 { "dM76LevelLevel", "atn-cpdlc.dM76LevelLevel",
6964 FT_UINT32
, BASE_DEC
, NULL
, 0,
6965 "LevelLevel", HFILL
}},
6966 { &hf_atn_cpdlc_dM77LevelLevel
,
6967 { "dM77LevelLevel", "atn-cpdlc.dM77LevelLevel",
6968 FT_UINT32
, BASE_DEC
, NULL
, 0,
6969 "LevelLevel", HFILL
}},
6970 { &hf_atn_cpdlc_dM78TimeDistanceToFromPosition
,
6971 { "dM78TimeDistanceToFromPosition", "atn-cpdlc.dM78TimeDistanceToFromPosition_element",
6972 FT_NONE
, BASE_NONE
, NULL
, 0,
6973 "TimeDistanceToFromPosition", HFILL
}},
6974 { &hf_atn_cpdlc_dM79AtisCode
,
6975 { "dM79AtisCode", "atn-cpdlc.dM79AtisCode",
6976 FT_STRING
, BASE_NONE
, NULL
, 0,
6977 "ATISCode", HFILL
}},
6978 { &hf_atn_cpdlc_dM80DistanceSpecifiedDirection
,
6979 { "dM80DistanceSpecifiedDirection", "atn-cpdlc.dM80DistanceSpecifiedDirection_element",
6980 FT_NONE
, BASE_NONE
, NULL
, 0,
6981 "DistanceSpecifiedDirection", HFILL
}},
6982 { &hf_atn_cpdlc_dM81LevelTime
,
6983 { "dM81LevelTime", "atn-cpdlc.dM81LevelTime_element",
6984 FT_NONE
, BASE_NONE
, NULL
, 0,
6985 "LevelTime", HFILL
}},
6986 { &hf_atn_cpdlc_dM82Level
,
6987 { "dM82Level", "atn-cpdlc.dM82Level",
6988 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
6990 { &hf_atn_cpdlc_dM83SpeedTime
,
6991 { "dM83SpeedTime", "atn-cpdlc.dM83SpeedTime_element",
6992 FT_NONE
, BASE_NONE
, NULL
, 0,
6993 "SpeedTime", HFILL
}},
6994 { &hf_atn_cpdlc_dM84Speed
,
6995 { "dM84Speed", "atn-cpdlc.dM84Speed",
6996 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
6998 { &hf_atn_cpdlc_dM85DistanceSpecifiedDirectionTime
,
6999 { "dM85DistanceSpecifiedDirectionTime", "atn-cpdlc.dM85DistanceSpecifiedDirectionTime_element",
7000 FT_NONE
, BASE_NONE
, NULL
, 0,
7001 "DistanceSpecifiedDirectionTime", HFILL
}},
7002 { &hf_atn_cpdlc_dM86DistanceSpecifiedDirection
,
7003 { "dM86DistanceSpecifiedDirection", "atn-cpdlc.dM86DistanceSpecifiedDirection_element",
7004 FT_NONE
, BASE_NONE
, NULL
, 0,
7005 "DistanceSpecifiedDirection", HFILL
}},
7006 { &hf_atn_cpdlc_dM87Level
,
7007 { "dM87Level", "atn-cpdlc.dM87Level",
7008 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
7010 { &hf_atn_cpdlc_dM88Level
,
7011 { "dM88Level", "atn-cpdlc.dM88Level",
7012 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
7014 { &hf_atn_cpdlc_dM89UnitnameFrequency
,
7015 { "dM89UnitnameFrequency", "atn-cpdlc.dM89UnitnameFrequency_element",
7016 FT_NONE
, BASE_NONE
, NULL
, 0,
7017 "UnitNameFrequency", HFILL
}},
7018 { &hf_atn_cpdlc_dM90FreeText
,
7019 { "dM90FreeText", "atn-cpdlc.dM90FreeText",
7020 FT_STRING
, BASE_NONE
, NULL
, 0,
7021 "FreeText", HFILL
}},
7022 { &hf_atn_cpdlc_dM91FreeText
,
7023 { "dM91FreeText", "atn-cpdlc.dM91FreeText",
7024 FT_STRING
, BASE_NONE
, NULL
, 0,
7025 "FreeText", HFILL
}},
7026 { &hf_atn_cpdlc_dM92FreeText
,
7027 { "dM92FreeText", "atn-cpdlc.dM92FreeText",
7028 FT_STRING
, BASE_NONE
, NULL
, 0,
7029 "FreeText", HFILL
}},
7030 { &hf_atn_cpdlc_dM93FreeText
,
7031 { "dM93FreeText", "atn-cpdlc.dM93FreeText",
7032 FT_STRING
, BASE_NONE
, NULL
, 0,
7033 "FreeText", HFILL
}},
7034 { &hf_atn_cpdlc_dM94FreeText
,
7035 { "dM94FreeText", "atn-cpdlc.dM94FreeText",
7036 FT_STRING
, BASE_NONE
, NULL
, 0,
7037 "FreeText", HFILL
}},
7038 { &hf_atn_cpdlc_dM95FreeText
,
7039 { "dM95FreeText", "atn-cpdlc.dM95FreeText",
7040 FT_STRING
, BASE_NONE
, NULL
, 0,
7041 "FreeText", HFILL
}},
7042 { &hf_atn_cpdlc_dM96FreeText
,
7043 { "dM96FreeText", "atn-cpdlc.dM96FreeText",
7044 FT_STRING
, BASE_NONE
, NULL
, 0,
7045 "FreeText", HFILL
}},
7046 { &hf_atn_cpdlc_dM97FreeText
,
7047 { "dM97FreeText", "atn-cpdlc.dM97FreeText",
7048 FT_STRING
, BASE_NONE
, NULL
, 0,
7049 "FreeText", HFILL
}},
7050 { &hf_atn_cpdlc_dM98FreeText
,
7051 { "dM98FreeText", "atn-cpdlc.dM98FreeText",
7052 FT_STRING
, BASE_NONE
, NULL
, 0,
7053 "FreeText", HFILL
}},
7054 { &hf_atn_cpdlc_dM99NULL
,
7055 { "dM99NULL", "atn-cpdlc.dM99NULL_element",
7056 FT_NONE
, BASE_NONE
, NULL
, 0,
7058 { &hf_atn_cpdlc_dM100NULL
,
7059 { "dM100NULL", "atn-cpdlc.dM100NULL_element",
7060 FT_NONE
, BASE_NONE
, NULL
, 0,
7062 { &hf_atn_cpdlc_dM101NULL
,
7063 { "dM101NULL", "atn-cpdlc.dM101NULL_element",
7064 FT_NONE
, BASE_NONE
, NULL
, 0,
7066 { &hf_atn_cpdlc_dM102NULL
,
7067 { "dM102NULL", "atn-cpdlc.dM102NULL_element",
7068 FT_NONE
, BASE_NONE
, NULL
, 0,
7070 { &hf_atn_cpdlc_dM103NULL
,
7071 { "dM103NULL", "atn-cpdlc.dM103NULL_element",
7072 FT_NONE
, BASE_NONE
, NULL
, 0,
7074 { &hf_atn_cpdlc_dM104PositionTime
,
7075 { "dM104PositionTime", "atn-cpdlc.dM104PositionTime_element",
7076 FT_NONE
, BASE_NONE
, NULL
, 0,
7077 "PositionTime", HFILL
}},
7078 { &hf_atn_cpdlc_dM105Airport
,
7079 { "dM105Airport", "atn-cpdlc.dM105Airport",
7080 FT_STRING
, BASE_NONE
, NULL
, 0,
7081 "Airport", HFILL
}},
7082 { &hf_atn_cpdlc_dM106Level
,
7083 { "dM106Level", "atn-cpdlc.dM106Level",
7084 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
7086 { &hf_atn_cpdlc_dM107NULL
,
7087 { "dM107NULL", "atn-cpdlc.dM107NULL_element",
7088 FT_NONE
, BASE_NONE
, NULL
, 0,
7090 { &hf_atn_cpdlc_dM108NULL
,
7091 { "dM108NULL", "atn-cpdlc.dM108NULL_element",
7092 FT_NONE
, BASE_NONE
, NULL
, 0,
7094 { &hf_atn_cpdlc_dM109Time
,
7095 { "dM109Time", "atn-cpdlc.dM109Time_element",
7096 FT_NONE
, BASE_NONE
, NULL
, 0,
7098 { &hf_atn_cpdlc_dM110Position
,
7099 { "dM110Position", "atn-cpdlc.dM110Position",
7100 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7101 "Position", HFILL
}},
7102 { &hf_atn_cpdlc_dM111TimePosition
,
7103 { "dM111TimePosition", "atn-cpdlc.dM111TimePosition_element",
7104 FT_NONE
, BASE_NONE
, NULL
, 0,
7105 "TimePosition", HFILL
}},
7106 { &hf_atn_cpdlc_dM112NULL
,
7107 { "dM112NULL", "atn-cpdlc.dM112NULL_element",
7108 FT_NONE
, BASE_NONE
, NULL
, 0,
7110 { &hf_atn_cpdlc_dM113SpeedTypeSpeedTypeSpeedTypeSpeed
,
7111 { "dM113SpeedTypeSpeedTypeSpeedTypeSpeed", "atn-cpdlc.dM113SpeedTypeSpeedTypeSpeedTypeSpeed_element",
7112 FT_NONE
, BASE_NONE
, NULL
, 0,
7113 "SpeedTypeSpeedTypeSpeedTypeSpeed", HFILL
}},
7114 { &hf_atn_cpdlc_altimeterEnglish
,
7115 { "altimeterEnglish", "atn-cpdlc.altimeterEnglish",
7116 FT_UINT32
, BASE_DEC
, NULL
, 0,
7118 { &hf_atn_cpdlc_altimeterMetric
,
7119 { "altimeterMetric", "atn-cpdlc.altimeterMetric",
7120 FT_UINT32
, BASE_DEC
, NULL
, 0,
7122 { &hf_atn_cpdlc_position
,
7123 { "position", "atn-cpdlc.position",
7124 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7126 { &hf_atn_cpdlc_aTWDistance
,
7127 { "aTWDistance", "atn-cpdlc.aTWDistance_element",
7128 FT_NONE
, BASE_NONE
, NULL
, 0,
7130 { &hf_atn_cpdlc_speed
,
7131 { "speed", "atn-cpdlc.speed",
7132 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
7134 { &hf_atn_cpdlc_aTWLevels
,
7135 { "aTWLevels", "atn-cpdlc.aTWLevels",
7136 FT_UINT32
, BASE_DEC
, NULL
, 0,
7137 "ATWLevelSequence", HFILL
}},
7138 { &hf_atn_cpdlc_atw
,
7139 { "atw", "atn-cpdlc.atw",
7140 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ATWLevelTolerance_vals
), 0,
7141 "ATWLevelTolerance", HFILL
}},
7142 { &hf_atn_cpdlc_level
,
7143 { "level", "atn-cpdlc.level",
7144 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
7146 { &hf_atn_cpdlc_ATWLevelSequence_item
,
7147 { "ATWLevel", "atn-cpdlc.ATWLevel_element",
7148 FT_NONE
, BASE_NONE
, NULL
, 0,
7150 { &hf_atn_cpdlc_atwDistanceTolerance
,
7151 { "atwDistanceTolerance", "atn-cpdlc.atwDistanceTolerance",
7152 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ATWDistanceTolerance_vals
), 0,
7154 { &hf_atn_cpdlc_distance
,
7155 { "distance", "atn-cpdlc.distance",
7156 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Distance_vals
), 0,
7158 { &hf_atn_cpdlc_Code_item
,
7159 { "CodeOctalDigit", "atn-cpdlc.CodeOctalDigit",
7160 FT_UINT32
, BASE_DEC
, NULL
, 0,
7162 { &hf_atn_cpdlc_time
,
7163 { "time", "atn-cpdlc.time_element",
7164 FT_NONE
, BASE_NONE
, NULL
, 0,
7166 { &hf_atn_cpdlc_timeTolerance
,
7167 { "timeTolerance", "atn-cpdlc.timeTolerance",
7168 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_TimeTolerance_vals
), 0,
7170 { &hf_atn_cpdlc_year
,
7171 { "year", "atn-cpdlc.year",
7172 FT_UINT32
, BASE_DEC
, NULL
, 0,
7174 { &hf_atn_cpdlc_month
,
7175 { "month", "atn-cpdlc.month",
7176 FT_UINT32
, BASE_DEC
, NULL
, 0,
7178 { &hf_atn_cpdlc_day
,
7179 { "day", "atn-cpdlc.day",
7180 FT_UINT32
, BASE_DEC
, NULL
, 0,
7182 { &hf_atn_cpdlc_date
,
7183 { "date", "atn-cpdlc.date_element",
7184 FT_NONE
, BASE_NONE
, NULL
, 0,
7186 { &hf_atn_cpdlc_timehhmmss
,
7187 { "timehhmmss", "atn-cpdlc.timehhmmss_element",
7188 FT_NONE
, BASE_NONE
, NULL
, 0,
7190 { &hf_atn_cpdlc_degreesMagnetic
,
7191 { "degreesMagnetic", "atn-cpdlc.degreesMagnetic",
7192 FT_UINT32
, BASE_DEC
, NULL
, 0,
7194 { &hf_atn_cpdlc_degreesTrue
,
7195 { "degreesTrue", "atn-cpdlc.degreesTrue",
7196 FT_UINT32
, BASE_DEC
, NULL
, 0,
7198 { &hf_atn_cpdlc_aircraftFlightIdentification
,
7199 { "aircraftFlightIdentification", "atn-cpdlc.aircraftFlightIdentification",
7200 FT_STRING
, BASE_NONE
, NULL
, 0,
7202 { &hf_atn_cpdlc_clearanceLimit
,
7203 { "clearanceLimit", "atn-cpdlc.clearanceLimit",
7204 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7205 "Position", HFILL
}},
7206 { &hf_atn_cpdlc_flightInformation
,
7207 { "flightInformation", "atn-cpdlc.flightInformation",
7208 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_FlightInformation_vals
), 0,
7210 { &hf_atn_cpdlc_furtherInstructions
,
7211 { "furtherInstructions", "atn-cpdlc.furtherInstructions_element",
7212 FT_NONE
, BASE_NONE
, NULL
, 0,
7214 { &hf_atn_cpdlc_direction
,
7215 { "direction", "atn-cpdlc.direction",
7216 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Direction_vals
), 0,
7218 { &hf_atn_cpdlc_degrees
,
7219 { "degrees", "atn-cpdlc.degrees",
7220 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
7222 { &hf_atn_cpdlc_distanceNm
,
7223 { "distanceNm", "atn-cpdlc.distanceNm",
7224 FT_UINT32
, BASE_DEC
, NULL
, 0,
7226 { &hf_atn_cpdlc_distanceKm
,
7227 { "distanceKm", "atn-cpdlc.distanceKm",
7228 FT_UINT32
, BASE_DEC
, NULL
, 0,
7230 { &hf_atn_cpdlc_distanceSpecifiedNm
,
7231 { "distanceSpecifiedNm", "atn-cpdlc.distanceSpecifiedNm",
7232 FT_UINT32
, BASE_DEC
, NULL
, 0,
7234 { &hf_atn_cpdlc_distanceSpecifiedKm
,
7235 { "distanceSpecifiedKm", "atn-cpdlc.distanceSpecifiedKm",
7236 FT_UINT32
, BASE_DEC
, NULL
, 0,
7238 { &hf_atn_cpdlc_distanceSpecified
,
7239 { "distanceSpecified", "atn-cpdlc.distanceSpecified",
7240 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_DistanceSpecified_vals
), 0,
7242 { &hf_atn_cpdlc_distanceSpecifiedDirection
,
7243 { "distanceSpecifiedDirection", "atn-cpdlc.distanceSpecifiedDirection_element",
7244 FT_NONE
, BASE_NONE
, NULL
, 0,
7246 { &hf_atn_cpdlc_noFacility
,
7247 { "noFacility", "atn-cpdlc.noFacility_element",
7248 FT_NONE
, BASE_NONE
, NULL
, 0,
7250 { &hf_atn_cpdlc_facilityDesignation
,
7251 { "facilityDesignation", "atn-cpdlc.facilityDesignation",
7252 FT_STRING
, BASE_NONE
, NULL
, 0,
7254 { &hf_atn_cpdlc_altimeter
,
7255 { "altimeter", "atn-cpdlc.altimeter",
7256 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Altimeter_vals
), 0,
7258 { &hf_atn_cpdlc_aTISCode
,
7259 { "aTISCode", "atn-cpdlc.aTISCode",
7260 FT_STRING
, BASE_NONE
, NULL
, 0,
7262 { &hf_atn_cpdlc_fixname_name
,
7263 { "name", "atn-cpdlc.name",
7264 FT_STRING
, BASE_NONE
, NULL
, 0,
7266 { &hf_atn_cpdlc_latlon
,
7267 { "latlon", "atn-cpdlc.latlon_element",
7268 FT_NONE
, BASE_NONE
, NULL
, 0,
7269 "LatitudeLongitude", HFILL
}},
7270 { &hf_atn_cpdlc_routeOfFlight
,
7271 { "routeOfFlight", "atn-cpdlc.routeOfFlight",
7272 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_RouteInformation_vals
), 0,
7273 "RouteInformation", HFILL
}},
7274 { &hf_atn_cpdlc_levelsOfFlight
,
7275 { "levelsOfFlight", "atn-cpdlc.levelsOfFlight",
7276 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LevelsOfFlight_vals
), 0,
7278 { &hf_atn_cpdlc_routeAndLevels
,
7279 { "routeAndLevels", "atn-cpdlc.routeAndLevels_element",
7280 FT_NONE
, BASE_NONE
, NULL
, 0,
7282 { &hf_atn_cpdlc_frequencyhf
,
7283 { "frequencyhf", "atn-cpdlc.frequencyhf",
7284 FT_UINT32
, BASE_DEC
, NULL
, 0,
7286 { &hf_atn_cpdlc_frequencyvhf
,
7287 { "frequencyvhf", "atn-cpdlc.frequencyvhf",
7288 FT_UINT32
, BASE_DEC
, NULL
, 0,
7290 { &hf_atn_cpdlc_frequencyuhf
,
7291 { "frequencyuhf", "atn-cpdlc.frequencyuhf",
7292 FT_UINT32
, BASE_DEC
, NULL
, 0,
7294 { &hf_atn_cpdlc_frequencysatchannel
,
7295 { "frequencysatchannel", "atn-cpdlc.frequencysatchannel",
7296 FT_STRING
, BASE_NONE
, NULL
, 0,
7298 { &hf_atn_cpdlc_code
,
7299 { "code", "atn-cpdlc.code",
7300 FT_UINT32
, BASE_DEC
, NULL
, 0,
7302 { &hf_atn_cpdlc_frequencyDeparture
,
7303 { "frequencyDeparture", "atn-cpdlc.frequencyDeparture_element",
7304 FT_NONE
, BASE_NONE
, NULL
, 0,
7305 "UnitNameFrequency", HFILL
}},
7306 { &hf_atn_cpdlc_clearanceExpiryTime
,
7307 { "clearanceExpiryTime", "atn-cpdlc.clearanceExpiryTime_element",
7308 FT_NONE
, BASE_NONE
, NULL
, 0,
7310 { &hf_atn_cpdlc_airportDeparture
,
7311 { "airportDeparture", "atn-cpdlc.airportDeparture",
7312 FT_STRING
, BASE_NONE
, NULL
, 0,
7313 "Airport", HFILL
}},
7314 { &hf_atn_cpdlc_airportDestination
,
7315 { "airportDestination", "atn-cpdlc.airportDestination",
7316 FT_STRING
, BASE_NONE
, NULL
, 0,
7317 "Airport", HFILL
}},
7318 { &hf_atn_cpdlc_timeDeparture
,
7319 { "timeDeparture", "atn-cpdlc.timeDeparture_element",
7320 FT_NONE
, BASE_NONE
, NULL
, 0,
7322 { &hf_atn_cpdlc_runwayDeparture
,
7323 { "runwayDeparture", "atn-cpdlc.runwayDeparture_element",
7324 FT_NONE
, BASE_NONE
, NULL
, 0,
7326 { &hf_atn_cpdlc_revisionNumber
,
7327 { "revisionNumber", "atn-cpdlc.revisionNumber",
7328 FT_UINT32
, BASE_DEC
, NULL
, 0,
7330 { &hf_atn_cpdlc_holdatwaypointspeedlow
,
7331 { "holdatwaypointspeedlow", "atn-cpdlc.holdatwaypointspeedlow",
7332 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
7334 { &hf_atn_cpdlc_aTWlevel
,
7335 { "aTWlevel", "atn-cpdlc.aTWlevel_element",
7336 FT_NONE
, BASE_NONE
, NULL
, 0,
7338 { &hf_atn_cpdlc_holdatwaypointspeedhigh
,
7339 { "holdatwaypointspeedhigh", "atn-cpdlc.holdatwaypointspeedhigh",
7340 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
7342 { &hf_atn_cpdlc_eFCtime
,
7343 { "eFCtime", "atn-cpdlc.eFCtime_element",
7344 FT_NONE
, BASE_NONE
, NULL
, 0,
7346 { &hf_atn_cpdlc_legtype
,
7347 { "legtype", "atn-cpdlc.legtype",
7348 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LegType_vals
), 0,
7350 { &hf_atn_cpdlc_legType
,
7351 { "legType", "atn-cpdlc.legType",
7352 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LegType_vals
), 0,
7354 { &hf_atn_cpdlc_fromSelection
,
7355 { "fromSelection", "atn-cpdlc.fromSelection",
7356 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_InterceptCourseFromSelection_vals
), 0,
7357 "InterceptCourseFromSelection", HFILL
}},
7358 { &hf_atn_cpdlc_publishedIdentifier
,
7359 { "publishedIdentifier", "atn-cpdlc.publishedIdentifier",
7360 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_PublishedIdentifier_vals
), 0,
7362 { &hf_atn_cpdlc_latitudeLongitude
,
7363 { "latitudeLongitude", "atn-cpdlc.latitudeLongitude_element",
7364 FT_NONE
, BASE_NONE
, NULL
, 0,
7366 { &hf_atn_cpdlc_placeBearingPlaceBearing
,
7367 { "placeBearingPlaceBearing", "atn-cpdlc.placeBearingPlaceBearing",
7368 FT_UINT32
, BASE_DEC
, NULL
, 0,
7370 { &hf_atn_cpdlc_placeBearingDistance
,
7371 { "placeBearingDistance", "atn-cpdlc.placeBearingDistance_element",
7372 FT_NONE
, BASE_NONE
, NULL
, 0,
7374 { &hf_atn_cpdlc_latitudeType
,
7375 { "latitudeType", "atn-cpdlc.latitudeType",
7376 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LatitudeType_vals
), 0,
7378 { &hf_atn_cpdlc_latitudeDirection
,
7379 { "latitudeDirection", "atn-cpdlc.latitudeDirection",
7380 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LatitudeDirection_vals
), 0,
7382 { &hf_atn_cpdlc_latitudeWholeDegrees
,
7383 { "latitudeWholeDegrees", "atn-cpdlc.latitudeWholeDegrees",
7384 FT_UINT32
, BASE_DEC
, NULL
, 0,
7386 { &hf_atn_cpdlc_minutesLatLon
,
7387 { "minutesLatLon", "atn-cpdlc.minutesLatLon",
7388 FT_UINT32
, BASE_DEC
, NULL
, 0,
7390 { &hf_atn_cpdlc_latlonWholeMinutes
,
7391 { "latlonWholeMinutes", "atn-cpdlc.latlonWholeMinutes",
7392 FT_UINT32
, BASE_DEC
, NULL
, 0,
7394 { &hf_atn_cpdlc_secondsLatLon
,
7395 { "secondsLatLon", "atn-cpdlc.secondsLatLon",
7396 FT_UINT32
, BASE_DEC
, NULL
, 0,
7398 { &hf_atn_cpdlc_latitude
,
7399 { "latitude", "atn-cpdlc.latitude_element",
7400 FT_NONE
, BASE_NONE
, NULL
, 0,
7402 { &hf_atn_cpdlc_longitude
,
7403 { "longitude", "atn-cpdlc.longitude_element",
7404 FT_NONE
, BASE_NONE
, NULL
, 0,
7406 { &hf_atn_cpdlc_latitudeDegrees
,
7407 { "latitudeDegrees", "atn-cpdlc.latitudeDegrees",
7408 FT_UINT32
, BASE_DEC
, NULL
, 0,
7410 { &hf_atn_cpdlc_latitudeDegreesMinutes
,
7411 { "latitudeDegreesMinutes", "atn-cpdlc.latitudeDegreesMinutes_element",
7412 FT_NONE
, BASE_NONE
, NULL
, 0,
7414 { &hf_atn_cpdlc_latitudeDMS
,
7415 { "latitudeDMS", "atn-cpdlc.latitudeDMS_element",
7416 FT_NONE
, BASE_NONE
, NULL
, 0,
7417 "LatitudeDegreesMinutesSeconds", HFILL
}},
7418 { &hf_atn_cpdlc_latitudeReportingPoints
,
7419 { "latitudeReportingPoints", "atn-cpdlc.latitudeReportingPoints_element",
7420 FT_NONE
, BASE_NONE
, NULL
, 0,
7422 { &hf_atn_cpdlc_longitudeReportingPoints
,
7423 { "longitudeReportingPoints", "atn-cpdlc.longitudeReportingPoints_element",
7424 FT_NONE
, BASE_NONE
, NULL
, 0,
7426 { &hf_atn_cpdlc_legDistanceEnglish
,
7427 { "legDistanceEnglish", "atn-cpdlc.legDistanceEnglish",
7428 FT_UINT32
, BASE_DEC
, NULL
, 0,
7430 { &hf_atn_cpdlc_legDistanceMetric
,
7431 { "legDistanceMetric", "atn-cpdlc.legDistanceMetric",
7432 FT_UINT32
, BASE_DEC
, NULL
, 0,
7434 { &hf_atn_cpdlc_legDistance
,
7435 { "legDistance", "atn-cpdlc.legDistance",
7436 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LegDistance_vals
), 0,
7438 { &hf_atn_cpdlc_legTime
,
7439 { "legTime", "atn-cpdlc.legTime",
7440 FT_UINT32
, BASE_DEC
, NULL
, 0,
7442 { &hf_atn_cpdlc_singleLevel
,
7443 { "singleLevel", "atn-cpdlc.singleLevel",
7444 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LevelType_vals
), 0,
7445 "LevelType", HFILL
}},
7446 { &hf_atn_cpdlc_blockLevel
,
7447 { "blockLevel", "atn-cpdlc.blockLevel",
7448 FT_UINT32
, BASE_DEC
, NULL
, 0,
7449 "SEQUENCE_SIZE_2_OF_LevelType", HFILL
}},
7450 { &hf_atn_cpdlc_blockLevel_item
,
7451 { "LevelType", "atn-cpdlc.LevelType",
7452 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LevelType_vals
), 0,
7454 { &hf_atn_cpdlc_LevelLevel_item
,
7455 { "Level", "atn-cpdlc.Level",
7456 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
7458 { &hf_atn_cpdlc_procedureName
,
7459 { "procedureName", "atn-cpdlc.procedureName_element",
7460 FT_NONE
, BASE_NONE
, NULL
, 0,
7462 { &hf_atn_cpdlc_levelProcedureName
,
7463 { "levelProcedureName", "atn-cpdlc.levelProcedureName_element",
7464 FT_NONE
, BASE_NONE
, NULL
, 0,
7466 { &hf_atn_cpdlc_levelspeed_speed
,
7467 { "speed", "atn-cpdlc.speed",
7468 FT_UINT32
, BASE_DEC
, NULL
, 0,
7469 "SpeedSpeed", HFILL
}},
7470 { &hf_atn_cpdlc_speeds
,
7471 { "speeds", "atn-cpdlc.speeds",
7472 FT_UINT32
, BASE_DEC
, NULL
, 0,
7473 "SpeedSpeed", HFILL
}},
7474 { &hf_atn_cpdlc_levelFeet
,
7475 { "levelFeet", "atn-cpdlc.levelFeet",
7476 FT_INT32
, BASE_DEC
, NULL
, 0,
7478 { &hf_atn_cpdlc_levelMeters
,
7479 { "levelMeters", "atn-cpdlc.levelMeters",
7480 FT_INT32
, BASE_DEC
, NULL
, 0,
7482 { &hf_atn_cpdlc_levelFlightLevel
,
7483 { "levelFlightLevel", "atn-cpdlc.levelFlightLevel",
7484 FT_UINT32
, BASE_DEC
, NULL
, 0,
7486 { &hf_atn_cpdlc_levelFlightLevelMetric
,
7487 { "levelFlightLevelMetric", "atn-cpdlc.levelFlightLevelMetric",
7488 FT_UINT32
, BASE_DEC
, NULL
, 0,
7490 { &hf_atn_cpdlc_longitudeType
,
7491 { "longitudeType", "atn-cpdlc.longitudeType",
7492 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LongitudeType_vals
), 0,
7494 { &hf_atn_cpdlc_longitudeDirection
,
7495 { "longitudeDirection", "atn-cpdlc.longitudeDirection",
7496 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LongitudeDirection_vals
), 0,
7498 { &hf_atn_cpdlc_longitudeWholeDegrees
,
7499 { "longitudeWholeDegrees", "atn-cpdlc.longitudeWholeDegrees",
7500 FT_UINT32
, BASE_DEC
, NULL
, 0,
7502 { &hf_atn_cpdlc_latLonWholeMinutes
,
7503 { "latLonWholeMinutes", "atn-cpdlc.latLonWholeMinutes",
7504 FT_UINT32
, BASE_DEC
, NULL
, 0,
7506 { &hf_atn_cpdlc_longitudeDegrees
,
7507 { "longitudeDegrees", "atn-cpdlc.longitudeDegrees",
7508 FT_UINT32
, BASE_DEC
, NULL
, 0,
7510 { &hf_atn_cpdlc_longitudeDegreesMinutes
,
7511 { "longitudeDegreesMinutes", "atn-cpdlc.longitudeDegreesMinutes_element",
7512 FT_NONE
, BASE_NONE
, NULL
, 0,
7514 { &hf_atn_cpdlc_longitudeDMS
,
7515 { "longitudeDMS", "atn-cpdlc.longitudeDMS_element",
7516 FT_NONE
, BASE_NONE
, NULL
, 0,
7517 "LongitudeDegreesMinutesSeconds", HFILL
}},
7518 { &hf_atn_cpdlc_navaid_name
,
7519 { "name", "atn-cpdlc.name",
7520 FT_STRING
, BASE_NONE
, NULL
, 0,
7521 "NavaidName", HFILL
}},
7522 { &hf_atn_cpdlc_PlaceBearingPlaceBearing_item
,
7523 { "PlaceBearing", "atn-cpdlc.PlaceBearing_element",
7524 FT_NONE
, BASE_NONE
, NULL
, 0,
7526 { &hf_atn_cpdlc_fixName
,
7527 { "fixName", "atn-cpdlc.fixName_element",
7528 FT_NONE
, BASE_NONE
, NULL
, 0,
7530 { &hf_atn_cpdlc_navaid
,
7531 { "navaid", "atn-cpdlc.navaid_element",
7532 FT_NONE
, BASE_NONE
, NULL
, 0,
7534 { &hf_atn_cpdlc_airport
,
7535 { "airport", "atn-cpdlc.airport",
7536 FT_STRING
, BASE_NONE
, NULL
, 0,
7538 { &hf_atn_cpdlc_levels
,
7539 { "levels", "atn-cpdlc.levels",
7540 FT_UINT32
, BASE_DEC
, NULL
, 0,
7541 "LevelLevel", HFILL
}},
7542 { &hf_atn_cpdlc_positionlevel
,
7543 { "positionlevel", "atn-cpdlc.positionlevel_element",
7544 FT_NONE
, BASE_NONE
, NULL
, 0,
7546 { &hf_atn_cpdlc_PositionPosition_item
,
7547 { "Position", "atn-cpdlc.Position",
7548 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7550 { &hf_atn_cpdlc_positioncurrent
,
7551 { "positioncurrent", "atn-cpdlc.positioncurrent",
7552 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7553 "Position", HFILL
}},
7554 { &hf_atn_cpdlc_timeatpositioncurrent
,
7555 { "timeatpositioncurrent", "atn-cpdlc.timeatpositioncurrent_element",
7556 FT_NONE
, BASE_NONE
, NULL
, 0,
7558 { &hf_atn_cpdlc_fixnext
,
7559 { "fixnext", "atn-cpdlc.fixnext",
7560 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7561 "Position", HFILL
}},
7562 { &hf_atn_cpdlc_timeetaatfixnext
,
7563 { "timeetaatfixnext", "atn-cpdlc.timeetaatfixnext_element",
7564 FT_NONE
, BASE_NONE
, NULL
, 0,
7566 { &hf_atn_cpdlc_fixnextplusone
,
7567 { "fixnextplusone", "atn-cpdlc.fixnextplusone",
7568 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7569 "Position", HFILL
}},
7570 { &hf_atn_cpdlc_timeetaatdestination
,
7571 { "timeetaatdestination", "atn-cpdlc.timeetaatdestination_element",
7572 FT_NONE
, BASE_NONE
, NULL
, 0,
7574 { &hf_atn_cpdlc_remainingFuel
,
7575 { "remainingFuel", "atn-cpdlc.remainingFuel_element",
7576 FT_NONE
, BASE_NONE
, NULL
, 0,
7578 { &hf_atn_cpdlc_temperature
,
7579 { "temperature", "atn-cpdlc.temperature",
7580 FT_INT32
, BASE_DEC
, NULL
, 0,
7582 { &hf_atn_cpdlc_winds
,
7583 { "winds", "atn-cpdlc.winds_element",
7584 FT_NONE
, BASE_NONE
, NULL
, 0,
7586 { &hf_atn_cpdlc_turbulence
,
7587 { "turbulence", "atn-cpdlc.turbulence",
7588 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Turbulence_vals
), 0,
7590 { &hf_atn_cpdlc_icing
,
7591 { "icing", "atn-cpdlc.icing",
7592 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Icing_vals
), 0,
7594 { &hf_atn_cpdlc_speedground
,
7595 { "speedground", "atn-cpdlc.speedground",
7596 FT_INT32
, BASE_DEC
, NULL
, 0,
7598 { &hf_atn_cpdlc_verticalChange
,
7599 { "verticalChange", "atn-cpdlc.verticalChange_element",
7600 FT_NONE
, BASE_NONE
, NULL
, 0,
7602 { &hf_atn_cpdlc_trackAngle
,
7603 { "trackAngle", "atn-cpdlc.trackAngle",
7604 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
7605 "Degrees", HFILL
}},
7606 { &hf_atn_cpdlc_heading
,
7607 { "heading", "atn-cpdlc.heading",
7608 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Degrees_vals
), 0,
7609 "Degrees", HFILL
}},
7610 { &hf_atn_cpdlc_humidity
,
7611 { "humidity", "atn-cpdlc.humidity",
7612 FT_UINT32
, BASE_DEC
, NULL
, 0,
7614 { &hf_atn_cpdlc_reportedWaypointPosition
,
7615 { "reportedWaypointPosition", "atn-cpdlc.reportedWaypointPosition",
7616 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Position_vals
), 0,
7617 "Position", HFILL
}},
7618 { &hf_atn_cpdlc_reportedWaypointTime
,
7619 { "reportedWaypointTime", "atn-cpdlc.reportedWaypointTime_element",
7620 FT_NONE
, BASE_NONE
, NULL
, 0,
7622 { &hf_atn_cpdlc_reportedWaypointLevel
,
7623 { "reportedWaypointLevel", "atn-cpdlc.reportedWaypointLevel",
7624 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Level_vals
), 0,
7626 { &hf_atn_cpdlc_routeClearanceIndex
,
7627 { "routeClearanceIndex", "atn-cpdlc.routeClearanceIndex",
7628 FT_UINT32
, BASE_DEC
, NULL
, 0,
7630 { &hf_atn_cpdlc_positionTime
,
7631 { "positionTime", "atn-cpdlc.positionTime_element",
7632 FT_NONE
, BASE_NONE
, NULL
, 0,
7634 { &hf_atn_cpdlc_times
,
7635 { "times", "atn-cpdlc.times",
7636 FT_UINT32
, BASE_DEC
, NULL
, 0,
7637 "TimeTime", HFILL
}},
7638 { &hf_atn_cpdlc_unitname
,
7639 { "unitname", "atn-cpdlc.unitname_element",
7640 FT_NONE
, BASE_NONE
, NULL
, 0,
7642 { &hf_atn_cpdlc_frequency
,
7643 { "frequency", "atn-cpdlc.frequency",
7644 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Frequency_vals
), 0,
7646 { &hf_atn_cpdlc_type
,
7647 { "type", "atn-cpdlc.type",
7648 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ProcedureType_vals
), 0,
7649 "ProcedureType", HFILL
}},
7650 { &hf_atn_cpdlc_procedure
,
7651 { "procedure", "atn-cpdlc.procedure",
7652 FT_STRING
, BASE_NONE
, NULL
, 0,
7654 { &hf_atn_cpdlc_transition
,
7655 { "transition", "atn-cpdlc.transition",
7656 FT_STRING
, BASE_NONE
, NULL
, 0,
7657 "ProcedureTransition", HFILL
}},
7658 { &hf_atn_cpdlc_personsOnBoard
,
7659 { "personsOnBoard", "atn-cpdlc.personsOnBoard",
7660 FT_UINT32
, BASE_DEC
, NULL
, 0,
7662 { &hf_atn_cpdlc_latLonReportingPoints
,
7663 { "latLonReportingPoints", "atn-cpdlc.latLonReportingPoints",
7664 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_LatLonReportingPoints_vals
), 0,
7666 { &hf_atn_cpdlc_degreeIncrement
,
7667 { "degreeIncrement", "atn-cpdlc.degreeIncrement",
7668 FT_UINT32
, BASE_DEC
, NULL
, 0,
7670 { &hf_atn_cpdlc_procedureDeparture
,
7671 { "procedureDeparture", "atn-cpdlc.procedureDeparture_element",
7672 FT_NONE
, BASE_NONE
, NULL
, 0,
7673 "ProcedureName", HFILL
}},
7674 { &hf_atn_cpdlc_runwayArrival
,
7675 { "runwayArrival", "atn-cpdlc.runwayArrival_element",
7676 FT_NONE
, BASE_NONE
, NULL
, 0,
7678 { &hf_atn_cpdlc_procedureApproach
,
7679 { "procedureApproach", "atn-cpdlc.procedureApproach_element",
7680 FT_NONE
, BASE_NONE
, NULL
, 0,
7681 "ProcedureName", HFILL
}},
7682 { &hf_atn_cpdlc_procedureArrival
,
7683 { "procedureArrival", "atn-cpdlc.procedureArrival_element",
7684 FT_NONE
, BASE_NONE
, NULL
, 0,
7685 "ProcedureName", HFILL
}},
7686 { &hf_atn_cpdlc_routeInformations
,
7687 { "routeInformations", "atn-cpdlc.routeInformations",
7688 FT_UINT32
, BASE_DEC
, NULL
, 0,
7689 "SEQUENCE_SIZE_1_128_OF_RouteInformation", HFILL
}},
7690 { &hf_atn_cpdlc_routeInformations_item
,
7691 { "RouteInformation", "atn-cpdlc.RouteInformation",
7692 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_RouteInformation_vals
), 0,
7694 { &hf_atn_cpdlc_routeInformationAdditional
,
7695 { "routeInformationAdditional", "atn-cpdlc.routeInformationAdditional_element",
7696 FT_NONE
, BASE_NONE
, NULL
, 0,
7698 { &hf_atn_cpdlc_aTSRouteDesignator
,
7699 { "aTSRouteDesignator", "atn-cpdlc.aTSRouteDesignator",
7700 FT_STRING
, BASE_NONE
, NULL
, 0,
7702 { &hf_atn_cpdlc_aTWAlongTrackWaypoints
,
7703 { "aTWAlongTrackWaypoints", "atn-cpdlc.aTWAlongTrackWaypoints",
7704 FT_UINT32
, BASE_DEC
, NULL
, 0,
7705 "SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint", HFILL
}},
7706 { &hf_atn_cpdlc_aTWAlongTrackWaypoints_item
,
7707 { "ATWAlongTrackWaypoint", "atn-cpdlc.ATWAlongTrackWaypoint_element",
7708 FT_NONE
, BASE_NONE
, NULL
, 0,
7710 { &hf_atn_cpdlc_reportingpoints
,
7711 { "reportingpoints", "atn-cpdlc.reportingpoints_element",
7712 FT_NONE
, BASE_NONE
, NULL
, 0,
7714 { &hf_atn_cpdlc_interceptCourseFroms
,
7715 { "interceptCourseFroms", "atn-cpdlc.interceptCourseFroms",
7716 FT_UINT32
, BASE_DEC
, NULL
, 0,
7717 "SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom", HFILL
}},
7718 { &hf_atn_cpdlc_interceptCourseFroms_item
,
7719 { "InterceptCourseFrom", "atn-cpdlc.InterceptCourseFrom_element",
7720 FT_NONE
, BASE_NONE
, NULL
, 0,
7722 { &hf_atn_cpdlc_holdAtWaypoints
,
7723 { "holdAtWaypoints", "atn-cpdlc.holdAtWaypoints",
7724 FT_UINT32
, BASE_DEC
, NULL
, 0,
7725 "SEQUENCE_SIZE_1_8_OF_Holdatwaypoint", HFILL
}},
7726 { &hf_atn_cpdlc_holdAtWaypoints_item
,
7727 { "Holdatwaypoint", "atn-cpdlc.Holdatwaypoint_element",
7728 FT_NONE
, BASE_NONE
, NULL
, 0,
7730 { &hf_atn_cpdlc_waypointSpeedLevels
,
7731 { "waypointSpeedLevels", "atn-cpdlc.waypointSpeedLevels",
7732 FT_UINT32
, BASE_DEC
, NULL
, 0,
7733 "SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel", HFILL
}},
7734 { &hf_atn_cpdlc_waypointSpeedLevels_item
,
7735 { "WaypointSpeedLevel", "atn-cpdlc.WaypointSpeedLevel_element",
7736 FT_NONE
, BASE_NONE
, NULL
, 0,
7738 { &hf_atn_cpdlc_rTARequiredTimeArrivals
,
7739 { "rTARequiredTimeArrivals", "atn-cpdlc.rTARequiredTimeArrivals",
7740 FT_UINT32
, BASE_DEC
, NULL
, 0,
7741 "SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival", HFILL
}},
7742 { &hf_atn_cpdlc_rTARequiredTimeArrivals_item
,
7743 { "RTARequiredTimeArrival", "atn-cpdlc.RTARequiredTimeArrival_element",
7744 FT_NONE
, BASE_NONE
, NULL
, 0,
7746 { &hf_atn_cpdlc_rTATime
,
7747 { "rTATime", "atn-cpdlc.rTATime_element",
7748 FT_NONE
, BASE_NONE
, NULL
, 0,
7750 { &hf_atn_cpdlc_rTATolerance
,
7751 { "rTATolerance", "atn-cpdlc.rTATolerance",
7752 FT_UINT32
, BASE_DEC
, NULL
, 0,
7754 { &hf_atn_cpdlc_runway_direction
,
7755 { "direction", "atn-cpdlc.direction",
7756 FT_UINT32
, BASE_DEC
, NULL
, 0,
7757 "RunwayDirection", HFILL
}},
7758 { &hf_atn_cpdlc_configuration
,
7759 { "configuration", "atn-cpdlc.configuration",
7760 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_RunwayConfiguration_vals
), 0,
7761 "RunwayConfiguration", HFILL
}},
7762 { &hf_atn_cpdlc_runway
,
7763 { "runway", "atn-cpdlc.runway_element",
7764 FT_NONE
, BASE_NONE
, NULL
, 0,
7766 { &hf_atn_cpdlc_rVR
,
7767 { "rVR", "atn-cpdlc.rVR",
7768 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_RVR_vals
), 0,
7770 { &hf_atn_cpdlc_rVRFeet
,
7771 { "rVRFeet", "atn-cpdlc.rVRFeet",
7772 FT_UINT32
, BASE_DEC
, NULL
, 0,
7774 { &hf_atn_cpdlc_rVRMeters
,
7775 { "rVRMeters", "atn-cpdlc.rVRMeters",
7776 FT_UINT32
, BASE_DEC
, NULL
, 0,
7778 { &hf_atn_cpdlc_speedIndicated
,
7779 { "speedIndicated", "atn-cpdlc.speedIndicated",
7780 FT_UINT32
, BASE_DEC
, NULL
, 0,
7782 { &hf_atn_cpdlc_speedIndicatedMetric
,
7783 { "speedIndicatedMetric", "atn-cpdlc.speedIndicatedMetric",
7784 FT_UINT32
, BASE_DEC
, NULL
, 0,
7786 { &hf_atn_cpdlc_speedTrue
,
7787 { "speedTrue", "atn-cpdlc.speedTrue",
7788 FT_UINT32
, BASE_DEC
, NULL
, 0,
7790 { &hf_atn_cpdlc_speedTrueMetric
,
7791 { "speedTrueMetric", "atn-cpdlc.speedTrueMetric",
7792 FT_UINT32
, BASE_DEC
, NULL
, 0,
7794 { &hf_atn_cpdlc_speedGround
,
7795 { "speedGround", "atn-cpdlc.speedGround",
7796 FT_INT32
, BASE_DEC
, NULL
, 0,
7798 { &hf_atn_cpdlc_speedGroundMetric
,
7799 { "speedGroundMetric", "atn-cpdlc.speedGroundMetric",
7800 FT_INT32
, BASE_DEC
, NULL
, 0,
7802 { &hf_atn_cpdlc_speedMach
,
7803 { "speedMach", "atn-cpdlc.speedMach",
7804 FT_UINT32
, BASE_DEC
, NULL
, 0,
7806 { &hf_atn_cpdlc_SpeedSpeed_item
,
7807 { "Speed", "atn-cpdlc.Speed",
7808 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_Speed_vals
), 0,
7810 { &hf_atn_cpdlc_SpeedTypeSpeedTypeSpeedType_item
,
7811 { "SpeedType", "atn-cpdlc.SpeedType",
7812 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_SpeedType_vals
), 0,
7814 { &hf_atn_cpdlc_speedTypes
,
7815 { "speedTypes", "atn-cpdlc.speedTypes",
7816 FT_UINT32
, BASE_DEC
, NULL
, 0,
7817 "SpeedTypeSpeedTypeSpeedType", HFILL
}},
7818 { &hf_atn_cpdlc_hours
,
7819 { "hours", "atn-cpdlc.hours",
7820 FT_UINT32
, BASE_DEC
, NULL
, 0,
7821 "TimeHours", HFILL
}},
7822 { &hf_atn_cpdlc_minutes
,
7823 { "minutes", "atn-cpdlc.minutes",
7824 FT_UINT32
, BASE_DEC
, NULL
, 0,
7825 "TimeMinutes", HFILL
}},
7826 { &hf_atn_cpdlc_timeDepartureAllocated
,
7827 { "timeDepartureAllocated", "atn-cpdlc.timeDepartureAllocated_element",
7828 FT_NONE
, BASE_NONE
, NULL
, 0,
7830 { &hf_atn_cpdlc_timeDepartureControlled
,
7831 { "timeDepartureControlled", "atn-cpdlc.timeDepartureControlled_element",
7832 FT_NONE
, BASE_NONE
, NULL
, 0,
7833 "ControlledTime", HFILL
}},
7834 { &hf_atn_cpdlc_timeDepartureClearanceExpected
,
7835 { "timeDepartureClearanceExpected", "atn-cpdlc.timeDepartureClearanceExpected_element",
7836 FT_NONE
, BASE_NONE
, NULL
, 0,
7838 { &hf_atn_cpdlc_departureMinimumInterval
,
7839 { "departureMinimumInterval", "atn-cpdlc.departureMinimumInterval",
7840 FT_UINT32
, BASE_DEC
, NULL
, 0,
7842 { &hf_atn_cpdlc_tofrom
,
7843 { "tofrom", "atn-cpdlc.tofrom",
7844 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ToFrom_vals
), 0,
7846 { &hf_atn_cpdlc_hoursminutes
,
7847 { "hoursminutes", "atn-cpdlc.hoursminutes_element",
7848 FT_NONE
, BASE_NONE
, NULL
, 0,
7850 { &hf_atn_cpdlc_seconds
,
7851 { "seconds", "atn-cpdlc.seconds",
7852 FT_UINT32
, BASE_DEC
, NULL
, 0,
7853 "TimeSeconds", HFILL
}},
7854 { &hf_atn_cpdlc_unitName
,
7855 { "unitName", "atn-cpdlc.unitName_element",
7856 FT_NONE
, BASE_NONE
, NULL
, 0,
7858 { &hf_atn_cpdlc_timeposition
,
7859 { "timeposition", "atn-cpdlc.timeposition_element",
7860 FT_NONE
, BASE_NONE
, NULL
, 0,
7862 { &hf_atn_cpdlc_levelspeed
,
7863 { "levelspeed", "atn-cpdlc.levelspeed_element",
7864 FT_NONE
, BASE_NONE
, NULL
, 0,
7866 { &hf_atn_cpdlc_speedspeed
,
7867 { "speedspeed", "atn-cpdlc.speedspeed",
7868 FT_UINT32
, BASE_DEC
, NULL
, 0,
7870 { &hf_atn_cpdlc_TimeTime_item
,
7871 { "Time", "atn-cpdlc.Time_element",
7872 FT_NONE
, BASE_NONE
, NULL
, 0,
7874 { &hf_atn_cpdlc_toFrom
,
7875 { "toFrom", "atn-cpdlc.toFrom",
7876 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_ToFrom_vals
), 0,
7878 { &hf_atn_cpdlc_facilityName
,
7879 { "facilityName", "atn-cpdlc.facilityName",
7880 FT_STRING
, BASE_NONE
, NULL
, 0,
7882 { &hf_atn_cpdlc_facilityFunction
,
7883 { "facilityFunction", "atn-cpdlc.facilityFunction",
7884 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_FacilityFunction_vals
), 0,
7886 { &hf_atn_cpdlc_vertical_direction
,
7887 { "direction", "atn-cpdlc.direction",
7888 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalDirection_vals
), 0,
7889 "VerticalDirection", HFILL
}},
7890 { &hf_atn_cpdlc_rate
,
7891 { "rate", "atn-cpdlc.rate",
7892 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_VerticalRate_vals
), 0,
7893 "VerticalRate", HFILL
}},
7894 { &hf_atn_cpdlc_verticalRateEnglish
,
7895 { "verticalRateEnglish", "atn-cpdlc.verticalRateEnglish",
7896 FT_UINT32
, BASE_DEC
, NULL
, 0,
7898 { &hf_atn_cpdlc_verticalRateMetric
,
7899 { "verticalRateMetric", "atn-cpdlc.verticalRateMetric",
7900 FT_UINT32
, BASE_DEC
, NULL
, 0,
7902 { &hf_atn_cpdlc_winds_direction
,
7903 { "direction", "atn-cpdlc.direction",
7904 FT_UINT32
, BASE_DEC
, NULL
, 0,
7905 "WindDirection", HFILL
}},
7906 { &hf_atn_cpdlc_winds_speed
,
7907 { "speed", "atn-cpdlc.speed",
7908 FT_UINT32
, BASE_DEC
, VALS(atn_cpdlc_WindSpeed_vals
), 0,
7909 "WindSpeed", HFILL
}},
7910 { &hf_atn_cpdlc_windSpeedEnglish
,
7911 { "windSpeedEnglish", "atn-cpdlc.windSpeedEnglish",
7912 FT_UINT32
, BASE_DEC
, NULL
, 0,
7914 { &hf_atn_cpdlc_windSpeedMetric
,
7915 { "windSpeedMetric", "atn-cpdlc.windSpeedMetric",
7916 FT_UINT32
, BASE_DEC
, NULL
, 0,
7919 /*--- End of included file: packet-atn-cpdlc-hfarr.c ---*/
7920 #line 315 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
7923 static gint
*ett
[] = {
7925 /*--- Included file: packet-atn-cpdlc-ettarr.c ---*/
7926 #line 1 "../../asn1/atn-cpdlc/packet-atn-cpdlc-ettarr.c"
7927 &ett_atn_cpdlc_GroundPDUs
,
7928 &ett_atn_cpdlc_UplinkMessage
,
7929 &ett_atn_cpdlc_AircraftPDUs
,
7930 &ett_atn_cpdlc_StartDownMessage
,
7931 &ett_atn_cpdlc_DownlinkMessage
,
7932 &ett_atn_cpdlc_ProtectedGroundPDUs
,
7933 &ett_atn_cpdlc_ProtectedUplinkMessage
,
7934 &ett_atn_cpdlc_ATCForwardMessage
,
7935 &ett_atn_cpdlc_ForwardHeader
,
7936 &ett_atn_cpdlc_ForwardMessage
,
7937 &ett_atn_cpdlc_ProtectedAircraftPDUs
,
7938 &ett_atn_cpdlc_ProtectedStartDownMessage
,
7939 &ett_atn_cpdlc_ProtectedDownlinkMessage
,
7940 &ett_atn_cpdlc_ATCUplinkMessage
,
7941 &ett_atn_cpdlc_ATCUplinkMessageData
,
7942 &ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCUplinkMsgElementId
,
7943 &ett_atn_cpdlc_T_atcuplinkmessagedata_constraineddata
,
7944 &ett_atn_cpdlc_SEQUENCE_SIZE_1_2_OF_RouteClearance
,
7945 &ett_atn_cpdlc_ATCDownlinkMessage
,
7946 &ett_atn_cpdlc_ATCDownlinkMessageData
,
7947 &ett_atn_cpdlc_SEQUENCE_SIZE_1_5_OF_ATCDownlinkMsgElementId
,
7948 &ett_atn_cpdlc_T_atcdownlinkmessagedata_constraineddata
,
7949 &ett_atn_cpdlc_ATCMessageHeader
,
7950 &ett_atn_cpdlc_ATCUplinkMsgElementId
,
7951 &ett_atn_cpdlc_ATCDownlinkMsgElementId
,
7952 &ett_atn_cpdlc_Altimeter
,
7953 &ett_atn_cpdlc_ATWAlongTrackWaypoint
,
7954 &ett_atn_cpdlc_ATWLevel
,
7955 &ett_atn_cpdlc_ATWLevelSequence
,
7956 &ett_atn_cpdlc_ATWDistance
,
7957 &ett_atn_cpdlc_Code
,
7958 &ett_atn_cpdlc_ControlledTime
,
7959 &ett_atn_cpdlc_Date
,
7960 &ett_atn_cpdlc_DateTimeGroup
,
7961 &ett_atn_cpdlc_Degrees
,
7962 &ett_atn_cpdlc_DepartureClearance
,
7963 &ett_atn_cpdlc_DirectionDegrees
,
7964 &ett_atn_cpdlc_Distance
,
7965 &ett_atn_cpdlc_DistanceSpecified
,
7966 &ett_atn_cpdlc_DistanceSpecifiedDirection
,
7967 &ett_atn_cpdlc_DistanceSpecifiedDirectionTime
,
7968 &ett_atn_cpdlc_Facility
,
7969 &ett_atn_cpdlc_FacilityDesignationAltimeter
,
7970 &ett_atn_cpdlc_FacilityDesignationATISCode
,
7971 &ett_atn_cpdlc_FixName
,
7972 &ett_atn_cpdlc_FlightInformation
,
7973 &ett_atn_cpdlc_Frequency
,
7974 &ett_atn_cpdlc_FurtherInstructions
,
7975 &ett_atn_cpdlc_Holdatwaypoint
,
7976 &ett_atn_cpdlc_HoldClearance
,
7977 &ett_atn_cpdlc_InterceptCourseFrom
,
7978 &ett_atn_cpdlc_InterceptCourseFromSelection
,
7979 &ett_atn_cpdlc_Latitude
,
7980 &ett_atn_cpdlc_LatitudeDegreesMinutes
,
7981 &ett_atn_cpdlc_LatitudeDegreesMinutesSeconds
,
7982 &ett_atn_cpdlc_LatitudeLongitude
,
7983 &ett_atn_cpdlc_LatitudeReportingPoints
,
7984 &ett_atn_cpdlc_LatitudeType
,
7985 &ett_atn_cpdlc_LatLonReportingPoints
,
7986 &ett_atn_cpdlc_LegDistance
,
7987 &ett_atn_cpdlc_LegType
,
7988 &ett_atn_cpdlc_Level
,
7989 &ett_atn_cpdlc_SEQUENCE_SIZE_2_OF_LevelType
,
7990 &ett_atn_cpdlc_LevelLevel
,
7991 &ett_atn_cpdlc_LevelPosition
,
7992 &ett_atn_cpdlc_LevelProcedureName
,
7993 &ett_atn_cpdlc_LevelsOfFlight
,
7994 &ett_atn_cpdlc_LevelSpeed
,
7995 &ett_atn_cpdlc_LevelSpeedSpeed
,
7996 &ett_atn_cpdlc_LevelTime
,
7997 &ett_atn_cpdlc_LevelType
,
7998 &ett_atn_cpdlc_Longitude
,
7999 &ett_atn_cpdlc_LongitudeDegreesMinutes
,
8000 &ett_atn_cpdlc_LongitudeDegreesMinutesSeconds
,
8001 &ett_atn_cpdlc_LongitudeReportingPoints
,
8002 &ett_atn_cpdlc_LongitudeType
,
8003 &ett_atn_cpdlc_Navaid
,
8004 &ett_atn_cpdlc_PlaceBearing
,
8005 &ett_atn_cpdlc_PlaceBearingDistance
,
8006 &ett_atn_cpdlc_PlaceBearingPlaceBearing
,
8007 &ett_atn_cpdlc_Position
,
8008 &ett_atn_cpdlc_PositionDegrees
,
8009 &ett_atn_cpdlc_PositionDistanceSpecifiedDirection
,
8010 &ett_atn_cpdlc_PositionLevel
,
8011 &ett_atn_cpdlc_PositionLevelLevel
,
8012 &ett_atn_cpdlc_PositionLevelSpeed
,
8013 &ett_atn_cpdlc_PositionPosition
,
8014 &ett_atn_cpdlc_PositionProcedureName
,
8015 &ett_atn_cpdlc_PositionReport
,
8016 &ett_atn_cpdlc_PositionRouteClearanceIndex
,
8017 &ett_atn_cpdlc_PositionSpeed
,
8018 &ett_atn_cpdlc_PositionSpeedSpeed
,
8019 &ett_atn_cpdlc_PositionTime
,
8020 &ett_atn_cpdlc_PositionTimeLevel
,
8021 &ett_atn_cpdlc_PositionTimeTime
,
8022 &ett_atn_cpdlc_PositionUnitNameFrequency
,
8023 &ett_atn_cpdlc_ProcedureName
,
8024 &ett_atn_cpdlc_PublishedIdentifier
,
8025 &ett_atn_cpdlc_RemainingFuelPersonsOnBoard
,
8026 &ett_atn_cpdlc_ReportingPoints
,
8027 &ett_atn_cpdlc_RouteAndLevels
,
8028 &ett_atn_cpdlc_RouteClearance
,
8029 &ett_atn_cpdlc_SEQUENCE_SIZE_1_128_OF_RouteInformation
,
8030 &ett_atn_cpdlc_RouteInformation
,
8031 &ett_atn_cpdlc_RouteInformationAdditional
,
8032 &ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_ATWAlongTrackWaypoint
,
8033 &ett_atn_cpdlc_SEQUENCE_SIZE_1_4_OF_InterceptCourseFrom
,
8034 &ett_atn_cpdlc_SEQUENCE_SIZE_1_8_OF_Holdatwaypoint
,
8035 &ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_WaypointSpeedLevel
,
8036 &ett_atn_cpdlc_SEQUENCE_SIZE_1_32_OF_RTARequiredTimeArrival
,
8037 &ett_atn_cpdlc_RTARequiredTimeArrival
,
8038 &ett_atn_cpdlc_RTATime
,
8039 &ett_atn_cpdlc_Runway
,
8040 &ett_atn_cpdlc_RunwayRVR
,
8042 &ett_atn_cpdlc_Speed
,
8043 &ett_atn_cpdlc_SpeedSpeed
,
8044 &ett_atn_cpdlc_SpeedTime
,
8045 &ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedType
,
8046 &ett_atn_cpdlc_SpeedTypeSpeedTypeSpeedTypeSpeed
,
8047 &ett_atn_cpdlc_Time
,
8048 &ett_atn_cpdlc_TimeLevel
,
8049 &ett_atn_cpdlc_TimeDeparture
,
8050 &ett_atn_cpdlc_TimeDistanceSpecifiedDirection
,
8051 &ett_atn_cpdlc_TimeDistanceToFromPosition
,
8052 &ett_atn_cpdlc_Timehhmmss
,
8053 &ett_atn_cpdlc_TimeUnitNameFrequency
,
8054 &ett_atn_cpdlc_TimePosition
,
8055 &ett_atn_cpdlc_TimePositionLevel
,
8056 &ett_atn_cpdlc_TimePositionLevelSpeed
,
8057 &ett_atn_cpdlc_TimeSpeed
,
8058 &ett_atn_cpdlc_TimeSpeedSpeed
,
8059 &ett_atn_cpdlc_TimeTime
,
8060 &ett_atn_cpdlc_TimeToFromPosition
,
8061 &ett_atn_cpdlc_ToFromPosition
,
8062 &ett_atn_cpdlc_UnitName
,
8063 &ett_atn_cpdlc_UnitNameFrequency
,
8064 &ett_atn_cpdlc_VerticalChange
,
8065 &ett_atn_cpdlc_VerticalRate
,
8066 &ett_atn_cpdlc_WaypointSpeedLevel
,
8067 &ett_atn_cpdlc_Winds
,
8068 &ett_atn_cpdlc_WindSpeed
,
8070 /*--- End of included file: packet-atn-cpdlc-ettarr.c ---*/
8071 #line 319 "../../asn1/atn-cpdlc/packet-atn-cpdlc-template.c"
8075 /* register CPDLC */
8076 proto_atn_cpdlc
= proto_register_protocol(
8081 proto_register_field_array(
8084 array_length(hf_atn_cpdlc
));
8086 proto_register_subtree_array(
8090 new_register_dissector(
8096 void proto_reg_handoff_atn_cpdlc(void)
8098 /* add session dissector to atn dissector list dissector list*/
8101 dissect_atn_cpdlc_heur
,
8107 * Editor modelines - http://www.wireshark.org/tools/modelines.html
8112 * indent-tabs-mode: t
8115 * vi: set shiftwidth=2 tabstop=2 noexpandtab:
8116 * :indentSize=2:tabSize=2:noTabs=false: