hs20.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. /*
  2. ** Id: //Department/DaVinci/BRANCHES/HS2_DEV_SW/MT6620_WIFI_DRIVER_V2_1_HS_2_0/include/mgmt/hs20.h#2
  3. */
  4. /*! \file hs20.h
  5. \brief This file contains the function declaration for hs20.c.
  6. */
  7. /*
  8. ** Log:
  9. *
  10. */
  11. #ifndef _HS20_H
  12. #define _HS20_H
  13. #if CFG_SUPPORT_HOTSPOT_2_0
  14. /*******************************************************************************
  15. * C O M P I L E R F L A G S
  16. ********************************************************************************
  17. */
  18. /*******************************************************************************
  19. * E X T E R N A L R E F E R E N C E S
  20. ********************************************************************************
  21. */
  22. /*******************************************************************************
  23. * C O N S T A N T S
  24. ********************************************************************************
  25. */
  26. #define BSSID_POOL_MAX_SIZE 8
  27. #define HS20_SIGMA_SCAN_RESULT_TIMEOUT 30 /* sec */
  28. /*******************************************************************************
  29. * D A T A T Y P E S
  30. ********************************************************************************
  31. */
  32. #if CFG_ENABLE_GTK_FRAME_FILTER
  33. /*For GTK Frame Filter*/
  34. typedef struct _IPV4_NETWORK_ADDRESS_LIST {
  35. UINT_8 ucAddrCount;
  36. IPV4_NETWORK_ADDRESS arNetAddr[1];
  37. } IPV4_NETWORK_ADDRESS_LIST, *P_IPV4_NETWORK_ADDRESS_LIST;
  38. #endif
  39. /* Entry of BSSID Pool - For SIGMA Test */
  40. typedef struct _BSSID_ENTRY_T {
  41. UINT_8 aucBSSID[MAC_ADDR_LEN];
  42. } BSSID_ENTRY_T, P_HS20_BSSID_POOL_ENTRY_T;
  43. struct _HS20_INFO_T {
  44. /*Hotspot 2.0 Information */
  45. UINT_8 aucHESSID[MAC_ADDR_LEN];
  46. UINT_8 ucAccessNetworkOptions;
  47. UINT_8 ucVenueGroup; /* VenueInfo - Group */
  48. UINT_8 ucVenueType;
  49. UINT_8 ucHotspotConfig;
  50. /*Roaming Consortium Information */
  51. /* PARAM_HS20_ROAMING_CONSORTIUM_INFO rRCInfo; */
  52. /*Hotspot 2.0 dummy AP Info */
  53. /*Time Advertisement Information */
  54. /* UINT_32 u4UTCOffsetTime; */
  55. /* UINT_8 aucTimeZone[ELEM_MAX_LEN_TIME_ZONE]; */
  56. /* UINT_8 ucLenTimeZone; */
  57. /* For SIGMA Test */
  58. /* BSSID Pool */
  59. BSSID_ENTRY_T arBssidPool[BSSID_POOL_MAX_SIZE];
  60. UINT_8 ucNumBssidPoolEntry;
  61. BOOLEAN fgIsHS2SigmaMode;
  62. };
  63. /*******************************************************************************
  64. * P U B L I C D A T A
  65. ********************************************************************************
  66. */
  67. /*******************************************************************************
  68. * P R I V A T E D A T A
  69. ********************************************************************************
  70. */
  71. /*******************************************************************************
  72. * M A C R O S
  73. ********************************************************************************
  74. */
  75. /*For GTK Frame Filter*/
  76. #if DBG
  77. #define FREE_IPV4_NETWORK_ADDR_LIST(_prAddrList) \
  78. { \
  79. UINT_32 u4Size = OFFSET_OF(IPV4_NETWORK_ADDRESS_LIST, arNetAddr) + \
  80. (((_prAddrList)->ucAddrCount) * sizeof(IPV4_NETWORK_ADDRESS)); \
  81. kalMemFree((_prAddrList), VIR_MEM_TYPE, u4Size); \
  82. (_prAddrList) = NULL; \
  83. }
  84. #else
  85. #define FREE_IPV4_NETWORK_ADDR_LIST(_prAddrList) \
  86. { \
  87. kalMemFree((_prAddrList), VIR_MEM_TYPE, 0); \
  88. (_prAddrList) = NULL; \
  89. }
  90. #endif
  91. /*******************************************************************************
  92. * F U N C T I O N S
  93. ********************************************************************************
  94. */
  95. VOID hs20GenerateInterworkingIE(IN P_ADAPTER_T prAdapter, OUT P_MSDU_INFO_T prMsduInfo);
  96. VOID hs20GenerateRoamingConsortiumIE(IN P_ADAPTER_T prAdapter, OUT P_MSDU_INFO_T prMsduInfo);
  97. VOID hs20GenerateHS20IE(IN P_ADAPTER_T prAdapter, OUT P_MSDU_INFO_T prMsduInfo);
  98. VOID hs20FillExtCapIE(P_ADAPTER_T prAdapter, P_BSS_INFO_T prBssInfo, P_MSDU_INFO_T prMsduInfo);
  99. VOID hs20FillProreqExtCapIE(IN P_ADAPTER_T prAdapter, OUT PUINT_8 pucIE);
  100. VOID hs20FillHS20IE(IN P_ADAPTER_T prAdapter, OUT PUINT_8 pucIE);
  101. UINT_32 hs20CalculateHS20RelatedIEForProbeReq(IN P_ADAPTER_T prAdapter, IN PUINT_8 pucTargetBSSID);
  102. WLAN_STATUS hs20GenerateHS20RelatedIEForProbeReq(IN P_ADAPTER_T prAdapter, IN PUINT_8 pucTargetBSSID, OUT PUINT_8 prIE);
  103. BOOLEAN hs20IsGratuitousArp(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prCurrSwRfb);
  104. BOOLEAN hs20IsUnsolicitedNeighborAdv(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prCurrSwRfb);
  105. #if CFG_ENABLE_GTK_FRAME_FILTER
  106. BOOLEAN hs20IsForgedGTKFrame(IN P_ADAPTER_T prAdapter, IN P_BSS_INFO_T prBssInfo, IN P_SW_RFB_T prCurrSwRfb);
  107. #endif
  108. BOOLEAN hs20IsUnsecuredFrame(IN P_ADAPTER_T prAdapter, IN P_BSS_INFO_T prBssInfo, IN P_SW_RFB_T prCurrSwRfb);
  109. BOOLEAN hs20IsFrameFilterEnabled(IN P_ADAPTER_T prAdapter, IN P_BSS_INFO_T prBssInfo);
  110. WLAN_STATUS hs20SetBssidPool(IN P_ADAPTER_T prAdapter, IN PVOID pvBuffer, IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIdx);
  111. #endif
  112. #endif