Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

atm.h

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1990-1998 Microsoft Corporation 00004 00005 Module Name: 00006 00007 atm.h 00008 00009 Abstract: 00010 00011 This module defines the structures, macros, and manifests available 00012 to ATM aware components. 00013 00014 Author: 00015 00016 NDIS/ATM Development Team 00017 00018 00019 Revision History: 00020 00021 Initial Version - March 1996 00022 00023 --*/ 00024 00025 #ifndef _ATM_H_ 00026 #define _ATM_H_ 00027 00028 // 00029 // Address type 00030 // 00031 typedef ULONG ATM_ADDRESSTYPE; 00032 00033 #define ATM_NSAP 0 00034 #define ATM_E164 1 00035 00036 // 00037 // ATM Address 00038 // 00039 #define ATM_MAC_ADDRESS_LENGTH 6 // Same as 802.x 00040 #define ATM_ADDRESS_LENGTH 20 00041 00042 // 00043 // Special characters in ATM address string used in textual representations 00044 // 00045 #define ATM_ADDR_BLANK_CHAR L' ' 00046 #define ATM_ADDR_PUNCTUATION_CHAR L'.' 00047 #define ATM_ADDR_E164_START_CHAR L'+' 00048 00049 typedef struct _ATM_ADDRESS 00050 { 00051 ATM_ADDRESSTYPE AddressType; 00052 ULONG NumberOfDigits; 00053 UCHAR Address[ATM_ADDRESS_LENGTH]; 00054 } ATM_ADDRESS, *PATM_ADDRESS; 00055 00056 00057 00058 // 00059 // AAL types that the miniport supports 00060 // 00061 #define AAL_TYPE_AAL0 1 00062 #define AAL_TYPE_AAL1 2 00063 #define AAL_TYPE_AAL34 4 00064 #define AAL_TYPE_AAL5 8 00065 00066 typedef ULONG ATM_AAL_TYPE, *PATM_AAL_TYPE; 00067 00068 00069 // 00070 // Types of Information Elements 00071 // 00072 typedef enum 00073 { 00074 IE_AALParameters, 00075 IE_TrafficDescriptor, 00076 IE_BroadbandBearerCapability, 00077 IE_BHLI, 00078 IE_BLLI, 00079 IE_CalledPartyNumber, 00080 IE_CalledPartySubaddress, 00081 IE_CallingPartyNumber, 00082 IE_CallingPartySubaddress, 00083 IE_Cause, 00084 IE_QOSClass, 00085 IE_TransitNetworkSelection, 00086 IE_BroadbandSendingComplete, 00087 IE_LIJCallId, 00088 IE_Raw 00089 } Q2931_IE_TYPE; 00090 00091 00092 // 00093 // Common header for each Information Element 00094 // 00095 typedef struct _Q2931_IE 00096 { 00097 Q2931_IE_TYPE IEType; 00098 ULONG IELength; // Bytes, including IEType and IELength fields 00099 UCHAR IE[1]; 00100 } Q2931_IE, *PQ2931_IE; 00101 00102 00103 // 00104 // Definitions for SapType in CO_SAP 00105 // 00106 #define SAP_TYPE_NSAP 0x00000001 00107 #define SAP_TYPE_E164 0x00000002 00108 00109 // 00110 // Values used for the Mode field in AAL5_PARAMETERS 00111 // 00112 #define AAL5_MODE_MESSAGE 0x01 00113 #define AAL5_MODE_STREAMING 0x02 00114 00115 // 00116 // Values used for the SSCSType field in AAL5_PARAMETERS 00117 // 00118 #define AAL5_SSCS_NULL 0x00 00119 #define AAL5_SSCS_SSCOP_ASSURED 0x01 00120 #define AAL5_SSCS_SSCOP_NON_ASSURED 0x02 00121 #define AAL5_SSCS_FRAME_RELAY 0x04 00122 00123 00124 // 00125 // AAL Parameters 00126 // 00127 typedef struct _AAL1_PARAMETERS 00128 { 00129 UCHAR Subtype; 00130 UCHAR CBRRate; 00131 USHORT Multiplier; 00132 UCHAR SourceClockRecoveryMethod; 00133 UCHAR ErrorCorrectionMethod; 00134 USHORT StructuredDataTransferBlocksize; 00135 UCHAR PartiallyFilledCellsMethod; 00136 } AAL1_PARAMETERS, *PAAL1_PARAMETERS; 00137 00138 typedef struct _AAL34_PARAMETERS 00139 { 00140 USHORT ForwardMaxCPCSSDUSize; 00141 USHORT BackwardMaxCPCSSDUSize; 00142 USHORT LowestMID; 00143 USHORT HighestMID; 00144 UCHAR SSCSType; 00145 } AAL34_PARAMETERS, *PAAL34_PARAMETERS; 00146 00147 typedef struct _AAL5_PARAMETERS 00148 { 00149 ULONG ForwardMaxCPCSSDUSize; 00150 ULONG BackwardMaxCPCSSDUSize; 00151 UCHAR Mode; 00152 UCHAR SSCSType; 00153 } AAL5_PARAMETERS, *PAAL5_PARAMETERS; 00154 00155 typedef struct _AALUSER_PARAMETERS 00156 { 00157 ULONG UserDefined; 00158 } AALUSER_PARAMETERS, *PAALUSER_PARAMETERS; 00159 00160 typedef struct _AAL_PARAMETERS_IE 00161 { 00162 ATM_AAL_TYPE AALType; 00163 union 00164 { 00165 AAL1_PARAMETERS AAL1Parameters; 00166 AAL34_PARAMETERS AAL34Parameters; 00167 AAL5_PARAMETERS AAL5Parameters; 00168 AALUSER_PARAMETERS AALUserParameters; 00169 } AALSpecificParameters; 00170 00171 } AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE; 00172 00173 // 00174 // ATM Traffic Descriptor 00175 // 00176 typedef struct _ATM_TRAFFIC_DESCRIPTOR // For one direction 00177 { 00178 ULONG PeakCellRateCLP0; 00179 ULONG PeakCellRateCLP01; 00180 ULONG SustainableCellRateCLP0; 00181 ULONG SustainableCellRateCLP01; 00182 ULONG MaximumBurstSizeCLP0; 00183 ULONG MaximumBurstSizeCLP01; 00184 BOOLEAN Tagging; 00185 } ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR; 00186 00187 00188 typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE 00189 { 00190 ATM_TRAFFIC_DESCRIPTOR ForwardTD; 00191 ATM_TRAFFIC_DESCRIPTOR BackwardTD; 00192 BOOLEAN BestEffort; 00193 } ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE; 00194 00195 00196 // 00197 // values used for the BearerClass field in the Broadband Bearer Capability IE 00198 // 00199 00200 00201 #define BCOB_A 0x00 // Bearer class A 00202 #define BCOB_C 0x01 // Bearer class C 00203 #define BCOB_X 0x02 // Bearer class X 00204 00205 // 00206 // values used for the TrafficType field in the Broadband Bearer Capability IE 00207 // 00208 #define TT_NOIND 0x00 // No indication of traffic type 00209 #define TT_CBR 0x04 // Constant bit rate 00210 #define TT_VBR 0x08 // Variable bit rate 00211 00212 // 00213 // values used for the TimingRequirements field in the Broadband Bearer Capability IE 00214 // 00215 #define TR_NOIND 0x00 // No timing requirement indication 00216 #define TR_END_TO_END 0x01 // End-to-end timing required 00217 #define TR_NO_END_TO_END 0x02 // End-to-end timing not required 00218 00219 // 00220 // values used for the ClippingSusceptability field in the Broadband Bearer Capability IE 00221 // 00222 #define CLIP_NOT 0x00 // Not susceptible to clipping 00223 #define CLIP_SUS 0x20 // Susceptible to clipping 00224 00225 // 00226 // values used for the UserPlaneConnectionConfig field in 00227 // the Broadband Bearer Capability IE 00228 // 00229 #define UP_P2P 0x00 // Point-to-point connection 00230 #define UP_P2MP 0x01 // Point-to-multipoint connection 00231 00232 // 00233 // Broadband Bearer Capability 00234 // 00235 typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE 00236 { 00237 UCHAR BearerClass; 00238 UCHAR TrafficType; 00239 UCHAR TimingRequirements; 00240 UCHAR ClippingSusceptability; 00241 UCHAR UserPlaneConnectionConfig; 00242 } ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE; 00243 00244 // 00245 // values used for the HighLayerInfoType field in ATM_BHLI 00246 // 00247 #define BHLI_ISO 0x00 // ISO 00248 #define BHLI_UserSpecific 0x01 // User Specific 00249 #define BHLI_HighLayerProfile 0x02 // High layer profile (only in UNI3.0) 00250 #define BHLI_VendorSpecificAppId 0x03 // Vendor-Specific Application ID 00251 00252 // 00253 // Broadband High layer Information 00254 // 00255 typedef struct _ATM_BHLI_IE 00256 { 00257 ULONG HighLayerInfoType; // High Layer Information Type 00258 ULONG HighLayerInfoLength; // number of bytes in HighLayerInfo 00259 UCHAR HighLayerInfo[8]; // The value dependent on the 00260 // HighLayerInfoType field 00261 } ATM_BHLI_IE, *PATM_BHLI_IE; 00262 00263 // 00264 // values used for Layer2Protocol in B-LLI 00265 // 00266 #define BLLI_L2_ISO_1745 0x01 // Basic mode ISO 1745 00267 #define BLLI_L2_Q921 0x02 // CCITT Rec. Q.921 00268 #define BLLI_L2_X25L 0x06 // CCITT Rec. X.25, link layer 00269 #define BLLI_L2_X25M 0x07 // CCITT Rec. X.25, multilink 00270 #define BLLI_L2_ELAPB 0x08 // Extended LAPB; for half duplex operation 00271 #define BLLI_L2_HDLC_ARM 0x09 // HDLC ARM (ISO 4335) 00272 #define BLLI_L2_HDLC_NRM 0x0A // HDLC NRM (ISO 4335) 00273 #define BLLI_L2_HDLC_ABM 0x0B // HDLC ABM (ISO 4335) 00274 #define BLLI_L2_LLC 0x0C // LAN logical link control (ISO 8802/2) 00275 #define BLLI_L2_X75 0x0D // CCITT Rec. X.75, single link procedure 00276 #define BLLI_L2_Q922 0x0E // CCITT Rec. Q.922 00277 #define BLLI_L2_USER_SPECIFIED 0x10 // User Specified 00278 #define BLLI_L2_ISO_7776 0x11 // ISO 7776 DTE-DTE operation 00279 00280 // 00281 // values used for Layer3Protocol in B-LLI 00282 // 00283 #define BLLI_L3_X25 0x06 // CCITT Rec. X.25, packet layer 00284 #define BLLI_L3_ISO_8208 0x07 // ISO/IEC 8208 (X.25 packet layer for DTE 00285 #define BLLI_L3_X223 0x08 // X.223/ISO 8878 00286 #define BLLI_L3_SIO_8473 0x09 // ISO/IEC 8473 (OSI connectionless) 00287 #define BLLI_L3_T70 0x0A // CCITT Rec. T.70 min. network layer 00288 #define BLLI_L3_ISO_TR9577 0x0B // ISO/IEC TR 9577 Network Layer Protocol ID 00289 #define BLLI_L3_USER_SPECIFIED 0x10 // User Specified 00290 00291 // 00292 // values used for Layer3IPI in struct B-LLI 00293 // 00294 #define BLLI_L3_IPI_SNAP 0x80 // IEEE 802.1 SNAP identifier 00295 #define BLLI_L3_IPI_IP 0xCC // Internet Protocol (IP) identifier 00296 00297 // 00298 // Broadband Lower Layer Information 00299 // 00300 typedef struct _ATM_BLLI_IE 00301 { 00302 ULONG Layer2Protocol; 00303 UCHAR Layer2Mode; 00304 UCHAR Layer2WindowSize; 00305 ULONG Layer2UserSpecifiedProtocol; 00306 ULONG Layer3Protocol; 00307 UCHAR Layer3Mode; 00308 UCHAR Layer3DefaultPacketSize; 00309 UCHAR Layer3PacketWindowSize; 00310 ULONG Layer3UserSpecifiedProtocol; 00311 ULONG Layer3IPI; 00312 UCHAR SnapId[5]; 00313 } ATM_BLLI_IE, *PATM_BLLI_IE; 00314 00315 00316 // 00317 // Called Party Number 00318 // 00319 // If present, this IE overrides the Called Address specified in 00320 // the main parameter block. 00321 // 00322 typedef ATM_ADDRESS ATM_CALLED_PARTY_NUMBER_IE; 00323 00324 00325 // 00326 // Called Party Subaddress 00327 // 00328 typedef ATM_ADDRESS ATM_CALLED_PARTY_SUBADDRESS_IE; 00329 00330 00331 00332 // 00333 // Calling Party Number 00334 // 00335 typedef struct _ATM_CALLING_PARTY_NUMBER_IE 00336 { 00337 ATM_ADDRESS Number; 00338 UCHAR PresentationIndication; 00339 UCHAR ScreeningIndicator; 00340 } ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE; 00341 00342 00343 // 00344 // Calling Party Subaddress 00345 // 00346 typedef ATM_ADDRESS ATM_CALLING_PARTY_SUBADDRESS_IE; 00347 00348 00349 // 00350 // Values used for the QOSClassForward and QOSClassBackward 00351 // fields in ATM_QOS_CLASS_IE 00352 // 00353 #define QOS_CLASS0 0x00 00354 #define QOS_CLASS1 0x01 00355 #define QOS_CLASS2 0x02 00356 #define QOS_CLASS3 0x03 00357 #define QOS_CLASS4 0x04 00358 00359 // 00360 // QOS Class 00361 // 00362 typedef struct _ATM_QOS_CLASS_IE 00363 { 00364 UCHAR QOSClassForward; 00365 UCHAR QOSClassBackward; 00366 } ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE; 00367 00368 // 00369 // Broadband Sending Complete 00370 // 00371 typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE 00372 { 00373 UCHAR SendingComplete; 00374 } ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE; 00375 00376 00377 // 00378 // Values used for the TypeOfNetworkId field in ATM_TRANSIT_NETWORK_SELECTION_IE 00379 // 00380 #define TNS_TYPE_NATIONAL 0x40 00381 00382 // 00383 // Values used for the NetworkIdPlan field in ATM_TRANSIT_NETWORK_SELECTION_IE 00384 // 00385 #define TNS_PLAN_CARRIER_ID_CODE 0x01 00386 00387 // 00388 // Transit Network Selection 00389 // 00390 typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE 00391 { 00392 UCHAR TypeOfNetworkId; 00393 UCHAR NetworkIdPlan; 00394 UCHAR NetworkIdLength; 00395 UCHAR NetworkId[1]; 00396 } ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE; 00397 00398 00399 // 00400 // Values used for the Location field in struct ATM_CAUSE_IE 00401 // 00402 #define ATM_CAUSE_LOC_USER 0x00 00403 #define ATM_CAUSE_LOC_PRIVATE_LOCAL 0x01 00404 #define ATM_CAUSE_LOC_PUBLIC_LOCAL 0x02 00405 #define ATM_CAUSE_LOC_TRANSIT_NETWORK 0x03 00406 #define ATM_CAUSE_LOC_PUBLIC_REMOTE 0x04 00407 #define ATM_CAUSE_LOC_PRIVATE_REMOTE 0x05 00408 #define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK 0x07 00409 #define ATM_CAUSE_LOC_BEYOND_INTERWORKING 0x0A 00410 00411 // 00412 // Values used for the Cause field in struct ATM_CAUSE_IE 00413 // 00414 #define ATM_CAUSE_UNALLOCATED_NUMBER 0x01 00415 #define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK 0x02 00416 #define ATM_CAUSE_NO_ROUTE_TO_DESTINATION 0x03 00417 #define ATM_CAUSE_VPI_VCI_UNACCEPTABLE 0x0A 00418 #define ATM_CAUSE_NORMAL_CALL_CLEARING 0x10 00419 #define ATM_CAUSE_USER_BUSY 0x11 00420 #define ATM_CAUSE_NO_USER_RESPONDING 0x12 00421 #define ATM_CAUSE_CALL_REJECTED 0x15 00422 #define ATM_CAUSE_NUMBER_CHANGED 0x16 00423 #define ATM_CAUSE_USER_REJECTS_CLIR 0x17 00424 #define ATM_CAUSE_DESTINATION_OUT_OF_ORDER 0x1B 00425 #define ATM_CAUSE_INVALID_NUMBER_FORMAT 0x1C 00426 #define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE 0x1E 00427 #define ATM_CAUSE_NORMAL_UNSPECIFIED 0x1F 00428 #define ATM_CAUSE_VPI_VCI_UNAVAILABLE 0x23 00429 #define ATM_CAUSE_NETWORK_OUT_OF_ORDER 0x26 00430 #define ATM_CAUSE_TEMPORARY_FAILURE 0x29 00431 #define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED 0x2B 00432 #define ATM_CAUSE_NO_VPI_VCI_AVAILABLE 0x2D 00433 #define ATM_CAUSE_RESOURCE_UNAVAILABLE 0x2F 00434 #define ATM_CAUSE_QOS_UNAVAILABLE 0x31 00435 #define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE 0x33 00436 #define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED 0x39 00437 #define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE 0x3A 00438 #define ATM_CAUSE_OPTION_UNAVAILABLE 0x3F 00439 #define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED 0x41 00440 #define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS 0x49 00441 #define ATM_CAUSE_INVALID_CALL_REFERENCE 0x51 00442 #define ATM_CAUSE_CHANNEL_NONEXISTENT 0x52 00443 #define ATM_CAUSE_INCOMPATIBLE_DESTINATION 0x58 00444 #define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE 0x59 00445 #define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B 00446 #define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY 0x5C 00447 #define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED 0x5D 00448 #define ATM_CAUSE_MANDATORY_IE_MISSING 0x60 00449 #define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE 0x61 00450 #define ATM_CAUSE_UNIMPLEMENTED_IE 0x63 00451 #define ATM_CAUSE_INVALID_IE_CONTENTS 0x64 00452 #define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE 0x65 00453 #define ATM_CAUSE_RECOVERY_ON_TIMEOUT 0x66 00454 #define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH 0x68 00455 #define ATM_CAUSE_PROTOCOL_ERROR 0x6F 00456 00457 // 00458 // Values used for the Condition portion of the Diagnostics field 00459 // in struct ATM_CAUSE_IE, for certain Cause values 00460 // 00461 #define ATM_CAUSE_COND_UNKNOWN 0x00 00462 #define ATM_CAUSE_COND_PERMANENT 0x01 00463 #define ATM_CAUSE_COND_TRANSIENT 0x02 00464 00465 // 00466 // Values used for the Rejection Reason portion of the Diagnostics field 00467 // in struct ATM_CAUSE_IE, for certain Cause values 00468 // 00469 #define ATM_CAUSE_REASON_USER 0x00 00470 #define ATM_CAUSE_REASON_IE_MISSING 0x04 00471 #define ATM_CAUSE_REASON_IE_INSUFFICIENT 0x08 00472 00473 // 00474 // Values used for the P-U flag of the Diagnostics field 00475 // in struct ATM_CAUSE_IE, for certain Cause values 00476 // 00477 #define ATM_CAUSE_PU_PROVIDER 0x00 00478 #define ATM_CAUSE_PU_USER 0x08 00479 00480 // 00481 // Values used for the N-A flag of the Diagnostics field 00482 // in struct ATM_CAUSE_IE, for certain Cause values 00483 // 00484 #define ATM_CAUSE_NA_NORMAL 0x00 00485 #define ATM_CAUSE_NA_ABNORMAL 0x04 00486 00487 // 00488 // Cause 00489 // 00490 typedef struct _ATM_CAUSE_IE 00491 { 00492 UCHAR Location; 00493 UCHAR Cause; 00494 UCHAR DiagnosticsLength; 00495 UCHAR Diagnostics[4]; 00496 } ATM_CAUSE_IE, *PATM_CAUSE_IE; 00497 00498 00499 // 00500 // Leaf Initiated Join (LIJ) Identifier 00501 // 00502 typedef struct _ATM_LIJ_CALLID_IE 00503 { 00504 ULONG Identifier; 00505 } ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE; 00506 00507 00508 // 00509 // Raw Information Element - the user can fill in whatever he wants 00510 // 00511 typedef struct _ATM_RAW_IE 00512 { 00513 ULONG RawIELength; 00514 ULONG RawIEType; 00515 UCHAR RawIEValue[1]; 00516 } ATM_RAW_IE, *PATM_RAW_IE; 00517 00518 00519 // 00520 // This is the value of the ParamType field in the CO_SPECIFIC_PARAMETERS structure 00521 // when the Parameters[] field contains ATM media specific values in the structure 00522 // ATM_MEDIA_PARAMETERS. 00523 // 00524 #define ATM_MEDIA_SPECIFIC 0x00000001 00525 00526 // 00527 // The Q2931 Call Manager Specific parameters that goes into the 00528 // CallMgrParameters->CallMgrSpecific.Parameters 00529 // 00530 typedef struct _Q2931_CALLMGR_PARAMETERS 00531 { 00532 ATM_ADDRESS CalledParty; 00533 ATM_ADDRESS CallingParty; 00534 ULONG InfoElementCount; 00535 UCHAR InfoElements[1]; // one or more info elements 00536 } Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS; 00537 00538 00539 // 00540 // This is the specific portion of either the Media parameters or the CallMgr 00541 // Parameters. The following two defines are used in the ParamType field 00542 // depending on the signaling type. 00543 // 00544 #define CALLMGR_SPECIFIC_Q2931 0x00000001 00545 00546 typedef struct _ATM_VPIVCI 00547 { 00548 ULONG Vpi; 00549 ULONG Vci; 00550 } ATM_VPIVCI, *PATM_VPIVCI; 00551 00552 // 00553 // ATM Service Category 00554 // 00555 #define ATM_SERVICE_CATEGORY_CBR 1 // Constant Bit Rate 00556 #define ATM_SERVICE_CATEGORY_VBR 2 // Variable Bit Rate 00557 #define ATM_SERVICE_CATEGORY_UBR 4 // Unspecified Bit Rate 00558 #define ATM_SERVICE_CATEGORY_ABR 8 // Available Bit Rate 00559 00560 typedef ULONG ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY; 00561 00562 00563 // 00564 // ATM flow parameters for use in specifying Media parameters 00565 // 00566 typedef struct _ATM_FLOW_PARAMETERS 00567 { 00568 ATM_SERVICE_CATEGORY ServiceCategory; 00569 ULONG AverageCellRate; // in cells/sec 00570 ULONG PeakCellRate; // in cells/sec 00571 ULONG MinimumCellRate; // in cells/sec (ABR MCR) 00572 ULONG InitialCellRate; // in cells/sec (ABR ICR) 00573 ULONG BurstLengthCells; // in cells 00574 ULONG MaxSduSize; // MTU in bytes 00575 ULONG TransientBufferExposure; // in cells (ABR TBE) 00576 ULONG CumulativeRMFixedRTT; // in microseconds (ABR FRTT) 00577 UCHAR RateIncreaseFactor; // UNI 4.0 coding (ABR RIF) 00578 UCHAR RateDecreaseFactor; // UNI 4.0 coding (ABR RDF) 00579 USHORT ACRDecreaseTimeFactor; // UNI 4.0 coding (ABR ADTF) 00580 UCHAR MaximumCellsPerForwardRMCell; // UNI 4.0 coding (ABR Nrm) 00581 UCHAR MaximumForwardRMCellInterval; // UNI 4.0 coding (ABR Trm) 00582 UCHAR CutoffDecreaseFactor; // UNI 4.0 coding (ABR CDF) 00583 UCHAR Reserved1; // padding 00584 ULONG MissingRMCellCount; // (ABR CRM) 00585 ULONG Reserved2; 00586 ULONG Reserved3; 00587 } ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS; 00588 00589 00590 00591 00592 // 00593 // ATM Specific Media parameters - this is the Media specific structure for ATM 00594 // that goes into MediaParameters->MediaSpecific.Parameters. 00595 // 00596 typedef struct _ATM_MEDIA_PARAMETERS 00597 { 00598 ATM_VPIVCI ConnectionId; 00599 ATM_AAL_TYPE AALType; 00600 ULONG CellDelayVariationCLP0; 00601 ULONG CellDelayVariationCLP1; 00602 ULONG CellLossRatioCLP0; 00603 ULONG CellLossRatioCLP1; 00604 ULONG CellTransferDelayCLP0; 00605 ULONG CellTransferDelayCLP1; 00606 ULONG DefaultCLP; 00607 ATM_FLOW_PARAMETERS Transmit; 00608 ATM_FLOW_PARAMETERS Receive; 00609 } ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS; 00610 00611 00612 // Bit 0 in Reserved1 in ATM_FLOW_PARAMETERS is reserved. 00613 #define ATM_FLOW_PARAMS_RSVD1_MPP 0x01 00614 00615 #ifndef SAP_FIELD_ABSENT 00616 #define SAP_FIELD_ABSENT ((ULONG)0xfffffffe) 00617 #endif 00618 00619 #ifndef SAP_FIELD_ANY 00620 #define SAP_FIELD_ANY ((ULONG)0xffffffff) 00621 #endif 00622 00623 #define SAP_FIELD_ANY_AESA_SEL ((ULONG)0xfffffffa) // SEL is wild-carded 00624 #define SAP_FIELD_ANY_AESA_REST ((ULONG)0xfffffffb) // All of the address 00625 // except SEL, is wild-carded 00626 00627 // 00628 // The ATM Specific SAP definition 00629 // 00630 typedef struct _ATM_SAP 00631 { 00632 ATM_BLLI_IE Blli; 00633 ATM_BHLI_IE Bhli; 00634 ULONG NumberOfAddresses; 00635 UCHAR Addresses[1]; // each of type ATM_ADDRESS 00636 } ATM_SAP, *PATM_SAP; 00637 00638 // 00639 // The ATM Specific SAP definition when adding PVCs 00640 // 00641 typedef struct _ATM_PVC_SAP 00642 { 00643 ATM_BLLI_IE Blli; 00644 ATM_BHLI_IE Bhli; 00645 } ATM_PVC_SAP, *PATM_PVC_SAP; 00646 00647 // 00648 // The structure passed in the Parameters field of the CO_SPECIFIC_PARAMETERS 00649 // structure passed in an ADD PVC request for Q.2931 00650 // 00651 typedef struct _Q2931_ADD_PVC 00652 { 00653 ATM_ADDRESS CalledParty; 00654 ATM_ADDRESS CallingParty; 00655 ATM_VPIVCI ConnectionId; 00656 ATM_AAL_TYPE AALType; 00657 ATM_FLOW_PARAMETERS ForwardFP; 00658 ATM_FLOW_PARAMETERS BackwardFP; 00659 ULONG Flags; 00660 ATM_PVC_SAP LocalSap; 00661 ATM_PVC_SAP DestinationSap; 00662 BOOLEAN LIJIdPresent; 00663 ATM_LIJ_CALLID_IE LIJId; 00664 } Q2931_ADD_PVC, *PQ2931_ADD_PVC; 00665 00666 // 00667 // These flags are defined to be used with Q2931_ADD_PVC above 00668 // 00669 // this VC should be used by the CallMgr as the signaling VC now 00670 #define CO_FLAG_SIGNALING_VC 0x00000001 00671 00672 // 00673 // Use this flag for a PVC that cannot be used for a MakeCall - incoming call only 00674 // the call mgr can then be optimized not to search these PVCs during make call 00675 // processing. 00676 #define CO_FLAG_NO_DEST_SAP 0x00000002 00677 00678 // 00679 // Use this flag for a PVC that cannot be used to indicate an incoming call. 00680 // 00681 #define CO_FLAG_NO_LOCAL_SAP 0x00000004 00682 00683 // 00684 // the structure passed in the Parameters field of the CO_SPECIFIC_PARAMETERS 00685 // structure passed in an NDIS_CO_PVC request for Q2931 00686 // 00687 typedef struct _Q2931_DELETE_PVC 00688 { 00689 ATM_VPIVCI ConnectionId; 00690 } Q2931_DELETE_PVC, *PQ2931_DELETE_PVC; 00691 00692 typedef struct _CO_GET_CALL_INFORMATION 00693 { 00694 ULONG CallInfoType; 00695 ULONG CallInfoLength; 00696 PVOID CallInfoBuffer; 00697 } CO_GET_CALL_INFORMATION, *PCO_GET_CALL_INFORMATION; 00698 00699 // 00700 // the structure for returning the supported VC rates from the miniport, 00701 // returned in response to OID_ATM_SUPPORTED_VC_RATES 00702 // 00703 typedef struct _ATM_VC_RATES_SUPPORTED 00704 { 00705 ULONG MinCellRate; 00706 ULONG MaxCellRate; 00707 } ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED; 00708 00709 // 00710 // NDIS_PACKET out of band information for ATM. 00711 // 00712 typedef struct _ATM_AAL_OOB_INFO 00713 { 00714 ATM_AAL_TYPE AalType; 00715 union 00716 { 00717 struct _ATM_AAL5_INFO 00718 { 00719 BOOLEAN CellLossPriority; 00720 UCHAR UserToUserIndication; 00721 UCHAR CommonPartIndicator; 00722 } ATM_AAL5_INFO; 00723 00724 struct _ATM_AAL0_INFO 00725 { 00726 BOOLEAN CellLossPriority; 00727 UCHAR PayLoadTypeIdentifier; 00728 } ATM_AAL0_INFO; 00729 }; 00730 } ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO; 00731 00732 00733 // 00734 // Physical Line Speeds in bits/sec. 00735 // 00736 #define ATM_PHYS_RATE_SONET_STS3C 155520000 00737 #define ATM_PHYS_RATE_IBM_25 25600000 00738 00739 // 00740 // ATM cell layer transfer capacities in bits/sec. This is the throughput 00741 // available for ATM cells, after allowing for physical framing overhead. 00742 // 00743 #define ATM_CELL_TRANSFER_CAPACITY_SONET_STS3C 149760000 00744 #define ATM_CELL_TRANSFER_CAPACITY_IBM_25 25125926 00745 00746 00747 00748 // 00749 // User data rate in units of 100 bits/sec. This is returned in response to 00750 // the OID_GEN_CO_LINK_SPEED query. This is the effective rate of 00751 // transfer of data available to the ATM layer user, after allowing for 00752 // the ATM cell header. 00753 // 00754 #define ATM_USER_DATA_RATE_SONET_155 1356317 00755 #define ATM_USER_DATA_RATE_IBM_25 227556 00756 00757 00758 00759 // 00760 // The ATM Service Registry MIB Table is used to locate ATM network 00761 // services. OID_ATM_GET_SERVICE_ADDRESS is used by clients to access 00762 // this table. 00763 // 00764 00765 typedef ULONG ATM_SERVICE_REGISTRY_TYPE; 00766 00767 #define ATM_SERVICE_REGISTRY_LECS 1 // LAN Emulation Configuration Server 00768 #define ATM_SERVICE_REGISTRY_ANS 2 // ATM Name Server 00769 00770 // 00771 // Structure passed to OID_ATM_GET_SERVICE_ADDRESS. 00772 // 00773 typedef struct _ATM_SERVICE_ADDRESS_LIST 00774 { 00775 ATM_SERVICE_REGISTRY_TYPE ServiceRegistryType; 00776 ULONG NumberOfAddressesAvailable; 00777 ULONG NumberOfAddressesReturned; 00778 ATM_ADDRESS Address[1]; 00779 } ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST; 00780 00781 #endif // _ATM_H_ 00782 00783 

Generated on Sat May 15 19:39:17 2004 for test by doxygen 1.3.7