ws2atm.h 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _WS2ATM_H_
  7. #define _WS2ATM_H_
  8. #include <pshpack4.h>
  9. #define ATMPROTO_AALUSER 0x00
  10. #define ATMPROTO_AAL1 0x01
  11. #define ATMPROTO_AAL2 0x02
  12. #define ATMPROTO_AAL34 0x03
  13. #define ATMPROTO_AAL5 0x05
  14. #define SAP_FIELD_ABSENT 0xFFFFFFFE
  15. #define SAP_FIELD_ANY 0xFFFFFFFF
  16. #define SAP_FIELD_ANY_AESA_SEL 0xFFFFFFFA
  17. #define SAP_FIELD_ANY_AESA_REST 0xFFFFFFFB
  18. #define ATM_E164 0x01
  19. #define ATM_NSAP 0x02
  20. #define ATM_AESA 0x02
  21. #define ATM_ADDR_SIZE 20
  22. typedef struct {
  23. DWORD AddressType;
  24. DWORD NumofDigits;
  25. UCHAR Addr[ATM_ADDR_SIZE];
  26. } ATM_ADDRESS;
  27. #define BLLI_L2_ISO_1745 0x01
  28. #define BLLI_L2_Q921 0x02
  29. #define BLLI_L2_X25L 0x06
  30. #define BLLI_L2_X25M 0x07
  31. #define BLLI_L2_ELAPB 0x08
  32. #define BLLI_L2_HDLC_ARM 0x09
  33. #define BLLI_L2_HDLC_NRM 0x0A
  34. #define BLLI_L2_HDLC_ABM 0x0B
  35. #define BLLI_L2_LLC 0x0C
  36. #define BLLI_L2_X75 0x0D
  37. #define BLLI_L2_Q922 0x0E
  38. #define BLLI_L2_USER_SPECIFIED 0x10
  39. #define BLLI_L2_ISO_7776 0x11
  40. #define BLLI_L3_X25 0x06
  41. #define BLLI_L3_ISO_8208 0x07
  42. #define BLLI_L3_X223 0x08
  43. #define BLLI_L3_SIO_8473 0x09
  44. #define BLLI_L3_T70 0x0A
  45. #define BLLI_L3_ISO_TR9577 0x0B
  46. #define BLLI_L3_USER_SPECIFIED 0x10
  47. #define BLLI_L3_IPI_SNAP 0x80
  48. #define BLLI_L3_IPI_IP 0xCC
  49. typedef struct {
  50. DWORD Layer2Protocol;
  51. DWORD Layer2UserSpecifiedProtocol;
  52. DWORD Layer3Protocol;
  53. DWORD Layer3UserSpecifiedProtocol;
  54. DWORD Layer3IPI;
  55. UCHAR SnapID[5];
  56. } ATM_BLLI;
  57. #define BHLI_ISO 0x00
  58. #define BHLI_UserSpecific 0x01
  59. #define BHLI_HighLayerProfile 0x02
  60. #define BHLI_VendorSpecificAppId 0x03
  61. typedef struct {
  62. DWORD HighLayerInfoType;
  63. DWORD HighLayerInfoLength;
  64. UCHAR HighLayerInfo[8];
  65. } ATM_BHLI;
  66. typedef struct sockaddr_atm {
  67. u_short satm_family;
  68. ATM_ADDRESS satm_number;
  69. ATM_BLLI satm_blli;
  70. ATM_BHLI satm_bhli;
  71. } sockaddr_atm,SOCKADDR_ATM,*PSOCKADDR_ATM,*LPSOCKADDR_ATM;
  72. typedef enum {
  73. IE_AALParameters,IE_TrafficDescriptor,IE_BroadbandBearerCapability,IE_BHLI,IE_BLLI,IE_CalledPartyNumber,IE_CalledPartySubaddress,
  74. IE_CallingPartyNumber,IE_CallingPartySubaddress,IE_Cause,IE_QOSClass,IE_TransitNetworkSelection
  75. } Q2931_IE_TYPE;
  76. typedef struct {
  77. Q2931_IE_TYPE IEType;
  78. ULONG IELength;
  79. UCHAR IE[1];
  80. } Q2931_IE;
  81. typedef enum {
  82. AALTYPE_5 = 5,AALTYPE_USER = 16
  83. } AAL_TYPE;
  84. #define AAL5_MODE_MESSAGE 0x01
  85. #define AAL5_MODE_STREAMING 0x02
  86. #define AAL5_SSCS_NULL 0x00
  87. #define AAL5_SSCS_SSCOP_ASSURED 0x01
  88. #define AAL5_SSCS_SSCOP_NON_ASSURED 0x02
  89. #define AAL5_SSCS_FRAME_RELAY 0x04
  90. typedef struct {
  91. ULONG ForwardMaxCPCSSDUSize;
  92. ULONG BackwardMaxCPCSSDUSize;
  93. UCHAR Mode;
  94. UCHAR SSCSType;
  95. } AAL5_PARAMETERS;
  96. typedef struct {
  97. ULONG UserDefined;
  98. } AALUSER_PARAMETERS;
  99. typedef struct {
  100. AAL_TYPE AALType;
  101. union {
  102. AAL5_PARAMETERS AAL5Parameters;
  103. AALUSER_PARAMETERS AALUserParameters;
  104. } AALSpecificParameters;
  105. } AAL_PARAMETERS_IE;
  106. typedef struct {
  107. ULONG PeakCellRate_CLP0;
  108. ULONG PeakCellRate_CLP01;
  109. ULONG SustainableCellRate_CLP0;
  110. ULONG SustainableCellRate_CLP01;
  111. ULONG MaxBurstSize_CLP0;
  112. ULONG MaxBurstSize_CLP01;
  113. WINBOOL Tagging;
  114. } ATM_TD;
  115. typedef struct {
  116. ATM_TD Forward;
  117. ATM_TD Backward;
  118. WINBOOL BestEffort;
  119. } ATM_TRAFFIC_DESCRIPTOR_IE;
  120. #define BCOB_A 0x01
  121. #define BCOB_C 0x03
  122. #define BCOB_X 0x10
  123. #define TT_NOIND 0x00
  124. #define TT_CBR 0x04
  125. #define TT_VBR 0x08
  126. #define TR_NOIND 0x00
  127. #define TR_END_TO_END 0x01
  128. #define TR_NO_END_TO_END 0x02
  129. #define CLIP_NOT 0x00
  130. #define CLIP_SUS 0x20
  131. #define UP_P2P 0x00
  132. #define UP_P2MP 0x01
  133. typedef struct {
  134. UCHAR BearerClass;
  135. UCHAR TrafficType;
  136. UCHAR TimingRequirements;
  137. UCHAR ClippingSusceptability;
  138. UCHAR UserPlaneConnectionConfig;
  139. } ATM_BROADBAND_BEARER_CAPABILITY_IE;
  140. typedef ATM_BHLI ATM_BHLI_IE;
  141. #define BLLI_L2_MODE_NORMAL 0x40
  142. #define BLLI_L2_MODE_EXT 0x80
  143. #define BLLI_L3_MODE_NORMAL 0x40
  144. #define BLLI_L3_MODE_EXT 0x80
  145. #define BLLI_L3_PACKET_16 0x04
  146. #define BLLI_L3_PACKET_32 0x05
  147. #define BLLI_L3_PACKET_64 0x06
  148. #define BLLI_L3_PACKET_128 0x07
  149. #define BLLI_L3_PACKET_256 0x08
  150. #define BLLI_L3_PACKET_512 0x09
  151. #define BLLI_L3_PACKET_1024 0x0A
  152. #define BLLI_L3_PACKET_2048 0x0B
  153. #define BLLI_L3_PACKET_4096 0x0C
  154. typedef struct {
  155. DWORD Layer2Protocol;
  156. UCHAR Layer2Mode;
  157. UCHAR Layer2WindowSize;
  158. DWORD Layer2UserSpecifiedProtocol;
  159. DWORD Layer3Protocol;
  160. UCHAR Layer3Mode;
  161. UCHAR Layer3DefaultPacketSize;
  162. UCHAR Layer3PacketWindowSize;
  163. DWORD Layer3UserSpecifiedProtocol;
  164. DWORD Layer3IPI;
  165. UCHAR SnapID[5];
  166. } ATM_BLLI_IE;
  167. typedef ATM_ADDRESS ATM_CALLED_PARTY_NUMBER_IE;
  168. typedef ATM_ADDRESS ATM_CALLED_PARTY_SUBADDRESS_IE;
  169. #define PI_ALLOWED 0x00
  170. #define PI_RESTRICTED 0x40
  171. #define PI_NUMBER_NOT_AVAILABLE 0x80
  172. #define SI_USER_NOT_SCREENED 0x00
  173. #define SI_USER_PASSED 0x01
  174. #define SI_USER_FAILED 0x02
  175. #define SI_NETWORK 0x03
  176. typedef struct {
  177. ATM_ADDRESS ATM_Number;
  178. UCHAR Presentation_Indication;
  179. UCHAR Screening_Indicator;
  180. } ATM_CALLING_PARTY_NUMBER_IE;
  181. typedef ATM_ADDRESS ATM_CALLING_PARTY_SUBADDRESS_IE;
  182. #define CAUSE_LOC_USER 0x00
  183. #define CAUSE_LOC_PRIVATE_LOCAL 0x01
  184. #define CAUSE_LOC_PUBLIC_LOCAL 0x02
  185. #define CAUSE_LOC_TRANSIT_NETWORK 0x03
  186. #define CAUSE_LOC_PUBLIC_REMOTE 0x04
  187. #define CAUSE_LOC_PRIVATE_REMOTE 0x05
  188. #define CAUSE_LOC_INTERNATIONAL_NETWORK 0x07
  189. #define CAUSE_LOC_BEYOND_INTERWORKING 0x0A
  190. #define CAUSE_UNALLOCATED_NUMBER 0x01
  191. #define CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK 0x02
  192. #define CAUSE_NO_ROUTE_TO_DESTINATION 0x03
  193. #define CAUSE_VPI_VCI_UNACCEPTABLE 0x0A
  194. #define CAUSE_NORMAL_CALL_CLEARING 0x10
  195. #define CAUSE_USER_BUSY 0x11
  196. #define CAUSE_NO_USER_RESPONDING 0x12
  197. #define CAUSE_CALL_REJECTED 0x15
  198. #define CAUSE_NUMBER_CHANGED 0x16
  199. #define CAUSE_USER_REJECTS_CLIR 0x17
  200. #define CAUSE_DESTINATION_OUT_OF_ORDER 0x1B
  201. #define CAUSE_INVALID_NUMBER_FORMAT 0x1C
  202. #define CAUSE_STATUS_ENQUIRY_RESPONSE 0x1E
  203. #define CAUSE_NORMAL_UNSPECIFIED 0x1F
  204. #define CAUSE_VPI_VCI_UNAVAILABLE 0x23
  205. #define CAUSE_NETWORK_OUT_OF_ORDER 0x26
  206. #define CAUSE_TEMPORARY_FAILURE 0x29
  207. #define CAUSE_ACCESS_INFORMAION_DISCARDED 0x2B
  208. #define CAUSE_NO_VPI_VCI_AVAILABLE 0x2D
  209. #define CAUSE_RESOURCE_UNAVAILABLE 0x2F
  210. #define CAUSE_QOS_UNAVAILABLE 0x31
  211. #define CAUSE_USER_CELL_RATE_UNAVAILABLE 0x33
  212. #define CAUSE_BEARER_CAPABILITY_UNAUTHORIZED 0x39
  213. #define CAUSE_BEARER_CAPABILITY_UNAVAILABLE 0x3A
  214. #define CAUSE_OPTION_UNAVAILABLE 0x3F
  215. #define CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED 0x41
  216. #define CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS 0x49
  217. #define CAUSE_INVALID_CALL_REFERENCE 0x51
  218. #define CAUSE_CHANNEL_NONEXISTENT 0x52
  219. #define CAUSE_INCOMPATIBLE_DESTINATION 0x58
  220. #define CAUSE_INVALID_ENDPOINT_REFERENCE 0x59
  221. #define CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
  222. #define CAUSE_TOO_MANY_PENDING_ADD_PARTY 0x5C
  223. #define CAUSE_AAL_PARAMETERS_UNSUPPORTED 0x5D
  224. #define CAUSE_MANDATORY_IE_MISSING 0x60
  225. #define CAUSE_UNIMPLEMENTED_MESSAGE_TYPE 0x61
  226. #define CAUSE_UNIMPLEMENTED_IE 0x63
  227. #define CAUSE_INVALID_IE_CONTENTS 0x64
  228. #define CAUSE_INVALID_STATE_FOR_MESSAGE 0x65
  229. #define CAUSE_RECOVERY_ON_TIMEOUT 0x66
  230. #define CAUSE_INCORRECT_MESSAGE_LENGTH 0x68
  231. #define CAUSE_PROTOCOL_ERROR 0x6F
  232. #define CAUSE_COND_UNKNOWN 0x00
  233. #define CAUSE_COND_PERMANENT 0x01
  234. #define CAUSE_COND_TRANSIENT 0x02
  235. #define CAUSE_REASON_USER 0x00
  236. #define CAUSE_REASON_IE_MISSING 0x04
  237. #define CAUSE_REASON_IE_INSUFFICIENT 0x08
  238. #define CAUSE_PU_PROVIDER 0x00
  239. #define CAUSE_PU_USER 0x08
  240. #define CAUSE_NA_NORMAL 0x00
  241. #define CAUSE_NA_ABNORMAL 0x04
  242. typedef struct {
  243. UCHAR Location;
  244. UCHAR Cause;
  245. UCHAR DiagnosticsLength;
  246. UCHAR Diagnostics[4];
  247. } ATM_CAUSE_IE;
  248. #define QOS_CLASS0 0x00
  249. #define QOS_CLASS1 0x01
  250. #define QOS_CLASS2 0x02
  251. #define QOS_CLASS3 0x03
  252. #define QOS_CLASS4 0x04
  253. typedef struct {
  254. UCHAR QOSClassForward;
  255. UCHAR QOSClassBackward;
  256. } ATM_QOS_CLASS_IE;
  257. #define TNS_TYPE_NATIONAL 0x40
  258. #define TNS_PLAN_CARRIER_ID_CODE 0x01
  259. typedef struct {
  260. UCHAR TypeOfNetworkId;
  261. UCHAR NetworkIdPlan;
  262. UCHAR NetworkIdLength;
  263. UCHAR NetworkId[1];
  264. } ATM_TRANSIT_NETWORK_SELECTION_IE;
  265. #define SIO_GET_NUMBER_OF_ATM_DEVICES 0x50160001
  266. #define SIO_GET_ATM_ADDRESS 0xd0160002
  267. #define SIO_ASSOCIATE_PVC 0x90160003
  268. #define SIO_GET_ATM_CONNECTION_ID 0x50160004
  269. typedef struct {
  270. DWORD DeviceNumber;
  271. DWORD VPI;
  272. DWORD VCI;
  273. } ATM_CONNECTION_ID;
  274. typedef struct {
  275. ATM_CONNECTION_ID PvcConnectionId;
  276. QOS PvcQos;
  277. } ATM_PVC_PARAMS;
  278. #include <poppack.h>
  279. #endif