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