Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / linux / netfilter / nf_conntrack_h323_types.h
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 typedef struct TransportAddress_ipAddress {     /* SEQUENCE */
9         int options;            /* No use */
10         unsigned int ip;
11 } TransportAddress_ipAddress;
12
13 typedef struct TransportAddress_ip6Address {    /* SEQUENCE */
14         int options;            /* No use */
15         unsigned int ip;
16 } TransportAddress_ip6Address;
17
18 typedef struct TransportAddress {       /* CHOICE */
19         enum {
20                 eTransportAddress_ipAddress,
21                 eTransportAddress_ipSourceRoute,
22                 eTransportAddress_ipxAddress,
23                 eTransportAddress_ip6Address,
24                 eTransportAddress_netBios,
25                 eTransportAddress_nsap,
26                 eTransportAddress_nonStandardAddress,
27         } choice;
28         union {
29                 TransportAddress_ipAddress ipAddress;
30                 TransportAddress_ip6Address ip6Address;
31         };
32 } TransportAddress;
33
34 typedef struct DataProtocolCapability { /* CHOICE */
35         enum {
36                 eDataProtocolCapability_nonStandard,
37                 eDataProtocolCapability_v14buffered,
38                 eDataProtocolCapability_v42lapm,
39                 eDataProtocolCapability_hdlcFrameTunnelling,
40                 eDataProtocolCapability_h310SeparateVCStack,
41                 eDataProtocolCapability_h310SingleVCStack,
42                 eDataProtocolCapability_transparent,
43                 eDataProtocolCapability_segmentationAndReassembly,
44                 eDataProtocolCapability_hdlcFrameTunnelingwSAR,
45                 eDataProtocolCapability_v120,
46                 eDataProtocolCapability_separateLANStack,
47                 eDataProtocolCapability_v76wCompression,
48                 eDataProtocolCapability_tcp,
49                 eDataProtocolCapability_udp,
50         } choice;
51 } DataProtocolCapability;
52
53 typedef struct DataApplicationCapability_application {  /* CHOICE */
54         enum {
55                 eDataApplicationCapability_application_nonStandard,
56                 eDataApplicationCapability_application_t120,
57                 eDataApplicationCapability_application_dsm_cc,
58                 eDataApplicationCapability_application_userData,
59                 eDataApplicationCapability_application_t84,
60                 eDataApplicationCapability_application_t434,
61                 eDataApplicationCapability_application_h224,
62                 eDataApplicationCapability_application_nlpid,
63                 eDataApplicationCapability_application_dsvdControl,
64                 eDataApplicationCapability_application_h222DataPartitioning,
65                 eDataApplicationCapability_application_t30fax,
66                 eDataApplicationCapability_application_t140,
67                 eDataApplicationCapability_application_t38fax,
68                 eDataApplicationCapability_application_genericDataCapability,
69         } choice;
70         union {
71                 DataProtocolCapability t120;
72         };
73 } DataApplicationCapability_application;
74
75 typedef struct DataApplicationCapability {      /* SEQUENCE */
76         int options;            /* No use */
77         DataApplicationCapability_application application;
78 } DataApplicationCapability;
79
80 typedef struct DataType {       /* CHOICE */
81         enum {
82                 eDataType_nonStandard,
83                 eDataType_nullData,
84                 eDataType_videoData,
85                 eDataType_audioData,
86                 eDataType_data,
87                 eDataType_encryptionData,
88                 eDataType_h235Control,
89                 eDataType_h235Media,
90                 eDataType_multiplexedStream,
91         } choice;
92         union {
93                 DataApplicationCapability data;
94         };
95 } DataType;
96
97 typedef struct UnicastAddress_iPAddress {       /* SEQUENCE */
98         int options;            /* No use */
99         unsigned int network;
100 } UnicastAddress_iPAddress;
101
102 typedef struct UnicastAddress_iP6Address {      /* SEQUENCE */
103         int options;            /* No use */
104         unsigned int network;
105 } UnicastAddress_iP6Address;
106
107 typedef struct UnicastAddress { /* CHOICE */
108         enum {
109                 eUnicastAddress_iPAddress,
110                 eUnicastAddress_iPXAddress,
111                 eUnicastAddress_iP6Address,
112                 eUnicastAddress_netBios,
113                 eUnicastAddress_iPSourceRouteAddress,
114                 eUnicastAddress_nsap,
115                 eUnicastAddress_nonStandardAddress,
116         } choice;
117         union {
118                 UnicastAddress_iPAddress iPAddress;
119                 UnicastAddress_iP6Address iP6Address;
120         };
121 } UnicastAddress;
122
123 typedef struct H245_TransportAddress {  /* CHOICE */
124         enum {
125                 eH245_TransportAddress_unicastAddress,
126                 eH245_TransportAddress_multicastAddress,
127         } choice;
128         union {
129                 UnicastAddress unicastAddress;
130         };
131 } H245_TransportAddress;
132
133 typedef struct H2250LogicalChannelParameters {  /* SEQUENCE */
134         enum {
135                 eH2250LogicalChannelParameters_nonStandard = (1 << 31),
136                 eH2250LogicalChannelParameters_associatedSessionID =
137                     (1 << 30),
138                 eH2250LogicalChannelParameters_mediaChannel = (1 << 29),
139                 eH2250LogicalChannelParameters_mediaGuaranteedDelivery =
140                     (1 << 28),
141                 eH2250LogicalChannelParameters_mediaControlChannel =
142                     (1 << 27),
143                 eH2250LogicalChannelParameters_mediaControlGuaranteedDelivery
144                     = (1 << 26),
145                 eH2250LogicalChannelParameters_silenceSuppression = (1 << 25),
146                 eH2250LogicalChannelParameters_destination = (1 << 24),
147                 eH2250LogicalChannelParameters_dynamicRTPPayloadType =
148                     (1 << 23),
149                 eH2250LogicalChannelParameters_mediaPacketization = (1 << 22),
150                 eH2250LogicalChannelParameters_transportCapability =
151                     (1 << 21),
152                 eH2250LogicalChannelParameters_redundancyEncoding = (1 << 20),
153                 eH2250LogicalChannelParameters_source = (1 << 19),
154         } options;
155         H245_TransportAddress mediaChannel;
156         H245_TransportAddress mediaControlChannel;
157 } H2250LogicalChannelParameters;
158
159 typedef struct OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters { /* CHOICE */
160         enum {
161                 eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters,
162                 eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters,
163                 eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters,
164                 eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
165                 eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_none,
166         } choice;
167         union {
168                 H2250LogicalChannelParameters h2250LogicalChannelParameters;
169         };
170 } OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters;
171
172 typedef struct OpenLogicalChannel_forwardLogicalChannelParameters {     /* SEQUENCE */
173         enum {
174                 eOpenLogicalChannel_forwardLogicalChannelParameters_portNumber
175                     = (1 << 31),
176                 eOpenLogicalChannel_forwardLogicalChannelParameters_forwardLogicalChannelDependency
177                     = (1 << 30),
178                 eOpenLogicalChannel_forwardLogicalChannelParameters_replacementFor
179                     = (1 << 29),
180         } options;
181         DataType dataType;
182         OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters
183             multiplexParameters;
184 } OpenLogicalChannel_forwardLogicalChannelParameters;
185
186 typedef struct OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters { /* CHOICE */
187         enum {
188                 eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters,
189                 eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters,
190                 eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
191         } choice;
192         union {
193                 H2250LogicalChannelParameters h2250LogicalChannelParameters;
194         };
195 } OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters;
196
197 typedef struct OpenLogicalChannel_reverseLogicalChannelParameters {     /* SEQUENCE */
198         enum {
199                 eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
200                     = (1 << 31),
201                 eOpenLogicalChannel_reverseLogicalChannelParameters_reverseLogicalChannelDependency
202                     = (1 << 30),
203                 eOpenLogicalChannel_reverseLogicalChannelParameters_replacementFor
204                     = (1 << 29),
205         } options;
206         OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
207             multiplexParameters;
208 } OpenLogicalChannel_reverseLogicalChannelParameters;
209
210 typedef struct NetworkAccessParameters_networkAddress { /* CHOICE */
211         enum {
212                 eNetworkAccessParameters_networkAddress_q2931Address,
213                 eNetworkAccessParameters_networkAddress_e164Address,
214                 eNetworkAccessParameters_networkAddress_localAreaAddress,
215         } choice;
216         union {
217                 H245_TransportAddress localAreaAddress;
218         };
219 } NetworkAccessParameters_networkAddress;
220
221 typedef struct NetworkAccessParameters {        /* SEQUENCE */
222         enum {
223                 eNetworkAccessParameters_distribution = (1 << 31),
224                 eNetworkAccessParameters_externalReference = (1 << 30),
225                 eNetworkAccessParameters_t120SetupProcedure = (1 << 29),
226         } options;
227         NetworkAccessParameters_networkAddress networkAddress;
228 } NetworkAccessParameters;
229
230 typedef struct OpenLogicalChannel {     /* SEQUENCE */
231         enum {
232                 eOpenLogicalChannel_reverseLogicalChannelParameters =
233                     (1 << 31),
234                 eOpenLogicalChannel_separateStack = (1 << 30),
235                 eOpenLogicalChannel_encryptionSync = (1 << 29),
236         } options;
237         OpenLogicalChannel_forwardLogicalChannelParameters
238             forwardLogicalChannelParameters;
239         OpenLogicalChannel_reverseLogicalChannelParameters
240             reverseLogicalChannelParameters;
241         NetworkAccessParameters separateStack;
242 } OpenLogicalChannel;
243
244 typedef struct Setup_UUIE_fastStart {   /* SEQUENCE OF */
245         int count;
246         OpenLogicalChannel item[30];
247 } Setup_UUIE_fastStart;
248
249 typedef struct Setup_UUIE {     /* SEQUENCE */
250         enum {
251                 eSetup_UUIE_h245Address = (1 << 31),
252                 eSetup_UUIE_sourceAddress = (1 << 30),
253                 eSetup_UUIE_destinationAddress = (1 << 29),
254                 eSetup_UUIE_destCallSignalAddress = (1 << 28),
255                 eSetup_UUIE_destExtraCallInfo = (1 << 27),
256                 eSetup_UUIE_destExtraCRV = (1 << 26),
257                 eSetup_UUIE_callServices = (1 << 25),
258                 eSetup_UUIE_sourceCallSignalAddress = (1 << 24),
259                 eSetup_UUIE_remoteExtensionAddress = (1 << 23),
260                 eSetup_UUIE_callIdentifier = (1 << 22),
261                 eSetup_UUIE_h245SecurityCapability = (1 << 21),
262                 eSetup_UUIE_tokens = (1 << 20),
263                 eSetup_UUIE_cryptoTokens = (1 << 19),
264                 eSetup_UUIE_fastStart = (1 << 18),
265                 eSetup_UUIE_mediaWaitForConnect = (1 << 17),
266                 eSetup_UUIE_canOverlapSend = (1 << 16),
267                 eSetup_UUIE_endpointIdentifier = (1 << 15),
268                 eSetup_UUIE_multipleCalls = (1 << 14),
269                 eSetup_UUIE_maintainConnection = (1 << 13),
270                 eSetup_UUIE_connectionParameters = (1 << 12),
271                 eSetup_UUIE_language = (1 << 11),
272                 eSetup_UUIE_presentationIndicator = (1 << 10),
273                 eSetup_UUIE_screeningIndicator = (1 << 9),
274                 eSetup_UUIE_serviceControl = (1 << 8),
275                 eSetup_UUIE_symmetricOperationRequired = (1 << 7),
276                 eSetup_UUIE_capacity = (1 << 6),
277                 eSetup_UUIE_circuitInfo = (1 << 5),
278                 eSetup_UUIE_desiredProtocols = (1 << 4),
279                 eSetup_UUIE_neededFeatures = (1 << 3),
280                 eSetup_UUIE_desiredFeatures = (1 << 2),
281                 eSetup_UUIE_supportedFeatures = (1 << 1),
282                 eSetup_UUIE_parallelH245Control = (1 << 0),
283         } options;
284         TransportAddress h245Address;
285         TransportAddress destCallSignalAddress;
286         TransportAddress sourceCallSignalAddress;
287         Setup_UUIE_fastStart fastStart;
288 } Setup_UUIE;
289
290 typedef struct CallProceeding_UUIE_fastStart {  /* SEQUENCE OF */
291         int count;
292         OpenLogicalChannel item[30];
293 } CallProceeding_UUIE_fastStart;
294
295 typedef struct CallProceeding_UUIE {    /* SEQUENCE */
296         enum {
297                 eCallProceeding_UUIE_h245Address = (1 << 31),
298                 eCallProceeding_UUIE_callIdentifier = (1 << 30),
299                 eCallProceeding_UUIE_h245SecurityMode = (1 << 29),
300                 eCallProceeding_UUIE_tokens = (1 << 28),
301                 eCallProceeding_UUIE_cryptoTokens = (1 << 27),
302                 eCallProceeding_UUIE_fastStart = (1 << 26),
303                 eCallProceeding_UUIE_multipleCalls = (1 << 25),
304                 eCallProceeding_UUIE_maintainConnection = (1 << 24),
305                 eCallProceeding_UUIE_fastConnectRefused = (1 << 23),
306                 eCallProceeding_UUIE_featureSet = (1 << 22),
307         } options;
308         TransportAddress h245Address;
309         CallProceeding_UUIE_fastStart fastStart;
310 } CallProceeding_UUIE;
311
312 typedef struct Connect_UUIE_fastStart { /* SEQUENCE OF */
313         int count;
314         OpenLogicalChannel item[30];
315 } Connect_UUIE_fastStart;
316
317 typedef struct Connect_UUIE {   /* SEQUENCE */
318         enum {
319                 eConnect_UUIE_h245Address = (1 << 31),
320                 eConnect_UUIE_callIdentifier = (1 << 30),
321                 eConnect_UUIE_h245SecurityMode = (1 << 29),
322                 eConnect_UUIE_tokens = (1 << 28),
323                 eConnect_UUIE_cryptoTokens = (1 << 27),
324                 eConnect_UUIE_fastStart = (1 << 26),
325                 eConnect_UUIE_multipleCalls = (1 << 25),
326                 eConnect_UUIE_maintainConnection = (1 << 24),
327                 eConnect_UUIE_language = (1 << 23),
328                 eConnect_UUIE_connectedAddress = (1 << 22),
329                 eConnect_UUIE_presentationIndicator = (1 << 21),
330                 eConnect_UUIE_screeningIndicator = (1 << 20),
331                 eConnect_UUIE_fastConnectRefused = (1 << 19),
332                 eConnect_UUIE_serviceControl = (1 << 18),
333                 eConnect_UUIE_capacity = (1 << 17),
334                 eConnect_UUIE_featureSet = (1 << 16),
335         } options;
336         TransportAddress h245Address;
337         Connect_UUIE_fastStart fastStart;
338 } Connect_UUIE;
339
340 typedef struct Alerting_UUIE_fastStart {        /* SEQUENCE OF */
341         int count;
342         OpenLogicalChannel item[30];
343 } Alerting_UUIE_fastStart;
344
345 typedef struct Alerting_UUIE {  /* SEQUENCE */
346         enum {
347                 eAlerting_UUIE_h245Address = (1 << 31),
348                 eAlerting_UUIE_callIdentifier = (1 << 30),
349                 eAlerting_UUIE_h245SecurityMode = (1 << 29),
350                 eAlerting_UUIE_tokens = (1 << 28),
351                 eAlerting_UUIE_cryptoTokens = (1 << 27),
352                 eAlerting_UUIE_fastStart = (1 << 26),
353                 eAlerting_UUIE_multipleCalls = (1 << 25),
354                 eAlerting_UUIE_maintainConnection = (1 << 24),
355                 eAlerting_UUIE_alertingAddress = (1 << 23),
356                 eAlerting_UUIE_presentationIndicator = (1 << 22),
357                 eAlerting_UUIE_screeningIndicator = (1 << 21),
358                 eAlerting_UUIE_fastConnectRefused = (1 << 20),
359                 eAlerting_UUIE_serviceControl = (1 << 19),
360                 eAlerting_UUIE_capacity = (1 << 18),
361                 eAlerting_UUIE_featureSet = (1 << 17),
362         } options;
363         TransportAddress h245Address;
364         Alerting_UUIE_fastStart fastStart;
365 } Alerting_UUIE;
366
367 typedef struct FacilityReason { /* CHOICE */
368         enum {
369                 eFacilityReason_routeCallToGatekeeper,
370                 eFacilityReason_callForwarded,
371                 eFacilityReason_routeCallToMC,
372                 eFacilityReason_undefinedReason,
373                 eFacilityReason_conferenceListChoice,
374                 eFacilityReason_startH245,
375                 eFacilityReason_noH245,
376                 eFacilityReason_newTokens,
377                 eFacilityReason_featureSetUpdate,
378                 eFacilityReason_forwardedElements,
379                 eFacilityReason_transportedInformation,
380         } choice;
381 } FacilityReason;
382
383 typedef struct Facility_UUIE_fastStart {        /* SEQUENCE OF */
384         int count;
385         OpenLogicalChannel item[30];
386 } Facility_UUIE_fastStart;
387
388 typedef struct Facility_UUIE {  /* SEQUENCE */
389         enum {
390                 eFacility_UUIE_alternativeAddress = (1 << 31),
391                 eFacility_UUIE_alternativeAliasAddress = (1 << 30),
392                 eFacility_UUIE_conferenceID = (1 << 29),
393                 eFacility_UUIE_callIdentifier = (1 << 28),
394                 eFacility_UUIE_destExtraCallInfo = (1 << 27),
395                 eFacility_UUIE_remoteExtensionAddress = (1 << 26),
396                 eFacility_UUIE_tokens = (1 << 25),
397                 eFacility_UUIE_cryptoTokens = (1 << 24),
398                 eFacility_UUIE_conferences = (1 << 23),
399                 eFacility_UUIE_h245Address = (1 << 22),
400                 eFacility_UUIE_fastStart = (1 << 21),
401                 eFacility_UUIE_multipleCalls = (1 << 20),
402                 eFacility_UUIE_maintainConnection = (1 << 19),
403                 eFacility_UUIE_fastConnectRefused = (1 << 18),
404                 eFacility_UUIE_serviceControl = (1 << 17),
405                 eFacility_UUIE_circuitInfo = (1 << 16),
406                 eFacility_UUIE_featureSet = (1 << 15),
407                 eFacility_UUIE_destinationInfo = (1 << 14),
408                 eFacility_UUIE_h245SecurityMode = (1 << 13),
409         } options;
410         TransportAddress alternativeAddress;
411         FacilityReason reason;
412         TransportAddress h245Address;
413         Facility_UUIE_fastStart fastStart;
414 } Facility_UUIE;
415
416 typedef struct Progress_UUIE_fastStart {        /* SEQUENCE OF */
417         int count;
418         OpenLogicalChannel item[30];
419 } Progress_UUIE_fastStart;
420
421 typedef struct Progress_UUIE {  /* SEQUENCE */
422         enum {
423                 eProgress_UUIE_h245Address = (1 << 31),
424                 eProgress_UUIE_h245SecurityMode = (1 << 30),
425                 eProgress_UUIE_tokens = (1 << 29),
426                 eProgress_UUIE_cryptoTokens = (1 << 28),
427                 eProgress_UUIE_fastStart = (1 << 27),
428                 eProgress_UUIE_multipleCalls = (1 << 26),
429                 eProgress_UUIE_maintainConnection = (1 << 25),
430                 eProgress_UUIE_fastConnectRefused = (1 << 24),
431         } options;
432         TransportAddress h245Address;
433         Progress_UUIE_fastStart fastStart;
434 } Progress_UUIE;
435
436 typedef struct H323_UU_PDU_h323_message_body {  /* CHOICE */
437         enum {
438                 eH323_UU_PDU_h323_message_body_setup,
439                 eH323_UU_PDU_h323_message_body_callProceeding,
440                 eH323_UU_PDU_h323_message_body_connect,
441                 eH323_UU_PDU_h323_message_body_alerting,
442                 eH323_UU_PDU_h323_message_body_information,
443                 eH323_UU_PDU_h323_message_body_releaseComplete,
444                 eH323_UU_PDU_h323_message_body_facility,
445                 eH323_UU_PDU_h323_message_body_progress,
446                 eH323_UU_PDU_h323_message_body_empty,
447                 eH323_UU_PDU_h323_message_body_status,
448                 eH323_UU_PDU_h323_message_body_statusInquiry,
449                 eH323_UU_PDU_h323_message_body_setupAcknowledge,
450                 eH323_UU_PDU_h323_message_body_notify,
451         } choice;
452         union {
453                 Setup_UUIE setup;
454                 CallProceeding_UUIE callProceeding;
455                 Connect_UUIE connect;
456                 Alerting_UUIE alerting;
457                 Facility_UUIE facility;
458                 Progress_UUIE progress;
459         };
460 } H323_UU_PDU_h323_message_body;
461
462 typedef struct RequestMessage { /* CHOICE */
463         enum {
464                 eRequestMessage_nonStandard,
465                 eRequestMessage_masterSlaveDetermination,
466                 eRequestMessage_terminalCapabilitySet,
467                 eRequestMessage_openLogicalChannel,
468                 eRequestMessage_closeLogicalChannel,
469                 eRequestMessage_requestChannelClose,
470                 eRequestMessage_multiplexEntrySend,
471                 eRequestMessage_requestMultiplexEntry,
472                 eRequestMessage_requestMode,
473                 eRequestMessage_roundTripDelayRequest,
474                 eRequestMessage_maintenanceLoopRequest,
475                 eRequestMessage_communicationModeRequest,
476                 eRequestMessage_conferenceRequest,
477                 eRequestMessage_multilinkRequest,
478                 eRequestMessage_logicalChannelRateRequest,
479         } choice;
480         union {
481                 OpenLogicalChannel openLogicalChannel;
482         };
483 } RequestMessage;
484
485 typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters {      /* CHOICE */
486         enum {
487                 eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters,
488                 eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
489         } choice;
490         union {
491                 H2250LogicalChannelParameters h2250LogicalChannelParameters;
492         };
493 } OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters;
494
495 typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters {  /* SEQUENCE */
496         enum {
497                 eOpenLogicalChannelAck_reverseLogicalChannelParameters_portNumber
498                     = (1 << 31),
499                 eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
500                     = (1 << 30),
501                 eOpenLogicalChannelAck_reverseLogicalChannelParameters_replacementFor
502                     = (1 << 29),
503         } options;
504         OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
505             multiplexParameters;
506 } OpenLogicalChannelAck_reverseLogicalChannelParameters;
507
508 typedef struct H2250LogicalChannelAckParameters {       /* SEQUENCE */
509         enum {
510                 eH2250LogicalChannelAckParameters_nonStandard = (1 << 31),
511                 eH2250LogicalChannelAckParameters_sessionID = (1 << 30),
512                 eH2250LogicalChannelAckParameters_mediaChannel = (1 << 29),
513                 eH2250LogicalChannelAckParameters_mediaControlChannel =
514                     (1 << 28),
515                 eH2250LogicalChannelAckParameters_dynamicRTPPayloadType =
516                     (1 << 27),
517                 eH2250LogicalChannelAckParameters_flowControlToZero =
518                     (1 << 26),
519                 eH2250LogicalChannelAckParameters_portNumber = (1 << 25),
520         } options;
521         H245_TransportAddress mediaChannel;
522         H245_TransportAddress mediaControlChannel;
523 } H2250LogicalChannelAckParameters;
524
525 typedef struct OpenLogicalChannelAck_forwardMultiplexAckParameters {    /* CHOICE */
526         enum {
527                 eOpenLogicalChannelAck_forwardMultiplexAckParameters_h2250LogicalChannelAckParameters,
528         } choice;
529         union {
530                 H2250LogicalChannelAckParameters
531                     h2250LogicalChannelAckParameters;
532         };
533 } OpenLogicalChannelAck_forwardMultiplexAckParameters;
534
535 typedef struct OpenLogicalChannelAck {  /* SEQUENCE */
536         enum {
537                 eOpenLogicalChannelAck_reverseLogicalChannelParameters =
538                     (1 << 31),
539                 eOpenLogicalChannelAck_separateStack = (1 << 30),
540                 eOpenLogicalChannelAck_forwardMultiplexAckParameters =
541                     (1 << 29),
542                 eOpenLogicalChannelAck_encryptionSync = (1 << 28),
543         } options;
544         OpenLogicalChannelAck_reverseLogicalChannelParameters
545             reverseLogicalChannelParameters;
546         NetworkAccessParameters separateStack;
547         OpenLogicalChannelAck_forwardMultiplexAckParameters
548             forwardMultiplexAckParameters;
549 } OpenLogicalChannelAck;
550
551 typedef struct ResponseMessage {        /* CHOICE */
552         enum {
553                 eResponseMessage_nonStandard,
554                 eResponseMessage_masterSlaveDeterminationAck,
555                 eResponseMessage_masterSlaveDeterminationReject,
556                 eResponseMessage_terminalCapabilitySetAck,
557                 eResponseMessage_terminalCapabilitySetReject,
558                 eResponseMessage_openLogicalChannelAck,
559                 eResponseMessage_openLogicalChannelReject,
560                 eResponseMessage_closeLogicalChannelAck,
561                 eResponseMessage_requestChannelCloseAck,
562                 eResponseMessage_requestChannelCloseReject,
563                 eResponseMessage_multiplexEntrySendAck,
564                 eResponseMessage_multiplexEntrySendReject,
565                 eResponseMessage_requestMultiplexEntryAck,
566                 eResponseMessage_requestMultiplexEntryReject,
567                 eResponseMessage_requestModeAck,
568                 eResponseMessage_requestModeReject,
569                 eResponseMessage_roundTripDelayResponse,
570                 eResponseMessage_maintenanceLoopAck,
571                 eResponseMessage_maintenanceLoopReject,
572                 eResponseMessage_communicationModeResponse,
573                 eResponseMessage_conferenceResponse,
574                 eResponseMessage_multilinkResponse,
575                 eResponseMessage_logicalChannelRateAcknowledge,
576                 eResponseMessage_logicalChannelRateReject,
577         } choice;
578         union {
579                 OpenLogicalChannelAck openLogicalChannelAck;
580         };
581 } ResponseMessage;
582
583 typedef struct MultimediaSystemControlMessage { /* CHOICE */
584         enum {
585                 eMultimediaSystemControlMessage_request,
586                 eMultimediaSystemControlMessage_response,
587                 eMultimediaSystemControlMessage_command,
588                 eMultimediaSystemControlMessage_indication,
589         } choice;
590         union {
591                 RequestMessage request;
592                 ResponseMessage response;
593         };
594 } MultimediaSystemControlMessage;
595
596 typedef struct H323_UU_PDU_h245Control {        /* SEQUENCE OF */
597         int count;
598         MultimediaSystemControlMessage item[4];
599 } H323_UU_PDU_h245Control;
600
601 typedef struct H323_UU_PDU {    /* SEQUENCE */
602         enum {
603                 eH323_UU_PDU_nonStandardData = (1 << 31),
604                 eH323_UU_PDU_h4501SupplementaryService = (1 << 30),
605                 eH323_UU_PDU_h245Tunneling = (1 << 29),
606                 eH323_UU_PDU_h245Control = (1 << 28),
607                 eH323_UU_PDU_nonStandardControl = (1 << 27),
608                 eH323_UU_PDU_callLinkage = (1 << 26),
609                 eH323_UU_PDU_tunnelledSignallingMessage = (1 << 25),
610                 eH323_UU_PDU_provisionalRespToH245Tunneling = (1 << 24),
611                 eH323_UU_PDU_stimulusControl = (1 << 23),
612                 eH323_UU_PDU_genericData = (1 << 22),
613         } options;
614         H323_UU_PDU_h323_message_body h323_message_body;
615         H323_UU_PDU_h245Control h245Control;
616 } H323_UU_PDU;
617
618 typedef struct H323_UserInformation {   /* SEQUENCE */
619         enum {
620                 eH323_UserInformation_user_data = (1 << 31),
621         } options;
622         H323_UU_PDU h323_uu_pdu;
623 } H323_UserInformation;
624
625 typedef struct GatekeeperRequest {      /* SEQUENCE */
626         enum {
627                 eGatekeeperRequest_nonStandardData = (1 << 31),
628                 eGatekeeperRequest_gatekeeperIdentifier = (1 << 30),
629                 eGatekeeperRequest_callServices = (1 << 29),
630                 eGatekeeperRequest_endpointAlias = (1 << 28),
631                 eGatekeeperRequest_alternateEndpoints = (1 << 27),
632                 eGatekeeperRequest_tokens = (1 << 26),
633                 eGatekeeperRequest_cryptoTokens = (1 << 25),
634                 eGatekeeperRequest_authenticationCapability = (1 << 24),
635                 eGatekeeperRequest_algorithmOIDs = (1 << 23),
636                 eGatekeeperRequest_integrity = (1 << 22),
637                 eGatekeeperRequest_integrityCheckValue = (1 << 21),
638                 eGatekeeperRequest_supportsAltGK = (1 << 20),
639                 eGatekeeperRequest_featureSet = (1 << 19),
640                 eGatekeeperRequest_genericData = (1 << 18),
641         } options;
642         TransportAddress rasAddress;
643 } GatekeeperRequest;
644
645 typedef struct GatekeeperConfirm {      /* SEQUENCE */
646         enum {
647                 eGatekeeperConfirm_nonStandardData = (1 << 31),
648                 eGatekeeperConfirm_gatekeeperIdentifier = (1 << 30),
649                 eGatekeeperConfirm_alternateGatekeeper = (1 << 29),
650                 eGatekeeperConfirm_authenticationMode = (1 << 28),
651                 eGatekeeperConfirm_tokens = (1 << 27),
652                 eGatekeeperConfirm_cryptoTokens = (1 << 26),
653                 eGatekeeperConfirm_algorithmOID = (1 << 25),
654                 eGatekeeperConfirm_integrity = (1 << 24),
655                 eGatekeeperConfirm_integrityCheckValue = (1 << 23),
656                 eGatekeeperConfirm_featureSet = (1 << 22),
657                 eGatekeeperConfirm_genericData = (1 << 21),
658         } options;
659         TransportAddress rasAddress;
660 } GatekeeperConfirm;
661
662 typedef struct RegistrationRequest_callSignalAddress {  /* SEQUENCE OF */
663         int count;
664         TransportAddress item[10];
665 } RegistrationRequest_callSignalAddress;
666
667 typedef struct RegistrationRequest_rasAddress { /* SEQUENCE OF */
668         int count;
669         TransportAddress item[10];
670 } RegistrationRequest_rasAddress;
671
672 typedef struct RegistrationRequest {    /* SEQUENCE */
673         enum {
674                 eRegistrationRequest_nonStandardData = (1 << 31),
675                 eRegistrationRequest_terminalAlias = (1 << 30),
676                 eRegistrationRequest_gatekeeperIdentifier = (1 << 29),
677                 eRegistrationRequest_alternateEndpoints = (1 << 28),
678                 eRegistrationRequest_timeToLive = (1 << 27),
679                 eRegistrationRequest_tokens = (1 << 26),
680                 eRegistrationRequest_cryptoTokens = (1 << 25),
681                 eRegistrationRequest_integrityCheckValue = (1 << 24),
682                 eRegistrationRequest_keepAlive = (1 << 23),
683                 eRegistrationRequest_endpointIdentifier = (1 << 22),
684                 eRegistrationRequest_willSupplyUUIEs = (1 << 21),
685                 eRegistrationRequest_maintainConnection = (1 << 20),
686                 eRegistrationRequest_alternateTransportAddresses = (1 << 19),
687                 eRegistrationRequest_additiveRegistration = (1 << 18),
688                 eRegistrationRequest_terminalAliasPattern = (1 << 17),
689                 eRegistrationRequest_supportsAltGK = (1 << 16),
690                 eRegistrationRequest_usageReportingCapability = (1 << 15),
691                 eRegistrationRequest_multipleCalls = (1 << 14),
692                 eRegistrationRequest_supportedH248Packages = (1 << 13),
693                 eRegistrationRequest_callCreditCapability = (1 << 12),
694                 eRegistrationRequest_capacityReportingCapability = (1 << 11),
695                 eRegistrationRequest_capacity = (1 << 10),
696                 eRegistrationRequest_featureSet = (1 << 9),
697                 eRegistrationRequest_genericData = (1 << 8),
698         } options;
699         RegistrationRequest_callSignalAddress callSignalAddress;
700         RegistrationRequest_rasAddress rasAddress;
701         unsigned int timeToLive;
702 } RegistrationRequest;
703
704 typedef struct RegistrationConfirm_callSignalAddress {  /* SEQUENCE OF */
705         int count;
706         TransportAddress item[10];
707 } RegistrationConfirm_callSignalAddress;
708
709 typedef struct RegistrationConfirm {    /* SEQUENCE */
710         enum {
711                 eRegistrationConfirm_nonStandardData = (1 << 31),
712                 eRegistrationConfirm_terminalAlias = (1 << 30),
713                 eRegistrationConfirm_gatekeeperIdentifier = (1 << 29),
714                 eRegistrationConfirm_alternateGatekeeper = (1 << 28),
715                 eRegistrationConfirm_timeToLive = (1 << 27),
716                 eRegistrationConfirm_tokens = (1 << 26),
717                 eRegistrationConfirm_cryptoTokens = (1 << 25),
718                 eRegistrationConfirm_integrityCheckValue = (1 << 24),
719                 eRegistrationConfirm_willRespondToIRR = (1 << 23),
720                 eRegistrationConfirm_preGrantedARQ = (1 << 22),
721                 eRegistrationConfirm_maintainConnection = (1 << 21),
722                 eRegistrationConfirm_serviceControl = (1 << 20),
723                 eRegistrationConfirm_supportsAdditiveRegistration = (1 << 19),
724                 eRegistrationConfirm_terminalAliasPattern = (1 << 18),
725                 eRegistrationConfirm_supportedPrefixes = (1 << 17),
726                 eRegistrationConfirm_usageSpec = (1 << 16),
727                 eRegistrationConfirm_featureServerAlias = (1 << 15),
728                 eRegistrationConfirm_capacityReportingSpec = (1 << 14),
729                 eRegistrationConfirm_featureSet = (1 << 13),
730                 eRegistrationConfirm_genericData = (1 << 12),
731         } options;
732         RegistrationConfirm_callSignalAddress callSignalAddress;
733         unsigned int timeToLive;
734 } RegistrationConfirm;
735
736 typedef struct UnregistrationRequest_callSignalAddress {        /* SEQUENCE OF */
737         int count;
738         TransportAddress item[10];
739 } UnregistrationRequest_callSignalAddress;
740
741 typedef struct UnregistrationRequest {  /* SEQUENCE */
742         enum {
743                 eUnregistrationRequest_endpointAlias = (1 << 31),
744                 eUnregistrationRequest_nonStandardData = (1 << 30),
745                 eUnregistrationRequest_endpointIdentifier = (1 << 29),
746                 eUnregistrationRequest_alternateEndpoints = (1 << 28),
747                 eUnregistrationRequest_gatekeeperIdentifier = (1 << 27),
748                 eUnregistrationRequest_tokens = (1 << 26),
749                 eUnregistrationRequest_cryptoTokens = (1 << 25),
750                 eUnregistrationRequest_integrityCheckValue = (1 << 24),
751                 eUnregistrationRequest_reason = (1 << 23),
752                 eUnregistrationRequest_endpointAliasPattern = (1 << 22),
753                 eUnregistrationRequest_supportedPrefixes = (1 << 21),
754                 eUnregistrationRequest_alternateGatekeeper = (1 << 20),
755                 eUnregistrationRequest_genericData = (1 << 19),
756         } options;
757         UnregistrationRequest_callSignalAddress callSignalAddress;
758 } UnregistrationRequest;
759
760 typedef struct AdmissionRequest {       /* SEQUENCE */
761         enum {
762                 eAdmissionRequest_callModel = (1 << 31),
763                 eAdmissionRequest_destinationInfo = (1 << 30),
764                 eAdmissionRequest_destCallSignalAddress = (1 << 29),
765                 eAdmissionRequest_destExtraCallInfo = (1 << 28),
766                 eAdmissionRequest_srcCallSignalAddress = (1 << 27),
767                 eAdmissionRequest_nonStandardData = (1 << 26),
768                 eAdmissionRequest_callServices = (1 << 25),
769                 eAdmissionRequest_canMapAlias = (1 << 24),
770                 eAdmissionRequest_callIdentifier = (1 << 23),
771                 eAdmissionRequest_srcAlternatives = (1 << 22),
772                 eAdmissionRequest_destAlternatives = (1 << 21),
773                 eAdmissionRequest_gatekeeperIdentifier = (1 << 20),
774                 eAdmissionRequest_tokens = (1 << 19),
775                 eAdmissionRequest_cryptoTokens = (1 << 18),
776                 eAdmissionRequest_integrityCheckValue = (1 << 17),
777                 eAdmissionRequest_transportQOS = (1 << 16),
778                 eAdmissionRequest_willSupplyUUIEs = (1 << 15),
779                 eAdmissionRequest_callLinkage = (1 << 14),
780                 eAdmissionRequest_gatewayDataRate = (1 << 13),
781                 eAdmissionRequest_capacity = (1 << 12),
782                 eAdmissionRequest_circuitInfo = (1 << 11),
783                 eAdmissionRequest_desiredProtocols = (1 << 10),
784                 eAdmissionRequest_desiredTunnelledProtocol = (1 << 9),
785                 eAdmissionRequest_featureSet = (1 << 8),
786                 eAdmissionRequest_genericData = (1 << 7),
787         } options;
788         TransportAddress destCallSignalAddress;
789         TransportAddress srcCallSignalAddress;
790 } AdmissionRequest;
791
792 typedef struct AdmissionConfirm {       /* SEQUENCE */
793         enum {
794                 eAdmissionConfirm_irrFrequency = (1 << 31),
795                 eAdmissionConfirm_nonStandardData = (1 << 30),
796                 eAdmissionConfirm_destinationInfo = (1 << 29),
797                 eAdmissionConfirm_destExtraCallInfo = (1 << 28),
798                 eAdmissionConfirm_destinationType = (1 << 27),
799                 eAdmissionConfirm_remoteExtensionAddress = (1 << 26),
800                 eAdmissionConfirm_alternateEndpoints = (1 << 25),
801                 eAdmissionConfirm_tokens = (1 << 24),
802                 eAdmissionConfirm_cryptoTokens = (1 << 23),
803                 eAdmissionConfirm_integrityCheckValue = (1 << 22),
804                 eAdmissionConfirm_transportQOS = (1 << 21),
805                 eAdmissionConfirm_willRespondToIRR = (1 << 20),
806                 eAdmissionConfirm_uuiesRequested = (1 << 19),
807                 eAdmissionConfirm_language = (1 << 18),
808                 eAdmissionConfirm_alternateTransportAddresses = (1 << 17),
809                 eAdmissionConfirm_useSpecifiedTransport = (1 << 16),
810                 eAdmissionConfirm_circuitInfo = (1 << 15),
811                 eAdmissionConfirm_usageSpec = (1 << 14),
812                 eAdmissionConfirm_supportedProtocols = (1 << 13),
813                 eAdmissionConfirm_serviceControl = (1 << 12),
814                 eAdmissionConfirm_multipleCalls = (1 << 11),
815                 eAdmissionConfirm_featureSet = (1 << 10),
816                 eAdmissionConfirm_genericData = (1 << 9),
817         } options;
818         TransportAddress destCallSignalAddress;
819 } AdmissionConfirm;
820
821 typedef struct LocationRequest {        /* SEQUENCE */
822         enum {
823                 eLocationRequest_endpointIdentifier = (1 << 31),
824                 eLocationRequest_nonStandardData = (1 << 30),
825                 eLocationRequest_sourceInfo = (1 << 29),
826                 eLocationRequest_canMapAlias = (1 << 28),
827                 eLocationRequest_gatekeeperIdentifier = (1 << 27),
828                 eLocationRequest_tokens = (1 << 26),
829                 eLocationRequest_cryptoTokens = (1 << 25),
830                 eLocationRequest_integrityCheckValue = (1 << 24),
831                 eLocationRequest_desiredProtocols = (1 << 23),
832                 eLocationRequest_desiredTunnelledProtocol = (1 << 22),
833                 eLocationRequest_featureSet = (1 << 21),
834                 eLocationRequest_genericData = (1 << 20),
835                 eLocationRequest_hopCount = (1 << 19),
836                 eLocationRequest_circuitInfo = (1 << 18),
837         } options;
838         TransportAddress replyAddress;
839 } LocationRequest;
840
841 typedef struct LocationConfirm {        /* SEQUENCE */
842         enum {
843                 eLocationConfirm_nonStandardData = (1 << 31),
844                 eLocationConfirm_destinationInfo = (1 << 30),
845                 eLocationConfirm_destExtraCallInfo = (1 << 29),
846                 eLocationConfirm_destinationType = (1 << 28),
847                 eLocationConfirm_remoteExtensionAddress = (1 << 27),
848                 eLocationConfirm_alternateEndpoints = (1 << 26),
849                 eLocationConfirm_tokens = (1 << 25),
850                 eLocationConfirm_cryptoTokens = (1 << 24),
851                 eLocationConfirm_integrityCheckValue = (1 << 23),
852                 eLocationConfirm_alternateTransportAddresses = (1 << 22),
853                 eLocationConfirm_supportedProtocols = (1 << 21),
854                 eLocationConfirm_multipleCalls = (1 << 20),
855                 eLocationConfirm_featureSet = (1 << 19),
856                 eLocationConfirm_genericData = (1 << 18),
857                 eLocationConfirm_circuitInfo = (1 << 17),
858                 eLocationConfirm_serviceControl = (1 << 16),
859         } options;
860         TransportAddress callSignalAddress;
861         TransportAddress rasAddress;
862 } LocationConfirm;
863
864 typedef struct InfoRequestResponse_callSignalAddress {  /* SEQUENCE OF */
865         int count;
866         TransportAddress item[10];
867 } InfoRequestResponse_callSignalAddress;
868
869 typedef struct InfoRequestResponse {    /* SEQUENCE */
870         enum {
871                 eInfoRequestResponse_nonStandardData = (1 << 31),
872                 eInfoRequestResponse_endpointAlias = (1 << 30),
873                 eInfoRequestResponse_perCallInfo = (1 << 29),
874                 eInfoRequestResponse_tokens = (1 << 28),
875                 eInfoRequestResponse_cryptoTokens = (1 << 27),
876                 eInfoRequestResponse_integrityCheckValue = (1 << 26),
877                 eInfoRequestResponse_needResponse = (1 << 25),
878                 eInfoRequestResponse_capacity = (1 << 24),
879                 eInfoRequestResponse_irrStatus = (1 << 23),
880                 eInfoRequestResponse_unsolicited = (1 << 22),
881                 eInfoRequestResponse_genericData = (1 << 21),
882         } options;
883         TransportAddress rasAddress;
884         InfoRequestResponse_callSignalAddress callSignalAddress;
885 } InfoRequestResponse;
886
887 typedef struct RasMessage {     /* CHOICE */
888         enum {
889                 eRasMessage_gatekeeperRequest,
890                 eRasMessage_gatekeeperConfirm,
891                 eRasMessage_gatekeeperReject,
892                 eRasMessage_registrationRequest,
893                 eRasMessage_registrationConfirm,
894                 eRasMessage_registrationReject,
895                 eRasMessage_unregistrationRequest,
896                 eRasMessage_unregistrationConfirm,
897                 eRasMessage_unregistrationReject,
898                 eRasMessage_admissionRequest,
899                 eRasMessage_admissionConfirm,
900                 eRasMessage_admissionReject,
901                 eRasMessage_bandwidthRequest,
902                 eRasMessage_bandwidthConfirm,
903                 eRasMessage_bandwidthReject,
904                 eRasMessage_disengageRequest,
905                 eRasMessage_disengageConfirm,
906                 eRasMessage_disengageReject,
907                 eRasMessage_locationRequest,
908                 eRasMessage_locationConfirm,
909                 eRasMessage_locationReject,
910                 eRasMessage_infoRequest,
911                 eRasMessage_infoRequestResponse,
912                 eRasMessage_nonStandardMessage,
913                 eRasMessage_unknownMessageResponse,
914                 eRasMessage_requestInProgress,
915                 eRasMessage_resourcesAvailableIndicate,
916                 eRasMessage_resourcesAvailableConfirm,
917                 eRasMessage_infoRequestAck,
918                 eRasMessage_infoRequestNak,
919                 eRasMessage_serviceControlIndication,
920                 eRasMessage_serviceControlResponse,
921         } choice;
922         union {
923                 GatekeeperRequest gatekeeperRequest;
924                 GatekeeperConfirm gatekeeperConfirm;
925                 RegistrationRequest registrationRequest;
926                 RegistrationConfirm registrationConfirm;
927                 UnregistrationRequest unregistrationRequest;
928                 AdmissionRequest admissionRequest;
929                 AdmissionConfirm admissionConfirm;
930                 LocationRequest locationRequest;
931                 LocationConfirm locationConfirm;
932                 InfoRequestResponse infoRequestResponse;
933         };
934 } RasMessage;