6 * This file is part of the w32api package.
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
11 * THIS SOFTWARE IS NOT COPYRIGHTED
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
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.
25 #pragma GCC system_header
31 typedef ULONG ATM_ADDRESSTYPE;
33 #define SAP_TYPE_NSAP 1
34 #define SAP_TYPE_E164 2
36 #define ATM_MEDIA_SPECIFIC 1
38 #define CALLMGR_SPECIFIC_Q2931 1
43 #define ATM_MAC_ADDRESS_LENGTH 6
44 #define ATM_ADDRESS_LENGTH 20
46 typedef ULONG ATM_AAL_TYPE, *PATM_AAL_TYPE;
48 #define AAL_TYPE_AAL0 1
49 #define AAL_TYPE_AAL1 2
50 #define AAL_TYPE_AAL34 4
51 #define AAL_TYPE_AAL5 8
53 #define ATM_ADDR_BLANK_CHAR L' '
54 #define ATM_ADDR_E164_START_CHAR L'+'
55 #define ATM_ADDR_PUNCTUATION_CHAR L'.'
60 IE_BroadbandBearerCapability,
64 IE_CalledPartySubaddress,
65 IE_CallingPartyNumber,
66 IE_CallingPartySubaddress,
69 IE_TransitNetworkSelection,
70 IE_BroadbandSendingComplete,
75 typedef struct _Q2931_IE {
79 } Q2931_IE, *PQ2931_IE;
81 typedef struct _AAL1_PARAMETERS {
85 UCHAR SourceClockRecoveryMethod;
86 UCHAR ErrorCorrectionMethod;
87 USHORT StructuredDataTransferBlocksize;
88 UCHAR PartiallyFilledCellsMethod;
89 } AAL1_PARAMETERS, *PAAL1_PARAMETERS;
91 typedef struct _AAL34_PARAMETERS {
92 USHORT ForwardMaxCPCSSDUSize;
93 USHORT BackwardMaxCPCSSDUSize;
97 } AAL34_PARAMETERS, *PAAL34_PARAMETERS;
99 /* AAL5_PARAMETERS.Mode constants */
100 #define AAL5_MODE_MESSAGE 0x01
101 #define AAL5_MODE_STREAMING 0x02
103 /* AAL5_PARAMETERS.SSCSType constants */
104 #define AAL5_SSCS_NULL 0x00
105 #define AAL5_SSCS_SSCOP_ASSURED 0x01
106 #define AAL5_SSCS_SSCOP_NON_ASSURED 0x02
107 #define AAL5_SSCS_FRAME_RELAY 0x04
109 typedef struct _AAL5_PARAMETERS {
110 ULONG ForwardMaxCPCSSDUSize;
111 ULONG BackwardMaxCPCSSDUSize;
114 } AAL5_PARAMETERS, *PAAL5_PARAMETERS;
116 typedef struct _AALUSER_PARAMETERS {
118 } AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;
120 typedef struct _AAL_PARAMETERS_IE {
121 ATM_AAL_TYPE AALType;
123 AAL1_PARAMETERS AAL1Parameters;
124 AAL34_PARAMETERS AAL34Parameters;
125 AAL5_PARAMETERS AAL5Parameters;
126 AALUSER_PARAMETERS AALUserParameters;
127 } AALSpecificParameters;
128 } AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;
131 /* FIXME: Should the union be anonymous in C++ too? If so,
132 can't define named types _ATM_AAL5_INFO and _ATM_AAL0_INFO
133 within anonymous union for C++. */
134 typedef struct _ATM_AAL_OOB_INFO
136 ATM_AAL_TYPE AalType;
141 struct _ATM_AAL5_INFO {
142 BOOLEAN CellLossPriority;
143 UCHAR UserToUserIndication;
144 UCHAR CommonPartIndicator;
147 struct _ATM_AAL0_INFO {
148 BOOLEAN CellLossPriority;
149 UCHAR PayLoadTypeIdentifier;
156 } ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;
158 typedef struct _ATM_ADDRESS {
159 ATM_ADDRESSTYPE AddressType;
160 ULONG NumberOfDigits;
161 UCHAR Address[ATM_ADDRESS_LENGTH];
162 } ATM_ADDRESS, *PATM_ADDRESS;
164 /* ATM_BHLI_IE.HighLayerInfoType constants */
165 #define BHLI_ISO 0x00
166 #define BHLI_UserSpecific 0x01
167 #define BHLI_HighLayerProfile 0x02
168 #define BHLI_VendorSpecificAppId 0x03
170 typedef struct _ATM_BHLI_IE {
171 ULONG HighLayerInfoType;
172 ULONG HighLayerInfoLength;
173 UCHAR HighLayerInfo[8];
174 } ATM_BHLI_IE, *PATM_BHLI_IE;
176 /* ATM_BLLI_IE.Layer2Protocol constants */
177 #define BLLI_L2_ISO_1745 0x01
178 #define BLLI_L2_Q921 0x02
179 #define BLLI_L2_X25L 0x06
180 #define BLLI_L2_X25M 0x07
181 #define BLLI_L2_ELAPB 0x08
182 #define BLLI_L2_HDLC_ARM 0x09
183 #define BLLI_L2_HDLC_NRM 0x0A
184 #define BLLI_L2_HDLC_ABM 0x0B
185 #define BLLI_L2_LLC 0x0C
186 #define BLLI_L2_X75 0x0D
187 #define BLLI_L2_Q922 0x0E
188 #define BLLI_L2_USER_SPECIFIED 0x10
189 #define BLLI_L2_ISO_7776 0x11
191 /* ATM_BLLI_IE.Layer3Protocol constants */
192 #define BLLI_L3_X25 0x06
193 #define BLLI_L3_ISO_8208 0x07
194 #define BLLI_L3_X223 0x08
195 #define BLLI_L3_SIO_8473 0x09
196 #define BLLI_L3_T70 0x0A
197 #define BLLI_L3_ISO_TR9577 0x0B
198 #define BLLI_L3_USER_SPECIFIED 0x10
200 /* ATM_BLLI_IE.Layer3IPI constants */
201 #define BLLI_L3_IPI_SNAP 0x80
202 #define BLLI_L3_IPI_IP 0xCC
204 typedef struct _ATM_BLLI_IE {
205 ULONG Layer2Protocol;
207 UCHAR Layer2WindowSize;
208 ULONG Layer2UserSpecifiedProtocol;
209 ULONG Layer3Protocol;
211 UCHAR Layer3DefaultPacketSize;
212 UCHAR Layer3PacketWindowSize;
213 ULONG Layer3UserSpecifiedProtocol;
216 } ATM_BLLI_IE, *PATM_BLLI_IE;
218 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
223 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
224 #define TT_NOIND 0x00
228 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
229 #define TR_NOIND 0x00
230 #define TR_END_TO_END 0x01
231 #define TR_NO_END_TO_END 0x02
233 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
234 #define CLIP_NOT 0x00
235 #define CLIP_SUS 0x20
237 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
241 typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
244 UCHAR TimingRequirements;
245 UCHAR ClippingSusceptability;
246 UCHAR UserPlaneConnectionConfig;
247 } ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;
249 typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
250 UCHAR SendingComplete;
251 } ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
253 typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
255 UCHAR PresentationIndication;
256 UCHAR ScreeningIndicator;
257 } ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;
259 /* ATM_CAUSE_IE.Location constants */
260 #define ATM_CAUSE_LOC_USER 0x00
261 #define ATM_CAUSE_LOC_PRIVATE_LOCAL 0x01
262 #define ATM_CAUSE_LOC_PUBLIC_LOCAL 0x02
263 #define ATM_CAUSE_LOC_TRANSIT_NETWORK 0x03
264 #define ATM_CAUSE_LOC_PUBLIC_REMOTE 0x04
265 #define ATM_CAUSE_LOC_PRIVATE_REMOTE 0x05
266 #define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK 0x07
267 #define ATM_CAUSE_LOC_BEYOND_INTERWORKING 0x0A
269 /* ATM_CAUSE_IE.Cause constants */
270 #define ATM_CAUSE_UNALLOCATED_NUMBER 0x01
271 #define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK 0x02
272 #define ATM_CAUSE_NO_ROUTE_TO_DESTINATION 0x03
273 #define ATM_CAUSE_VPI_VCI_UNACCEPTABLE 0x0A
274 #define ATM_CAUSE_NORMAL_CALL_CLEARING 0x10
275 #define ATM_CAUSE_USER_BUSY 0x11
276 #define ATM_CAUSE_NO_USER_RESPONDING 0x12
277 #define ATM_CAUSE_CALL_REJECTED 0x15
278 #define ATM_CAUSE_NUMBER_CHANGED 0x16
279 #define ATM_CAUSE_USER_REJECTS_CLIR 0x17
280 #define ATM_CAUSE_DESTINATION_OUT_OF_ORDER 0x1B
281 #define ATM_CAUSE_INVALID_NUMBER_FORMAT 0x1C
282 #define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE 0x1E
283 #define ATM_CAUSE_NORMAL_UNSPECIFIED 0x1F
284 #define ATM_CAUSE_VPI_VCI_UNAVAILABLE 0x23
285 #define ATM_CAUSE_NETWORK_OUT_OF_ORDER 0x26
286 #define ATM_CAUSE_TEMPORARY_FAILURE 0x29
287 #define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED 0x2B
288 #define ATM_CAUSE_NO_VPI_VCI_AVAILABLE 0x2D
289 #define ATM_CAUSE_RESOURCE_UNAVAILABLE 0x2F
290 #define ATM_CAUSE_QOS_UNAVAILABLE 0x31
291 #define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE 0x33
292 #define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED 0x39
293 #define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE 0x3A
294 #define ATM_CAUSE_OPTION_UNAVAILABLE 0x3F
295 #define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED 0x41
296 #define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS 0x49
297 #define ATM_CAUSE_INVALID_CALL_REFERENCE 0x51
298 #define ATM_CAUSE_CHANNEL_NONEXISTENT 0x52
299 #define ATM_CAUSE_INCOMPATIBLE_DESTINATION 0x58
300 #define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE 0x59
301 #define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
302 #define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY 0x5C
303 #define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED 0x5D
304 #define ATM_CAUSE_MANDATORY_IE_MISSING 0x60
305 #define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE 0x61
306 #define ATM_CAUSE_UNIMPLEMENTED_IE 0x63
307 #define ATM_CAUSE_INVALID_IE_CONTENTS 0x64
308 #define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE 0x65
309 #define ATM_CAUSE_RECOVERY_ON_TIMEOUT 0x66
310 #define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH 0x68
311 #define ATM_CAUSE_PROTOCOL_ERROR 0x6F
313 /* ATM_CAUSE_IE.Diagnostics constants */
314 #define ATM_CAUSE_COND_UNKNOWN 0x00
315 #define ATM_CAUSE_COND_PERMANENT 0x01
316 #define ATM_CAUSE_COND_TRANSIENT 0x02
317 #define ATM_CAUSE_REASON_USER 0x00
318 #define ATM_CAUSE_REASON_IE_MISSING 0x04
319 #define ATM_CAUSE_REASON_IE_INSUFFICIENT 0x08
320 #define ATM_CAUSE_PU_PROVIDER 0x00
321 #define ATM_CAUSE_PU_USER 0x08
322 #define ATM_CAUSE_NA_NORMAL 0x00
323 #define ATM_CAUSE_NA_ABNORMAL 0x04
325 typedef struct _ATM_CAUSE_IE {
328 UCHAR DiagnosticsLength;
329 UCHAR Diagnostics[4];
330 } ATM_CAUSE_IE, *PATM_CAUSE_IE;
333 typedef ULONG ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
335 /* ATM_FLOW_PARAMETERS.ServiceCategory constants */
336 #define ATM_SERVICE_CATEGORY_CBR 1
337 #define ATM_SERVICE_CATEGORY_VBR 2
338 #define ATM_SERVICE_CATEGORY_UBR 4
339 #define ATM_SERVICE_CATEGORY_ABR 8
341 /* ATM_FLOW_PARAMETERS.Reserved1 constants */
342 #define ATM_FLOW_PARAMS_RSVD1_MPP 0x01
344 typedef struct _ATM_FLOW_PARAMETERS {
345 ATM_SERVICE_CATEGORY ServiceCategory;
346 ULONG AverageCellRate;
348 ULONG MinimumCellRate;
349 ULONG InitialCellRate;
350 ULONG BurstLengthCells;
352 ULONG TransientBufferExposure;
353 ULONG CumulativeRMFixedRTT;
354 UCHAR RateIncreaseFactor;
355 UCHAR RateDecreaseFactor;
356 USHORT ACRDecreaseTimeFactor;
357 UCHAR MaximumCellsPerForwardRMCell;
358 UCHAR MaximumForwardRMCellInterval;
359 UCHAR CutoffDecreaseFactor;
361 ULONG MissingRMCellCount;
364 } ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;
366 typedef struct _ATM_VPIVCI {
369 } ATM_VPIVCI, *PATM_VPIVCI;
371 typedef struct _ATM_MEDIA_PARAMETERS {
372 ATM_VPIVCI ConnectionId;
373 ATM_AAL_TYPE AALType;
374 ULONG CellDelayVariationCLP0;
375 ULONG CellDelayVariationCLP1;
376 ULONG CellLossRatioCLP0;
377 ULONG CellLossRatioCLP1;
378 ULONG CellTransferDelayCLP0;
379 ULONG CellTransferDelayCLP1;
381 ATM_FLOW_PARAMETERS Transmit;
382 ATM_FLOW_PARAMETERS Receive;
383 } ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;
385 typedef struct _ATM_PVC_SAP {
388 } ATM_PVC_SAP, *PATM_PVC_SAP;
390 /* ATM_QOS_CLASS_IE constants */
391 #define QOS_CLASS0 0x00
392 #define QOS_CLASS1 0x01
393 #define QOS_CLASS2 0x02
394 #define QOS_CLASS3 0x03
395 #define QOS_CLASS4 0x04
397 typedef struct _ATM_QOS_CLASS_IE {
398 UCHAR QOSClassForward;
399 UCHAR QOSClassBackward;
400 } ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;
402 typedef struct _ATM_RAW_IE {
406 } ATM_RAW_IE, *PATM_RAW_IE;
408 typedef struct _ATM_SAP {
411 ULONG NumberOfAddresses;
413 } ATM_SAP, *PATM_SAP;
415 typedef struct _ATM_TRAFFIC_DESCRIPTOR {
416 ULONG PeakCellRateCLP0;
417 ULONG PeakCellRateCLP01;
418 ULONG SustainableCellRateCLP0;
419 ULONG SustainableCellRateCLP01;
420 ULONG MaximumBurstSizeCLP0;
421 ULONG MaximumBurstSizeCLP01;
424 } ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;
426 typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
427 ATM_TRAFFIC_DESCRIPTOR ForwardTD;
428 ATM_TRAFFIC_DESCRIPTOR BackwardTD;
430 } ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;
432 /* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
433 #define TNS_TYPE_NATIONAL 0x40
435 /* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
436 #define TNS_PLAN_CARRIER_ID_CODE 0x01
438 typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
439 UCHAR TypeOfNetworkId;
441 UCHAR NetworkIdLength;
443 } ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;
445 typedef struct _ATM_LIJ_CALLID_IE {
447 } ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;
449 /* Q2931_ADD_PVC.Flags constants */
450 #define CO_FLAG_SIGNALING_VC 0x00000001
451 #define CO_FLAG_NO_DEST_SAP 0x00000002
453 typedef struct _Q2931_ADD_PVC {
454 ATM_ADDRESS CalledParty;
455 ATM_ADDRESS CallingParty;
456 ATM_VPIVCI ConnectionId;
457 ATM_AAL_TYPE AALType;
458 ATM_FLOW_PARAMETERS ForwardFP;
459 ATM_FLOW_PARAMETERS BackwardFP;
461 ATM_PVC_SAP LocalSap;
462 ATM_PVC_SAP DestinationSap;
463 BOOLEAN LIJIdPresent;
464 ATM_LIJ_CALLID_IE LIJId;
465 } Q2931_ADD_PVC, *PQ2931_ADD_PVC;
467 typedef struct _Q2931_DELETE_PVC {
468 ATM_VPIVCI ConnectionId;
469 } Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;
471 typedef ATM_ADDRESS ATM_CALLED_PARTY_NUMBER_IE;
472 typedef ATM_ADDRESS ATM_CALLED_PARTY_SUBADDRESS_IE;
473 typedef ATM_ADDRESS ATM_CALLING_PARTY_SUBADDRESS_IE;
475 typedef struct _Q2931_CALLMGR_PARAMETERS {
476 ATM_ADDRESS CalledParty;
477 ATM_ADDRESS CallingParty;
478 ULONG InfoElementCount;
479 UCHAR InfoElements[1];
480 } Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS;
482 typedef struct _ATM_VC_RATES_SUPPORTED {
485 } ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;
487 typedef ULONG ATM_SERVICE_REGISTRY_TYPE;
489 /* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
490 #define ATM_SERVICE_REGISTRY_LECS 1
491 #define ATM_SERVICE_REGISTRY_ANS 2
493 typedef struct _ATM_SERVICE_ADDRESS_LIST {
494 ATM_SERVICE_REGISTRY_TYPE ServiceRegistryType;
495 ULONG NumberOfAddressesAvailable;
496 ULONG NumberOfAddressesReturned;
497 ATM_ADDRESS Address[1];
498 } ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST;