Welcome to mirror list, hosted at ThFree Co, Russian Federation.

atm.h « ddk « include « w32api « winsup - cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: d302293851773a66d106d0e46edd272211772e6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
/*
 * atm.h
 *
 * ATM support
 *
 * This file is part of the w32api package.
 *
 * Contributors:
 *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
 *
 * THIS SOFTWARE IS NOT COPYRIGHTED
 *
 * This source code is offered for use in the public domain. You may
 * use, modify or distribute it freely.
 *
 * This code is distributed in the hope that it will be useful but
 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
 * DISCLAIMED. This includes but is not limited to warranties of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 */

#ifndef __ATM_H
#define __ATM_H

#if __GNUC__ >=3
#pragma GCC system_header
#endif

#ifdef __cplusplus
extern "C" {
#endif

typedef ULONG	ATM_ADDRESSTYPE;

#define SAP_TYPE_NSAP			                1
#define SAP_TYPE_E164			                2

#define ATM_MEDIA_SPECIFIC                1

#define CALLMGR_SPECIFIC_Q2931            1

#define	ATM_NSAP				                  0
#define	ATM_E164				                  1

#define	ATM_MAC_ADDRESS_LENGTH	          6
#define	ATM_ADDRESS_LENGTH		            20

typedef ULONG	ATM_AAL_TYPE, *PATM_AAL_TYPE;

#define	AAL_TYPE_AAL0			                1
#define	AAL_TYPE_AAL1			                2
#define	AAL_TYPE_AAL34			              4
#define	AAL_TYPE_AAL5			                8

#define ATM_ADDR_BLANK_CHAR				        L' '
#define ATM_ADDR_E164_START_CHAR		      L'+'
#define ATM_ADDR_PUNCTUATION_CHAR		      L'.'

typedef enum {
	IE_AALParameters,
	IE_TrafficDescriptor,
	IE_BroadbandBearerCapability,
	IE_BHLI,
	IE_BLLI,
	IE_CalledPartyNumber,
	IE_CalledPartySubaddress,
	IE_CallingPartyNumber,
	IE_CallingPartySubaddress,
	IE_Cause,
	IE_QOSClass,
	IE_TransitNetworkSelection,
	IE_BroadbandSendingComplete,
	IE_LIJCallId,
	IE_Raw
} Q2931_IE_TYPE;

typedef struct _Q2931_IE {
  Q2931_IE_TYPE  IEType;
  ULONG  IELength;
  UCHAR  IE[1];
} Q2931_IE, *PQ2931_IE;

typedef struct _AAL1_PARAMETERS {
  UCHAR  Subtype;
  UCHAR  CBRRate;
  USHORT  Multiplier;
  UCHAR  SourceClockRecoveryMethod;
  UCHAR  ErrorCorrectionMethod;
  USHORT  StructuredDataTransferBlocksize;
  UCHAR  PartiallyFilledCellsMethod;
} AAL1_PARAMETERS, *PAAL1_PARAMETERS;

typedef struct _AAL34_PARAMETERS {
  USHORT  ForwardMaxCPCSSDUSize;
  USHORT  BackwardMaxCPCSSDUSize;
  USHORT  LowestMID;
  USHORT  HighestMID;
  UCHAR  SSCSType;
} AAL34_PARAMETERS, *PAAL34_PARAMETERS;

/* AAL5_PARAMETERS.Mode constants */
#define AAL5_MODE_MESSAGE			            0x01
#define AAL5_MODE_STREAMING			          0x02

/* AAL5_PARAMETERS.SSCSType constants */
#define AAL5_SSCS_NULL				            0x00
#define AAL5_SSCS_SSCOP_ASSURED		        0x01
#define AAL5_SSCS_SSCOP_NON_ASSURED	      0x02
#define AAL5_SSCS_FRAME_RELAY		          0x04

typedef struct _AAL5_PARAMETERS {
  ULONG  ForwardMaxCPCSSDUSize;
  ULONG  BackwardMaxCPCSSDUSize;
  UCHAR  Mode;
  UCHAR  SSCSType;
} AAL5_PARAMETERS, *PAAL5_PARAMETERS;

typedef struct _AALUSER_PARAMETERS {
  ULONG  UserDefined;
} AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;

typedef struct _AAL_PARAMETERS_IE {
  ATM_AAL_TYPE  AALType;
  union {
    AAL1_PARAMETERS  AAL1Parameters;
    AAL34_PARAMETERS  AAL34Parameters;
    AAL5_PARAMETERS  AAL5Parameters;
    AALUSER_PARAMETERS  AALUserParameters;
  } AALSpecificParameters;
} AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;


/* FIXME: Should the union be anonymous in C++ too?  If so,
   can't define named types _ATM_AAL5_INFO and _ATM_AAL0_INFO
   within anonymous union for C++. */
typedef struct _ATM_AAL_OOB_INFO
{
	ATM_AAL_TYPE  AalType;
#ifndef __cplusplus
	_ANONYMOUS_UNION
#endif
	union {
		struct _ATM_AAL5_INFO {
			BOOLEAN  CellLossPriority;
			UCHAR  UserToUserIndication;
			UCHAR  CommonPartIndicator;
		} ATM_AAL5_INFO;
		
		struct _ATM_AAL0_INFO {
			BOOLEAN  CellLossPriority;
			UCHAR  PayLoadTypeIdentifier;
		} ATM_AAL0_INFO;
#ifndef __cplusplus
	} DUMMYUNIONNAME;
#else
	} u;
#endif
} ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;

typedef struct _ATM_ADDRESS  { 
  ATM_ADDRESSTYPE  AddressType; 
  ULONG  NumberOfDigits; 
  UCHAR  Address[ATM_ADDRESS_LENGTH]; 
} ATM_ADDRESS, *PATM_ADDRESS;

/* ATM_BHLI_IE.HighLayerInfoType constants */
#define BHLI_ISO				                  0x00
#define BHLI_UserSpecific		              0x01
#define BHLI_HighLayerProfile	            0x02
#define BHLI_VendorSpecificAppId          0x03

typedef struct _ATM_BHLI_IE {
  ULONG  HighLayerInfoType;
  ULONG  HighLayerInfoLength;
  UCHAR  HighLayerInfo[8];
} ATM_BHLI_IE, *PATM_BHLI_IE;

/* ATM_BLLI_IE.Layer2Protocol constants */
#define BLLI_L2_ISO_1745		              0x01
#define BLLI_L2_Q921			                0x02
#define BLLI_L2_X25L			                0x06
#define BLLI_L2_X25M			                0x07
#define BLLI_L2_ELAPB			                0x08
#define BLLI_L2_HDLC_ARM		              0x09
#define BLLI_L2_HDLC_NRM		              0x0A
#define BLLI_L2_HDLC_ABM		              0x0B
#define BLLI_L2_LLC				                0x0C
#define BLLI_L2_X75				                0x0D
#define BLLI_L2_Q922			                0x0E
#define BLLI_L2_USER_SPECIFIED            0x10
#define BLLI_L2_ISO_7776		              0x11

/* ATM_BLLI_IE.Layer3Protocol constants */
#define BLLI_L3_X25				                0x06
#define BLLI_L3_ISO_8208		              0x07
#define BLLI_L3_X223			                0x08
#define BLLI_L3_SIO_8473		              0x09
#define BLLI_L3_T70				                0x0A
#define BLLI_L3_ISO_TR9577		            0x0B
#define BLLI_L3_USER_SPECIFIED	          0x10

/* ATM_BLLI_IE.Layer3IPI constants */
#define BLLI_L3_IPI_SNAP		              0x80
#define BLLI_L3_IPI_IP			              0xCC

typedef struct _ATM_BLLI_IE {
  ULONG  Layer2Protocol;
  UCHAR  Layer2Mode;
  UCHAR  Layer2WindowSize;
  ULONG  Layer2UserSpecifiedProtocol;
  ULONG  Layer3Protocol;
  UCHAR  Layer3Mode;
  UCHAR  Layer3DefaultPacketSize;
  UCHAR  Layer3PacketWindowSize;
  ULONG  Layer3UserSpecifiedProtocol;
  ULONG  Layer3IPI;
  UCHAR  SnapId[5];
} ATM_BLLI_IE, *PATM_BLLI_IE;

/* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
#define BCOB_A					                  0x00
#define BCOB_C					                  0x01
#define BCOB_X					                  0x02

/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
#define TT_NOIND				                  0x00
#define TT_CBR					                  0x04
#define TT_VBR					                  0x08

/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
#define TR_NOIND				                  0x00
#define TR_END_TO_END			                0x01
#define TR_NO_END_TO_END		              0x02

/* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
#define CLIP_NOT				                  0x00
#define CLIP_SUS				                  0x20

/* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
#define UP_P2P					                  0x00
#define UP_P2MP					                  0x01

typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
  UCHAR  BearerClass;
  UCHAR  TrafficType;
  UCHAR  TimingRequirements;
  UCHAR  ClippingSusceptability;
  UCHAR  UserPlaneConnectionConfig;
} ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;

typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
  UCHAR  SendingComplete;
} ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;

typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
  ATM_ADDRESS  Number;
  UCHAR  PresentationIndication;
  UCHAR  ScreeningIndicator;
} ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;

/* ATM_CAUSE_IE.Location constants */
#define ATM_CAUSE_LOC_USER                    0x00
#define ATM_CAUSE_LOC_PRIVATE_LOCAL           0x01
#define ATM_CAUSE_LOC_PUBLIC_LOCAL            0x02
#define ATM_CAUSE_LOC_TRANSIT_NETWORK         0x03
#define ATM_CAUSE_LOC_PUBLIC_REMOTE           0x04
#define ATM_CAUSE_LOC_PRIVATE_REMOTE          0x05
#define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK   0x07
#define ATM_CAUSE_LOC_BEYOND_INTERWORKING     0x0A

/* ATM_CAUSE_IE.Cause constants */
#define ATM_CAUSE_UNALLOCATED_NUMBER                0x01
#define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK       0x02
#define ATM_CAUSE_NO_ROUTE_TO_DESTINATION           0x03
#define ATM_CAUSE_VPI_VCI_UNACCEPTABLE              0x0A
#define ATM_CAUSE_NORMAL_CALL_CLEARING              0x10
#define ATM_CAUSE_USER_BUSY                         0x11
#define ATM_CAUSE_NO_USER_RESPONDING                0x12
#define ATM_CAUSE_CALL_REJECTED                     0x15
#define ATM_CAUSE_NUMBER_CHANGED                    0x16
#define ATM_CAUSE_USER_REJECTS_CLIR                 0x17
#define ATM_CAUSE_DESTINATION_OUT_OF_ORDER          0x1B
#define ATM_CAUSE_INVALID_NUMBER_FORMAT             0x1C
#define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE           0x1E
#define ATM_CAUSE_NORMAL_UNSPECIFIED                0x1F
#define ATM_CAUSE_VPI_VCI_UNAVAILABLE               0x23
#define ATM_CAUSE_NETWORK_OUT_OF_ORDER              0x26
#define ATM_CAUSE_TEMPORARY_FAILURE                 0x29
#define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED       0x2B
#define ATM_CAUSE_NO_VPI_VCI_AVAILABLE              0x2D
#define ATM_CAUSE_RESOURCE_UNAVAILABLE              0x2F
#define ATM_CAUSE_QOS_UNAVAILABLE                   0x31
#define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE        0x33
#define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED    0x39
#define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE     0x3A
#define ATM_CAUSE_OPTION_UNAVAILABLE                0x3F
#define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED   0x41
#define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS    0x49
#define ATM_CAUSE_INVALID_CALL_REFERENCE            0x51
#define ATM_CAUSE_CHANNEL_NONEXISTENT               0x52
#define ATM_CAUSE_INCOMPATIBLE_DESTINATION          0x58
#define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE        0x59
#define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
#define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY        0x5C
#define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED        0x5D
#define ATM_CAUSE_MANDATORY_IE_MISSING              0x60
#define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE        0x61
#define ATM_CAUSE_UNIMPLEMENTED_IE                  0x63
#define ATM_CAUSE_INVALID_IE_CONTENTS               0x64
#define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE         0x65
#define ATM_CAUSE_RECOVERY_ON_TIMEOUT               0x66
#define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH          0x68
#define ATM_CAUSE_PROTOCOL_ERROR                    0x6F

/* ATM_CAUSE_IE.Diagnostics constants */
#define ATM_CAUSE_COND_UNKNOWN            0x00
#define ATM_CAUSE_COND_PERMANENT          0x01
#define ATM_CAUSE_COND_TRANSIENT          0x02
#define ATM_CAUSE_REASON_USER             0x00
#define ATM_CAUSE_REASON_IE_MISSING       0x04
#define ATM_CAUSE_REASON_IE_INSUFFICIENT  0x08
#define ATM_CAUSE_PU_PROVIDER             0x00
#define ATM_CAUSE_PU_USER                 0x08
#define ATM_CAUSE_NA_NORMAL               0x00
#define ATM_CAUSE_NA_ABNORMAL             0x04

typedef struct _ATM_CAUSE_IE {
  UCHAR  Location;
  UCHAR  Cause;
  UCHAR  DiagnosticsLength;
  UCHAR  Diagnostics[4];
} ATM_CAUSE_IE, *PATM_CAUSE_IE;


typedef ULONG	ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;

/* ATM_FLOW_PARAMETERS.ServiceCategory constants */
#define	ATM_SERVICE_CATEGORY_CBR	        1
#define	ATM_SERVICE_CATEGORY_VBR	        2
#define	ATM_SERVICE_CATEGORY_UBR	        4
#define	ATM_SERVICE_CATEGORY_ABR	        8

/* ATM_FLOW_PARAMETERS.Reserved1 constants */
#define ATM_FLOW_PARAMS_RSVD1_MPP	        0x01

typedef struct _ATM_FLOW_PARAMETERS {
  ATM_SERVICE_CATEGORY  ServiceCategory;
  ULONG  AverageCellRate;
  ULONG  PeakCellRate;
  ULONG  MinimumCellRate;
  ULONG  InitialCellRate;
  ULONG  BurstLengthCells;
  ULONG  MaxSduSize;
  ULONG  TransientBufferExposure;
  ULONG  CumulativeRMFixedRTT;
  UCHAR  RateIncreaseFactor;
  UCHAR  RateDecreaseFactor;
  USHORT  ACRDecreaseTimeFactor;
  UCHAR  MaximumCellsPerForwardRMCell;
  UCHAR  MaximumForwardRMCellInterval;
  UCHAR  CutoffDecreaseFactor;
  UCHAR  Reserved1;
  ULONG  MissingRMCellCount;
  ULONG  Reserved2;
  ULONG  Reserved3;
} ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;

typedef struct _ATM_VPIVCI {
  ULONG  Vpi;
  ULONG  Vci;
} ATM_VPIVCI, *PATM_VPIVCI;

typedef struct _ATM_MEDIA_PARAMETERS {
  ATM_VPIVCI  ConnectionId;
  ATM_AAL_TYPE  AALType;
  ULONG  CellDelayVariationCLP0;
  ULONG  CellDelayVariationCLP1;
  ULONG  CellLossRatioCLP0;
  ULONG  CellLossRatioCLP1;
  ULONG  CellTransferDelayCLP0;
  ULONG  CellTransferDelayCLP1;
  ULONG  DefaultCLP;
  ATM_FLOW_PARAMETERS  Transmit;
  ATM_FLOW_PARAMETERS  Receive;
} ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;

typedef struct _ATM_PVC_SAP {
  ATM_BLLI_IE  Blli;
  ATM_BHLI_IE  Bhli;
} ATM_PVC_SAP, *PATM_PVC_SAP;

/* ATM_QOS_CLASS_IE constants */
#define QOS_CLASS0				                0x00
#define QOS_CLASS1				                0x01
#define QOS_CLASS2				                0x02
#define QOS_CLASS3				                0x03
#define QOS_CLASS4				                0x04

typedef struct _ATM_QOS_CLASS_IE {
  UCHAR  QOSClassForward;
  UCHAR  QOSClassBackward;
} ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;

typedef struct _ATM_RAW_IE {
  ULONG  RawIELength;
  ULONG  RawIEType;
  UCHAR  RawIEValue[1];
} ATM_RAW_IE, *PATM_RAW_IE;

typedef struct _ATM_SAP {
  ATM_BLLI_IE  Blli;
  ATM_BHLI_IE  Bhli;
  ULONG  NumberOfAddresses;
  UCHAR  Addresses[1];
} ATM_SAP, *PATM_SAP;

typedef struct _ATM_TRAFFIC_DESCRIPTOR {
  ULONG  PeakCellRateCLP0;
  ULONG  PeakCellRateCLP01;
  ULONG  SustainableCellRateCLP0;
  ULONG  SustainableCellRateCLP01;
  ULONG  MaximumBurstSizeCLP0;
  ULONG  MaximumBurstSizeCLP01;
  BOOLEAN  BestEffort;
  BOOLEAN  Tagging;
} ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;

typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
  ATM_TRAFFIC_DESCRIPTOR  ForwardTD;
  ATM_TRAFFIC_DESCRIPTOR  BackwardTD;
  BOOLEAN  BestEffort;
} ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;

/* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
#define TNS_TYPE_NATIONAL			            0x40

/* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
#define TNS_PLAN_CARRIER_ID_CODE	        0x01

typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
  UCHAR  TypeOfNetworkId;
  UCHAR  NetworkIdPlan;
  UCHAR  NetworkIdLength;
  UCHAR  NetworkId[1];
} ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;

typedef struct _ATM_LIJ_CALLID_IE {
	ULONG  Identifier;
} ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;

/* Q2931_ADD_PVC.Flags constants */
#define CO_FLAG_SIGNALING_VC              0x00000001
#define CO_FLAG_NO_DEST_SAP               0x00000002

typedef struct _Q2931_ADD_PVC {
  ATM_ADDRESS  CalledParty;
  ATM_ADDRESS  CallingParty;
  ATM_VPIVCI  ConnectionId;
  ATM_AAL_TYPE  AALType;
  ATM_FLOW_PARAMETERS  ForwardFP;
  ATM_FLOW_PARAMETERS  BackwardFP;
  ULONG  Flags;
  ATM_PVC_SAP  LocalSap;
  ATM_PVC_SAP  DestinationSap;
  BOOLEAN  LIJIdPresent;
  ATM_LIJ_CALLID_IE  LIJId;
} Q2931_ADD_PVC, *PQ2931_ADD_PVC;

typedef struct _Q2931_DELETE_PVC {
  ATM_VPIVCI  ConnectionId;
} Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;

typedef ATM_ADDRESS	ATM_CALLED_PARTY_NUMBER_IE;
typedef ATM_ADDRESS	ATM_CALLED_PARTY_SUBADDRESS_IE;
typedef ATM_ADDRESS	ATM_CALLING_PARTY_SUBADDRESS_IE;

typedef struct _Q2931_CALLMGR_PARAMETERS {
  ATM_ADDRESS  CalledParty;
  ATM_ADDRESS  CallingParty;
  ULONG  InfoElementCount;
  UCHAR  InfoElements[1];
} Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS;

typedef struct _ATM_VC_RATES_SUPPORTED {
  ULONG  MinCellRate;
  ULONG  MaxCellRate;
} ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;

typedef ULONG ATM_SERVICE_REGISTRY_TYPE;

/* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
#define ATM_SERVICE_REGISTRY_LECS		      1
#define ATM_SERVICE_REGISTRY_ANS		      2

typedef struct _ATM_SERVICE_ADDRESS_LIST {
  ATM_SERVICE_REGISTRY_TYPE  ServiceRegistryType;
  ULONG  NumberOfAddressesAvailable;
  ULONG  NumberOfAddressesReturned;
  ATM_ADDRESS  Address[1];
} ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST;

#ifdef __cplusplus
}
#endif

#endif /* __ATM_H */