home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 April / PCWorld_2008-04_cd.bin / temacd / devc++ / devcpp-4.9.9.2_setup.exe / atm.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  16KB  |  508 lines

  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 */
  508.