initramfs: fix initramfs size calculation
[linux-drm-fsl-dcu.git] / net / netfilter / nf_conntrack_h323_types.c
1 /* Generated by Jing Min Zhao's ASN.1 parser, May 16 2007
2  *
3  * Copyright (c) 2006 Jing Min Zhao <zhaojingmin@users.sourceforge.net>
4  *
5  * This source code is licensed under General Public License version 2.
6  */
7
8 static const struct field_t _TransportAddress_ipAddress[] = {   /* SEQUENCE */
9         {FNAME("ip") OCTSTR, FIXD, 4, 0, DECODE,
10          offsetof(TransportAddress_ipAddress, ip), NULL},
11         {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
12 };
13
14 static const struct field_t _TransportAddress_ipSourceRoute_route[] = { /* SEQUENCE OF */
15         {FNAME("item") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
16 };
17
18 static const struct field_t _TransportAddress_ipSourceRoute_routing[] = {       /* CHOICE */
19         {FNAME("strict") NUL, FIXD, 0, 0, SKIP, 0, NULL},
20         {FNAME("loose") NUL, FIXD, 0, 0, SKIP, 0, NULL},
21 };
22
23 static const struct field_t _TransportAddress_ipSourceRoute[] = {       /* SEQUENCE */
24         {FNAME("ip") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
25         {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
26         {FNAME("route") SEQOF, SEMI, 0, 0, SKIP, 0,
27          _TransportAddress_ipSourceRoute_route},
28         {FNAME("routing") CHOICE, 1, 2, 2, SKIP | EXT, 0,
29          _TransportAddress_ipSourceRoute_routing},
30 };
31
32 static const struct field_t _TransportAddress_ipxAddress[] = {  /* SEQUENCE */
33         {FNAME("node") OCTSTR, FIXD, 6, 0, SKIP, 0, NULL},
34         {FNAME("netnum") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
35         {FNAME("port") OCTSTR, FIXD, 2, 0, SKIP, 0, NULL},
36 };
37
38 static const struct field_t _TransportAddress_ip6Address[] = {  /* SEQUENCE */
39         {FNAME("ip") OCTSTR, FIXD, 16, 0, DECODE,
40          offsetof(TransportAddress_ip6Address, ip), NULL},
41         {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
42 };
43
44 static const struct field_t _H221NonStandard[] = {      /* SEQUENCE */
45         {FNAME("t35CountryCode") INT, BYTE, 0, 0, SKIP, 0, NULL},
46         {FNAME("t35Extension") INT, BYTE, 0, 0, SKIP, 0, NULL},
47         {FNAME("manufacturerCode") INT, WORD, 0, 0, SKIP, 0, NULL},
48 };
49
50 static const struct field_t _NonStandardIdentifier[] = {        /* CHOICE */
51         {FNAME("object") OID, BYTE, 0, 0, SKIP, 0, NULL},
52         {FNAME("h221NonStandard") SEQ, 0, 3, 3, SKIP | EXT, 0,
53          _H221NonStandard},
54 };
55
56 static const struct field_t _NonStandardParameter[] = { /* SEQUENCE */
57         {FNAME("nonStandardIdentifier") CHOICE, 1, 2, 2, SKIP | EXT, 0,
58          _NonStandardIdentifier},
59         {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
60 };
61
62 static const struct field_t _TransportAddress[] = {     /* CHOICE */
63         {FNAME("ipAddress") SEQ, 0, 2, 2, DECODE,
64          offsetof(TransportAddress, ipAddress), _TransportAddress_ipAddress},
65         {FNAME("ipSourceRoute") SEQ, 0, 4, 4, SKIP | EXT, 0,
66          _TransportAddress_ipSourceRoute},
67         {FNAME("ipxAddress") SEQ, 0, 3, 3, SKIP, 0,
68          _TransportAddress_ipxAddress},
69         {FNAME("ip6Address") SEQ, 0, 2, 2, DECODE | EXT,
70          offsetof(TransportAddress, ip6Address),
71          _TransportAddress_ip6Address},
72         {FNAME("netBios") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
73         {FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
74         {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0,
75          _NonStandardParameter},
76 };
77
78 static const struct field_t _AliasAddress[] = { /* CHOICE */
79         {FNAME("dialedDigits") NUMDGT, 7, 1, 0, SKIP, 0, NULL},
80         {FNAME("h323-ID") BMPSTR, BYTE, 1, 0, SKIP, 0, NULL},
81         {FNAME("url-ID") IA5STR, WORD, 1, 0, SKIP, 0, NULL},
82         {FNAME("transportID") CHOICE, 3, 7, 7, SKIP | EXT, 0, NULL},
83         {FNAME("email-ID") IA5STR, WORD, 1, 0, SKIP, 0, NULL},
84         {FNAME("partyNumber") CHOICE, 3, 5, 5, SKIP | EXT, 0, NULL},
85         {FNAME("mobileUIM") CHOICE, 1, 2, 2, SKIP | EXT, 0, NULL},
86 };
87
88 static const struct field_t _Setup_UUIE_sourceAddress[] = {     /* SEQUENCE OF */
89         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
90 };
91
92 static const struct field_t _VendorIdentifier[] = {     /* SEQUENCE */
93         {FNAME("vendor") SEQ, 0, 3, 3, SKIP | EXT, 0, _H221NonStandard},
94         {FNAME("productId") OCTSTR, BYTE, 1, 0, SKIP | OPT, 0, NULL},
95         {FNAME("versionId") OCTSTR, BYTE, 1, 0, SKIP | OPT, 0, NULL},
96 };
97
98 static const struct field_t _GatekeeperInfo[] = {       /* SEQUENCE */
99         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
100          _NonStandardParameter},
101 };
102
103 static const struct field_t _H310Caps[] = {     /* SEQUENCE */
104         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
105          _NonStandardParameter},
106         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
107         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
108 };
109
110 static const struct field_t _H320Caps[] = {     /* SEQUENCE */
111         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
112          _NonStandardParameter},
113         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
114         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
115 };
116
117 static const struct field_t _H321Caps[] = {     /* SEQUENCE */
118         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
119          _NonStandardParameter},
120         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
121         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
122 };
123
124 static const struct field_t _H322Caps[] = {     /* SEQUENCE */
125         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
126          _NonStandardParameter},
127         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
128         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
129 };
130
131 static const struct field_t _H323Caps[] = {     /* SEQUENCE */
132         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
133          _NonStandardParameter},
134         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
135         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
136 };
137
138 static const struct field_t _H324Caps[] = {     /* SEQUENCE */
139         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
140          _NonStandardParameter},
141         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
142         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
143 };
144
145 static const struct field_t _VoiceCaps[] = {    /* SEQUENCE */
146         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
147          _NonStandardParameter},
148         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
149         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
150 };
151
152 static const struct field_t _T120OnlyCaps[] = { /* SEQUENCE */
153         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
154          _NonStandardParameter},
155         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
156         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
157 };
158
159 static const struct field_t _SupportedProtocols[] = {   /* CHOICE */
160         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP, 0,
161          _NonStandardParameter},
162         {FNAME("h310") SEQ, 1, 1, 3, SKIP | EXT, 0, _H310Caps},
163         {FNAME("h320") SEQ, 1, 1, 3, SKIP | EXT, 0, _H320Caps},
164         {FNAME("h321") SEQ, 1, 1, 3, SKIP | EXT, 0, _H321Caps},
165         {FNAME("h322") SEQ, 1, 1, 3, SKIP | EXT, 0, _H322Caps},
166         {FNAME("h323") SEQ, 1, 1, 3, SKIP | EXT, 0, _H323Caps},
167         {FNAME("h324") SEQ, 1, 1, 3, SKIP | EXT, 0, _H324Caps},
168         {FNAME("voice") SEQ, 1, 1, 3, SKIP | EXT, 0, _VoiceCaps},
169         {FNAME("t120-only") SEQ, 1, 1, 3, SKIP | EXT, 0, _T120OnlyCaps},
170         {FNAME("nonStandardProtocol") SEQ, 2, 3, 3, SKIP | EXT, 0, NULL},
171         {FNAME("t38FaxAnnexbOnly") SEQ, 2, 5, 5, SKIP | EXT, 0, NULL},
172 };
173
174 static const struct field_t _GatewayInfo_protocol[] = { /* SEQUENCE OF */
175         {FNAME("item") CHOICE, 4, 9, 11, SKIP | EXT, 0, _SupportedProtocols},
176 };
177
178 static const struct field_t _GatewayInfo[] = {  /* SEQUENCE */
179         {FNAME("protocol") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
180          _GatewayInfo_protocol},
181         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
182          _NonStandardParameter},
183 };
184
185 static const struct field_t _McuInfo[] = {      /* SEQUENCE */
186         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
187          _NonStandardParameter},
188         {FNAME("protocol") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
189 };
190
191 static const struct field_t _TerminalInfo[] = { /* SEQUENCE */
192         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
193          _NonStandardParameter},
194 };
195
196 static const struct field_t _EndpointType[] = { /* SEQUENCE */
197         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
198          _NonStandardParameter},
199         {FNAME("vendor") SEQ, 2, 3, 3, SKIP | EXT | OPT, 0,
200          _VendorIdentifier},
201         {FNAME("gatekeeper") SEQ, 1, 1, 1, SKIP | EXT | OPT, 0,
202          _GatekeeperInfo},
203         {FNAME("gateway") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, _GatewayInfo},
204         {FNAME("mcu") SEQ, 1, 1, 2, SKIP | EXT | OPT, 0, _McuInfo},
205         {FNAME("terminal") SEQ, 1, 1, 1, SKIP | EXT | OPT, 0, _TerminalInfo},
206         {FNAME("mc") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
207         {FNAME("undefinedNode") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
208         {FNAME("set") BITSTR, FIXD, 32, 0, SKIP | OPT, 0, NULL},
209         {FNAME("supportedTunnelledProtocols") SEQOF, SEMI, 0, 0, SKIP | OPT,
210          0, NULL},
211 };
212
213 static const struct field_t _Setup_UUIE_destinationAddress[] = {        /* SEQUENCE OF */
214         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
215 };
216
217 static const struct field_t _Setup_UUIE_destExtraCallInfo[] = { /* SEQUENCE OF */
218         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
219 };
220
221 static const struct field_t _Setup_UUIE_destExtraCRV[] = {      /* SEQUENCE OF */
222         {FNAME("item") INT, WORD, 0, 0, SKIP, 0, NULL},
223 };
224
225 static const struct field_t _Setup_UUIE_conferenceGoal[] = {    /* CHOICE */
226         {FNAME("create") NUL, FIXD, 0, 0, SKIP, 0, NULL},
227         {FNAME("join") NUL, FIXD, 0, 0, SKIP, 0, NULL},
228         {FNAME("invite") NUL, FIXD, 0, 0, SKIP, 0, NULL},
229         {FNAME("capability-negotiation") NUL, FIXD, 0, 0, SKIP, 0, NULL},
230         {FNAME("callIndependentSupplementaryService") NUL, FIXD, 0, 0, SKIP,
231          0, NULL},
232 };
233
234 static const struct field_t _Q954Details[] = {  /* SEQUENCE */
235         {FNAME("conferenceCalling") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
236         {FNAME("threePartyService") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
237 };
238
239 static const struct field_t _QseriesOptions[] = {       /* SEQUENCE */
240         {FNAME("q932Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
241         {FNAME("q951Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
242         {FNAME("q952Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
243         {FNAME("q953Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
244         {FNAME("q955Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
245         {FNAME("q956Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
246         {FNAME("q957Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
247         {FNAME("q954Info") SEQ, 0, 2, 2, SKIP | EXT, 0, _Q954Details},
248 };
249
250 static const struct field_t _CallType[] = {     /* CHOICE */
251         {FNAME("pointToPoint") NUL, FIXD, 0, 0, SKIP, 0, NULL},
252         {FNAME("oneToN") NUL, FIXD, 0, 0, SKIP, 0, NULL},
253         {FNAME("nToOne") NUL, FIXD, 0, 0, SKIP, 0, NULL},
254         {FNAME("nToN") NUL, FIXD, 0, 0, SKIP, 0, NULL},
255 };
256
257 static const struct field_t _H245_NonStandardIdentifier_h221NonStandard[] = {   /* SEQUENCE */
258         {FNAME("t35CountryCode") INT, BYTE, 0, 0, SKIP, 0, NULL},
259         {FNAME("t35Extension") INT, BYTE, 0, 0, SKIP, 0, NULL},
260         {FNAME("manufacturerCode") INT, WORD, 0, 0, SKIP, 0, NULL},
261 };
262
263 static const struct field_t _H245_NonStandardIdentifier[] = {   /* CHOICE */
264         {FNAME("object") OID, BYTE, 0, 0, SKIP, 0, NULL},
265         {FNAME("h221NonStandard") SEQ, 0, 3, 3, SKIP, 0,
266          _H245_NonStandardIdentifier_h221NonStandard},
267 };
268
269 static const struct field_t _H245_NonStandardParameter[] = {    /* SEQUENCE */
270         {FNAME("nonStandardIdentifier") CHOICE, 1, 2, 2, SKIP, 0,
271          _H245_NonStandardIdentifier},
272         {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
273 };
274
275 static const struct field_t _H261VideoCapability[] = {  /* SEQUENCE */
276         {FNAME("qcifMPI") INT, 2, 1, 0, SKIP | OPT, 0, NULL},
277         {FNAME("cifMPI") INT, 2, 1, 0, SKIP | OPT, 0, NULL},
278         {FNAME("temporalSpatialTradeOffCapability") BOOL, FIXD, 0, 0, SKIP, 0,
279          NULL},
280         {FNAME("maxBitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
281         {FNAME("stillImageTransmission") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
282         {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
283 };
284
285 static const struct field_t _H262VideoCapability[] = {  /* SEQUENCE */
286         {FNAME("profileAndLevel-SPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
287         {FNAME("profileAndLevel-MPatLL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
288         {FNAME("profileAndLevel-MPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
289         {FNAME("profileAndLevel-MPatH-14") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
290         {FNAME("profileAndLevel-MPatHL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
291         {FNAME("profileAndLevel-SNRatLL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
292         {FNAME("profileAndLevel-SNRatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
293         {FNAME("profileAndLevel-SpatialatH-14") BOOL, FIXD, 0, 0, SKIP, 0,
294          NULL},
295         {FNAME("profileAndLevel-HPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
296         {FNAME("profileAndLevel-HPatH-14") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
297         {FNAME("profileAndLevel-HPatHL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
298         {FNAME("videoBitRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
299         {FNAME("vbvBufferSize") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
300         {FNAME("samplesPerLine") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
301         {FNAME("linesPerFrame") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
302         {FNAME("framesPerSecond") INT, 4, 0, 0, SKIP | OPT, 0, NULL},
303         {FNAME("luminanceSampleRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
304         {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
305 };
306
307 static const struct field_t _H263VideoCapability[] = {  /* SEQUENCE */
308         {FNAME("sqcifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
309         {FNAME("qcifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
310         {FNAME("cifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
311         {FNAME("cif4MPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
312         {FNAME("cif16MPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
313         {FNAME("maxBitRate") INT, CONS, 1, 0, SKIP, 0, NULL},
314         {FNAME("unrestrictedVector") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
315         {FNAME("arithmeticCoding") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
316         {FNAME("advancedPrediction") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
317         {FNAME("pbFrames") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
318         {FNAME("temporalSpatialTradeOffCapability") BOOL, FIXD, 0, 0, SKIP, 0,
319          NULL},
320         {FNAME("hrd-B") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
321         {FNAME("bppMaxKb") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
322         {FNAME("slowSqcifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
323         {FNAME("slowQcifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
324         {FNAME("slowCifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
325         {FNAME("slowCif4MPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
326         {FNAME("slowCif16MPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
327         {FNAME("errorCompensation") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
328         {FNAME("enhancementLayerInfo") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0,
329          NULL},
330         {FNAME("h263Options") SEQ, 5, 29, 31, SKIP | EXT | OPT, 0, NULL},
331 };
332
333 static const struct field_t _IS11172VideoCapability[] = {       /* SEQUENCE */
334         {FNAME("constrainedBitstream") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
335         {FNAME("videoBitRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
336         {FNAME("vbvBufferSize") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
337         {FNAME("samplesPerLine") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
338         {FNAME("linesPerFrame") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
339         {FNAME("pictureRate") INT, 4, 0, 0, SKIP | OPT, 0, NULL},
340         {FNAME("luminanceSampleRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
341         {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
342 };
343
344 static const struct field_t _VideoCapability[] = {      /* CHOICE */
345         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
346          _H245_NonStandardParameter},
347         {FNAME("h261VideoCapability") SEQ, 2, 5, 6, SKIP | EXT, 0,
348          _H261VideoCapability},
349         {FNAME("h262VideoCapability") SEQ, 6, 17, 18, SKIP | EXT, 0,
350          _H262VideoCapability},
351         {FNAME("h263VideoCapability") SEQ, 7, 13, 21, SKIP | EXT, 0,
352          _H263VideoCapability},
353         {FNAME("is11172VideoCapability") SEQ, 6, 7, 8, SKIP | EXT, 0,
354          _IS11172VideoCapability},
355         {FNAME("genericVideoCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
356 };
357
358 static const struct field_t _AudioCapability_g7231[] = {        /* SEQUENCE */
359         {FNAME("maxAl-sduAudioFrames") INT, BYTE, 1, 0, SKIP, 0, NULL},
360         {FNAME("silenceSuppression") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
361 };
362
363 static const struct field_t _IS11172AudioCapability[] = {       /* SEQUENCE */
364         {FNAME("audioLayer1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
365         {FNAME("audioLayer2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
366         {FNAME("audioLayer3") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
367         {FNAME("audioSampling32k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
368         {FNAME("audioSampling44k1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
369         {FNAME("audioSampling48k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
370         {FNAME("singleChannel") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
371         {FNAME("twoChannels") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
372         {FNAME("bitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
373 };
374
375 static const struct field_t _IS13818AudioCapability[] = {       /* SEQUENCE */
376         {FNAME("audioLayer1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
377         {FNAME("audioLayer2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
378         {FNAME("audioLayer3") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
379         {FNAME("audioSampling16k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
380         {FNAME("audioSampling22k05") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
381         {FNAME("audioSampling24k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
382         {FNAME("audioSampling32k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
383         {FNAME("audioSampling44k1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
384         {FNAME("audioSampling48k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
385         {FNAME("singleChannel") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
386         {FNAME("twoChannels") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
387         {FNAME("threeChannels2-1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
388         {FNAME("threeChannels3-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
389         {FNAME("fourChannels2-0-2-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
390         {FNAME("fourChannels2-2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
391         {FNAME("fourChannels3-1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
392         {FNAME("fiveChannels3-0-2-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
393         {FNAME("fiveChannels3-2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
394         {FNAME("lowFrequencyEnhancement") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
395         {FNAME("multilingual") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
396         {FNAME("bitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
397 };
398
399 static const struct field_t _AudioCapability[] = {      /* CHOICE */
400         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
401          _H245_NonStandardParameter},
402         {FNAME("g711Alaw64k") INT, BYTE, 1, 0, SKIP, 0, NULL},
403         {FNAME("g711Alaw56k") INT, BYTE, 1, 0, SKIP, 0, NULL},
404         {FNAME("g711Ulaw64k") INT, BYTE, 1, 0, SKIP, 0, NULL},
405         {FNAME("g711Ulaw56k") INT, BYTE, 1, 0, SKIP, 0, NULL},
406         {FNAME("g722-64k") INT, BYTE, 1, 0, SKIP, 0, NULL},
407         {FNAME("g722-56k") INT, BYTE, 1, 0, SKIP, 0, NULL},
408         {FNAME("g722-48k") INT, BYTE, 1, 0, SKIP, 0, NULL},
409         {FNAME("g7231") SEQ, 0, 2, 2, SKIP, 0, _AudioCapability_g7231},
410         {FNAME("g728") INT, BYTE, 1, 0, SKIP, 0, NULL},
411         {FNAME("g729") INT, BYTE, 1, 0, SKIP, 0, NULL},
412         {FNAME("g729AnnexA") INT, BYTE, 1, 0, SKIP, 0, NULL},
413         {FNAME("is11172AudioCapability") SEQ, 0, 9, 9, SKIP | EXT, 0,
414          _IS11172AudioCapability},
415         {FNAME("is13818AudioCapability") SEQ, 0, 21, 21, SKIP | EXT, 0,
416          _IS13818AudioCapability},
417         {FNAME("g729wAnnexB") INT, BYTE, 1, 0, SKIP, 0, NULL},
418         {FNAME("g729AnnexAwAnnexB") INT, BYTE, 1, 0, SKIP, 0, NULL},
419         {FNAME("g7231AnnexCCapability") SEQ, 1, 3, 3, SKIP | EXT, 0, NULL},
420         {FNAME("gsmFullRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL},
421         {FNAME("gsmHalfRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL},
422         {FNAME("gsmEnhancedFullRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL},
423         {FNAME("genericAudioCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
424         {FNAME("g729Extensions") SEQ, 1, 8, 8, SKIP | EXT, 0, NULL},
425 };
426
427 static const struct field_t _DataProtocolCapability[] = {       /* CHOICE */
428         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
429          _H245_NonStandardParameter},
430         {FNAME("v14buffered") NUL, FIXD, 0, 0, SKIP, 0, NULL},
431         {FNAME("v42lapm") NUL, FIXD, 0, 0, SKIP, 0, NULL},
432         {FNAME("hdlcFrameTunnelling") NUL, FIXD, 0, 0, SKIP, 0, NULL},
433         {FNAME("h310SeparateVCStack") NUL, FIXD, 0, 0, SKIP, 0, NULL},
434         {FNAME("h310SingleVCStack") NUL, FIXD, 0, 0, SKIP, 0, NULL},
435         {FNAME("transparent") NUL, FIXD, 0, 0, SKIP, 0, NULL},
436         {FNAME("segmentationAndReassembly") NUL, FIXD, 0, 0, SKIP, 0, NULL},
437         {FNAME("hdlcFrameTunnelingwSAR") NUL, FIXD, 0, 0, SKIP, 0, NULL},
438         {FNAME("v120") NUL, FIXD, 0, 0, SKIP, 0, NULL},
439         {FNAME("separateLANStack") NUL, FIXD, 0, 0, SKIP, 0, NULL},
440         {FNAME("v76wCompression") CHOICE, 2, 3, 3, SKIP | EXT, 0, NULL},
441         {FNAME("tcp") NUL, FIXD, 0, 0, SKIP, 0, NULL},
442         {FNAME("udp") NUL, FIXD, 0, 0, SKIP, 0, NULL},
443 };
444
445 static const struct field_t _T84Profile_t84Restricted[] = {     /* SEQUENCE */
446         {FNAME("qcif") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
447         {FNAME("cif") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
448         {FNAME("ccir601Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
449         {FNAME("ccir601Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
450         {FNAME("hdtvSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
451         {FNAME("hdtvProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
452         {FNAME("g3FacsMH200x100") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
453         {FNAME("g3FacsMH200x200") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
454         {FNAME("g4FacsMMR200x100") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
455         {FNAME("g4FacsMMR200x200") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
456         {FNAME("jbig200x200Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
457         {FNAME("jbig200x200Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
458         {FNAME("jbig300x300Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
459         {FNAME("jbig300x300Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
460         {FNAME("digPhotoLow") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
461         {FNAME("digPhotoMedSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
462         {FNAME("digPhotoMedProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
463         {FNAME("digPhotoHighSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
464         {FNAME("digPhotoHighProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
465 };
466
467 static const struct field_t _T84Profile[] = {   /* CHOICE */
468         {FNAME("t84Unrestricted") NUL, FIXD, 0, 0, SKIP, 0, NULL},
469         {FNAME("t84Restricted") SEQ, 0, 19, 19, SKIP | EXT, 0,
470          _T84Profile_t84Restricted},
471 };
472
473 static const struct field_t _DataApplicationCapability_application_t84[] = {    /* SEQUENCE */
474         {FNAME("t84Protocol") CHOICE, 3, 7, 14, SKIP | EXT, 0,
475          _DataProtocolCapability},
476         {FNAME("t84Profile") CHOICE, 1, 2, 2, SKIP, 0, _T84Profile},
477 };
478
479 static const struct field_t _DataApplicationCapability_application_nlpid[] = {  /* SEQUENCE */
480         {FNAME("nlpidProtocol") CHOICE, 3, 7, 14, SKIP | EXT, 0,
481          _DataProtocolCapability},
482         {FNAME("nlpidData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
483 };
484
485 static const struct field_t _DataApplicationCapability_application[] = {        /* CHOICE */
486         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
487          _H245_NonStandardParameter},
488         {FNAME("t120") CHOICE, 3, 7, 14, DECODE | EXT,
489          offsetof(DataApplicationCapability_application, t120),
490          _DataProtocolCapability},
491         {FNAME("dsm-cc") CHOICE, 3, 7, 14, SKIP | EXT, 0,
492          _DataProtocolCapability},
493         {FNAME("userData") CHOICE, 3, 7, 14, SKIP | EXT, 0,
494          _DataProtocolCapability},
495         {FNAME("t84") SEQ, 0, 2, 2, SKIP, 0,
496          _DataApplicationCapability_application_t84},
497         {FNAME("t434") CHOICE, 3, 7, 14, SKIP | EXT, 0,
498          _DataProtocolCapability},
499         {FNAME("h224") CHOICE, 3, 7, 14, SKIP | EXT, 0,
500          _DataProtocolCapability},
501         {FNAME("nlpid") SEQ, 0, 2, 2, SKIP, 0,
502          _DataApplicationCapability_application_nlpid},
503         {FNAME("dsvdControl") NUL, FIXD, 0, 0, SKIP, 0, NULL},
504         {FNAME("h222DataPartitioning") CHOICE, 3, 7, 14, SKIP | EXT, 0,
505          _DataProtocolCapability},
506         {FNAME("t30fax") CHOICE, 3, 7, 14, SKIP | EXT, 0, NULL},
507         {FNAME("t140") CHOICE, 3, 7, 14, SKIP | EXT, 0, NULL},
508         {FNAME("t38fax") SEQ, 0, 2, 2, SKIP, 0, NULL},
509         {FNAME("genericDataCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
510 };
511
512 static const struct field_t _DataApplicationCapability[] = {    /* SEQUENCE */
513         {FNAME("application") CHOICE, 4, 10, 14, DECODE | EXT,
514          offsetof(DataApplicationCapability, application),
515          _DataApplicationCapability_application},
516         {FNAME("maxBitRate") INT, CONS, 0, 0, SKIP, 0, NULL},
517 };
518
519 static const struct field_t _EncryptionMode[] = {       /* CHOICE */
520         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
521          _H245_NonStandardParameter},
522         {FNAME("h233Encryption") NUL, FIXD, 0, 0, SKIP, 0, NULL},
523 };
524
525 static const struct field_t _DataType[] = {     /* CHOICE */
526         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
527          _H245_NonStandardParameter},
528         {FNAME("nullData") NUL, FIXD, 0, 0, SKIP, 0, NULL},
529         {FNAME("videoData") CHOICE, 3, 5, 6, SKIP | EXT, 0, _VideoCapability},
530         {FNAME("audioData") CHOICE, 4, 14, 22, SKIP | EXT, 0,
531          _AudioCapability},
532         {FNAME("data") SEQ, 0, 2, 2, DECODE | EXT, offsetof(DataType, data),
533          _DataApplicationCapability},
534         {FNAME("encryptionData") CHOICE, 1, 2, 2, SKIP | EXT, 0,
535          _EncryptionMode},
536         {FNAME("h235Control") SEQ, 0, 2, 2, SKIP, 0, NULL},
537         {FNAME("h235Media") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL},
538         {FNAME("multiplexedStream") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL},
539 };
540
541 static const struct field_t _H222LogicalChannelParameters[] = { /* SEQUENCE */
542         {FNAME("resourceID") INT, WORD, 0, 0, SKIP, 0, NULL},
543         {FNAME("subChannelID") INT, WORD, 0, 0, SKIP, 0, NULL},
544         {FNAME("pcr-pid") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
545         {FNAME("programDescriptors") OCTSTR, SEMI, 0, 0, SKIP | OPT, 0, NULL},
546         {FNAME("streamDescriptors") OCTSTR, SEMI, 0, 0, SKIP | OPT, 0, NULL},
547 };
548
549 static const struct field_t _H223LogicalChannelParameters_adaptationLayerType_al3[] = { /* SEQUENCE */
550         {FNAME("controlFieldOctets") INT, 2, 0, 0, SKIP, 0, NULL},
551         {FNAME("sendBufferSize") INT, CONS, 0, 0, SKIP, 0, NULL},
552 };
553
554 static const struct field_t _H223LogicalChannelParameters_adaptationLayerType[] = {     /* CHOICE */
555         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
556          _H245_NonStandardParameter},
557         {FNAME("al1Framed") NUL, FIXD, 0, 0, SKIP, 0, NULL},
558         {FNAME("al1NotFramed") NUL, FIXD, 0, 0, SKIP, 0, NULL},
559         {FNAME("al2WithoutSequenceNumbers") NUL, FIXD, 0, 0, SKIP, 0, NULL},
560         {FNAME("al2WithSequenceNumbers") NUL, FIXD, 0, 0, SKIP, 0, NULL},
561         {FNAME("al3") SEQ, 0, 2, 2, SKIP, 0,
562          _H223LogicalChannelParameters_adaptationLayerType_al3},
563         {FNAME("al1M") SEQ, 0, 7, 8, SKIP | EXT, 0, NULL},
564         {FNAME("al2M") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL},
565         {FNAME("al3M") SEQ, 0, 5, 6, SKIP | EXT, 0, NULL},
566 };
567
568 static const struct field_t _H223LogicalChannelParameters[] = { /* SEQUENCE */
569         {FNAME("adaptationLayerType") CHOICE, 3, 6, 9, SKIP | EXT, 0,
570          _H223LogicalChannelParameters_adaptationLayerType},
571         {FNAME("segmentableFlag") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
572 };
573
574 static const struct field_t _CRCLength[] = {    /* CHOICE */
575         {FNAME("crc8bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
576         {FNAME("crc16bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
577         {FNAME("crc32bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
578 };
579
580 static const struct field_t _V76HDLCParameters[] = {    /* SEQUENCE */
581         {FNAME("crcLength") CHOICE, 2, 3, 3, SKIP | EXT, 0, _CRCLength},
582         {FNAME("n401") INT, WORD, 1, 0, SKIP, 0, NULL},
583         {FNAME("loopbackTestProcedure") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
584 };
585
586 static const struct field_t _V76LogicalChannelParameters_suspendResume[] = {    /* CHOICE */
587         {FNAME("noSuspendResume") NUL, FIXD, 0, 0, SKIP, 0, NULL},
588         {FNAME("suspendResumewAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
589         {FNAME("suspendResumewoAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
590 };
591
592 static const struct field_t _V76LogicalChannelParameters_mode_eRM_recovery[] = {        /* CHOICE */
593         {FNAME("rej") NUL, FIXD, 0, 0, SKIP, 0, NULL},
594         {FNAME("sREJ") NUL, FIXD, 0, 0, SKIP, 0, NULL},
595         {FNAME("mSREJ") NUL, FIXD, 0, 0, SKIP, 0, NULL},
596 };
597
598 static const struct field_t _V76LogicalChannelParameters_mode_eRM[] = { /* SEQUENCE */
599         {FNAME("windowSize") INT, 7, 1, 0, SKIP, 0, NULL},
600         {FNAME("recovery") CHOICE, 2, 3, 3, SKIP | EXT, 0,
601          _V76LogicalChannelParameters_mode_eRM_recovery},
602 };
603
604 static const struct field_t _V76LogicalChannelParameters_mode[] = {     /* CHOICE */
605         {FNAME("eRM") SEQ, 0, 2, 2, SKIP | EXT, 0,
606          _V76LogicalChannelParameters_mode_eRM},
607         {FNAME("uNERM") NUL, FIXD, 0, 0, SKIP, 0, NULL},
608 };
609
610 static const struct field_t _V75Parameters[] = {        /* SEQUENCE */
611         {FNAME("audioHeaderPresent") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
612 };
613
614 static const struct field_t _V76LogicalChannelParameters[] = {  /* SEQUENCE */
615         {FNAME("hdlcParameters") SEQ, 0, 3, 3, SKIP | EXT, 0,
616          _V76HDLCParameters},
617         {FNAME("suspendResume") CHOICE, 2, 3, 3, SKIP | EXT, 0,
618          _V76LogicalChannelParameters_suspendResume},
619         {FNAME("uIH") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
620         {FNAME("mode") CHOICE, 1, 2, 2, SKIP | EXT, 0,
621          _V76LogicalChannelParameters_mode},
622         {FNAME("v75Parameters") SEQ, 0, 1, 1, SKIP | EXT, 0, _V75Parameters},
623 };
624
625 static const struct field_t _H2250LogicalChannelParameters_nonStandard[] = {    /* SEQUENCE OF */
626         {FNAME("item") SEQ, 0, 2, 2, SKIP, 0, _H245_NonStandardParameter},
627 };
628
629 static const struct field_t _UnicastAddress_iPAddress[] = {     /* SEQUENCE */
630         {FNAME("network") OCTSTR, FIXD, 4, 0, DECODE,
631          offsetof(UnicastAddress_iPAddress, network), NULL},
632         {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
633 };
634
635 static const struct field_t _UnicastAddress_iPXAddress[] = {    /* SEQUENCE */
636         {FNAME("node") OCTSTR, FIXD, 6, 0, SKIP, 0, NULL},
637         {FNAME("netnum") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
638         {FNAME("tsapIdentifier") OCTSTR, FIXD, 2, 0, SKIP, 0, NULL},
639 };
640
641 static const struct field_t _UnicastAddress_iP6Address[] = {    /* SEQUENCE */
642         {FNAME("network") OCTSTR, FIXD, 16, 0, DECODE,
643          offsetof(UnicastAddress_iP6Address, network), NULL},
644         {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
645 };
646
647 static const struct field_t _UnicastAddress_iPSourceRouteAddress_routing[] = {  /* CHOICE */
648         {FNAME("strict") NUL, FIXD, 0, 0, SKIP, 0, NULL},
649         {FNAME("loose") NUL, FIXD, 0, 0, SKIP, 0, NULL},
650 };
651
652 static const struct field_t _UnicastAddress_iPSourceRouteAddress_route[] = {    /* SEQUENCE OF */
653         {FNAME("item") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
654 };
655
656 static const struct field_t _UnicastAddress_iPSourceRouteAddress[] = {  /* SEQUENCE */
657         {FNAME("routing") CHOICE, 1, 2, 2, SKIP, 0,
658          _UnicastAddress_iPSourceRouteAddress_routing},
659         {FNAME("network") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
660         {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
661         {FNAME("route") SEQOF, SEMI, 0, 0, SKIP, 0,
662          _UnicastAddress_iPSourceRouteAddress_route},
663 };
664
665 static const struct field_t _UnicastAddress[] = {       /* CHOICE */
666         {FNAME("iPAddress") SEQ, 0, 2, 2, DECODE | EXT,
667          offsetof(UnicastAddress, iPAddress), _UnicastAddress_iPAddress},
668         {FNAME("iPXAddress") SEQ, 0, 3, 3, SKIP | EXT, 0,
669          _UnicastAddress_iPXAddress},
670         {FNAME("iP6Address") SEQ, 0, 2, 2, DECODE | EXT,
671          offsetof(UnicastAddress, iP6Address), _UnicastAddress_iP6Address},
672         {FNAME("netBios") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
673         {FNAME("iPSourceRouteAddress") SEQ, 0, 4, 4, SKIP | EXT, 0,
674          _UnicastAddress_iPSourceRouteAddress},
675         {FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
676         {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, NULL},
677 };
678
679 static const struct field_t _MulticastAddress_iPAddress[] = {   /* SEQUENCE */
680         {FNAME("network") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
681         {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
682 };
683
684 static const struct field_t _MulticastAddress_iP6Address[] = {  /* SEQUENCE */
685         {FNAME("network") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
686         {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
687 };
688
689 static const struct field_t _MulticastAddress[] = {     /* CHOICE */
690         {FNAME("iPAddress") SEQ, 0, 2, 2, SKIP | EXT, 0,
691          _MulticastAddress_iPAddress},
692         {FNAME("iP6Address") SEQ, 0, 2, 2, SKIP | EXT, 0,
693          _MulticastAddress_iP6Address},
694         {FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
695         {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, NULL},
696 };
697
698 static const struct field_t _H245_TransportAddress[] = {        /* CHOICE */
699         {FNAME("unicastAddress") CHOICE, 3, 5, 7, DECODE | EXT,
700          offsetof(H245_TransportAddress, unicastAddress), _UnicastAddress},
701         {FNAME("multicastAddress") CHOICE, 1, 2, 4, SKIP | EXT, 0,
702          _MulticastAddress},
703 };
704
705 static const struct field_t _H2250LogicalChannelParameters[] = {        /* SEQUENCE */
706         {FNAME("nonStandard") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
707          _H2250LogicalChannelParameters_nonStandard},
708         {FNAME("sessionID") INT, BYTE, 0, 0, SKIP, 0, NULL},
709         {FNAME("associatedSessionID") INT, 8, 1, 0, SKIP | OPT, 0, NULL},
710         {FNAME("mediaChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
711          offsetof(H2250LogicalChannelParameters, mediaChannel),
712          _H245_TransportAddress},
713         {FNAME("mediaGuaranteedDelivery") BOOL, FIXD, 0, 0, SKIP | OPT, 0,
714          NULL},
715         {FNAME("mediaControlChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
716          offsetof(H2250LogicalChannelParameters, mediaControlChannel),
717          _H245_TransportAddress},
718         {FNAME("mediaControlGuaranteedDelivery") BOOL, FIXD, 0, 0, STOP | OPT,
719          0, NULL},
720         {FNAME("silenceSuppression") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
721         {FNAME("destination") SEQ, 0, 2, 2, STOP | EXT | OPT, 0, NULL},
722         {FNAME("dynamicRTPPayloadType") INT, 5, 96, 0, STOP | OPT, 0, NULL},
723         {FNAME("mediaPacketization") CHOICE, 0, 1, 2, STOP | EXT | OPT, 0,
724          NULL},
725         {FNAME("transportCapability") SEQ, 3, 3, 3, STOP | EXT | OPT, 0,
726          NULL},
727         {FNAME("redundancyEncoding") SEQ, 1, 2, 2, STOP | EXT | OPT, 0, NULL},
728         {FNAME("source") SEQ, 0, 2, 2, SKIP | EXT | OPT, 0, NULL},
729 };
730
731 static const struct field_t _OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters[] = {       /* CHOICE */
732         {FNAME("h222LogicalChannelParameters") SEQ, 3, 5, 5, SKIP | EXT, 0,
733          _H222LogicalChannelParameters},
734         {FNAME("h223LogicalChannelParameters") SEQ, 0, 2, 2, SKIP | EXT, 0,
735          _H223LogicalChannelParameters},
736         {FNAME("v76LogicalChannelParameters") SEQ, 0, 5, 5, SKIP | EXT, 0,
737          _V76LogicalChannelParameters},
738         {FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT,
739          offsetof
740          (OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters,
741           h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
742         {FNAME("none") NUL, FIXD, 0, 0, SKIP, 0, NULL},
743 };
744
745 static const struct field_t _OpenLogicalChannel_forwardLogicalChannelParameters[] = {   /* SEQUENCE */
746         {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
747         {FNAME("dataType") CHOICE, 3, 6, 9, DECODE | EXT,
748          offsetof(OpenLogicalChannel_forwardLogicalChannelParameters,
749                   dataType), _DataType},
750         {FNAME("multiplexParameters") CHOICE, 2, 3, 5, DECODE | EXT,
751          offsetof(OpenLogicalChannel_forwardLogicalChannelParameters,
752                   multiplexParameters),
753          _OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters},
754         {FNAME("forwardLogicalChannelDependency") INT, WORD, 1, 0, SKIP | OPT,
755          0, NULL},
756         {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
757 };
758
759 static const struct field_t _OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters[] = {       /* CHOICE */
760         {FNAME("h223LogicalChannelParameters") SEQ, 0, 2, 2, SKIP | EXT, 0,
761          _H223LogicalChannelParameters},
762         {FNAME("v76LogicalChannelParameters") SEQ, 0, 5, 5, SKIP | EXT, 0,
763          _V76LogicalChannelParameters},
764         {FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT,
765          offsetof
766          (OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters,
767           h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
768 };
769
770 static const struct field_t _OpenLogicalChannel_reverseLogicalChannelParameters[] = {   /* SEQUENCE */
771         {FNAME("dataType") CHOICE, 3, 6, 9, SKIP | EXT, 0, _DataType},
772         {FNAME("multiplexParameters") CHOICE, 1, 2, 3, DECODE | EXT | OPT,
773          offsetof(OpenLogicalChannel_reverseLogicalChannelParameters,
774                   multiplexParameters),
775          _OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters},
776         {FNAME("reverseLogicalChannelDependency") INT, WORD, 1, 0, SKIP | OPT,
777          0, NULL},
778         {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
779 };
780
781 static const struct field_t _NetworkAccessParameters_distribution[] = { /* CHOICE */
782         {FNAME("unicast") NUL, FIXD, 0, 0, SKIP, 0, NULL},
783         {FNAME("multicast") NUL, FIXD, 0, 0, SKIP, 0, NULL},
784 };
785
786 static const struct field_t _Q2931Address_address[] = { /* CHOICE */
787         {FNAME("internationalNumber") NUMSTR, 4, 1, 0, SKIP, 0, NULL},
788         {FNAME("nsapAddress") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
789 };
790
791 static const struct field_t _Q2931Address[] = { /* SEQUENCE */
792         {FNAME("address") CHOICE, 1, 2, 2, SKIP | EXT, 0,
793          _Q2931Address_address},
794         {FNAME("subaddress") OCTSTR, 5, 1, 0, SKIP | OPT, 0, NULL},
795 };
796
797 static const struct field_t _NetworkAccessParameters_networkAddress[] = {       /* CHOICE */
798         {FNAME("q2931Address") SEQ, 1, 2, 2, SKIP | EXT, 0, _Q2931Address},
799         {FNAME("e164Address") NUMDGT, 7, 1, 0, SKIP, 0, NULL},
800         {FNAME("localAreaAddress") CHOICE, 1, 2, 2, DECODE | EXT,
801          offsetof(NetworkAccessParameters_networkAddress, localAreaAddress),
802          _H245_TransportAddress},
803 };
804
805 static const struct field_t _NetworkAccessParameters[] = {      /* SEQUENCE */
806         {FNAME("distribution") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0,
807          _NetworkAccessParameters_distribution},
808         {FNAME("networkAddress") CHOICE, 2, 3, 3, DECODE | EXT,
809          offsetof(NetworkAccessParameters, networkAddress),
810          _NetworkAccessParameters_networkAddress},
811         {FNAME("associateConference") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
812         {FNAME("externalReference") OCTSTR, 8, 1, 0, SKIP | OPT, 0, NULL},
813         {FNAME("t120SetupProcedure") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
814          NULL},
815 };
816
817 static const struct field_t _OpenLogicalChannel[] = {   /* SEQUENCE */
818         {FNAME("forwardLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
819         {FNAME("forwardLogicalChannelParameters") SEQ, 1, 3, 5, DECODE | EXT,
820          offsetof(OpenLogicalChannel, forwardLogicalChannelParameters),
821          _OpenLogicalChannel_forwardLogicalChannelParameters},
822         {FNAME("reverseLogicalChannelParameters") SEQ, 1, 2, 4,
823          DECODE | EXT | OPT, offsetof(OpenLogicalChannel,
824                                       reverseLogicalChannelParameters),
825          _OpenLogicalChannel_reverseLogicalChannelParameters},
826         {FNAME("separateStack") SEQ, 2, 4, 5, DECODE | EXT | OPT,
827          offsetof(OpenLogicalChannel, separateStack),
828          _NetworkAccessParameters},
829         {FNAME("encryptionSync") SEQ, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
830 };
831
832 static const struct field_t _Setup_UUIE_fastStart[] = { /* SEQUENCE OF */
833         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
834          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
835         ,
836 };
837
838 static const struct field_t _Setup_UUIE[] = {   /* SEQUENCE */
839         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
840         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
841          offsetof(Setup_UUIE, h245Address), _TransportAddress},
842         {FNAME("sourceAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
843          _Setup_UUIE_sourceAddress},
844         {FNAME("sourceInfo") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType},
845         {FNAME("destinationAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
846          _Setup_UUIE_destinationAddress},
847         {FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
848          offsetof(Setup_UUIE, destCallSignalAddress), _TransportAddress},
849         {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
850          _Setup_UUIE_destExtraCallInfo},
851         {FNAME("destExtraCRV") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
852          _Setup_UUIE_destExtraCRV},
853         {FNAME("activeMC") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
854         {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
855         {FNAME("conferenceGoal") CHOICE, 2, 3, 5, SKIP | EXT, 0,
856          _Setup_UUIE_conferenceGoal},
857         {FNAME("callServices") SEQ, 0, 8, 8, SKIP | EXT | OPT, 0,
858          _QseriesOptions},
859         {FNAME("callType") CHOICE, 2, 4, 4, SKIP | EXT, 0, _CallType},
860         {FNAME("sourceCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
861          offsetof(Setup_UUIE, sourceCallSignalAddress), _TransportAddress},
862         {FNAME("remoteExtensionAddress") CHOICE, 1, 2, 7, SKIP | EXT | OPT, 0,
863          NULL},
864         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
865         {FNAME("h245SecurityCapability") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
866          NULL},
867         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
868         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
869         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
870          offsetof(Setup_UUIE, fastStart), _Setup_UUIE_fastStart},
871         {FNAME("mediaWaitForConnect") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
872         {FNAME("canOverlapSend") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
873         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
874         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
875         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
876         {FNAME("connectionParameters") SEQ, 0, 3, 3, SKIP | EXT | OPT, 0,
877          NULL},
878         {FNAME("language") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
879         {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
880          NULL},
881         {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
882          NULL},
883         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
884         {FNAME("symmetricOperationRequired") NUL, FIXD, 0, 0, SKIP | OPT, 0,
885          NULL},
886         {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
887         {FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL},
888         {FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
889         {FNAME("neededFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
890         {FNAME("desiredFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
891         {FNAME("supportedFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
892         {FNAME("parallelH245Control") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
893         {FNAME("additionalSourceAddresses") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
894          NULL},
895 };
896
897 static const struct field_t _CallProceeding_UUIE_fastStart[] = {        /* SEQUENCE OF */
898         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
899          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
900         ,
901 };
902
903 static const struct field_t _CallProceeding_UUIE[] = {  /* SEQUENCE */
904         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
905         {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
906          _EndpointType},
907         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
908          offsetof(CallProceeding_UUIE, h245Address), _TransportAddress},
909         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
910         {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
911          NULL},
912         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
913         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
914         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
915          offsetof(CallProceeding_UUIE, fastStart),
916          _CallProceeding_UUIE_fastStart},
917         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
918         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
919         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
920         {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
921 };
922
923 static const struct field_t _Connect_UUIE_fastStart[] = {       /* SEQUENCE OF */
924         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
925          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
926         ,
927 };
928
929 static const struct field_t _Connect_UUIE[] = { /* SEQUENCE */
930         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
931         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
932          offsetof(Connect_UUIE, h245Address), _TransportAddress},
933         {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
934          _EndpointType},
935         {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
936         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
937         {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
938          NULL},
939         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
940         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
941         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
942          offsetof(Connect_UUIE, fastStart), _Connect_UUIE_fastStart},
943         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
944         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
945         {FNAME("language") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
946         {FNAME("connectedAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
947         {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
948          NULL},
949         {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
950          NULL},
951         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
952         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
953         {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
954         {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
955 };
956
957 static const struct field_t _Alerting_UUIE_fastStart[] = {      /* SEQUENCE OF */
958         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
959          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
960         ,
961 };
962
963 static const struct field_t _Alerting_UUIE[] = {        /* SEQUENCE */
964         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
965         {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
966          _EndpointType},
967         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
968          offsetof(Alerting_UUIE, h245Address), _TransportAddress},
969         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
970         {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
971          NULL},
972         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
973         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
974         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
975          offsetof(Alerting_UUIE, fastStart), _Alerting_UUIE_fastStart},
976         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
977         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
978         {FNAME("alertingAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
979         {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
980          NULL},
981         {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
982          NULL},
983         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
984         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
985         {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
986         {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
987 };
988
989 static const struct field_t _Information_UUIE[] = {     /* SEQUENCE */
990         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
991         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
992         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
993         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
994         {FNAME("fastStart") SEQOF, SEMI, 0, 30, SKIP | OPT, 0, NULL},
995         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
996         {FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL},
997 };
998
999 static const struct field_t _ReleaseCompleteReason[] = {        /* CHOICE */
1000         {FNAME("noBandwidth") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1001         {FNAME("gatekeeperResources") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1002         {FNAME("unreachableDestination") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1003         {FNAME("destinationRejection") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1004         {FNAME("invalidRevision") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1005         {FNAME("noPermission") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1006         {FNAME("unreachableGatekeeper") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1007         {FNAME("gatewayResources") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1008         {FNAME("badFormatAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1009         {FNAME("adaptiveBusy") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1010         {FNAME("inConf") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1011         {FNAME("undefinedReason") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1012         {FNAME("facilityCallDeflection") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1013         {FNAME("securityDenied") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1014         {FNAME("calledPartyNotRegistered") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1015         {FNAME("callerNotRegistered") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1016         {FNAME("newConnectionNeeded") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1017         {FNAME("nonStandardReason") SEQ, 0, 2, 2, SKIP, 0, NULL},
1018         {FNAME("replaceWithConferenceInvite") OCTSTR, FIXD, 16, 0, SKIP, 0,
1019          NULL},
1020         {FNAME("genericDataReason") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1021         {FNAME("neededFeatureNotSupported") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1022         {FNAME("tunnelledSignallingRejected") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1023 };
1024
1025 static const struct field_t _ReleaseComplete_UUIE[] = { /* SEQUENCE */
1026         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1027         {FNAME("reason") CHOICE, 4, 12, 22, SKIP | EXT | OPT, 0,
1028          _ReleaseCompleteReason},
1029         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
1030         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1031         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1032         {FNAME("busyAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1033         {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
1034          NULL},
1035         {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
1036          NULL},
1037         {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
1038         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1039         {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
1040 };
1041
1042 static const struct field_t _Facility_UUIE_alternativeAliasAddress[] = {        /* SEQUENCE OF */
1043         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1044 };
1045
1046 static const struct field_t _FacilityReason[] = {       /* CHOICE */
1047         {FNAME("routeCallToGatekeeper") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1048         {FNAME("callForwarded") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1049         {FNAME("routeCallToMC") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1050         {FNAME("undefinedReason") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1051         {FNAME("conferenceListChoice") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1052         {FNAME("startH245") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1053         {FNAME("noH245") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1054         {FNAME("newTokens") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1055         {FNAME("featureSetUpdate") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1056         {FNAME("forwardedElements") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1057         {FNAME("transportedInformation") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1058 };
1059
1060 static const struct field_t _Facility_UUIE_fastStart[] = {      /* SEQUENCE OF */
1061         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
1062          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
1063         ,
1064 };
1065
1066 static const struct field_t _Facility_UUIE[] = {        /* SEQUENCE */
1067         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1068         {FNAME("alternativeAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1069          offsetof(Facility_UUIE, alternativeAddress), _TransportAddress},
1070         {FNAME("alternativeAliasAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1071          _Facility_UUIE_alternativeAliasAddress},
1072         {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP | OPT, 0, NULL},
1073         {FNAME("reason") CHOICE, 2, 4, 11, DECODE | EXT,
1074          offsetof(Facility_UUIE, reason), _FacilityReason},
1075         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
1076         {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1077         {FNAME("remoteExtensionAddress") CHOICE, 1, 2, 7, SKIP | EXT | OPT, 0,
1078          NULL},
1079         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1080         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1081         {FNAME("conferences") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1082         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1083          offsetof(Facility_UUIE, h245Address), _TransportAddress},
1084         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
1085          offsetof(Facility_UUIE, fastStart), _Facility_UUIE_fastStart},
1086         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1087         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1088         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
1089         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1090         {FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL},
1091         {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
1092         {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT | OPT, 0, NULL},
1093         {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
1094          NULL},
1095 };
1096
1097 static const struct field_t _CallIdentifier[] = {       /* SEQUENCE */
1098         {FNAME("guid") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
1099 };
1100
1101 static const struct field_t _SecurityServiceMode[] = {  /* CHOICE */
1102         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, _NonStandardParameter},
1103         {FNAME("none") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1104         {FNAME("default") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1105 };
1106
1107 static const struct field_t _SecurityCapabilities[] = { /* SEQUENCE */
1108         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP | OPT, 0,
1109          _NonStandardParameter},
1110         {FNAME("encryption") CHOICE, 2, 3, 3, SKIP | EXT, 0,
1111          _SecurityServiceMode},
1112         {FNAME("authenticaton") CHOICE, 2, 3, 3, SKIP | EXT, 0,
1113          _SecurityServiceMode},
1114         {FNAME("integrity") CHOICE, 2, 3, 3, SKIP | EXT, 0,
1115          _SecurityServiceMode},
1116 };
1117
1118 static const struct field_t _H245Security[] = { /* CHOICE */
1119         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, _NonStandardParameter},
1120         {FNAME("noSecurity") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1121         {FNAME("tls") SEQ, 1, 4, 4, SKIP | EXT, 0, _SecurityCapabilities},
1122         {FNAME("ipsec") SEQ, 1, 4, 4, SKIP | EXT, 0, _SecurityCapabilities},
1123 };
1124
1125 static const struct field_t _DHset[] = {        /* SEQUENCE */
1126         {FNAME("halfkey") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
1127         {FNAME("modSize") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
1128         {FNAME("generator") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
1129 };
1130
1131 static const struct field_t _TypedCertificate[] = {     /* SEQUENCE */
1132         {FNAME("type") OID, BYTE, 0, 0, SKIP, 0, NULL},
1133         {FNAME("certificate") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1134 };
1135
1136 static const struct field_t _H235_NonStandardParameter[] = {    /* SEQUENCE */
1137         {FNAME("nonStandardIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1138         {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1139 };
1140
1141 static const struct field_t _ClearToken[] = {   /* SEQUENCE */
1142         {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1143         {FNAME("timeStamp") INT, CONS, 1, 0, SKIP | OPT, 0, NULL},
1144         {FNAME("password") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1145         {FNAME("dhkey") SEQ, 0, 3, 3, SKIP | EXT | OPT, 0, _DHset},
1146         {FNAME("challenge") OCTSTR, 7, 8, 0, SKIP | OPT, 0, NULL},
1147         {FNAME("random") INT, UNCO, 0, 0, SKIP | OPT, 0, NULL},
1148         {FNAME("certificate") SEQ, 0, 2, 2, SKIP | EXT | OPT, 0,
1149          _TypedCertificate},
1150         {FNAME("generalID") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1151         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP | OPT, 0,
1152          _H235_NonStandardParameter},
1153         {FNAME("eckasdhkey") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0, NULL},
1154         {FNAME("sendersID") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1155 };
1156
1157 static const struct field_t _Progress_UUIE_tokens[] = { /* SEQUENCE OF */
1158         {FNAME("item") SEQ, 8, 9, 11, SKIP | EXT, 0, _ClearToken},
1159 };
1160
1161 static const struct field_t _Params[] = {       /* SEQUENCE */
1162         {FNAME("ranInt") INT, UNCO, 0, 0, SKIP | OPT, 0, NULL},
1163         {FNAME("iv8") OCTSTR, FIXD, 8, 0, SKIP | OPT, 0, NULL},
1164         {FNAME("iv16") OCTSTR, FIXD, 16, 0, SKIP | OPT, 0, NULL},
1165 };
1166
1167 static const struct field_t _CryptoH323Token_cryptoEPPwdHash_token[] = {        /* SEQUENCE */
1168         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1169         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1170         {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1171 };
1172
1173 static const struct field_t _CryptoH323Token_cryptoEPPwdHash[] = {      /* SEQUENCE */
1174         {FNAME("alias") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1175         {FNAME("timeStamp") INT, CONS, 1, 0, SKIP, 0, NULL},
1176         {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1177          _CryptoH323Token_cryptoEPPwdHash_token},
1178 };
1179
1180 static const struct field_t _CryptoH323Token_cryptoGKPwdHash_token[] = {        /* SEQUENCE */
1181         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1182         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1183         {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1184 };
1185
1186 static const struct field_t _CryptoH323Token_cryptoGKPwdHash[] = {      /* SEQUENCE */
1187         {FNAME("gatekeeperId") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
1188         {FNAME("timeStamp") INT, CONS, 1, 0, SKIP, 0, NULL},
1189         {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1190          _CryptoH323Token_cryptoGKPwdHash_token},
1191 };
1192
1193 static const struct field_t _CryptoH323Token_cryptoEPPwdEncr[] = {      /* SEQUENCE */
1194         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1195         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1196         {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1197 };
1198
1199 static const struct field_t _CryptoH323Token_cryptoGKPwdEncr[] = {      /* SEQUENCE */
1200         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1201         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1202         {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1203 };
1204
1205 static const struct field_t _CryptoH323Token_cryptoEPCert[] = { /* SEQUENCE */
1206         {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1207         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1208         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1209         {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1210 };
1211
1212 static const struct field_t _CryptoH323Token_cryptoGKCert[] = { /* SEQUENCE */
1213         {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1214         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1215         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1216         {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1217 };
1218
1219 static const struct field_t _CryptoH323Token_cryptoFastStart[] = {      /* SEQUENCE */
1220         {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1221         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1222         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1223         {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1224 };
1225
1226 static const struct field_t _CryptoToken_cryptoEncryptedToken_token[] = {       /* SEQUENCE */
1227         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1228         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1229         {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1230 };
1231
1232 static const struct field_t _CryptoToken_cryptoEncryptedToken[] = {     /* SEQUENCE */
1233         {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1234         {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1235          _CryptoToken_cryptoEncryptedToken_token},
1236 };
1237
1238 static const struct field_t _CryptoToken_cryptoSignedToken_token[] = {  /* SEQUENCE */
1239         {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1240         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1241         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1242         {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1243 };
1244
1245 static const struct field_t _CryptoToken_cryptoSignedToken[] = {        /* SEQUENCE */
1246         {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1247         {FNAME("token") SEQ, 0, 4, 4, SKIP, 0,
1248          _CryptoToken_cryptoSignedToken_token},
1249 };
1250
1251 static const struct field_t _CryptoToken_cryptoHashedToken_token[] = {  /* SEQUENCE */
1252         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1253         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1254         {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1255 };
1256
1257 static const struct field_t _CryptoToken_cryptoHashedToken[] = {        /* SEQUENCE */
1258         {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1259         {FNAME("hashedVals") SEQ, 8, 9, 11, SKIP | EXT, 0, _ClearToken},
1260         {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1261          _CryptoToken_cryptoHashedToken_token},
1262 };
1263
1264 static const struct field_t _CryptoToken_cryptoPwdEncr[] = {    /* SEQUENCE */
1265         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1266         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1267         {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1268 };
1269
1270 static const struct field_t _CryptoToken[] = {  /* CHOICE */
1271         {FNAME("cryptoEncryptedToken") SEQ, 0, 2, 2, SKIP, 0,
1272          _CryptoToken_cryptoEncryptedToken},
1273         {FNAME("cryptoSignedToken") SEQ, 0, 2, 2, SKIP, 0,
1274          _CryptoToken_cryptoSignedToken},
1275         {FNAME("cryptoHashedToken") SEQ, 0, 3, 3, SKIP, 0,
1276          _CryptoToken_cryptoHashedToken},
1277         {FNAME("cryptoPwdEncr") SEQ, 0, 3, 3, SKIP, 0,
1278          _CryptoToken_cryptoPwdEncr},
1279 };
1280
1281 static const struct field_t _CryptoH323Token[] = {      /* CHOICE */
1282         {FNAME("cryptoEPPwdHash") SEQ, 0, 3, 3, SKIP, 0,
1283          _CryptoH323Token_cryptoEPPwdHash},
1284         {FNAME("cryptoGKPwdHash") SEQ, 0, 3, 3, SKIP, 0,
1285          _CryptoH323Token_cryptoGKPwdHash},
1286         {FNAME("cryptoEPPwdEncr") SEQ, 0, 3, 3, SKIP, 0,
1287          _CryptoH323Token_cryptoEPPwdEncr},
1288         {FNAME("cryptoGKPwdEncr") SEQ, 0, 3, 3, SKIP, 0,
1289          _CryptoH323Token_cryptoGKPwdEncr},
1290         {FNAME("cryptoEPCert") SEQ, 0, 4, 4, SKIP, 0,
1291          _CryptoH323Token_cryptoEPCert},
1292         {FNAME("cryptoGKCert") SEQ, 0, 4, 4, SKIP, 0,
1293          _CryptoH323Token_cryptoGKCert},
1294         {FNAME("cryptoFastStart") SEQ, 0, 4, 4, SKIP, 0,
1295          _CryptoH323Token_cryptoFastStart},
1296         {FNAME("nestedcryptoToken") CHOICE, 2, 4, 4, SKIP | EXT, 0,
1297          _CryptoToken},
1298 };
1299
1300 static const struct field_t _Progress_UUIE_cryptoTokens[] = {   /* SEQUENCE OF */
1301         {FNAME("item") CHOICE, 3, 8, 8, SKIP | EXT, 0, _CryptoH323Token},
1302 };
1303
1304 static const struct field_t _Progress_UUIE_fastStart[] = {      /* SEQUENCE OF */
1305         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
1306          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
1307         ,
1308 };
1309
1310 static const struct field_t _Progress_UUIE[] = {        /* SEQUENCE */
1311         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1312         {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
1313          _EndpointType},
1314         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1315          offsetof(Progress_UUIE, h245Address), _TransportAddress},
1316         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0,
1317          _CallIdentifier},
1318         {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
1319          _H245Security},
1320         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1321          _Progress_UUIE_tokens},
1322         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1323          _Progress_UUIE_cryptoTokens},
1324         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
1325          offsetof(Progress_UUIE, fastStart), _Progress_UUIE_fastStart},
1326         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1327         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1328         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
1329 };
1330
1331 static const struct field_t _H323_UU_PDU_h323_message_body[] = {        /* CHOICE */
1332         {FNAME("setup") SEQ, 7, 13, 39, DECODE | EXT,
1333          offsetof(H323_UU_PDU_h323_message_body, setup), _Setup_UUIE},
1334         {FNAME("callProceeding") SEQ, 1, 3, 12, DECODE | EXT,
1335          offsetof(H323_UU_PDU_h323_message_body, callProceeding),
1336          _CallProceeding_UUIE},
1337         {FNAME("connect") SEQ, 1, 4, 19, DECODE | EXT,
1338          offsetof(H323_UU_PDU_h323_message_body, connect), _Connect_UUIE},
1339         {FNAME("alerting") SEQ, 1, 3, 17, DECODE | EXT,
1340          offsetof(H323_UU_PDU_h323_message_body, alerting), _Alerting_UUIE},
1341         {FNAME("information") SEQ, 0, 1, 7, SKIP | EXT, 0, _Information_UUIE},
1342         {FNAME("releaseComplete") SEQ, 1, 2, 11, SKIP | EXT, 0,
1343          _ReleaseComplete_UUIE},
1344         {FNAME("facility") SEQ, 3, 5, 21, DECODE | EXT,
1345          offsetof(H323_UU_PDU_h323_message_body, facility), _Facility_UUIE},
1346         {FNAME("progress") SEQ, 5, 8, 11, DECODE | EXT,
1347          offsetof(H323_UU_PDU_h323_message_body, progress), _Progress_UUIE},
1348         {FNAME("empty") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1349         {FNAME("status") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
1350         {FNAME("statusInquiry") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
1351         {FNAME("setupAcknowledge") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
1352         {FNAME("notify") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
1353 };
1354
1355 static const struct field_t _RequestMessage[] = {       /* CHOICE */
1356         {FNAME("nonStandard") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1357         {FNAME("masterSlaveDetermination") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1358         {FNAME("terminalCapabilitySet") SEQ, 3, 5, 5, STOP | EXT, 0, NULL},
1359         {FNAME("openLogicalChannel") SEQ, 1, 3, 5, DECODE | EXT,
1360          offsetof(RequestMessage, openLogicalChannel), _OpenLogicalChannel},
1361         {FNAME("closeLogicalChannel") SEQ, 0, 2, 3, STOP | EXT, 0, NULL},
1362         {FNAME("requestChannelClose") SEQ, 0, 1, 3, STOP | EXT, 0, NULL},
1363         {FNAME("multiplexEntrySend") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1364         {FNAME("requestMultiplexEntry") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1365         {FNAME("requestMode") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1366         {FNAME("roundTripDelayRequest") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1367         {FNAME("maintenanceLoopRequest") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1368         {FNAME("communicationModeRequest") SEQ, 0, 0, 0, STOP | EXT, 0, NULL},
1369         {FNAME("conferenceRequest") CHOICE, 3, 8, 16, STOP | EXT, 0, NULL},
1370         {FNAME("multilinkRequest") CHOICE, 3, 5, 5, STOP | EXT, 0, NULL},
1371         {FNAME("logicalChannelRateRequest") SEQ, 0, 3, 3, STOP | EXT, 0,
1372          NULL},
1373 };
1374
1375 static const struct field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters[] = {    /* CHOICE */
1376         {FNAME("h222LogicalChannelParameters") SEQ, 3, 5, 5, SKIP | EXT, 0,
1377          _H222LogicalChannelParameters},
1378         {FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT,
1379          offsetof
1380          (OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters,
1381           h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
1382 };
1383
1384 static const struct field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters[] = {        /* SEQUENCE */
1385         {FNAME("reverseLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
1386         {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
1387         {FNAME("multiplexParameters") CHOICE, 0, 1, 2, DECODE | EXT | OPT,
1388          offsetof(OpenLogicalChannelAck_reverseLogicalChannelParameters,
1389                   multiplexParameters),
1390          _OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters},
1391         {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
1392 };
1393
1394 static const struct field_t _H2250LogicalChannelAckParameters_nonStandard[] = { /* SEQUENCE OF */
1395         {FNAME("item") SEQ, 0, 2, 2, SKIP, 0, _H245_NonStandardParameter},
1396 };
1397
1398 static const struct field_t _H2250LogicalChannelAckParameters[] = {     /* SEQUENCE */
1399         {FNAME("nonStandard") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1400          _H2250LogicalChannelAckParameters_nonStandard},
1401         {FNAME("sessionID") INT, 8, 1, 0, SKIP | OPT, 0, NULL},
1402         {FNAME("mediaChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
1403          offsetof(H2250LogicalChannelAckParameters, mediaChannel),
1404          _H245_TransportAddress},
1405         {FNAME("mediaControlChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
1406          offsetof(H2250LogicalChannelAckParameters, mediaControlChannel),
1407          _H245_TransportAddress},
1408         {FNAME("dynamicRTPPayloadType") INT, 5, 96, 0, SKIP | OPT, 0, NULL},
1409         {FNAME("flowControlToZero") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1410         {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
1411 };
1412
1413 static const struct field_t _OpenLogicalChannelAck_forwardMultiplexAckParameters[] = {  /* CHOICE */
1414         {FNAME("h2250LogicalChannelAckParameters") SEQ, 5, 5, 7, DECODE | EXT,
1415          offsetof(OpenLogicalChannelAck_forwardMultiplexAckParameters,
1416                   h2250LogicalChannelAckParameters),
1417          _H2250LogicalChannelAckParameters},
1418 };
1419
1420 static const struct field_t _OpenLogicalChannelAck[] = {        /* SEQUENCE */
1421         {FNAME("forwardLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
1422         {FNAME("reverseLogicalChannelParameters") SEQ, 2, 3, 4,
1423          DECODE | EXT | OPT, offsetof(OpenLogicalChannelAck,
1424                                       reverseLogicalChannelParameters),
1425          _OpenLogicalChannelAck_reverseLogicalChannelParameters},
1426         {FNAME("separateStack") SEQ, 2, 4, 5, DECODE | EXT | OPT,
1427          offsetof(OpenLogicalChannelAck, separateStack),
1428          _NetworkAccessParameters},
1429         {FNAME("forwardMultiplexAckParameters") CHOICE, 0, 1, 1,
1430          DECODE | EXT | OPT, offsetof(OpenLogicalChannelAck,
1431                                       forwardMultiplexAckParameters),
1432          _OpenLogicalChannelAck_forwardMultiplexAckParameters},
1433         {FNAME("encryptionSync") SEQ, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
1434 };
1435
1436 static const struct field_t _ResponseMessage[] = {      /* CHOICE */
1437         {FNAME("nonStandard") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1438         {FNAME("masterSlaveDeterminationAck") SEQ, 0, 1, 1, STOP | EXT, 0,
1439          NULL},
1440         {FNAME("masterSlaveDeterminationReject") SEQ, 0, 1, 1, STOP | EXT, 0,
1441          NULL},
1442         {FNAME("terminalCapabilitySetAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1443         {FNAME("terminalCapabilitySetReject") SEQ, 0, 2, 2, STOP | EXT, 0,
1444          NULL},
1445         {FNAME("openLogicalChannelAck") SEQ, 1, 2, 5, DECODE | EXT,
1446          offsetof(ResponseMessage, openLogicalChannelAck),
1447          _OpenLogicalChannelAck},
1448         {FNAME("openLogicalChannelReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1449         {FNAME("closeLogicalChannelAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1450         {FNAME("requestChannelCloseAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1451         {FNAME("requestChannelCloseReject") SEQ, 0, 2, 2, STOP | EXT, 0,
1452          NULL},
1453         {FNAME("multiplexEntrySendAck") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1454         {FNAME("multiplexEntrySendReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1455         {FNAME("requestMultiplexEntryAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1456         {FNAME("requestMultiplexEntryReject") SEQ, 0, 2, 2, STOP | EXT, 0,
1457          NULL},
1458         {FNAME("requestModeAck") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1459         {FNAME("requestModeReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1460         {FNAME("roundTripDelayResponse") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1461         {FNAME("maintenanceLoopAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1462         {FNAME("maintenanceLoopReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1463         {FNAME("communicationModeResponse") CHOICE, 0, 1, 1, STOP | EXT, 0,
1464          NULL},
1465         {FNAME("conferenceResponse") CHOICE, 3, 8, 16, STOP | EXT, 0, NULL},
1466         {FNAME("multilinkResponse") CHOICE, 3, 5, 5, STOP | EXT, 0, NULL},
1467         {FNAME("logicalChannelRateAcknowledge") SEQ, 0, 3, 3, STOP | EXT, 0,
1468          NULL},
1469         {FNAME("logicalChannelRateReject") SEQ, 1, 4, 4, STOP | EXT, 0, NULL},
1470 };
1471
1472 static const struct field_t _MultimediaSystemControlMessage[] = {       /* CHOICE */
1473         {FNAME("request") CHOICE, 4, 11, 15, DECODE | EXT,
1474          offsetof(MultimediaSystemControlMessage, request), _RequestMessage},
1475         {FNAME("response") CHOICE, 5, 19, 24, DECODE | EXT,
1476          offsetof(MultimediaSystemControlMessage, response),
1477          _ResponseMessage},
1478         {FNAME("command") CHOICE, 3, 7, 12, STOP | EXT, 0, NULL},
1479         {FNAME("indication") CHOICE, 4, 14, 23, STOP | EXT, 0, NULL},
1480 };
1481
1482 static const struct field_t _H323_UU_PDU_h245Control[] = {      /* SEQUENCE OF */
1483         {FNAME("item") CHOICE, 2, 4, 4, DECODE | OPEN | EXT,
1484          sizeof(MultimediaSystemControlMessage),
1485          _MultimediaSystemControlMessage}
1486         ,
1487 };
1488
1489 static const struct field_t _H323_UU_PDU[] = {  /* SEQUENCE */
1490         {FNAME("h323-message-body") CHOICE, 3, 7, 13, DECODE | EXT,
1491          offsetof(H323_UU_PDU, h323_message_body),
1492          _H323_UU_PDU_h323_message_body},
1493         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1494          _NonStandardParameter},
1495         {FNAME("h4501SupplementaryService") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1496          NULL},
1497         {FNAME("h245Tunneling") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1498         {FNAME("h245Control") SEQOF, SEMI, 0, 4, DECODE | OPT,
1499          offsetof(H323_UU_PDU, h245Control), _H323_UU_PDU_h245Control},
1500         {FNAME("nonStandardControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1501         {FNAME("callLinkage") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
1502         {FNAME("tunnelledSignallingMessage") SEQ, 2, 4, 4, STOP | EXT | OPT,
1503          0, NULL},
1504         {FNAME("provisionalRespToH245Tunneling") NUL, FIXD, 0, 0, STOP | OPT,
1505          0, NULL},
1506         {FNAME("stimulusControl") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1507         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1508 };
1509
1510 static const struct field_t _H323_UserInformation[] = { /* SEQUENCE */
1511         {FNAME("h323-uu-pdu") SEQ, 1, 2, 11, DECODE | EXT,
1512          offsetof(H323_UserInformation, h323_uu_pdu), _H323_UU_PDU},
1513         {FNAME("user-data") SEQ, 0, 2, 2, STOP | EXT | OPT, 0, NULL},
1514 };
1515
1516 static const struct field_t _GatekeeperRequest[] = {    /* SEQUENCE */
1517         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1518         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1519         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1520          _NonStandardParameter},
1521         {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1522          offsetof(GatekeeperRequest, rasAddress), _TransportAddress},
1523         {FNAME("endpointType") SEQ, 6, 8, 10, STOP | EXT, 0, NULL},
1524         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1525         {FNAME("callServices") SEQ, 0, 8, 8, STOP | EXT | OPT, 0, NULL},
1526         {FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1527         {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1528         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1529         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1530         {FNAME("authenticationCapability") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1531          NULL},
1532         {FNAME("algorithmOIDs") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1533         {FNAME("integrity") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1534         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1535         {FNAME("supportsAltGK") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1536         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1537         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1538 };
1539
1540 static const struct field_t _GatekeeperConfirm[] = {    /* SEQUENCE */
1541         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1542         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1543         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1544          _NonStandardParameter},
1545         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1546         {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1547          offsetof(GatekeeperConfirm, rasAddress), _TransportAddress},
1548         {FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1549         {FNAME("authenticationMode") CHOICE, 3, 7, 8, STOP | EXT | OPT, 0,
1550          NULL},
1551         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1552         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1553         {FNAME("algorithmOID") OID, BYTE, 0, 0, STOP | OPT, 0, NULL},
1554         {FNAME("integrity") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1555         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1556         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1557         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1558 };
1559
1560 static const struct field_t _RegistrationRequest_callSignalAddress[] = {        /* SEQUENCE OF */
1561         {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1562          sizeof(TransportAddress), _TransportAddress}
1563         ,
1564 };
1565
1566 static const struct field_t _RegistrationRequest_rasAddress[] = {       /* SEQUENCE OF */
1567         {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1568          sizeof(TransportAddress), _TransportAddress}
1569         ,
1570 };
1571
1572 static const struct field_t _RegistrationRequest_terminalAlias[] = {    /* SEQUENCE OF */
1573         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1574 };
1575
1576 static const struct field_t _RegistrationRequest[] = {  /* SEQUENCE */
1577         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1578         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1579         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1580          _NonStandardParameter},
1581         {FNAME("discoveryComplete") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1582         {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
1583          offsetof(RegistrationRequest, callSignalAddress),
1584          _RegistrationRequest_callSignalAddress},
1585         {FNAME("rasAddress") SEQOF, SEMI, 0, 10, DECODE,
1586          offsetof(RegistrationRequest, rasAddress),
1587          _RegistrationRequest_rasAddress},
1588         {FNAME("terminalType") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType},
1589         {FNAME("terminalAlias") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1590          _RegistrationRequest_terminalAlias},
1591         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1592         {FNAME("endpointVendor") SEQ, 2, 3, 3, SKIP | EXT, 0,
1593          _VendorIdentifier},
1594         {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1595         {FNAME("timeToLive") INT, CONS, 1, 0, DECODE | OPT,
1596          offsetof(RegistrationRequest, timeToLive), NULL},
1597         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1598         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1599         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1600         {FNAME("keepAlive") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1601         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1602         {FNAME("willSupplyUUIEs") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1603         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1604         {FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT,
1605          0, NULL},
1606         {FNAME("additiveRegistration") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1607         {FNAME("terminalAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1608          NULL},
1609         {FNAME("supportsAltGK") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1610         {FNAME("usageReportingCapability") SEQ, 3, 4, 4, STOP | EXT | OPT, 0,
1611          NULL},
1612         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1613         {FNAME("supportedH248Packages") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1614          NULL},
1615         {FNAME("callCreditCapability") SEQ, 2, 2, 2, STOP | EXT | OPT, 0,
1616          NULL},
1617         {FNAME("capacityReportingCapability") SEQ, 0, 1, 1, STOP | EXT | OPT,
1618          0, NULL},
1619         {FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
1620         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1621         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1622 };
1623
1624 static const struct field_t _RegistrationConfirm_callSignalAddress[] = {        /* SEQUENCE OF */
1625         {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1626          sizeof(TransportAddress), _TransportAddress}
1627         ,
1628 };
1629
1630 static const struct field_t _RegistrationConfirm_terminalAlias[] = {    /* SEQUENCE OF */
1631         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1632 };
1633
1634 static const struct field_t _RegistrationConfirm[] = {  /* SEQUENCE */
1635         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1636         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1637         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1638          _NonStandardParameter},
1639         {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
1640          offsetof(RegistrationConfirm, callSignalAddress),
1641          _RegistrationConfirm_callSignalAddress},
1642         {FNAME("terminalAlias") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1643          _RegistrationConfirm_terminalAlias},
1644         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1645         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
1646         {FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1647         {FNAME("timeToLive") INT, CONS, 1, 0, DECODE | OPT,
1648          offsetof(RegistrationConfirm, timeToLive), NULL},
1649         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1650         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1651         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1652         {FNAME("willRespondToIRR") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1653         {FNAME("preGrantedARQ") SEQ, 0, 4, 8, STOP | EXT | OPT, 0, NULL},
1654         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1655         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1656         {FNAME("supportsAdditiveRegistration") NUL, FIXD, 0, 0, STOP | OPT, 0,
1657          NULL},
1658         {FNAME("terminalAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1659          NULL},
1660         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1661         {FNAME("usageSpec") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1662         {FNAME("featureServerAlias") CHOICE, 1, 2, 7, STOP | EXT | OPT, 0,
1663          NULL},
1664         {FNAME("capacityReportingSpec") SEQ, 0, 1, 1, STOP | EXT | OPT, 0,
1665          NULL},
1666         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1667         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1668 };
1669
1670 static const struct field_t _UnregistrationRequest_callSignalAddress[] = {      /* SEQUENCE OF */
1671         {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1672          sizeof(TransportAddress), _TransportAddress}
1673         ,
1674 };
1675
1676 static const struct field_t _UnregistrationRequest[] = {        /* SEQUENCE */
1677         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1678         {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
1679          offsetof(UnregistrationRequest, callSignalAddress),
1680          _UnregistrationRequest_callSignalAddress},
1681         {FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1682         {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1683         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1684         {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1685         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1686         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1687         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1688         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1689         {FNAME("reason") CHOICE, 2, 4, 5, STOP | EXT | OPT, 0, NULL},
1690         {FNAME("endpointAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1691          NULL},
1692         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1693         {FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1694         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1695 };
1696
1697 static const struct field_t _CallModel[] = {    /* CHOICE */
1698         {FNAME("direct") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1699         {FNAME("gatekeeperRouted") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1700 };
1701
1702 static const struct field_t _AdmissionRequest_destinationInfo[] = {     /* SEQUENCE OF */
1703         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1704 };
1705
1706 static const struct field_t _AdmissionRequest_destExtraCallInfo[] = {   /* SEQUENCE OF */
1707         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1708 };
1709
1710 static const struct field_t _AdmissionRequest_srcInfo[] = {     /* SEQUENCE OF */
1711         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1712 };
1713
1714 static const struct field_t _AdmissionRequest[] = {     /* SEQUENCE */
1715         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1716         {FNAME("callType") CHOICE, 2, 4, 4, SKIP | EXT, 0, _CallType},
1717         {FNAME("callModel") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0, _CallModel},
1718         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
1719         {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1720          _AdmissionRequest_destinationInfo},
1721         {FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1722          offsetof(AdmissionRequest, destCallSignalAddress),
1723          _TransportAddress},
1724         {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1725          _AdmissionRequest_destExtraCallInfo},
1726         {FNAME("srcInfo") SEQOF, SEMI, 0, 0, SKIP, 0,
1727          _AdmissionRequest_srcInfo},
1728         {FNAME("srcCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1729          offsetof(AdmissionRequest, srcCallSignalAddress), _TransportAddress},
1730         {FNAME("bandWidth") INT, CONS, 0, 0, STOP, 0, NULL},
1731         {FNAME("callReferenceValue") INT, WORD, 0, 0, STOP, 0, NULL},
1732         {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1733         {FNAME("callServices") SEQ, 0, 8, 8, STOP | EXT | OPT, 0, NULL},
1734         {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, STOP, 0, NULL},
1735         {FNAME("activeMC") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1736         {FNAME("answerCall") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1737         {FNAME("canMapAlias") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1738         {FNAME("callIdentifier") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1739         {FNAME("srcAlternatives") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1740         {FNAME("destAlternatives") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1741         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1742         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1743         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1744         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1745         {FNAME("transportQOS") CHOICE, 2, 3, 3, STOP | EXT | OPT, 0, NULL},
1746         {FNAME("willSupplyUUIEs") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1747         {FNAME("callLinkage") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
1748         {FNAME("gatewayDataRate") SEQ, 2, 3, 3, STOP | EXT | OPT, 0, NULL},
1749         {FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
1750         {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1751         {FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1752         {FNAME("desiredTunnelledProtocol") SEQ, 1, 2, 2, STOP | EXT | OPT, 0,
1753          NULL},
1754         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1755         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1756 };
1757
1758 static const struct field_t _AdmissionConfirm[] = {     /* SEQUENCE */
1759         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1760         {FNAME("bandWidth") INT, CONS, 0, 0, SKIP, 0, NULL},
1761         {FNAME("callModel") CHOICE, 1, 2, 2, SKIP | EXT, 0, _CallModel},
1762         {FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1763          offsetof(AdmissionConfirm, destCallSignalAddress),
1764          _TransportAddress},
1765         {FNAME("irrFrequency") INT, WORD, 1, 0, STOP | OPT, 0, NULL},
1766         {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1767         {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1768         {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1769         {FNAME("destinationType") SEQ, 6, 8, 10, STOP | EXT | OPT, 0, NULL},
1770         {FNAME("remoteExtensionAddress") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1771          NULL},
1772         {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1773         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1774         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1775         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1776         {FNAME("transportQOS") CHOICE, 2, 3, 3, STOP | EXT | OPT, 0, NULL},
1777         {FNAME("willRespondToIRR") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1778         {FNAME("uuiesRequested") SEQ, 0, 9, 13, STOP | EXT, 0, NULL},
1779         {FNAME("language") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1780         {FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT,
1781          0, NULL},
1782         {FNAME("useSpecifiedTransport") CHOICE, 1, 2, 2, STOP | EXT | OPT, 0,
1783          NULL},
1784         {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1785         {FNAME("usageSpec") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1786         {FNAME("supportedProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1787         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1788         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1789         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1790         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1791 };
1792
1793 static const struct field_t _LocationRequest_destinationInfo[] = {      /* SEQUENCE OF */
1794         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1795 };
1796
1797 static const struct field_t _LocationRequest[] = {      /* SEQUENCE */
1798         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1799         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1800         {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, SKIP, 0,
1801          _LocationRequest_destinationInfo},
1802         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1803          _NonStandardParameter},
1804         {FNAME("replyAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1805          offsetof(LocationRequest, replyAddress), _TransportAddress},
1806         {FNAME("sourceInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1807         {FNAME("canMapAlias") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1808         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1809         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1810         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1811         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1812         {FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1813         {FNAME("desiredTunnelledProtocol") SEQ, 1, 2, 2, STOP | EXT | OPT, 0,
1814          NULL},
1815         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1816         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1817         {FNAME("hopCount") INT, 8, 1, 0, STOP | OPT, 0, NULL},
1818         {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1819 };
1820
1821 static const struct field_t _LocationConfirm[] = {      /* SEQUENCE */
1822         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1823         {FNAME("callSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1824          offsetof(LocationConfirm, callSignalAddress), _TransportAddress},
1825         {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1826          offsetof(LocationConfirm, rasAddress), _TransportAddress},
1827         {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1828         {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1829         {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1830         {FNAME("destinationType") SEQ, 6, 8, 10, STOP | EXT | OPT, 0, NULL},
1831         {FNAME("remoteExtensionAddress") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1832          NULL},
1833         {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1834         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1835         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1836         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1837         {FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT,
1838          0, NULL},
1839         {FNAME("supportedProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1840         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1841         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1842         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1843         {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1844         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1845 };
1846
1847 static const struct field_t _InfoRequestResponse_callSignalAddress[] = {        /* SEQUENCE OF */
1848         {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1849          sizeof(TransportAddress), _TransportAddress}
1850         ,
1851 };
1852
1853 static const struct field_t _InfoRequestResponse[] = {  /* SEQUENCE */
1854         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1855          _NonStandardParameter},
1856         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1857         {FNAME("endpointType") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType},
1858         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
1859         {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1860          offsetof(InfoRequestResponse, rasAddress), _TransportAddress},
1861         {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
1862          offsetof(InfoRequestResponse, callSignalAddress),
1863          _InfoRequestResponse_callSignalAddress},
1864         {FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1865         {FNAME("perCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1866         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1867         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1868         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1869         {FNAME("needResponse") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1870         {FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
1871         {FNAME("irrStatus") CHOICE, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
1872         {FNAME("unsolicited") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1873         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1874 };
1875
1876 static const struct field_t _RasMessage[] = {   /* CHOICE */
1877         {FNAME("gatekeeperRequest") SEQ, 4, 8, 18, DECODE | EXT,
1878          offsetof(RasMessage, gatekeeperRequest), _GatekeeperRequest},
1879         {FNAME("gatekeeperConfirm") SEQ, 2, 5, 14, DECODE | EXT,
1880          offsetof(RasMessage, gatekeeperConfirm), _GatekeeperConfirm},
1881         {FNAME("gatekeeperReject") SEQ, 2, 5, 11, STOP | EXT, 0, NULL},
1882         {FNAME("registrationRequest") SEQ, 3, 10, 31, DECODE | EXT,
1883          offsetof(RasMessage, registrationRequest), _RegistrationRequest},
1884         {FNAME("registrationConfirm") SEQ, 3, 7, 24, DECODE | EXT,
1885          offsetof(RasMessage, registrationConfirm), _RegistrationConfirm},
1886         {FNAME("registrationReject") SEQ, 2, 5, 11, STOP | EXT, 0, NULL},
1887         {FNAME("unregistrationRequest") SEQ, 3, 5, 15, DECODE | EXT,
1888          offsetof(RasMessage, unregistrationRequest), _UnregistrationRequest},
1889         {FNAME("unregistrationConfirm") SEQ, 1, 2, 6, STOP | EXT, 0, NULL},
1890         {FNAME("unregistrationReject") SEQ, 1, 3, 8, STOP | EXT, 0, NULL},
1891         {FNAME("admissionRequest") SEQ, 7, 16, 34, DECODE | EXT,
1892          offsetof(RasMessage, admissionRequest), _AdmissionRequest},
1893         {FNAME("admissionConfirm") SEQ, 2, 6, 27, DECODE | EXT,
1894          offsetof(RasMessage, admissionConfirm), _AdmissionConfirm},
1895         {FNAME("admissionReject") SEQ, 1, 3, 11, STOP | EXT, 0, NULL},
1896         {FNAME("bandwidthRequest") SEQ, 2, 7, 18, STOP | EXT, 0, NULL},
1897         {FNAME("bandwidthConfirm") SEQ, 1, 3, 8, STOP | EXT, 0, NULL},
1898         {FNAME("bandwidthReject") SEQ, 1, 4, 9, STOP | EXT, 0, NULL},
1899         {FNAME("disengageRequest") SEQ, 1, 6, 19, STOP | EXT, 0, NULL},
1900         {FNAME("disengageConfirm") SEQ, 1, 2, 9, STOP | EXT, 0, NULL},
1901         {FNAME("disengageReject") SEQ, 1, 3, 8, STOP | EXT, 0, NULL},
1902         {FNAME("locationRequest") SEQ, 2, 5, 17, DECODE | EXT,
1903          offsetof(RasMessage, locationRequest), _LocationRequest},
1904         {FNAME("locationConfirm") SEQ, 1, 4, 19, DECODE | EXT,
1905          offsetof(RasMessage, locationConfirm), _LocationConfirm},
1906         {FNAME("locationReject") SEQ, 1, 3, 10, STOP | EXT, 0, NULL},
1907         {FNAME("infoRequest") SEQ, 2, 4, 15, STOP | EXT, 0, NULL},
1908         {FNAME("infoRequestResponse") SEQ, 3, 8, 16, DECODE | EXT,
1909          offsetof(RasMessage, infoRequestResponse), _InfoRequestResponse},
1910         {FNAME("nonStandardMessage") SEQ, 0, 2, 7, STOP | EXT, 0, NULL},
1911         {FNAME("unknownMessageResponse") SEQ, 0, 1, 5, STOP | EXT, 0, NULL},
1912         {FNAME("requestInProgress") SEQ, 4, 6, 6, STOP | EXT, 0, NULL},
1913         {FNAME("resourcesAvailableIndicate") SEQ, 4, 9, 11, STOP | EXT, 0,
1914          NULL},
1915         {FNAME("resourcesAvailableConfirm") SEQ, 4, 6, 7, STOP | EXT, 0,
1916          NULL},
1917         {FNAME("infoRequestAck") SEQ, 4, 5, 5, STOP | EXT, 0, NULL},
1918         {FNAME("infoRequestNak") SEQ, 5, 7, 7, STOP | EXT, 0, NULL},
1919         {FNAME("serviceControlIndication") SEQ, 8, 10, 10, STOP | EXT, 0,
1920          NULL},
1921         {FNAME("serviceControlResponse") SEQ, 7, 8, 8, STOP | EXT, 0, NULL},
1922 };