wlan_p2p.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. /*
  2. ** Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/include/wlan_p2p.h#3
  3. */
  4. /*! \file "wlan_p2p.h"
  5. \brief This file contains the declairations of Wi-Fi Direct command
  6. processing routines for MediaTek Inc. 802.11 Wireless LAN Adapters.
  7. */
  8. /*
  9. ** Log: wlan_p2p.h
  10. *
  11. * 07 17 2012 yuche.tsai
  12. * NULL
  13. * Compile no error before trial run.
  14. *
  15. * 11 19 2011 yuche.tsai
  16. * NULL
  17. * Add RSSI support for P2P network.
  18. *
  19. * 11 08 2011 yuche.tsai
  20. * [WCXRP00001094] [Volunteer Patch][Driver] Driver version & supplicant version
  21. * query & set support for service discovery version check.
  22. * Add support for driver version query & p2p supplicant verseion set.
  23. * For new service discovery mechanism sync.
  24. *
  25. * 10 18 2011 yuche.tsai
  26. * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
  27. * Support Channel Query.
  28. *
  29. * 10 18 2011 yuche.tsai
  30. * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
  31. * New 2.1 branch
  32. *
  33. * 04 27 2011 george.huang
  34. * [WCXRP00000684] [MT6620 Wi-Fi][Driver] Support P2P setting ARP filter
  35. * Support P2P ARP filter setting on early suspend/ late resume
  36. *
  37. * 04 08 2011 george.huang
  38. * [WCXRP00000621] [MT6620 Wi-Fi][Driver] Support P2P supplicant to set power mode
  39. * separate settings of P2P and AIS
  40. *
  41. * 03 22 2011 george.huang
  42. * [WCXRP00000504] [MT6620 Wi-Fi][FW] Support Sigma CAPI for power saving related command
  43. * link with supplicant commands
  44. *
  45. * 03 07 2011 wh.su
  46. * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
  47. * rename the define to anti_pviracy.
  48. *
  49. * 03 02 2011 wh.su
  50. * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
  51. * Add Security check related code.
  52. *
  53. * 01 05 2011 cp.wu
  54. * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface
  55. * for supporting Wi-Fi Direct Service Discovery
  56. * ioctl implementations for P2P Service Discovery
  57. *
  58. * 12 22 2010 cp.wu
  59. * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface
  60. * for supporting Wi-Fi Direct Service Discovery
  61. * 1. header file restructure for more clear module isolation
  62. * 2. add function interface definition for implementing Service Discovery callbacks
  63. *
  64. * 09 21 2010 kevin.huang
  65. * [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
  66. * Isolate P2P related function for Hardware Software Bundle
  67. *
  68. * 08 16 2010 cp.wu
  69. * NULL
  70. * add subroutines for P2P to set multicast list.
  71. *
  72. * 08 16 2010 george.huang
  73. * NULL
  74. * support wlanoidSetP2pPowerSaveProfile() in P2P
  75. *
  76. * 08 16 2010 george.huang
  77. * NULL
  78. * Support wlanoidSetNetworkAddress() for P2P
  79. *
  80. * 07 08 2010 cp.wu
  81. *
  82. * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
  83. *
  84. * 06 06 2010 kevin.huang
  85. * [WPD00003832][MT6620 5931] Create driver base
  86. * [MT6620 5931] Create driver base
  87. *
  88. * 05 17 2010 cp.wu
  89. * [WPD00001943]Create WiFi test driver framework on WinXP
  90. * MT6620 is not supporting NDIS_PACKET_TYPE_PROMISCUOUS.
  91. *
  92. *
  93. **
  94. */
  95. #ifndef _WLAN_P2P_H
  96. #define _WLAN_P2P_H
  97. /*******************************************************************************
  98. * C O M P I L E R F L A G S
  99. ********************************************************************************
  100. */
  101. /*******************************************************************************
  102. * E X T E R N A L R E F E R E N C E S
  103. ********************************************************************************
  104. */
  105. #if CFG_ENABLE_WIFI_DIRECT
  106. /*******************************************************************************
  107. * C O N S T A N T S
  108. ********************************************************************************
  109. */
  110. /*******************************************************************************
  111. * P U B L I C D A T A
  112. ********************************************************************************
  113. */
  114. /* Service Discovery */
  115. typedef struct _PARAM_P2P_SEND_SD_RESPONSE {
  116. PARAM_MAC_ADDRESS rReceiverAddr;
  117. UINT_8 fgNeedTxDoneIndication;
  118. UINT_8 ucChannelNum;
  119. UINT_16 u2PacketLength;
  120. UINT_8 aucPacketContent[0]; /*native 802.11 */
  121. } PARAM_P2P_SEND_SD_RESPONSE, *P_PARAM_P2P_SEND_SD_RESPONSE;
  122. typedef struct _PARAM_P2P_GET_SD_REQUEST {
  123. PARAM_MAC_ADDRESS rTransmitterAddr;
  124. UINT_16 u2PacketLength;
  125. UINT_8 aucPacketContent[0]; /*native 802.11 */
  126. } PARAM_P2P_GET_SD_REQUEST, *P_PARAM_P2P_GET_SD_REQUEST;
  127. typedef struct _PARAM_P2P_GET_SD_REQUEST_EX {
  128. PARAM_MAC_ADDRESS rTransmitterAddr;
  129. UINT_16 u2PacketLength;
  130. UINT_8 ucChannelNum; /* Channel Number Where SD Request is received. */
  131. UINT_8 ucSeqNum; /* Get SD Request by sequence number. */
  132. UINT_8 aucPacketContent[0]; /*native 802.11 */
  133. } PARAM_P2P_GET_SD_REQUEST_EX, *P_PARAM_P2P_GET_SD_REQUEST_EX;
  134. typedef struct _PARAM_P2P_SEND_SD_REQUEST {
  135. PARAM_MAC_ADDRESS rReceiverAddr;
  136. UINT_8 fgNeedTxDoneIndication;
  137. UINT_8 ucVersionNum; /* Indicate the Service Discovery Supplicant Version. */
  138. UINT_16 u2PacketLength;
  139. UINT_8 aucPacketContent[0]; /*native 802.11 */
  140. } PARAM_P2P_SEND_SD_REQUEST, *P_PARAM_P2P_SEND_SD_REQUEST;
  141. /* Service Discovery 1.0. */
  142. typedef struct _PARAM_P2P_GET_SD_RESPONSE {
  143. PARAM_MAC_ADDRESS rTransmitterAddr;
  144. UINT_16 u2PacketLength;
  145. UINT_8 aucPacketContent[0]; /*native 802.11 */
  146. } PARAM_P2P_GET_SD_RESPONSE, *P_PARAM_P2P_GET_SD_RESPONSE;
  147. /* Service Discovery 2.0. */
  148. typedef struct _PARAM_P2P_GET_SD_RESPONSE_EX {
  149. PARAM_MAC_ADDRESS rTransmitterAddr;
  150. UINT_16 u2PacketLength;
  151. UINT_8 ucSeqNum; /* Get SD Response by sequence number. */
  152. UINT_8 aucPacketContent[0]; /*native 802.11 */
  153. } PARAM_P2P_GET_SD_RESPONSE_EX, *P_PARAM_P2P_GET_SD_RESPONSE_EX;
  154. typedef struct _PARAM_P2P_TERMINATE_SD_PHASE {
  155. PARAM_MAC_ADDRESS rPeerAddr;
  156. } PARAM_P2P_TERMINATE_SD_PHASE, *P_PARAM_P2P_TERMINATE_SD_PHASE;
  157. /*! \brief Key mapping of BSSID */
  158. typedef struct _P2P_PARAM_KEY_T {
  159. UINT_32 u4Length; /*!< Length of structure */
  160. UINT_32 u4KeyIndex; /*!< KeyID */
  161. UINT_32 u4KeyLength; /*!< Key length in bytes */
  162. PARAM_MAC_ADDRESS arBSSID; /*!< MAC address */
  163. PARAM_KEY_RSC rKeyRSC;
  164. UINT_8 aucKeyMaterial[32]; /*!< Key content by above setting */
  165. } P2P_PARAM_KEY_T, *P_P2P_PARAM_KEY_T;
  166. /*******************************************************************************
  167. * P R I V A T E D A T A
  168. ********************************************************************************
  169. */
  170. /*******************************************************************************
  171. * M A C R O S
  172. ********************************************************************************
  173. */
  174. /*******************************************************************************
  175. * F U N C T I O N D E C L A R A T I O N S
  176. ********************************************************************************
  177. */
  178. /*--------------------------------------------------------------*/
  179. /* Routines to handle command */
  180. /*--------------------------------------------------------------*/
  181. WLAN_STATUS
  182. wlanoidSetAddP2PKey(IN P_ADAPTER_T prAdapter,
  183. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  184. WLAN_STATUS
  185. wlanoidSetRemoveP2PKey(IN P_ADAPTER_T prAdapter,
  186. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  187. WLAN_STATUS
  188. wlanoidSetNetworkAddress(IN P_ADAPTER_T prAdapter,
  189. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  190. WLAN_STATUS
  191. wlanoidSetP2PMulticastList(IN P_ADAPTER_T prAdapter,
  192. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  193. /*--------------------------------------------------------------*/
  194. /* Service Discovery Subroutines */
  195. /*--------------------------------------------------------------*/
  196. WLAN_STATUS
  197. wlanoidSendP2PSDRequest(IN P_ADAPTER_T prAdapter,
  198. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  199. WLAN_STATUS
  200. wlanoidSendP2PSDResponse(IN P_ADAPTER_T prAdapter,
  201. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  202. WLAN_STATUS
  203. wlanoidGetP2PSDRequest(IN P_ADAPTER_T prAdapter,
  204. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  205. WLAN_STATUS
  206. wlanoidGetP2PSDResponse(IN P_ADAPTER_T prAdapter,
  207. IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 puQueryInfoLen);
  208. WLAN_STATUS
  209. wlanoidSetP2PTerminateSDPhase(IN P_ADAPTER_T prAdapter,
  210. IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
  211. #if CFG_SUPPORT_ANTI_PIRACY
  212. WLAN_STATUS
  213. wlanoidSetSecCheckRequest(IN P_ADAPTER_T prAdapter,
  214. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  215. WLAN_STATUS
  216. wlanoidGetSecCheckResponse(IN P_ADAPTER_T prAdapter,
  217. IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
  218. #endif
  219. WLAN_STATUS
  220. wlanoidSetNoaParam(IN P_ADAPTER_T prAdapter,
  221. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  222. WLAN_STATUS
  223. wlanoidSetOppPsParam(IN P_ADAPTER_T prAdapter,
  224. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  225. WLAN_STATUS
  226. wlanoidSetUApsdParam(IN P_ADAPTER_T prAdapter,
  227. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  228. WLAN_STATUS
  229. wlanoidQueryP2pPowerSaveProfile(IN P_ADAPTER_T prAdapter,
  230. IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
  231. WLAN_STATUS
  232. wlanoidSetP2pPowerSaveProfile(IN P_ADAPTER_T prAdapter,
  233. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  234. WLAN_STATUS
  235. wlanoidSetP2pSetNetworkAddress(IN P_ADAPTER_T prAdapter,
  236. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  237. WLAN_STATUS
  238. wlanoidQueryP2pOpChannel(IN P_ADAPTER_T prAdapter,
  239. IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
  240. WLAN_STATUS
  241. wlanoidQueryP2pVersion(IN P_ADAPTER_T prAdapter,
  242. IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
  243. WLAN_STATUS
  244. wlanoidSetP2pSupplicantVersion(IN P_ADAPTER_T prAdapter,
  245. IN PVOID pvSetBuffer, IN UINT_32 u4SetBufferLen, OUT PUINT_32 pu4SetInfoLen);
  246. WLAN_STATUS
  247. wlanoidSetP2pWPSmode(IN P_ADAPTER_T prAdapter,
  248. IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
  249. #if CFG_SUPPORT_P2P_RSSI_QUERY
  250. WLAN_STATUS
  251. wlanoidQueryP2pRssi(IN P_ADAPTER_T prAdapter,
  252. IN PVOID pvQueryBuffer, IN UINT_32 u4QueryBufferLen, OUT PUINT_32 pu4QueryInfoLen);
  253. #endif
  254. /*--------------------------------------------------------------*/
  255. /* Callbacks for event indication */
  256. /*--------------------------------------------------------------*/
  257. /*******************************************************************************
  258. * F U N C T I O N S
  259. ********************************************************************************
  260. */
  261. #endif
  262. #endif /* _WLAN_P2P_H */