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.
27 #pragma GCC system_header
34 typedef ULONG ATM_ADDRESSTYPE
;
36 #define SAP_TYPE_NSAP 1
37 #define SAP_TYPE_E164 2
39 #define ATM_MEDIA_SPECIFIC 1
41 #define CALLMGR_SPECIFIC_Q2931 1
46 #define ATM_MAC_ADDRESS_LENGTH 6
47 #define ATM_ADDRESS_LENGTH 20
49 typedef ULONG ATM_AAL_TYPE
, *PATM_AAL_TYPE
;
51 #define AAL_TYPE_AAL0 1
52 #define AAL_TYPE_AAL1 2
53 #define AAL_TYPE_AAL34 4
54 #define AAL_TYPE_AAL5 8
56 #define ATM_ADDR_BLANK_CHAR L' '
57 #define ATM_ADDR_E164_START_CHAR L'+'
58 #define ATM_ADDR_PUNCTUATION_CHAR L'.'
63 IE_BroadbandBearerCapability
,
67 IE_CalledPartySubaddress
,
68 IE_CallingPartyNumber
,
69 IE_CallingPartySubaddress
,
72 IE_TransitNetworkSelection
,
73 IE_BroadbandSendingComplete
,
78 typedef struct _Q2931_IE
{
82 } Q2931_IE
, *PQ2931_IE
;
84 typedef struct _AAL1_PARAMETERS
{
88 UCHAR SourceClockRecoveryMethod
;
89 UCHAR ErrorCorrectionMethod
;
90 USHORT StructuredDataTransferBlocksize
;
91 UCHAR PartiallyFilledCellsMethod
;
92 } AAL1_PARAMETERS
, *PAAL1_PARAMETERS
;
94 typedef struct _AAL34_PARAMETERS
{
95 USHORT ForwardMaxCPCSSDUSize
;
96 USHORT BackwardMaxCPCSSDUSize
;
100 } AAL34_PARAMETERS
, *PAAL34_PARAMETERS
;
102 /* AAL5_PARAMETERS.Mode constants */
103 #define AAL5_MODE_MESSAGE 0x01
104 #define AAL5_MODE_STREAMING 0x02
106 /* AAL5_PARAMETERS.SSCSType constants */
107 #define AAL5_SSCS_NULL 0x00
108 #define AAL5_SSCS_SSCOP_ASSURED 0x01
109 #define AAL5_SSCS_SSCOP_NON_ASSURED 0x02
110 #define AAL5_SSCS_FRAME_RELAY 0x04
112 typedef struct _AAL5_PARAMETERS
{
113 ULONG ForwardMaxCPCSSDUSize
;
114 ULONG BackwardMaxCPCSSDUSize
;
117 } AAL5_PARAMETERS
, *PAAL5_PARAMETERS
;
119 typedef struct _AALUSER_PARAMETERS
{
121 } AALUSER_PARAMETERS
, *PAALUSER_PARAMETERS
;
123 typedef struct _AAL_PARAMETERS_IE
{
124 ATM_AAL_TYPE AALType
;
126 AAL1_PARAMETERS AAL1Parameters
;
127 AAL34_PARAMETERS AAL34Parameters
;
128 AAL5_PARAMETERS AAL5Parameters
;
129 AALUSER_PARAMETERS AALUserParameters
;
130 } AALSpecificParameters
;
131 } AAL_PARAMETERS_IE
, *PAAL_PARAMETERS_IE
;
134 /* FIXME: Should the union be anonymous in C++ too? If so,
135 can't define named types _ATM_AAL5_INFO and _ATM_AAL0_INFO
136 within anonymous union for C++. */
137 typedef struct _ATM_AAL_OOB_INFO
139 ATM_AAL_TYPE AalType
;
144 struct _ATM_AAL5_INFO
{
145 BOOLEAN CellLossPriority
;
146 UCHAR UserToUserIndication
;
147 UCHAR CommonPartIndicator
;
150 struct _ATM_AAL0_INFO
{
151 BOOLEAN CellLossPriority
;
152 UCHAR PayLoadTypeIdentifier
;
159 } ATM_AAL_OOB_INFO
, *PATM_AAL_OOB_INFO
;
161 typedef struct _ATM_ADDRESS
{
162 ATM_ADDRESSTYPE AddressType
;
163 ULONG NumberOfDigits
;
164 UCHAR Address
[ATM_ADDRESS_LENGTH
];
165 } ATM_ADDRESS
, *PATM_ADDRESS
;
167 /* ATM_BHLI_IE.HighLayerInfoType constants */
168 #define BHLI_ISO 0x00
169 #define BHLI_UserSpecific 0x01
170 #define BHLI_HighLayerProfile 0x02
171 #define BHLI_VendorSpecificAppId 0x03
173 typedef struct _ATM_BHLI_IE
{
174 ULONG HighLayerInfoType
;
175 ULONG HighLayerInfoLength
;
176 UCHAR HighLayerInfo
[8];
177 } ATM_BHLI_IE
, *PATM_BHLI_IE
;
179 /* ATM_BLLI_IE.Layer2Protocol constants */
180 #define BLLI_L2_ISO_1745 0x01
181 #define BLLI_L2_Q921 0x02
182 #define BLLI_L2_X25L 0x06
183 #define BLLI_L2_X25M 0x07
184 #define BLLI_L2_ELAPB 0x08
185 #define BLLI_L2_HDLC_ARM 0x09
186 #define BLLI_L2_HDLC_NRM 0x0A
187 #define BLLI_L2_HDLC_ABM 0x0B
188 #define BLLI_L2_LLC 0x0C
189 #define BLLI_L2_X75 0x0D
190 #define BLLI_L2_Q922 0x0E
191 #define BLLI_L2_USER_SPECIFIED 0x10
192 #define BLLI_L2_ISO_7776 0x11
194 /* ATM_BLLI_IE.Layer3Protocol constants */
195 #define BLLI_L3_X25 0x06
196 #define BLLI_L3_ISO_8208 0x07
197 #define BLLI_L3_X223 0x08
198 #define BLLI_L3_SIO_8473 0x09
199 #define BLLI_L3_T70 0x0A
200 #define BLLI_L3_ISO_TR9577 0x0B
201 #define BLLI_L3_USER_SPECIFIED 0x10
203 /* ATM_BLLI_IE.Layer3IPI constants */
204 #define BLLI_L3_IPI_SNAP 0x80
205 #define BLLI_L3_IPI_IP 0xCC
207 typedef struct _ATM_BLLI_IE
{
208 ULONG Layer2Protocol
;
210 UCHAR Layer2WindowSize
;
211 ULONG Layer2UserSpecifiedProtocol
;
212 ULONG Layer3Protocol
;
214 UCHAR Layer3DefaultPacketSize
;
215 UCHAR Layer3PacketWindowSize
;
216 ULONG Layer3UserSpecifiedProtocol
;
219 } ATM_BLLI_IE
, *PATM_BLLI_IE
;
221 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
226 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
227 #define TT_NOIND 0x00
231 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
232 #define TR_NOIND 0x00
233 #define TR_END_TO_END 0x01
234 #define TR_NO_END_TO_END 0x02
236 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
237 #define CLIP_NOT 0x00
238 #define CLIP_SUS 0x20
240 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
244 typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE
{
247 UCHAR TimingRequirements
;
248 UCHAR ClippingSusceptability
;
249 UCHAR UserPlaneConnectionConfig
;
250 } ATM_BROADBAND_BEARER_CAPABILITY_IE
, *PATM_BROADBAND_BEARER_CAPABILITY_IE
;
252 typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE
{
253 UCHAR SendingComplete
;
254 } ATM_BROADBAND_SENDING_COMPLETE_IE
, *PATM_BROADBAND_SENDING_COMPLETE_IE
;
256 typedef struct _ATM_CALLING_PARTY_NUMBER_IE
{
258 UCHAR PresentationIndication
;
259 UCHAR ScreeningIndicator
;
260 } ATM_CALLING_PARTY_NUMBER_IE
, *PATM_CALLING_PARTY_NUMBER_IE
;
262 /* ATM_CAUSE_IE.Location constants */
263 #define ATM_CAUSE_LOC_USER 0x00
264 #define ATM_CAUSE_LOC_PRIVATE_LOCAL 0x01
265 #define ATM_CAUSE_LOC_PUBLIC_LOCAL 0x02
266 #define ATM_CAUSE_LOC_TRANSIT_NETWORK 0x03
267 #define ATM_CAUSE_LOC_PUBLIC_REMOTE 0x04
268 #define ATM_CAUSE_LOC_PRIVATE_REMOTE 0x05
269 #define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK 0x07
270 #define ATM_CAUSE_LOC_BEYOND_INTERWORKING 0x0A
272 /* ATM_CAUSE_IE.Cause constants */
273 #define ATM_CAUSE_UNALLOCATED_NUMBER 0x01
274 #define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK 0x02
275 #define ATM_CAUSE_NO_ROUTE_TO_DESTINATION 0x03
276 #define ATM_CAUSE_VPI_VCI_UNACCEPTABLE 0x0A
277 #define ATM_CAUSE_NORMAL_CALL_CLEARING 0x10
278 #define ATM_CAUSE_USER_BUSY 0x11
279 #define ATM_CAUSE_NO_USER_RESPONDING 0x12
280 #define ATM_CAUSE_CALL_REJECTED 0x15
281 #define ATM_CAUSE_NUMBER_CHANGED 0x16
282 #define ATM_CAUSE_USER_REJECTS_CLIR 0x17
283 #define ATM_CAUSE_DESTINATION_OUT_OF_ORDER 0x1B
284 #define ATM_CAUSE_INVALID_NUMBER_FORMAT 0x1C
285 #define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE 0x1E
286 #define ATM_CAUSE_NORMAL_UNSPECIFIED 0x1F
287 #define ATM_CAUSE_VPI_VCI_UNAVAILABLE 0x23
288 #define ATM_CAUSE_NETWORK_OUT_OF_ORDER 0x26
289 #define ATM_CAUSE_TEMPORARY_FAILURE 0x29
290 #define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED 0x2B
291 #define ATM_CAUSE_NO_VPI_VCI_AVAILABLE 0x2D
292 #define ATM_CAUSE_RESOURCE_UNAVAILABLE 0x2F
293 #define ATM_CAUSE_QOS_UNAVAILABLE 0x31
294 #define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE 0x33
295 #define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED 0x39
296 #define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE 0x3A
297 #define ATM_CAUSE_OPTION_UNAVAILABLE 0x3F
298 #define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED 0x41
299 #define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS 0x49
300 #define ATM_CAUSE_INVALID_CALL_REFERENCE 0x51
301 #define ATM_CAUSE_CHANNEL_NONEXISTENT 0x52
302 #define ATM_CAUSE_INCOMPATIBLE_DESTINATION 0x58
303 #define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE 0x59
304 #define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
305 #define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY 0x5C
306 #define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED 0x5D
307 #define ATM_CAUSE_MANDATORY_IE_MISSING 0x60
308 #define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE 0x61
309 #define ATM_CAUSE_UNIMPLEMENTED_IE 0x63
310 #define ATM_CAUSE_INVALID_IE_CONTENTS 0x64
311 #define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE 0x65
312 #define ATM_CAUSE_RECOVERY_ON_TIMEOUT 0x66
313 #define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH 0x68
314 #define ATM_CAUSE_PROTOCOL_ERROR 0x6F
316 /* ATM_CAUSE_IE.Diagnostics constants */
317 #define ATM_CAUSE_COND_UNKNOWN 0x00
318 #define ATM_CAUSE_COND_PERMANENT 0x01
319 #define ATM_CAUSE_COND_TRANSIENT 0x02
320 #define ATM_CAUSE_REASON_USER 0x00
321 #define ATM_CAUSE_REASON_IE_MISSING 0x04
322 #define ATM_CAUSE_REASON_IE_INSUFFICIENT 0x08
323 #define ATM_CAUSE_PU_PROVIDER 0x00
324 #define ATM_CAUSE_PU_USER 0x08
325 #define ATM_CAUSE_NA_NORMAL 0x00
326 #define ATM_CAUSE_NA_ABNORMAL 0x04
328 typedef struct _ATM_CAUSE_IE
{
331 UCHAR DiagnosticsLength
;
332 UCHAR Diagnostics
[4];
333 } ATM_CAUSE_IE
, *PATM_CAUSE_IE
;
336 typedef ULONG ATM_SERVICE_CATEGORY
, *PATM_SERVICE_CATEGORY
;
338 /* ATM_FLOW_PARAMETERS.ServiceCategory constants */
339 #define ATM_SERVICE_CATEGORY_CBR 1
340 #define ATM_SERVICE_CATEGORY_VBR 2
341 #define ATM_SERVICE_CATEGORY_UBR 4
342 #define ATM_SERVICE_CATEGORY_ABR 8
344 /* ATM_FLOW_PARAMETERS.Reserved1 constants */
345 #define ATM_FLOW_PARAMS_RSVD1_MPP 0x01
347 typedef struct _ATM_FLOW_PARAMETERS
{
348 ATM_SERVICE_CATEGORY ServiceCategory
;
349 ULONG AverageCellRate
;
351 ULONG MinimumCellRate
;
352 ULONG InitialCellRate
;
353 ULONG BurstLengthCells
;
355 ULONG TransientBufferExposure
;
356 ULONG CumulativeRMFixedRTT
;
357 UCHAR RateIncreaseFactor
;
358 UCHAR RateDecreaseFactor
;
359 USHORT ACRDecreaseTimeFactor
;
360 UCHAR MaximumCellsPerForwardRMCell
;
361 UCHAR MaximumForwardRMCellInterval
;
362 UCHAR CutoffDecreaseFactor
;
364 ULONG MissingRMCellCount
;
367 } ATM_FLOW_PARAMETERS
, *PATM_FLOW_PARAMETERS
;
369 typedef struct _ATM_VPIVCI
{
372 } ATM_VPIVCI
, *PATM_VPIVCI
;
374 typedef struct _ATM_MEDIA_PARAMETERS
{
375 ATM_VPIVCI ConnectionId
;
376 ATM_AAL_TYPE AALType
;
377 ULONG CellDelayVariationCLP0
;
378 ULONG CellDelayVariationCLP1
;
379 ULONG CellLossRatioCLP0
;
380 ULONG CellLossRatioCLP1
;
381 ULONG CellTransferDelayCLP0
;
382 ULONG CellTransferDelayCLP1
;
384 ATM_FLOW_PARAMETERS Transmit
;
385 ATM_FLOW_PARAMETERS Receive
;
386 } ATM_MEDIA_PARAMETERS
, *PATM_MEDIA_PARAMETERS
;
388 typedef struct _ATM_PVC_SAP
{
391 } ATM_PVC_SAP
, *PATM_PVC_SAP
;
393 /* ATM_QOS_CLASS_IE constants */
394 #define QOS_CLASS0 0x00
395 #define QOS_CLASS1 0x01
396 #define QOS_CLASS2 0x02
397 #define QOS_CLASS3 0x03
398 #define QOS_CLASS4 0x04
400 typedef struct _ATM_QOS_CLASS_IE
{
401 UCHAR QOSClassForward
;
402 UCHAR QOSClassBackward
;
403 } ATM_QOS_CLASS_IE
, *PATM_QOS_CLASS_IE
;
405 typedef struct _ATM_RAW_IE
{
409 } ATM_RAW_IE
, *PATM_RAW_IE
;
411 typedef struct _ATM_SAP
{
414 ULONG NumberOfAddresses
;
416 } ATM_SAP
, *PATM_SAP
;
418 typedef struct _ATM_TRAFFIC_DESCRIPTOR
{
419 ULONG PeakCellRateCLP0
;
420 ULONG PeakCellRateCLP01
;
421 ULONG SustainableCellRateCLP0
;
422 ULONG SustainableCellRateCLP01
;
423 ULONG MaximumBurstSizeCLP0
;
424 ULONG MaximumBurstSizeCLP01
;
427 } ATM_TRAFFIC_DESCRIPTOR
, *PATM_TRAFFIC_DESCRIPTOR
;
429 typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE
{
430 ATM_TRAFFIC_DESCRIPTOR ForwardTD
;
431 ATM_TRAFFIC_DESCRIPTOR BackwardTD
;
433 } ATM_TRAFFIC_DESCRIPTOR_IE
, *PATM_TRAFFIC_DESCRIPTOR_IE
;
435 /* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
436 #define TNS_TYPE_NATIONAL 0x40
438 /* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
439 #define TNS_PLAN_CARRIER_ID_CODE 0x01
441 typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE
{
442 UCHAR TypeOfNetworkId
;
444 UCHAR NetworkIdLength
;
446 } ATM_TRANSIT_NETWORK_SELECTION_IE
, *PATM_TRANSIT_NETWORK_SELECTION_IE
;
448 typedef struct _ATM_LIJ_CALLID_IE
{
450 } ATM_LIJ_CALLID_IE
, *PATM_LIJ_CALLID_IE
;
452 /* Q2931_ADD_PVC.Flags constants */
453 #define CO_FLAG_SIGNALING_VC 0x00000001
454 #define CO_FLAG_NO_DEST_SAP 0x00000002
456 typedef struct _Q2931_ADD_PVC
{
457 ATM_ADDRESS CalledParty
;
458 ATM_ADDRESS CallingParty
;
459 ATM_VPIVCI ConnectionId
;
460 ATM_AAL_TYPE AALType
;
461 ATM_FLOW_PARAMETERS ForwardFP
;
462 ATM_FLOW_PARAMETERS BackwardFP
;
464 ATM_PVC_SAP LocalSap
;
465 ATM_PVC_SAP DestinationSap
;
466 BOOLEAN LIJIdPresent
;
467 ATM_LIJ_CALLID_IE LIJId
;
468 } Q2931_ADD_PVC
, *PQ2931_ADD_PVC
;
470 typedef struct _Q2931_DELETE_PVC
{
471 ATM_VPIVCI ConnectionId
;
472 } Q2931_DELETE_PVC
, *PQ2931_DELETE_PVC
;
474 typedef ATM_ADDRESS ATM_CALLED_PARTY_NUMBER_IE
;
475 typedef ATM_ADDRESS ATM_CALLED_PARTY_SUBADDRESS_IE
;
476 typedef ATM_ADDRESS ATM_CALLING_PARTY_SUBADDRESS_IE
;
478 typedef struct _Q2931_CALLMGR_PARAMETERS
{
479 ATM_ADDRESS CalledParty
;
480 ATM_ADDRESS CallingParty
;
481 ULONG InfoElementCount
;
482 UCHAR InfoElements
[1];
483 } Q2931_CALLMGR_PARAMETERS
, *PQ2931_CALLMGR_PARAMETERS
;
485 typedef struct _ATM_VC_RATES_SUPPORTED
{
488 } ATM_VC_RATES_SUPPORTED
, *PATM_VC_RATES_SUPPORTED
;
490 typedef ULONG ATM_SERVICE_REGISTRY_TYPE
;
492 /* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
493 #define ATM_SERVICE_REGISTRY_LECS 1
494 #define ATM_SERVICE_REGISTRY_ANS 2
496 typedef struct _ATM_SERVICE_ADDRESS_LIST
{
497 ATM_SERVICE_REGISTRY_TYPE ServiceRegistryType
;
498 ULONG NumberOfAddressesAvailable
;
499 ULONG NumberOfAddressesReturned
;
500 ATM_ADDRESS Address
[1];
501 } ATM_SERVICE_ADDRESS_LIST
, *PATM_SERVICE_ADDRESS_LIST
;