Home | History | Annotate | Download | only in ddk
      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 (at) 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 #pragma once
     24 
     25 #ifdef __cplusplus
     26 extern "C" {
     27 #endif
     28 
     29 typedef ULONG ATM_ADDRESSTYPE;
     30 
     31 #define SAP_TYPE_NSAP                  1
     32 #define SAP_TYPE_E164                  2
     33 
     34 #define ATM_MEDIA_SPECIFIC             1
     35 
     36 #define CALLMGR_SPECIFIC_Q2931         1
     37 
     38 #define ATM_NSAP                       0
     39 #define ATM_E164                       1
     40 
     41 #define ATM_MAC_ADDRESS_LENGTH         6
     42 #define ATM_ADDRESS_LENGTH             20
     43 
     44 typedef ULONG ATM_AAL_TYPE, *PATM_AAL_TYPE;
     45 
     46 #define AAL_TYPE_AAL0                  1
     47 #define AAL_TYPE_AAL1                  2
     48 #define AAL_TYPE_AAL34                 4
     49 #define AAL_TYPE_AAL5                  8
     50 
     51 #define ATM_ADDR_BLANK_CHAR            L' '
     52 #define ATM_ADDR_E164_START_CHAR       L'+'
     53 #define ATM_ADDR_PUNCTUATION_CHAR      L'.'
     54 
     55 typedef enum _Q2931_IE_TYPE {
     56   IE_AALParameters,
     57   IE_TrafficDescriptor,
     58   IE_BroadbandBearerCapability,
     59   IE_BHLI,
     60   IE_BLLI,
     61   IE_CalledPartyNumber,
     62   IE_CalledPartySubaddress,
     63   IE_CallingPartyNumber,
     64   IE_CallingPartySubaddress,
     65   IE_Cause,
     66   IE_QOSClass,
     67   IE_TransitNetworkSelection,
     68   IE_BroadbandSendingComplete,
     69   IE_LIJCallId,
     70   IE_Raw
     71 } Q2931_IE_TYPE;
     72 
     73 typedef struct _Q2931_IE {
     74   Q2931_IE_TYPE IEType;
     75   ULONG IELength;
     76   UCHAR IE[1];
     77 } Q2931_IE, *PQ2931_IE;
     78 
     79 typedef struct _AAL1_PARAMETERS {
     80   UCHAR Subtype;
     81   UCHAR CBRRate;
     82   USHORT Multiplier;
     83   UCHAR SourceClockRecoveryMethod;
     84   UCHAR ErrorCorrectionMethod;
     85   USHORT StructuredDataTransferBlocksize;
     86   UCHAR PartiallyFilledCellsMethod;
     87 } AAL1_PARAMETERS, *PAAL1_PARAMETERS;
     88 
     89 typedef struct _AAL34_PARAMETERS {
     90   USHORT ForwardMaxCPCSSDUSize;
     91   USHORT BackwardMaxCPCSSDUSize;
     92   USHORT LowestMID;
     93   USHORT HighestMID;
     94   UCHAR SSCSType;
     95 } AAL34_PARAMETERS, *PAAL34_PARAMETERS;
     96 
     97 /* AAL5_PARAMETERS.Mode constants */
     98 #define AAL5_MODE_MESSAGE              0x01
     99 #define AAL5_MODE_STREAMING            0x02
    100 
    101 /* AAL5_PARAMETERS.SSCSType constants */
    102 #define AAL5_SSCS_NULL                 0x00
    103 #define AAL5_SSCS_SSCOP_ASSURED        0x01
    104 #define AAL5_SSCS_SSCOP_NON_ASSURED    0x02
    105 #define AAL5_SSCS_FRAME_RELAY          0x04
    106 
    107 typedef struct _AAL5_PARAMETERS {
    108   ULONG ForwardMaxCPCSSDUSize;
    109   ULONG BackwardMaxCPCSSDUSize;
    110   UCHAR Mode;
    111   UCHAR SSCSType;
    112 } AAL5_PARAMETERS, *PAAL5_PARAMETERS;
    113 
    114 typedef struct _AALUSER_PARAMETERS {
    115   ULONG UserDefined;
    116 } AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;
    117 
    118 typedef struct _AAL_PARAMETERS_IE {
    119   ATM_AAL_TYPE AALType;
    120   union {
    121     AAL1_PARAMETERS AAL1Parameters;
    122     AAL34_PARAMETERS AAL34Parameters;
    123     AAL5_PARAMETERS AAL5Parameters;
    124     AALUSER_PARAMETERS AALUserParameters;
    125   } AALSpecificParameters;
    126 } AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;
    127 
    128 struct _ATM_AAL5_INFO {
    129   BOOLEAN CellLossPriority;
    130   UCHAR UserToUserIndication;
    131   UCHAR CommonPartIndicator;
    132 };
    133 
    134 struct _ATM_AAL0_INFO {
    135   BOOLEAN CellLossPriority;
    136   UCHAR PayLoadTypeIdentifier;
    137 };
    138 
    139 typedef struct _ATM_AAL_OOB_INFO {
    140   ATM_AAL_TYPE AalType;
    141   union {
    142     struct _ATM_AAL5_INFO ATM_AAL5_INFO;
    143     struct _ATM_AAL0_INFO ATM_AAL0_INFO;
    144   };
    145 } ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;
    146 
    147 typedef struct _ATM_ADDRESS {
    148   ATM_ADDRESSTYPE AddressType;
    149   ULONG NumberOfDigits;
    150   UCHAR Address[ATM_ADDRESS_LENGTH];
    151 } ATM_ADDRESS, *PATM_ADDRESS;
    152 
    153 #define ATM_PHYS_RATE_SONET_STS3C      155520000
    154 #define ATM_PHYS_RATE_IBM_25           25600000
    155 
    156 #define ATM_CELL_TRANSFER_CAPACITY_SONET_STS3C   149760000
    157 #define ATM_CELL_TRANSFER_CAPACITY_IBM_25        25125926
    158 
    159 #define ATM_USER_DATA_RATE_SONET_155   1356317
    160 #define ATM_USER_DATA_RATE_IBM_25      227556
    161 
    162 /* ATM_BHLI_IE.HighLayerInfoType constants */
    163 #define BHLI_ISO                       0x00
    164 #define BHLI_UserSpecific              0x01
    165 #define BHLI_HighLayerProfile          0x02
    166 #define BHLI_VendorSpecificAppId       0x03
    167 
    168 typedef struct _ATM_BHLI_IE {
    169   ULONG HighLayerInfoType;
    170   ULONG HighLayerInfoLength;
    171   UCHAR HighLayerInfo[8];
    172 } ATM_BHLI_IE, *PATM_BHLI_IE;
    173 
    174 /* ATM_BLLI_IE.Layer2Protocol constants */
    175 #define BLLI_L2_ISO_1745               0x01
    176 #define BLLI_L2_Q921                   0x02
    177 #define BLLI_L2_X25L                   0x06
    178 #define BLLI_L2_X25M                   0x07
    179 #define BLLI_L2_ELAPB                  0x08
    180 #define BLLI_L2_HDLC_ARM               0x09
    181 #define BLLI_L2_HDLC_NRM               0x0A
    182 #define BLLI_L2_HDLC_ABM               0x0B
    183 #define BLLI_L2_LLC                    0x0C
    184 #define BLLI_L2_X75                    0x0D
    185 #define BLLI_L2_Q922                   0x0E
    186 #define BLLI_L2_USER_SPECIFIED         0x10
    187 #define BLLI_L2_ISO_7776               0x11
    188 
    189 /* ATM_BLLI_IE.Layer3Protocol constants */
    190 #define BLLI_L3_X25                    0x06
    191 #define BLLI_L3_ISO_8208               0x07
    192 #define BLLI_L3_X223                   0x08
    193 #define BLLI_L3_SIO_8473               0x09
    194 #define BLLI_L3_T70                    0x0A
    195 #define BLLI_L3_ISO_TR9577             0x0B
    196 #define BLLI_L3_USER_SPECIFIED         0x10
    197 
    198 /* ATM_BLLI_IE.Layer3IPI constants */
    199 #define BLLI_L3_IPI_SNAP               0x80
    200 #define BLLI_L3_IPI_IP                 0xCC
    201 
    202 typedef struct _ATM_BLLI_IE {
    203   ULONG Layer2Protocol;
    204   UCHAR Layer2Mode;
    205   UCHAR Layer2WindowSize;
    206   ULONG Layer2UserSpecifiedProtocol;
    207   ULONG Layer3Protocol;
    208   UCHAR Layer3Mode;
    209   UCHAR Layer3DefaultPacketSize;
    210   UCHAR Layer3PacketWindowSize;
    211   ULONG Layer3UserSpecifiedProtocol;
    212   ULONG Layer3IPI;
    213   UCHAR SnapId[5];
    214 } ATM_BLLI_IE, *PATM_BLLI_IE;
    215 
    216 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
    217 #define BCOB_A                         0x00
    218 #define BCOB_C                         0x01
    219 #define BCOB_X                         0x02
    220 
    221 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
    222 #define TT_NOIND                       0x00
    223 #define TT_CBR                         0x04
    224 #define TT_VBR                         0x08
    225 
    226 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
    227 #define TR_NOIND                       0x00
    228 #define TR_END_TO_END                  0x01
    229 #define TR_NO_END_TO_END               0x02
    230 
    231 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
    232 #define CLIP_NOT                       0x00
    233 #define CLIP_SUS                       0x20
    234 
    235 /* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
    236 #define UP_P2P                         0x00
    237 #define UP_P2MP                        0x01
    238 
    239 typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
    240   UCHAR BearerClass;
    241   UCHAR TrafficType;
    242   UCHAR TimingRequirements;
    243   UCHAR ClippingSusceptability;
    244   UCHAR UserPlaneConnectionConfig;
    245 } ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;
    246 
    247 typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
    248   UCHAR SendingComplete;
    249 } ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
    250 
    251 typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
    252   ATM_ADDRESS Number;
    253   UCHAR PresentationIndication;
    254   UCHAR ScreeningIndicator;
    255 } ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;
    256 
    257 /* ATM_CAUSE_IE.Location constants */
    258 #define ATM_CAUSE_LOC_USER                  0x00
    259 #define ATM_CAUSE_LOC_PRIVATE_LOCAL         0x01
    260 #define ATM_CAUSE_LOC_PUBLIC_LOCAL          0x02
    261 #define ATM_CAUSE_LOC_TRANSIT_NETWORK       0x03
    262 #define ATM_CAUSE_LOC_PUBLIC_REMOTE         0x04
    263 #define ATM_CAUSE_LOC_PRIVATE_REMOTE        0x05
    264 #define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK 0x07
    265 #define ATM_CAUSE_LOC_BEYOND_INTERWORKING   0x0A
    266 
    267 /* ATM_CAUSE_IE.Cause constants */
    268 #define ATM_CAUSE_UNALLOCATED_NUMBER                0x01
    269 #define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK       0x02
    270 #define ATM_CAUSE_NO_ROUTE_TO_DESTINATION           0x03
    271 #define ATM_CAUSE_VPI_VCI_UNACCEPTABLE              0x0A
    272 #define ATM_CAUSE_NORMAL_CALL_CLEARING              0x10
    273 #define ATM_CAUSE_USER_BUSY                         0x11
    274 #define ATM_CAUSE_NO_USER_RESPONDING                0x12
    275 #define ATM_CAUSE_CALL_REJECTED                     0x15
    276 #define ATM_CAUSE_NUMBER_CHANGED                    0x16
    277 #define ATM_CAUSE_USER_REJECTS_CLIR                 0x17
    278 #define ATM_CAUSE_DESTINATION_OUT_OF_ORDER          0x1B
    279 #define ATM_CAUSE_INVALID_NUMBER_FORMAT             0x1C
    280 #define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE           0x1E
    281 #define ATM_CAUSE_NORMAL_UNSPECIFIED                0x1F
    282 #define ATM_CAUSE_VPI_VCI_UNAVAILABLE               0x23
    283 #define ATM_CAUSE_NETWORK_OUT_OF_ORDER              0x26
    284 #define ATM_CAUSE_TEMPORARY_FAILURE                 0x29
    285 #define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED       0x2B
    286 #define ATM_CAUSE_NO_VPI_VCI_AVAILABLE              0x2D
    287 #define ATM_CAUSE_RESOURCE_UNAVAILABLE              0x2F
    288 #define ATM_CAUSE_QOS_UNAVAILABLE                   0x31
    289 #define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE        0x33
    290 #define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED    0x39
    291 #define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE     0x3A
    292 #define ATM_CAUSE_OPTION_UNAVAILABLE                0x3F
    293 #define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED   0x41
    294 #define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS    0x49
    295 #define ATM_CAUSE_INVALID_CALL_REFERENCE            0x51
    296 #define ATM_CAUSE_CHANNEL_NONEXISTENT               0x52
    297 #define ATM_CAUSE_INCOMPATIBLE_DESTINATION          0x58
    298 #define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE        0x59
    299 #define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
    300 #define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY        0x5C
    301 #define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED        0x5D
    302 #define ATM_CAUSE_MANDATORY_IE_MISSING              0x60
    303 #define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE        0x61
    304 #define ATM_CAUSE_UNIMPLEMENTED_IE                  0x63
    305 #define ATM_CAUSE_INVALID_IE_CONTENTS               0x64
    306 #define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE         0x65
    307 #define ATM_CAUSE_RECOVERY_ON_TIMEOUT               0x66
    308 #define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH          0x68
    309 #define ATM_CAUSE_PROTOCOL_ERROR                    0x6F
    310 
    311 /* ATM_CAUSE_IE.Diagnostics constants */
    312 #define ATM_CAUSE_COND_UNKNOWN            0x00
    313 #define ATM_CAUSE_COND_PERMANENT          0x01
    314 #define ATM_CAUSE_COND_TRANSIENT          0x02
    315 #define ATM_CAUSE_REASON_USER             0x00
    316 #define ATM_CAUSE_REASON_IE_MISSING       0x04
    317 #define ATM_CAUSE_REASON_IE_INSUFFICIENT  0x08
    318 #define ATM_CAUSE_PU_PROVIDER             0x00
    319 #define ATM_CAUSE_PU_USER                 0x08
    320 #define ATM_CAUSE_NA_NORMAL               0x00
    321 #define ATM_CAUSE_NA_ABNORMAL             0x04
    322 
    323 typedef struct _ATM_CAUSE_IE {
    324   UCHAR Location;
    325   UCHAR Cause;
    326   UCHAR DiagnosticsLength;
    327   UCHAR Diagnostics[4];
    328 } ATM_CAUSE_IE, *PATM_CAUSE_IE;
    329 
    330 
    331 typedef ULONG ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
    332 
    333 /* ATM_FLOW_PARAMETERS.ServiceCategory constants */
    334 #define ATM_SERVICE_CATEGORY_CBR       1
    335 #define ATM_SERVICE_CATEGORY_VBR       2
    336 #define ATM_SERVICE_CATEGORY_UBR       4
    337 #define ATM_SERVICE_CATEGORY_ABR       8
    338 
    339 /* ATM_FLOW_PARAMETERS.Reserved1 constants */
    340 #define ATM_FLOW_PARAMS_RSVD1_MPP      0x01
    341 
    342 #ifndef SAP_FIELD_ABSENT
    343 #define SAP_FIELD_ABSENT ((ULONG)0xfffffffe)
    344 #endif
    345 
    346 #ifndef SAP_FIELD_ANY
    347 #define SAP_FIELD_ANY ((ULONG)0xffffffff)
    348 #endif
    349 
    350 #define SAP_FIELD_ANY_AESA_SEL ((ULONG)0xfffffffa)
    351 #define SAP_FIELD_ANY_AESA_REST ((ULONG)0xfffffffb)
    352 
    353 typedef struct _ATM_FLOW_PARAMETERS {
    354   ATM_SERVICE_CATEGORY ServiceCategory;
    355   ULONG AverageCellRate;
    356   ULONG PeakCellRate;
    357   ULONG MinimumCellRate;
    358   ULONG InitialCellRate;
    359   ULONG BurstLengthCells;
    360   ULONG MaxSduSize;
    361   ULONG TransientBufferExposure;
    362   ULONG CumulativeRMFixedRTT;
    363   UCHAR RateIncreaseFactor;
    364   UCHAR RateDecreaseFactor;
    365   USHORT ACRDecreaseTimeFactor;
    366   UCHAR MaximumCellsPerForwardRMCell;
    367   UCHAR MaximumForwardRMCellInterval;
    368   UCHAR CutoffDecreaseFactor;
    369   UCHAR Reserved1;
    370   ULONG MissingRMCellCount;
    371   ULONG Reserved2;
    372   ULONG Reserved3;
    373 } ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;
    374 
    375 typedef struct _ATM_VPIVCI {
    376   ULONG Vpi;
    377   ULONG Vci;
    378 } ATM_VPIVCI, *PATM_VPIVCI;
    379 
    380 typedef struct _ATM_MEDIA_PARAMETERS {
    381   ATM_VPIVCI ConnectionId;
    382   ATM_AAL_TYPE AALType;
    383   ULONG CellDelayVariationCLP0;
    384   ULONG CellDelayVariationCLP1;
    385   ULONG CellLossRatioCLP0;
    386   ULONG CellLossRatioCLP1;
    387   ULONG CellTransferDelayCLP0;
    388   ULONG CellTransferDelayCLP1;
    389   ULONG DefaultCLP;
    390   ATM_FLOW_PARAMETERS Transmit;
    391   ATM_FLOW_PARAMETERS Receive;
    392 } ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;
    393 
    394 typedef struct _ATM_PVC_SAP {
    395   ATM_BLLI_IE Blli;
    396   ATM_BHLI_IE Bhli;
    397 } ATM_PVC_SAP, *PATM_PVC_SAP;
    398 
    399 /* ATM_QOS_CLASS_IE constants */
    400 #define QOS_CLASS0                     0x00
    401 #define QOS_CLASS1                     0x01
    402 #define QOS_CLASS2                     0x02
    403 #define QOS_CLASS3                     0x03
    404 #define QOS_CLASS4                     0x04
    405 
    406 typedef struct _ATM_QOS_CLASS_IE {
    407   UCHAR QOSClassForward;
    408   UCHAR QOSClassBackward;
    409 } ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;
    410 
    411 typedef struct _ATM_RAW_IE {
    412   ULONG RawIELength;
    413   ULONG RawIEType;
    414   UCHAR RawIEValue[1];
    415 } ATM_RAW_IE, *PATM_RAW_IE;
    416 
    417 typedef struct _ATM_SAP {
    418   ATM_BLLI_IE Blli;
    419   ATM_BHLI_IE Bhli;
    420   ULONG NumberOfAddresses;
    421   UCHAR Addresses[1];
    422 } ATM_SAP, *PATM_SAP;
    423 
    424 typedef struct _ATM_TRAFFIC_DESCRIPTOR {
    425   ULONG PeakCellRateCLP0;
    426   ULONG PeakCellRateCLP01;
    427   ULONG SustainableCellRateCLP0;
    428   ULONG SustainableCellRateCLP01;
    429   ULONG MaximumBurstSizeCLP0;
    430   ULONG MaximumBurstSizeCLP01;
    431   BOOLEAN Tagging;
    432 } ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;
    433 
    434 typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
    435   ATM_TRAFFIC_DESCRIPTOR ForwardTD;
    436   ATM_TRAFFIC_DESCRIPTOR BackwardTD;
    437   BOOLEAN BestEffort;
    438 } ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;
    439 
    440 /* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
    441 #define TNS_TYPE_NATIONAL              0x40
    442 
    443 /* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
    444 #define TNS_PLAN_CARRIER_ID_CODE       0x01
    445 
    446 typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
    447   UCHAR TypeOfNetworkId;
    448   UCHAR NetworkIdPlan;
    449   UCHAR NetworkIdLength;
    450   UCHAR NetworkId[1];
    451 } ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;
    452 
    453 typedef struct _ATM_LIJ_CALLID_IE {
    454   ULONG Identifier;
    455 } ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;
    456 
    457 /* Q2931_ADD_PVC.Flags constants */
    458 #define CO_FLAG_SIGNALING_VC           0x00000001
    459 #define CO_FLAG_NO_DEST_SAP            0x00000002
    460 #define CO_FLAG_NO_LOCAL_SAP           0x00000004
    461 
    462 typedef struct _Q2931_ADD_PVC {
    463   ATM_ADDRESS CalledParty;
    464   ATM_ADDRESS CallingParty;
    465   ATM_VPIVCI ConnectionId;
    466   ATM_AAL_TYPE AALType;
    467   ATM_FLOW_PARAMETERS ForwardFP;
    468   ATM_FLOW_PARAMETERS BackwardFP;
    469   ULONG Flags;
    470   ATM_PVC_SAP LocalSap;
    471   ATM_PVC_SAP DestinationSap;
    472   BOOLEAN LIJIdPresent;
    473   ATM_LIJ_CALLID_IE LIJId;
    474 } Q2931_ADD_PVC, *PQ2931_ADD_PVC;
    475 
    476 typedef struct _Q2931_DELETE_PVC {
    477   ATM_VPIVCI ConnectionId;
    478 } Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;
    479 
    480 typedef struct _CO_GET_CALL_INFORMATION {
    481   ULONG CallInfoType;
    482   ULONG CallInfoLength;
    483   PVOID CallInfoBuffer;
    484 } CO_GET_CALL_INFORMATION, *PCO_GET_CALL_INFORMATION;
    485 
    486 typedef ATM_ADDRESS ATM_CALLED_PARTY_NUMBER_IE;
    487 typedef ATM_ADDRESS ATM_CALLED_PARTY_SUBADDRESS_IE;
    488 typedef ATM_ADDRESS ATM_CALLING_PARTY_SUBADDRESS_IE;
    489 
    490 typedef struct _Q2931_CALLMGR_PARAMETERS {
    491   ATM_ADDRESS CalledParty;
    492   ATM_ADDRESS CallingParty;
    493   ULONG InfoElementCount;
    494   UCHAR InfoElements[1];
    495 } Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS;
    496 
    497 typedef struct _ATM_VC_RATES_SUPPORTED {
    498   ULONG MinCellRate;
    499   ULONG MaxCellRate;
    500 } ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;
    501 
    502 typedef ULONG ATM_SERVICE_REGISTRY_TYPE;
    503 
    504 /* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
    505 #define ATM_SERVICE_REGISTRY_LECS      1
    506 #define ATM_SERVICE_REGISTRY_ANS       2
    507 
    508 typedef struct _ATM_SERVICE_ADDRESS_LIST {
    509   ATM_SERVICE_REGISTRY_TYPE ServiceRegistryType;
    510   ULONG NumberOfAddressesAvailable;
    511   ULONG NumberOfAddressesReturned;
    512   ATM_ADDRESS Address[1];
    513 } ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST;
    514 
    515 #ifdef __cplusplus
    516 }
    517 #endif
    518