wlan_p2p.h 12 KB

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