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