mingw-5.1.4/win32/include/ddk/atm.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     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 #ifndef __ATM_H
       
    24 #define __ATM_H
       
    25 
       
    26 #if __GNUC__ >=3
       
    27 #pragma GCC system_header
       
    28 #endif
       
    29 
       
    30 #ifdef __cplusplus
       
    31 extern "C" {
       
    32 #endif
       
    33 
       
    34 typedef ULONG	ATM_ADDRESSTYPE;
       
    35 
       
    36 #define SAP_TYPE_NSAP			                1
       
    37 #define SAP_TYPE_E164			                2
       
    38 
       
    39 #define ATM_MEDIA_SPECIFIC                1
       
    40 
       
    41 #define CALLMGR_SPECIFIC_Q2931            1
       
    42 
       
    43 #define	ATM_NSAP				                  0
       
    44 #define	ATM_E164				                  1
       
    45 
       
    46 #define	ATM_MAC_ADDRESS_LENGTH	          6
       
    47 #define	ATM_ADDRESS_LENGTH		            20
       
    48 
       
    49 typedef ULONG	ATM_AAL_TYPE, *PATM_AAL_TYPE;
       
    50 
       
    51 #define	AAL_TYPE_AAL0			                1
       
    52 #define	AAL_TYPE_AAL1			                2
       
    53 #define	AAL_TYPE_AAL34			              4
       
    54 #define	AAL_TYPE_AAL5			                8
       
    55 
       
    56 #define ATM_ADDR_BLANK_CHAR				        L' '
       
    57 #define ATM_ADDR_E164_START_CHAR		      L'+'
       
    58 #define ATM_ADDR_PUNCTUATION_CHAR		      L'.'
       
    59 
       
    60 typedef enum {
       
    61 	IE_AALParameters,
       
    62 	IE_TrafficDescriptor,
       
    63 	IE_BroadbandBearerCapability,
       
    64 	IE_BHLI,
       
    65 	IE_BLLI,
       
    66 	IE_CalledPartyNumber,
       
    67 	IE_CalledPartySubaddress,
       
    68 	IE_CallingPartyNumber,
       
    69 	IE_CallingPartySubaddress,
       
    70 	IE_Cause,
       
    71 	IE_QOSClass,
       
    72 	IE_TransitNetworkSelection,
       
    73 	IE_BroadbandSendingComplete,
       
    74 	IE_LIJCallId,
       
    75 	IE_Raw
       
    76 } Q2931_IE_TYPE;
       
    77 
       
    78 typedef struct _Q2931_IE {
       
    79   Q2931_IE_TYPE  IEType;
       
    80   ULONG  IELength;
       
    81   UCHAR  IE[1];
       
    82 } Q2931_IE, *PQ2931_IE;
       
    83 
       
    84 typedef struct _AAL1_PARAMETERS {
       
    85   UCHAR  Subtype;
       
    86   UCHAR  CBRRate;
       
    87   USHORT  Multiplier;
       
    88   UCHAR  SourceClockRecoveryMethod;
       
    89   UCHAR  ErrorCorrectionMethod;
       
    90   USHORT  StructuredDataTransferBlocksize;
       
    91   UCHAR  PartiallyFilledCellsMethod;
       
    92 } AAL1_PARAMETERS, *PAAL1_PARAMETERS;
       
    93 
       
    94 typedef struct _AAL34_PARAMETERS {
       
    95   USHORT  ForwardMaxCPCSSDUSize;
       
    96   USHORT  BackwardMaxCPCSSDUSize;
       
    97   USHORT  LowestMID;
       
    98   USHORT  HighestMID;
       
    99   UCHAR  SSCSType;
       
   100 } AAL34_PARAMETERS, *PAAL34_PARAMETERS;
       
   101 
       
   102 /* AAL5_PARAMETERS.Mode constants */
       
   103 #define AAL5_MODE_MESSAGE			            0x01
       
   104 #define AAL5_MODE_STREAMING			          0x02
       
   105 
       
   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
       
   111 
       
   112 typedef struct _AAL5_PARAMETERS {
       
   113   ULONG  ForwardMaxCPCSSDUSize;
       
   114   ULONG  BackwardMaxCPCSSDUSize;
       
   115   UCHAR  Mode;
       
   116   UCHAR  SSCSType;
       
   117 } AAL5_PARAMETERS, *PAAL5_PARAMETERS;
       
   118 
       
   119 typedef struct _AALUSER_PARAMETERS {
       
   120   ULONG  UserDefined;
       
   121 } AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;
       
   122 
       
   123 typedef struct _AAL_PARAMETERS_IE {
       
   124   ATM_AAL_TYPE  AALType;
       
   125   union {
       
   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;
       
   132 
       
   133 
       
   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
       
   138 {
       
   139 	ATM_AAL_TYPE  AalType;
       
   140 #ifndef __cplusplus
       
   141 	_ANONYMOUS_UNION
       
   142 #endif
       
   143 	union {
       
   144 		struct _ATM_AAL5_INFO {
       
   145 			BOOLEAN  CellLossPriority;
       
   146 			UCHAR  UserToUserIndication;
       
   147 			UCHAR  CommonPartIndicator;
       
   148 		} ATM_AAL5_INFO;
       
   149 		
       
   150 		struct _ATM_AAL0_INFO {
       
   151 			BOOLEAN  CellLossPriority;
       
   152 			UCHAR  PayLoadTypeIdentifier;
       
   153 		} ATM_AAL0_INFO;
       
   154 #ifndef __cplusplus
       
   155 	} DUMMYUNIONNAME;
       
   156 #else
       
   157 	} u;
       
   158 #endif
       
   159 } ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;
       
   160 
       
   161 typedef struct _ATM_ADDRESS  { 
       
   162   ATM_ADDRESSTYPE  AddressType; 
       
   163   ULONG  NumberOfDigits; 
       
   164   UCHAR  Address[ATM_ADDRESS_LENGTH]; 
       
   165 } ATM_ADDRESS, *PATM_ADDRESS;
       
   166 
       
   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
       
   172 
       
   173 typedef struct _ATM_BHLI_IE {
       
   174   ULONG  HighLayerInfoType;
       
   175   ULONG  HighLayerInfoLength;
       
   176   UCHAR  HighLayerInfo[8];
       
   177 } ATM_BHLI_IE, *PATM_BHLI_IE;
       
   178 
       
   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
       
   193 
       
   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
       
   202 
       
   203 /* ATM_BLLI_IE.Layer3IPI constants */
       
   204 #define BLLI_L3_IPI_SNAP		              0x80
       
   205 #define BLLI_L3_IPI_IP			              0xCC
       
   206 
       
   207 typedef struct _ATM_BLLI_IE {
       
   208   ULONG  Layer2Protocol;
       
   209   UCHAR  Layer2Mode;
       
   210   UCHAR  Layer2WindowSize;
       
   211   ULONG  Layer2UserSpecifiedProtocol;
       
   212   ULONG  Layer3Protocol;
       
   213   UCHAR  Layer3Mode;
       
   214   UCHAR  Layer3DefaultPacketSize;
       
   215   UCHAR  Layer3PacketWindowSize;
       
   216   ULONG  Layer3UserSpecifiedProtocol;
       
   217   ULONG  Layer3IPI;
       
   218   UCHAR  SnapId[5];
       
   219 } ATM_BLLI_IE, *PATM_BLLI_IE;
       
   220 
       
   221 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
       
   222 #define BCOB_A					                  0x00
       
   223 #define BCOB_C					                  0x01
       
   224 #define BCOB_X					                  0x02
       
   225 
       
   226 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
       
   227 #define TT_NOIND				                  0x00
       
   228 #define TT_CBR					                  0x04
       
   229 #define TT_VBR					                  0x08
       
   230 
       
   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
       
   235 
       
   236 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
       
   237 #define CLIP_NOT				                  0x00
       
   238 #define CLIP_SUS				                  0x20
       
   239 
       
   240 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
       
   241 #define UP_P2P					                  0x00
       
   242 #define UP_P2MP					                  0x01
       
   243 
       
   244 typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
       
   245   UCHAR  BearerClass;
       
   246   UCHAR  TrafficType;
       
   247   UCHAR  TimingRequirements;
       
   248   UCHAR  ClippingSusceptability;
       
   249   UCHAR  UserPlaneConnectionConfig;
       
   250 } ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;
       
   251 
       
   252 typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
       
   253   UCHAR  SendingComplete;
       
   254 } ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
       
   255 
       
   256 typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
       
   257   ATM_ADDRESS  Number;
       
   258   UCHAR  PresentationIndication;
       
   259   UCHAR  ScreeningIndicator;
       
   260 } ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;
       
   261 
       
   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
       
   271 
       
   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
       
   315 
       
   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
       
   327 
       
   328 typedef struct _ATM_CAUSE_IE {
       
   329   UCHAR  Location;
       
   330   UCHAR  Cause;
       
   331   UCHAR  DiagnosticsLength;
       
   332   UCHAR  Diagnostics[4];
       
   333 } ATM_CAUSE_IE, *PATM_CAUSE_IE;
       
   334 
       
   335 
       
   336 typedef ULONG	ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
       
   337 
       
   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
       
   343 
       
   344 /* ATM_FLOW_PARAMETERS.Reserved1 constants */
       
   345 #define ATM_FLOW_PARAMS_RSVD1_MPP	        0x01
       
   346 
       
   347 typedef struct _ATM_FLOW_PARAMETERS {
       
   348   ATM_SERVICE_CATEGORY  ServiceCategory;
       
   349   ULONG  AverageCellRate;
       
   350   ULONG  PeakCellRate;
       
   351   ULONG  MinimumCellRate;
       
   352   ULONG  InitialCellRate;
       
   353   ULONG  BurstLengthCells;
       
   354   ULONG  MaxSduSize;
       
   355   ULONG  TransientBufferExposure;
       
   356   ULONG  CumulativeRMFixedRTT;
       
   357   UCHAR  RateIncreaseFactor;
       
   358   UCHAR  RateDecreaseFactor;
       
   359   USHORT  ACRDecreaseTimeFactor;
       
   360   UCHAR  MaximumCellsPerForwardRMCell;
       
   361   UCHAR  MaximumForwardRMCellInterval;
       
   362   UCHAR  CutoffDecreaseFactor;
       
   363   UCHAR  Reserved1;
       
   364   ULONG  MissingRMCellCount;
       
   365   ULONG  Reserved2;
       
   366   ULONG  Reserved3;
       
   367 } ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;
       
   368 
       
   369 typedef struct _ATM_VPIVCI {
       
   370   ULONG  Vpi;
       
   371   ULONG  Vci;
       
   372 } ATM_VPIVCI, *PATM_VPIVCI;
       
   373 
       
   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;
       
   383   ULONG  DefaultCLP;
       
   384   ATM_FLOW_PARAMETERS  Transmit;
       
   385   ATM_FLOW_PARAMETERS  Receive;
       
   386 } ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;
       
   387 
       
   388 typedef struct _ATM_PVC_SAP {
       
   389   ATM_BLLI_IE  Blli;
       
   390   ATM_BHLI_IE  Bhli;
       
   391 } ATM_PVC_SAP, *PATM_PVC_SAP;
       
   392 
       
   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
       
   399 
       
   400 typedef struct _ATM_QOS_CLASS_IE {
       
   401   UCHAR  QOSClassForward;
       
   402   UCHAR  QOSClassBackward;
       
   403 } ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;
       
   404 
       
   405 typedef struct _ATM_RAW_IE {
       
   406   ULONG  RawIELength;
       
   407   ULONG  RawIEType;
       
   408   UCHAR  RawIEValue[1];
       
   409 } ATM_RAW_IE, *PATM_RAW_IE;
       
   410 
       
   411 typedef struct _ATM_SAP {
       
   412   ATM_BLLI_IE  Blli;
       
   413   ATM_BHLI_IE  Bhli;
       
   414   ULONG  NumberOfAddresses;
       
   415   UCHAR  Addresses[1];
       
   416 } ATM_SAP, *PATM_SAP;
       
   417 
       
   418 typedef struct _ATM_TRAFFIC_DESCRIPTOR {
       
   419   ULONG  PeakCellRateCLP0;
       
   420   ULONG  PeakCellRateCLP01;
       
   421   ULONG  SustainableCellRateCLP0;
       
   422   ULONG  SustainableCellRateCLP01;
       
   423   ULONG  MaximumBurstSizeCLP0;
       
   424   ULONG  MaximumBurstSizeCLP01;
       
   425   BOOLEAN  BestEffort;
       
   426   BOOLEAN  Tagging;
       
   427 } ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;
       
   428 
       
   429 typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
       
   430   ATM_TRAFFIC_DESCRIPTOR  ForwardTD;
       
   431   ATM_TRAFFIC_DESCRIPTOR  BackwardTD;
       
   432   BOOLEAN  BestEffort;
       
   433 } ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;
       
   434 
       
   435 /* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
       
   436 #define TNS_TYPE_NATIONAL			            0x40
       
   437 
       
   438 /* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
       
   439 #define TNS_PLAN_CARRIER_ID_CODE	        0x01
       
   440 
       
   441 typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
       
   442   UCHAR  TypeOfNetworkId;
       
   443   UCHAR  NetworkIdPlan;
       
   444   UCHAR  NetworkIdLength;
       
   445   UCHAR  NetworkId[1];
       
   446 } ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;
       
   447 
       
   448 typedef struct _ATM_LIJ_CALLID_IE {
       
   449 	ULONG  Identifier;
       
   450 } ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;
       
   451 
       
   452 /* Q2931_ADD_PVC.Flags constants */
       
   453 #define CO_FLAG_SIGNALING_VC              0x00000001
       
   454 #define CO_FLAG_NO_DEST_SAP               0x00000002
       
   455 
       
   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;
       
   463   ULONG  Flags;
       
   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;
       
   469 
       
   470 typedef struct _Q2931_DELETE_PVC {
       
   471   ATM_VPIVCI  ConnectionId;
       
   472 } Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;
       
   473 
       
   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;
       
   477 
       
   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;
       
   484 
       
   485 typedef struct _ATM_VC_RATES_SUPPORTED {
       
   486   ULONG  MinCellRate;
       
   487   ULONG  MaxCellRate;
       
   488 } ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;
       
   489 
       
   490 typedef ULONG ATM_SERVICE_REGISTRY_TYPE;
       
   491 
       
   492 /* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
       
   493 #define ATM_SERVICE_REGISTRY_LECS		      1
       
   494 #define ATM_SERVICE_REGISTRY_ANS		      2
       
   495 
       
   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;
       
   502 
       
   503 #ifdef __cplusplus
       
   504 }
       
   505 #endif
       
   506 
       
   507 #endif /* __ATM_H */