OSDN Git Service

Apply LICENSE to all files as appropriate.
[mingw/mingw-org-wsl.git] / include / ddk / atm.h
1 /**
2  * @file atm.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 /*
25  * atm.h
26  *
27  * ATM support
28  *
29  * This file is part of the w32api package.
30  *
31  * Contributors:
32  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
33  *
34  * THIS SOFTWARE IS NOT COPYRIGHTED
35  *
36  * This source code is offered for use in the public domain. You may
37  * use, modify or distribute it freely.
38  *
39  * This code is distributed in the hope that it will be useful but
40  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
41  * DISCLAIMED. This includes but is not limited to warranties of
42  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
43  *
44  */
45
46 #ifndef __ATM_H
47 #define __ATM_H
48 #pragma GCC system_header
49
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53
54 typedef ULONG   ATM_ADDRESSTYPE;
55
56 #define SAP_TYPE_NSAP                                   1
57 #define SAP_TYPE_E164                                   2
58
59 #define ATM_MEDIA_SPECIFIC                1
60
61 #define CALLMGR_SPECIFIC_Q2931            1
62
63 #define ATM_NSAP                                                  0
64 #define ATM_E164                                                  1
65
66 #define ATM_MAC_ADDRESS_LENGTH            6
67 #define ATM_ADDRESS_LENGTH                          20
68
69 typedef ULONG   ATM_AAL_TYPE, *PATM_AAL_TYPE;
70
71 #define AAL_TYPE_AAL0                                   1
72 #define AAL_TYPE_AAL1                                   2
73 #define AAL_TYPE_AAL34                                4
74 #define AAL_TYPE_AAL5                                   8
75
76 #define ATM_ADDR_BLANK_CHAR                                     L' '
77 #define ATM_ADDR_E164_START_CHAR                      L'+'
78 #define ATM_ADDR_PUNCTUATION_CHAR                     L'.'
79
80 typedef enum {
81         IE_AALParameters,
82         IE_TrafficDescriptor,
83         IE_BroadbandBearerCapability,
84         IE_BHLI,
85         IE_BLLI,
86         IE_CalledPartyNumber,
87         IE_CalledPartySubaddress,
88         IE_CallingPartyNumber,
89         IE_CallingPartySubaddress,
90         IE_Cause,
91         IE_QOSClass,
92         IE_TransitNetworkSelection,
93         IE_BroadbandSendingComplete,
94         IE_LIJCallId,
95         IE_Raw
96 } Q2931_IE_TYPE;
97
98 typedef struct _Q2931_IE {
99   Q2931_IE_TYPE  IEType;
100   ULONG  IELength;
101   UCHAR  IE[1];
102 } Q2931_IE, *PQ2931_IE;
103
104 typedef struct _AAL1_PARAMETERS {
105   UCHAR  Subtype;
106   UCHAR  CBRRate;
107   USHORT  Multiplier;
108   UCHAR  SourceClockRecoveryMethod;
109   UCHAR  ErrorCorrectionMethod;
110   USHORT  StructuredDataTransferBlocksize;
111   UCHAR  PartiallyFilledCellsMethod;
112 } AAL1_PARAMETERS, *PAAL1_PARAMETERS;
113
114 typedef struct _AAL34_PARAMETERS {
115   USHORT  ForwardMaxCPCSSDUSize;
116   USHORT  BackwardMaxCPCSSDUSize;
117   USHORT  LowestMID;
118   USHORT  HighestMID;
119   UCHAR  SSCSType;
120 } AAL34_PARAMETERS, *PAAL34_PARAMETERS;
121
122 /* AAL5_PARAMETERS.Mode constants */
123 #define AAL5_MODE_MESSAGE                                   0x01
124 #define AAL5_MODE_STREAMING                               0x02
125
126 /* AAL5_PARAMETERS.SSCSType constants */
127 #define AAL5_SSCS_NULL                                      0x00
128 #define AAL5_SSCS_SSCOP_ASSURED                 0x01
129 #define AAL5_SSCS_SSCOP_NON_ASSURED           0x02
130 #define AAL5_SSCS_FRAME_RELAY                     0x04
131
132 typedef struct _AAL5_PARAMETERS {
133   ULONG  ForwardMaxCPCSSDUSize;
134   ULONG  BackwardMaxCPCSSDUSize;
135   UCHAR  Mode;
136   UCHAR  SSCSType;
137 } AAL5_PARAMETERS, *PAAL5_PARAMETERS;
138
139 typedef struct _AALUSER_PARAMETERS {
140   ULONG  UserDefined;
141 } AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;
142
143 typedef struct _AAL_PARAMETERS_IE {
144   ATM_AAL_TYPE  AALType;
145   union {
146     AAL1_PARAMETERS  AAL1Parameters;
147     AAL34_PARAMETERS  AAL34Parameters;
148     AAL5_PARAMETERS  AAL5Parameters;
149     AALUSER_PARAMETERS  AALUserParameters;
150   } AALSpecificParameters;
151 } AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;
152
153
154 /* FIXME: Should the union be anonymous in C++ too?  If so,
155    can't define named types _ATM_AAL5_INFO and _ATM_AAL0_INFO
156    within anonymous union for C++. */
157 typedef struct _ATM_AAL_OOB_INFO
158 {
159         ATM_AAL_TYPE  AalType;
160 #ifndef __cplusplus
161         _ANONYMOUS_UNION
162 #endif
163         union {
164                 struct _ATM_AAL5_INFO {
165                         BOOLEAN  CellLossPriority;
166                         UCHAR  UserToUserIndication;
167                         UCHAR  CommonPartIndicator;
168                 } ATM_AAL5_INFO;
169                 
170                 struct _ATM_AAL0_INFO {
171                         BOOLEAN  CellLossPriority;
172                         UCHAR  PayLoadTypeIdentifier;
173                 } ATM_AAL0_INFO;
174 #ifndef __cplusplus
175         } DUMMYUNIONNAME;
176 #else
177         } u;
178 #endif
179 } ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;
180
181 typedef struct _ATM_ADDRESS  { 
182   ATM_ADDRESSTYPE  AddressType; 
183   ULONG  NumberOfDigits; 
184   UCHAR  Address[ATM_ADDRESS_LENGTH]; 
185 } ATM_ADDRESS, *PATM_ADDRESS;
186
187 /* ATM_BHLI_IE.HighLayerInfoType constants */
188 #define BHLI_ISO                                                  0x00
189 #define BHLI_UserSpecific                             0x01
190 #define BHLI_HighLayerProfile               0x02
191 #define BHLI_VendorSpecificAppId          0x03
192
193 typedef struct _ATM_BHLI_IE {
194   ULONG  HighLayerInfoType;
195   ULONG  HighLayerInfoLength;
196   UCHAR  HighLayerInfo[8];
197 } ATM_BHLI_IE, *PATM_BHLI_IE;
198
199 /* ATM_BLLI_IE.Layer2Protocol constants */
200 #define BLLI_L2_ISO_1745                              0x01
201 #define BLLI_L2_Q921                                    0x02
202 #define BLLI_L2_X25L                                    0x06
203 #define BLLI_L2_X25M                                    0x07
204 #define BLLI_L2_ELAPB                                   0x08
205 #define BLLI_L2_HDLC_ARM                              0x09
206 #define BLLI_L2_HDLC_NRM                              0x0A
207 #define BLLI_L2_HDLC_ABM                              0x0B
208 #define BLLI_L2_LLC                                             0x0C
209 #define BLLI_L2_X75                                             0x0D
210 #define BLLI_L2_Q922                                    0x0E
211 #define BLLI_L2_USER_SPECIFIED            0x10
212 #define BLLI_L2_ISO_7776                              0x11
213
214 /* ATM_BLLI_IE.Layer3Protocol constants */
215 #define BLLI_L3_X25                                             0x06
216 #define BLLI_L3_ISO_8208                              0x07
217 #define BLLI_L3_X223                                    0x08
218 #define BLLI_L3_SIO_8473                              0x09
219 #define BLLI_L3_T70                                             0x0A
220 #define BLLI_L3_ISO_TR9577                          0x0B
221 #define BLLI_L3_USER_SPECIFIED            0x10
222
223 /* ATM_BLLI_IE.Layer3IPI constants */
224 #define BLLI_L3_IPI_SNAP                              0x80
225 #define BLLI_L3_IPI_IP                                0xCC
226
227 typedef struct _ATM_BLLI_IE {
228   ULONG  Layer2Protocol;
229   UCHAR  Layer2Mode;
230   UCHAR  Layer2WindowSize;
231   ULONG  Layer2UserSpecifiedProtocol;
232   ULONG  Layer3Protocol;
233   UCHAR  Layer3Mode;
234   UCHAR  Layer3DefaultPacketSize;
235   UCHAR  Layer3PacketWindowSize;
236   ULONG  Layer3UserSpecifiedProtocol;
237   ULONG  Layer3IPI;
238   UCHAR  SnapId[5];
239 } ATM_BLLI_IE, *PATM_BLLI_IE;
240
241 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
242 #define BCOB_A                                                    0x00
243 #define BCOB_C                                                    0x01
244 #define BCOB_X                                                    0x02
245
246 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
247 #define TT_NOIND                                                  0x00
248 #define TT_CBR                                                    0x04
249 #define TT_VBR                                                    0x08
250
251 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
252 #define TR_NOIND                                                  0x00
253 #define TR_END_TO_END                                   0x01
254 #define TR_NO_END_TO_END                              0x02
255
256 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
257 #define CLIP_NOT                                                  0x00
258 #define CLIP_SUS                                                  0x20
259
260 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
261 #define UP_P2P                                                    0x00
262 #define UP_P2MP                                                   0x01
263
264 typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
265   UCHAR  BearerClass;
266   UCHAR  TrafficType;
267   UCHAR  TimingRequirements;
268   UCHAR  ClippingSusceptability;
269   UCHAR  UserPlaneConnectionConfig;
270 } ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;
271
272 typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
273   UCHAR  SendingComplete;
274 } ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
275
276 typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
277   ATM_ADDRESS  Number;
278   UCHAR  PresentationIndication;
279   UCHAR  ScreeningIndicator;
280 } ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;
281
282 /* ATM_CAUSE_IE.Location constants */
283 #define ATM_CAUSE_LOC_USER                    0x00
284 #define ATM_CAUSE_LOC_PRIVATE_LOCAL           0x01
285 #define ATM_CAUSE_LOC_PUBLIC_LOCAL            0x02
286 #define ATM_CAUSE_LOC_TRANSIT_NETWORK         0x03
287 #define ATM_CAUSE_LOC_PUBLIC_REMOTE           0x04
288 #define ATM_CAUSE_LOC_PRIVATE_REMOTE          0x05
289 #define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK   0x07
290 #define ATM_CAUSE_LOC_BEYOND_INTERWORKING     0x0A
291
292 /* ATM_CAUSE_IE.Cause constants */
293 #define ATM_CAUSE_UNALLOCATED_NUMBER                0x01
294 #define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK       0x02
295 #define ATM_CAUSE_NO_ROUTE_TO_DESTINATION           0x03
296 #define ATM_CAUSE_VPI_VCI_UNACCEPTABLE              0x0A
297 #define ATM_CAUSE_NORMAL_CALL_CLEARING              0x10
298 #define ATM_CAUSE_USER_BUSY                         0x11
299 #define ATM_CAUSE_NO_USER_RESPONDING                0x12
300 #define ATM_CAUSE_CALL_REJECTED                     0x15
301 #define ATM_CAUSE_NUMBER_CHANGED                    0x16
302 #define ATM_CAUSE_USER_REJECTS_CLIR                 0x17
303 #define ATM_CAUSE_DESTINATION_OUT_OF_ORDER          0x1B
304 #define ATM_CAUSE_INVALID_NUMBER_FORMAT             0x1C
305 #define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE           0x1E
306 #define ATM_CAUSE_NORMAL_UNSPECIFIED                0x1F
307 #define ATM_CAUSE_VPI_VCI_UNAVAILABLE               0x23
308 #define ATM_CAUSE_NETWORK_OUT_OF_ORDER              0x26
309 #define ATM_CAUSE_TEMPORARY_FAILURE                 0x29
310 #define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED       0x2B
311 #define ATM_CAUSE_NO_VPI_VCI_AVAILABLE              0x2D
312 #define ATM_CAUSE_RESOURCE_UNAVAILABLE              0x2F
313 #define ATM_CAUSE_QOS_UNAVAILABLE                   0x31
314 #define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE        0x33
315 #define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED    0x39
316 #define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE     0x3A
317 #define ATM_CAUSE_OPTION_UNAVAILABLE                0x3F
318 #define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED   0x41
319 #define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS    0x49
320 #define ATM_CAUSE_INVALID_CALL_REFERENCE            0x51
321 #define ATM_CAUSE_CHANNEL_NONEXISTENT               0x52
322 #define ATM_CAUSE_INCOMPATIBLE_DESTINATION          0x58
323 #define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE        0x59
324 #define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
325 #define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY        0x5C
326 #define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED        0x5D
327 #define ATM_CAUSE_MANDATORY_IE_MISSING              0x60
328 #define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE        0x61
329 #define ATM_CAUSE_UNIMPLEMENTED_IE                  0x63
330 #define ATM_CAUSE_INVALID_IE_CONTENTS               0x64
331 #define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE         0x65
332 #define ATM_CAUSE_RECOVERY_ON_TIMEOUT               0x66
333 #define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH          0x68
334 #define ATM_CAUSE_PROTOCOL_ERROR                    0x6F
335
336 /* ATM_CAUSE_IE.Diagnostics constants */
337 #define ATM_CAUSE_COND_UNKNOWN            0x00
338 #define ATM_CAUSE_COND_PERMANENT          0x01
339 #define ATM_CAUSE_COND_TRANSIENT          0x02
340 #define ATM_CAUSE_REASON_USER             0x00
341 #define ATM_CAUSE_REASON_IE_MISSING       0x04
342 #define ATM_CAUSE_REASON_IE_INSUFFICIENT  0x08
343 #define ATM_CAUSE_PU_PROVIDER             0x00
344 #define ATM_CAUSE_PU_USER                 0x08
345 #define ATM_CAUSE_NA_NORMAL               0x00
346 #define ATM_CAUSE_NA_ABNORMAL             0x04
347
348 typedef struct _ATM_CAUSE_IE {
349   UCHAR  Location;
350   UCHAR  Cause;
351   UCHAR  DiagnosticsLength;
352   UCHAR  Diagnostics[4];
353 } ATM_CAUSE_IE, *PATM_CAUSE_IE;
354
355
356 typedef ULONG   ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
357
358 /* ATM_FLOW_PARAMETERS.ServiceCategory constants */
359 #define ATM_SERVICE_CATEGORY_CBR                1
360 #define ATM_SERVICE_CATEGORY_VBR                2
361 #define ATM_SERVICE_CATEGORY_UBR                4
362 #define ATM_SERVICE_CATEGORY_ABR                8
363
364 /* ATM_FLOW_PARAMETERS.Reserved1 constants */
365 #define ATM_FLOW_PARAMS_RSVD1_MPP               0x01
366
367 typedef struct _ATM_FLOW_PARAMETERS {
368   ATM_SERVICE_CATEGORY  ServiceCategory;
369   ULONG  AverageCellRate;
370   ULONG  PeakCellRate;
371   ULONG  MinimumCellRate;
372   ULONG  InitialCellRate;
373   ULONG  BurstLengthCells;
374   ULONG  MaxSduSize;
375   ULONG  TransientBufferExposure;
376   ULONG  CumulativeRMFixedRTT;
377   UCHAR  RateIncreaseFactor;
378   UCHAR  RateDecreaseFactor;
379   USHORT  ACRDecreaseTimeFactor;
380   UCHAR  MaximumCellsPerForwardRMCell;
381   UCHAR  MaximumForwardRMCellInterval;
382   UCHAR  CutoffDecreaseFactor;
383   UCHAR  Reserved1;
384   ULONG  MissingRMCellCount;
385   ULONG  Reserved2;
386   ULONG  Reserved3;
387 } ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;
388
389 typedef struct _ATM_VPIVCI {
390   ULONG  Vpi;
391   ULONG  Vci;
392 } ATM_VPIVCI, *PATM_VPIVCI;
393
394 typedef struct _ATM_MEDIA_PARAMETERS {
395   ATM_VPIVCI  ConnectionId;
396   ATM_AAL_TYPE  AALType;
397   ULONG  CellDelayVariationCLP0;
398   ULONG  CellDelayVariationCLP1;
399   ULONG  CellLossRatioCLP0;
400   ULONG  CellLossRatioCLP1;
401   ULONG  CellTransferDelayCLP0;
402   ULONG  CellTransferDelayCLP1;
403   ULONG  DefaultCLP;
404   ATM_FLOW_PARAMETERS  Transmit;
405   ATM_FLOW_PARAMETERS  Receive;
406 } ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;
407
408 typedef struct _ATM_PVC_SAP {
409   ATM_BLLI_IE  Blli;
410   ATM_BHLI_IE  Bhli;
411 } ATM_PVC_SAP, *PATM_PVC_SAP;
412
413 /* ATM_QOS_CLASS_IE constants */
414 #define QOS_CLASS0                                              0x00
415 #define QOS_CLASS1                                              0x01
416 #define QOS_CLASS2                                              0x02
417 #define QOS_CLASS3                                              0x03
418 #define QOS_CLASS4                                              0x04
419
420 typedef struct _ATM_QOS_CLASS_IE {
421   UCHAR  QOSClassForward;
422   UCHAR  QOSClassBackward;
423 } ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;
424
425 typedef struct _ATM_RAW_IE {
426   ULONG  RawIELength;
427   ULONG  RawIEType;
428   UCHAR  RawIEValue[1];
429 } ATM_RAW_IE, *PATM_RAW_IE;
430
431 typedef struct _ATM_SAP {
432   ATM_BLLI_IE  Blli;
433   ATM_BHLI_IE  Bhli;
434   ULONG  NumberOfAddresses;
435   UCHAR  Addresses[1];
436 } ATM_SAP, *PATM_SAP;
437
438 typedef struct _ATM_TRAFFIC_DESCRIPTOR {
439   ULONG  PeakCellRateCLP0;
440   ULONG  PeakCellRateCLP01;
441   ULONG  SustainableCellRateCLP0;
442   ULONG  SustainableCellRateCLP01;
443   ULONG  MaximumBurstSizeCLP0;
444   ULONG  MaximumBurstSizeCLP01;
445   BOOLEAN  BestEffort;
446   BOOLEAN  Tagging;
447 } ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;
448
449 typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
450   ATM_TRAFFIC_DESCRIPTOR  ForwardTD;
451   ATM_TRAFFIC_DESCRIPTOR  BackwardTD;
452   BOOLEAN  BestEffort;
453 } ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;
454
455 /* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
456 #define TNS_TYPE_NATIONAL                                   0x40
457
458 /* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
459 #define TNS_PLAN_CARRIER_ID_CODE                0x01
460
461 typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
462   UCHAR  TypeOfNetworkId;
463   UCHAR  NetworkIdPlan;
464   UCHAR  NetworkIdLength;
465   UCHAR  NetworkId[1];
466 } ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;
467
468 typedef struct _ATM_LIJ_CALLID_IE {
469         ULONG  Identifier;
470 } ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;
471
472 /* Q2931_ADD_PVC.Flags constants */
473 #define CO_FLAG_SIGNALING_VC              0x00000001
474 #define CO_FLAG_NO_DEST_SAP               0x00000002
475
476 typedef struct _Q2931_ADD_PVC {
477   ATM_ADDRESS  CalledParty;
478   ATM_ADDRESS  CallingParty;
479   ATM_VPIVCI  ConnectionId;
480   ATM_AAL_TYPE  AALType;
481   ATM_FLOW_PARAMETERS  ForwardFP;
482   ATM_FLOW_PARAMETERS  BackwardFP;
483   ULONG  Flags;
484   ATM_PVC_SAP  LocalSap;
485   ATM_PVC_SAP  DestinationSap;
486   BOOLEAN  LIJIdPresent;
487   ATM_LIJ_CALLID_IE  LIJId;
488 } Q2931_ADD_PVC, *PQ2931_ADD_PVC;
489
490 typedef struct _Q2931_DELETE_PVC {
491   ATM_VPIVCI  ConnectionId;
492 } Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;
493
494 typedef ATM_ADDRESS     ATM_CALLED_PARTY_NUMBER_IE;
495 typedef ATM_ADDRESS     ATM_CALLED_PARTY_SUBADDRESS_IE;
496 typedef ATM_ADDRESS     ATM_CALLING_PARTY_SUBADDRESS_IE;
497
498 typedef struct _Q2931_CALLMGR_PARAMETERS {
499   ATM_ADDRESS  CalledParty;
500   ATM_ADDRESS  CallingParty;
501   ULONG  InfoElementCount;
502   UCHAR  InfoElements[1];
503 } Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS;
504
505 typedef struct _ATM_VC_RATES_SUPPORTED {
506   ULONG  MinCellRate;
507   ULONG  MaxCellRate;
508 } ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;
509
510 typedef ULONG ATM_SERVICE_REGISTRY_TYPE;
511
512 /* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
513 #define ATM_SERVICE_REGISTRY_LECS                     1
514 #define ATM_SERVICE_REGISTRY_ANS                      2
515
516 typedef struct _ATM_SERVICE_ADDRESS_LIST {
517   ATM_SERVICE_REGISTRY_TYPE  ServiceRegistryType;
518   ULONG  NumberOfAddressesAvailable;
519   ULONG  NumberOfAddressesReturned;
520   ATM_ADDRESS  Address[1];
521 } ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST;
522
523 #ifdef __cplusplus
524 }
525 #endif
526
527 #endif /* __ATM_H */