| /* |
| * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved. |
| * |
| * Previously licensed under the ISC license by Qualcomm Atheros, Inc. |
| * |
| * |
| * Permission to use, copy, modify, and/or distribute this software for |
| * any purpose with or without fee is hereby granted, provided that the |
| * above copyright notice and this permission notice appear in all |
| * copies. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL |
| * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE |
| * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL |
| * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR |
| * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
| * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
| * PERFORMANCE OF THIS SOFTWARE. |
| */ |
| |
| /* |
| * This file was originally distributed by Qualcomm Atheros, Inc. |
| * under proprietary terms before Copyright ownership was assigned |
| * to the Linux Foundation. |
| */ |
| |
| #ifndef WLAN_QCT_WLANSAP_H |
| #define WLAN_QCT_WLANSAP_H |
| |
| /*=========================================================================== |
| |
| W L A N S O F T A P P A L L A Y E R |
| E X T E R N A L A P I |
| |
| |
| DESCRIPTION |
| This file contains the external API exposed by the wlan SAP PAL layer |
| module. |
| ===========================================================================*/ |
| |
| |
| /*=========================================================================== |
| |
| EDIT HISTORY FOR FILE |
| |
| |
| This section contains comments describing changes made to the module. |
| Notice that changes are listed in reverse chronological order. |
| |
| |
| $Header: /cygdrive/d/Builds/M7201JSDCAAPAD52240B/WM/platform/msm7200/Src/Drivers/SD/ClientDrivers/WLAN/QCT_BTAMP_RSN/CORE/SAP/inc/sapApi.h,v 1.21 2009/03/09 08:58:26 jzmuda Exp jzmuda $ $DateTime: $ $Author: jzmuda $ |
| |
| |
| when who what, where, why |
| -------- --- ---------------------------------------------------------- |
| 07/01/08 SAP team Created module. |
| |
| ===========================================================================*/ |
| |
| |
| |
| /*=========================================================================== |
| |
| INCLUDE FILES FOR MODULE |
| |
| ===========================================================================*/ |
| |
| /*---------------------------------------------------------------------------- |
| * Include Files |
| * -------------------------------------------------------------------------*/ |
| #include "vos_api.h" |
| #include "vos_packet.h" |
| #include "vos_types.h" |
| |
| #include "wlan_defs.h" |
| |
| #include "p2p_Api.h" |
| #include "sme_Api.h" |
| /*---------------------------------------------------------------------------- |
| * Preprocessor Definitions and Constants |
| * -------------------------------------------------------------------------*/ |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| |
| |
| /*---------------------------------------------------------------------------- |
| * Defines |
| * -------------------------------------------------------------------------*/ |
| |
| /*-------------------------------------------------------------------------- |
| defines and enum |
| ------------------------------------------------------------------------*/ |
| |
| #define MAX_SSID_LEN 32 |
| #define MAX_ACL_MAC_ADDRESS 32 |
| #define AUTO_CHANNEL_SELECT 0 |
| #define MAX_ASSOC_IND_IE_LEN 255 |
| |
| #define MAX_NAME_SIZE 64 |
| #define MAX_TEXT_SIZE 32 |
| |
| #define MAX_CHANNEL_LIST_LEN 256 |
| /* |
| * max # of SAP |
| */ |
| #ifdef WLAN_4SAP_CONCURRENCY |
| #define VOS_MAX_NO_OF_SAP_MODE 4 |
| #else |
| #define VOS_MAX_NO_OF_SAP_MODE 2 |
| #endif |
| #define SAP_MAX_NUM_SESSION 5 |
| #define SAP_MAX_OBSS_STA_CNT 1 // max # of OBSS STA |
| |
| /*-------------------------------------------------------------------------- |
| reasonCode take form 802.11 standard Table 7-22 to be passed to WLANSAP_DisassocSta api. |
| ------------------------------------------------------------------------*/ |
| |
| typedef enum{ |
| eSAP_RC_RESERVED0, /*0*/ |
| eSAP_RC_UNSPECIFIED, /*1*/ |
| eSAP_RC_PREV_AUTH_INVALID, /*2*/ |
| eSAP_RC_STA_LEFT_DEAUTH, /*3*/ |
| eSAP_RC_INACTIVITY_DISASSOC, /*4*/ |
| eSAP_RC_AP_CAPACITY_FULL, /*5*/ |
| eSAP_RC_CLS2_FROM_NON_AUTH_STA, /*6*/ |
| eSAP_RC_CLS3_FROM_NON_AUTH_STA, /*7*/ |
| eSAP_RC_STA_LEFT_DISASSOC, /*8*/ |
| eSAP_RC_STA_NOT_AUTH, /*9*/ |
| eSAP_RC_PC_UNACCEPTABLE, /*10*/ |
| eSAP_RC_SC_UNACCEPTABLE, /*11*/ |
| eSAP_RC_RESERVED1, /*12*/ |
| eSAP_RC_INVALID_IE, /*13*/ |
| eSAP_RC_MIC_FAIL, /*14*/ |
| eSAP_RC_4_WAY_HANDSHAKE_TO, /*15*/ |
| eSAP_RC_GO_KEY_HANDSHAKE_TO, /*16*/ |
| eSAP_RC_IE_MISMATCH, /*17*/ |
| eSAP_RC_INVALID_GRP_CHIPHER, /*18*/ |
| eSAP_RC_INVALID_PAIR_CHIPHER, /*19*/ |
| eSAP_RC_INVALID_AKMP, /*20*/ |
| eSAP_RC_UNSUPPORTED_RSN, /*21*/ |
| eSAP_RC_INVALID_RSN, /*22*/ |
| eSAP_RC_1X_AUTH_FAILED, /*23*/ |
| eSAP_RC_CHIPER_SUITE_REJECTED, /*24*/ |
| }eSapReasonCode; |
| |
| typedef enum { |
| eSAP_ACCEPT_UNLESS_DENIED = 0, |
| eSAP_DENY_UNLESS_ACCEPTED = 1, |
| eSAP_SUPPORT_ACCEPT_AND_DENY = 2, /* this type is added to support both accept and deny lists at the same time */ |
| eSAP_ALLOW_ALL = 3, /*In this mode all MAC addresses are allowed to connect*/ |
| } eSapMacAddrACL; |
| |
| typedef enum { |
| eSAP_BLACK_LIST = 0, /* List of mac addresses NOT allowed to assoc */ |
| eSAP_WHITE_LIST = 1, /* List of mac addresses allowed to assoc */ |
| } eSapACLType; |
| |
| typedef enum { |
| ADD_STA_TO_ACL = 0, /* cmd to add STA to access control list */ |
| DELETE_STA_FROM_ACL = 1, /* cmd to delete STA from access control list */ |
| } eSapACLCmdType; |
| |
| typedef enum { |
| eSAP_START_BSS_EVENT = 0, /*Event sent when BSS is started*/ |
| eSAP_STOP_BSS_EVENT, /*Event sent when BSS is stopped*/ |
| eSAP_STA_ASSOC_IND, /* Indicate the association request to upper layers */ |
| eSAP_STA_ASSOC_EVENT, /*Event sent when we have successfully associated a station and |
| upper layer neeeds to allocate a context*/ |
| eSAP_STA_REASSOC_EVENT, /*Event sent when we have successfully reassociated a station and |
| upper layer neeeds to allocate a context*/ |
| eSAP_STA_DISASSOC_EVENT, /*Event sent when associated a station has disassociated as a result of various conditions */ |
| eSAP_STA_SET_KEY_EVENT, /*Event sent when user called WLANSAP_SetKeySta */ |
| eSAP_STA_DEL_KEY_EVENT, /*Event sent when user called WLANSAP_DelKeySta */ |
| eSAP_STA_MIC_FAILURE_EVENT, /*Event sent whenever there is MIC failure detected */ |
| eSAP_ASSOC_STA_CALLBACK_EVENT, /*Event sent when user called WLANSAP_GetAssocStations */ |
| eSAP_GET_WPSPBC_SESSION_EVENT, /* Event send when user call WLANSAP_getWpsSessionOverlap */ |
| eSAP_WPS_PBC_PROBE_REQ_EVENT, /* Event send on WPS PBC probe request is received */ |
| eSAP_REMAIN_CHAN_READY, |
| eSAP_DISCONNECT_ALL_P2P_CLIENT, |
| eSAP_MAC_TRIG_STOP_BSS_EVENT, |
| eSAP_UNKNOWN_STA_JOIN, /* Event send when a STA in neither white list or black list tries to associate in softap mode */ |
| eSAP_MAX_ASSOC_EXCEEDED, /* Event send when a new STA is rejected association since softAP max assoc limit has reached */ |
| eSAP_CHANNEL_CHANGE_EVENT, |
| eSAP_DFS_CAC_START, |
| eSAP_DFS_CAC_INTERRUPTED, |
| eSAP_DFS_CAC_END, |
| eSAP_DFS_RADAR_DETECT, |
| eSAP_DFS_NOL_GET, /* Event sent when user need to get the DFS NOL from CNSS */ |
| eSAP_DFS_NOL_SET, /* Event sent when user need to set the DFS NOL to CNSS */ |
| eSAP_DFS_NO_AVAILABLE_CHANNEL, /* No ch available after DFS RADAR detect */ |
| eSAP_ACS_SCAN_SUCCESS_EVENT, |
| eSAP_ACS_CHANNEL_SELECTED, |
| eSAP_ECSA_CHANGE_CHAN_IND, |
| } eSapHddEvent; |
| |
| typedef enum { |
| eSAP_OPEN_SYSTEM, |
| eSAP_SHARED_KEY, |
| eSAP_AUTO_SWITCH |
| } eSapAuthType; |
| |
| typedef enum { |
| eSAP_MAC_INITATED_DISASSOC = 0x10000, /*Disassociation was internally initated from CORE stack*/ |
| eSAP_USR_INITATED_DISASSOC /*Disassociation was internally initated from host by invoking WLANSAP_DisassocSta call*/ |
| } eSapDisassocReason; |
| |
| /*Handle boolean over here*/ |
| typedef enum { |
| eSAP_FALSE, |
| eSAP_TRUE, |
| }eSapBool; |
| |
| typedef enum { |
| eSAP_DFS_NOL_CLEAR, |
| eSAP_DFS_NOL_RANDOMIZE, |
| }eSapDfsNolType; |
| |
| /*--------------------------------------------------------------------------- |
| SAP PAL "status" and "reason" error code defines |
| ---------------------------------------------------------------------------*/ |
| typedef enum { |
| eSAP_STATUS_SUCCESS, /* Success. */ |
| eSAP_STATUS_FAILURE, /* General Failure. */ |
| eSAP_START_BSS_CHANNEL_NOT_SELECTED, /* Channel not selected during intial scan. */ |
| eSAP_ERROR_MAC_START_FAIL, /* Failed to start Infra BSS */ |
| }eSapStatus; |
| |
| /*--------------------------------------------------------------------------- |
| SAP PAL "status" and "reason" error code defines |
| ---------------------------------------------------------------------------*/ |
| typedef enum { |
| eSAP_WPSPBC_OVERLAP_IN120S, /* Overlap */ |
| eSAP_WPSPBC_NO_WPSPBC_PROBE_REQ_IN120S, /* no WPS probe request in 120 second */ |
| eSAP_WPSPBC_ONE_WPSPBC_PROBE_REQ_IN120S, /* One WPS probe request in 120 second */ |
| }eWPSPBCOverlap; |
| |
| /*---------------------------------------------------------------------------- |
| * Typedefs |
| * -------------------------------------------------------------------------*/ |
| typedef struct sap_StartBssCompleteEvent_s { |
| v_U8_t status; |
| v_U8_t operatingChannel; |
| v_U16_t staId; //self StaID |
| v_U8_t sessionId; /* SoftAP SME session ID */ |
| } tSap_StartBssCompleteEvent; |
| |
| typedef struct sap_StopBssCompleteEvent_s { |
| v_U8_t status; |
| } tSap_StopBssCompleteEvent; |
| |
| typedef struct sap_StationAssocIndication_s { |
| v_MACADDR_t staMac; |
| v_U8_t assoId; |
| v_U8_t staId; |
| v_U8_t status; |
| // Required for indicating the frames to upper layer |
| tANI_U32 beaconLength; |
| tANI_U8* beaconPtr; |
| tANI_U32 assocReqLength; |
| tANI_U8* assocReqPtr; |
| tANI_BOOLEAN fWmmEnabled; |
| eCsrAuthType negotiatedAuthType; |
| eCsrEncryptionType negotiatedUCEncryptionType; |
| eCsrEncryptionType negotiatedMCEncryptionType; |
| tANI_BOOLEAN fAuthRequired; |
| uint8_t ecsa_capable; |
| } tSap_StationAssocIndication; |
| |
| typedef struct sap_StationAssocReassocCompleteEvent_s { |
| v_MACADDR_t staMac; |
| v_U8_t staId; |
| v_U8_t status; |
| v_U8_t ies[MAX_ASSOC_IND_IE_LEN]; |
| v_U16_t iesLen; |
| v_U32_t statusCode; |
| eSapAuthType SapAuthType; |
| v_BOOL_t wmmEnabled; |
| // Required for indicating the frames to upper layer |
| tANI_U32 beaconLength; |
| tANI_U8* beaconPtr; |
| tANI_U32 assocReqLength; |
| tANI_U8* assocReqPtr; |
| tANI_U32 assocRespLength; |
| tANI_U8* assocRespPtr; |
| tANI_U8 timingMeasCap; |
| tSirSmeChanInfo chan_info; |
| uint8_t ecsa_capable; |
| bool ampdu; |
| bool sgi_enable; |
| bool tx_stbc; |
| bool rx_stbc; |
| tSirMacHTChannelWidth ch_width; |
| enum sir_sme_phy_mode mode; |
| uint8_t max_supp_idx; |
| uint8_t max_ext_idx; |
| uint8_t max_mcs_idx; |
| uint8_t rx_mcs_map; |
| uint8_t tx_mcs_map; |
| } tSap_StationAssocReassocCompleteEvent; |
| |
| typedef struct sap_StationDisassocCompleteEvent_s { |
| v_MACADDR_t staMac; |
| v_U8_t staId; //STAID should not be used |
| v_U8_t status; |
| v_U32_t statusCode; |
| eSapDisassocReason reason; |
| } tSap_StationDisassocCompleteEvent; |
| |
| typedef struct sap_StationSetKeyCompleteEvent_s { |
| v_U8_t status; |
| v_MACADDR_t peerMacAddr; |
| } tSap_StationSetKeyCompleteEvent; |
| |
| /*struct corresponding to SAP_STA_DEL_KEY_EVENT */ |
| typedef struct sap_StationDeleteKeyCompleteEvent_s { |
| v_U8_t status; |
| v_U8_t keyId; /* Key index */ |
| } tSap_StationDeleteKeyCompleteEvent; |
| |
| /*struct corresponding to SAP_STA_MIC_FAILURE_EVENT */ |
| typedef struct sap_StationMICFailureEvent_s { |
| v_MACADDR_t srcMacAddr; //address used to compute MIC |
| v_MACADDR_t staMac; //taMacAddr transmitter address |
| v_MACADDR_t dstMacAddr; |
| eSapBool multicast; |
| v_U8_t IV1; // first byte of IV |
| v_U8_t keyId; // second byte of IV |
| v_U8_t TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number |
| |
| } tSap_StationMICFailureEvent; |
| /*Structure to return MAC address of associated stations */ |
| typedef struct sap_AssocMacAddr_s { |
| v_MACADDR_t staMac; /*MAC address of Station that is associated*/ |
| v_U8_t assocId; /*Association ID for the station that is associated*/ |
| v_U8_t staId; /*Station Id that is allocated to the station*/ |
| v_U8_t ShortGI40Mhz; |
| v_U8_t ShortGI20Mhz; |
| v_U8_t Support40Mhz; |
| v_U32_t requestedMCRate; |
| tSirSupportedRates supportedRates; |
| } tSap_AssocMacAddr, *tpSap_AssocMacAddr; |
| |
| /*struct corresponding to SAP_ASSOC_STA_CALLBACK_EVENT */ |
| typedef struct sap_AssocStaListEvent_s { |
| VOS_MODULE_ID module; /* module id that was passed in WLANSAP_GetAssocStations API*/ |
| v_U8_t noOfAssocSta; /* Number of associated stations*/ |
| tpSap_AssocMacAddr pAssocStas; /*Pointer to pre allocated memory to obtain list of associated |
| stations passed in WLANSAP_GetAssocStations API*/ |
| } tSap_AssocStaListEvent; |
| |
| typedef struct sap_GetWPSPBCSessionEvent_s { |
| v_U8_t status; |
| VOS_MODULE_ID module; /* module id that was passed in WLANSAP_GetAssocStations API*/ |
| v_U8_t UUID_E[16]; // Unique identifier of the AP. |
| v_MACADDR_t addr; |
| eWPSPBCOverlap wpsPBCOverlap; |
| } tSap_GetWPSPBCSessionEvent; |
| |
| typedef struct sap_WPSPBCProbeReqEvent_s { |
| v_U8_t status; |
| VOS_MODULE_ID module; /* module id that was passed in WLANSAP_GetAssocStations API*/ |
| tSirWPSPBCProbeReq WPSPBCProbeReq; |
| } tSap_WPSPBCProbeReqEvent; |
| |
| typedef struct sap_ManagementFrameInfo_s { |
| tANI_U32 nFrameLength; |
| tANI_U8 frameType; |
| tANI_U32 rxChan; //Channel of where packet is received |
| tANI_U8 *pbFrames; //Point to a buffer contain the beacon, assoc req, assoc rsp frame, in that order |
| //user needs to use nBeaconLength, nAssocReqLength, nAssocRspLength to desice where |
| //each frame starts and ends. |
| } tSap_ManagementFrameInfo; |
| |
| typedef struct sap_SendActionCnf_s { |
| eSapStatus actionSendSuccess; |
| } tSap_SendActionCnf; |
| |
| typedef struct sap_UnknownSTAJoinEvent_s { |
| v_MACADDR_t macaddr; |
| } tSap_UnknownSTAJoinEvent; |
| |
| typedef struct sap_MaxAssocExceededEvent_s { |
| v_MACADDR_t macaddr; |
| } tSap_MaxAssocExceededEvent; |
| |
| typedef struct sap_DfsNolInfo_s { |
| v_U16_t sDfsList; /* size of pDfsList in byte */ |
| v_PVOID_t pDfsList; /* pointer to pDfsList buffer */ |
| } tSap_DfsNolInfo; |
| |
| typedef struct sap_ChSelected_s { |
| uint16_t pri_ch; |
| uint16_t ht_sec_ch; |
| uint16_t vht_seg0_center_ch; |
| uint16_t vht_seg1_center_ch; |
| uint16_t ch_width; |
| } tSap_ChSelectedEvent; |
| |
| /** |
| * struct tsap_acs_scan_complete_event - acs scan complete event |
| * @status: status of acs scan |
| * @channellist: acs scan channels |
| * @num_of_channels: number of channels |
| */ |
| struct tsap_acs_scan_complete_event{ |
| uint8_t status; |
| uint8_t *channellist; |
| uint8_t num_of_channels; |
| }; |
| |
| /** |
| * struct sap_ch_change_ind - channel change indication |
| * @new_chan: channel to change |
| */ |
| struct sap_ch_change_ind { |
| uint16_t new_chan; |
| }; |
| |
| |
| /* |
| This struct will be filled in and passed to tpWLAN_SAPEventCB that is provided during WLANSAP_StartBss call |
| The event id corresponding to structure in the union is defined in comment next to the structure |
| */ |
| |
| typedef struct sap_Event_s { |
| eSapHddEvent sapHddEventCode; |
| union { |
| tSap_StartBssCompleteEvent sapStartBssCompleteEvent; /*SAP_START_BSS_EVENT*/ |
| tSap_StopBssCompleteEvent sapStopBssCompleteEvent; /*SAP_STOP_BSS_EVENT*/ |
| tSap_StationAssocIndication sapAssocIndication; /*SAP_ASSOC_INDICATION */ |
| tSap_StationAssocReassocCompleteEvent sapStationAssocReassocCompleteEvent; /*SAP_STA_ASSOC_EVENT, SAP_STA_REASSOC_EVENT*/ |
| tSap_StationDisassocCompleteEvent sapStationDisassocCompleteEvent;/*SAP_STA_DISASSOC_EVENT*/ |
| tSap_StationSetKeyCompleteEvent sapStationSetKeyCompleteEvent;/*SAP_STA_SET_KEY_EVENT*/ |
| tSap_StationDeleteKeyCompleteEvent sapStationDeleteKeyCompleteEvent;/*SAP_STA_DEL_KEY_EVENT*/ |
| tSap_StationMICFailureEvent sapStationMICFailureEvent; /*SAP_STA_MIC_FAILURE_EVENT */ |
| tSap_AssocStaListEvent sapAssocStaListEvent; /*SAP_ASSOC_STA_CALLBACK_EVENT */ |
| tSap_GetWPSPBCSessionEvent sapGetWPSPBCSessionEvent; /*SAP_GET_WPSPBC_SESSION_EVENT */ |
| tSap_WPSPBCProbeReqEvent sapPBCProbeReqEvent; /*eSAP_WPS_PBC_PROBE_REQ_EVENT */ |
| tSap_SendActionCnf sapActionCnf; |
| tSap_UnknownSTAJoinEvent sapUnknownSTAJoin; /* eSAP_UNKNOWN_STA_JOIN */ |
| tSap_MaxAssocExceededEvent sapMaxAssocExceeded; /* eSAP_MAX_ASSOC_EXCEEDED */ |
| tSap_DfsNolInfo sapDfsNolInfo; /*eSAP_DFS_NOL_XXX */ |
| /*eSAP_ACS_CHANNEL_SELECTED */ |
| tSap_ChSelectedEvent sapChSelected; |
| struct tsap_acs_scan_complete_event sap_acs_scan_comp; |
| struct sap_ch_change_ind sap_chan_cng_ind; |
| } sapevt; |
| } tSap_Event, *tpSap_Event; |
| |
| |
| typedef __ani_attr_pre_packed struct sap_SSID { |
| v_U8_t length; |
| v_U8_t ssId[MAX_SSID_LEN]; |
| } __ani_attr_packed tSap_SSID_t; |
| |
| typedef __ani_attr_pre_packed struct sap_SSIDInfo { |
| tSap_SSID_t ssid; /*SSID of the AP*/ |
| v_U8_t ssidHidden; /*SSID shouldn't/should be broadcast in probe RSP and beacon*/ |
| } __ani_attr_packed tSap_SSIDInfo_t; |
| |
| struct sap_acs_cfg { |
| /* ACS Algo Input */ |
| uint8_t acs_mode; |
| uint32_t hw_mode; |
| uint8_t start_ch; |
| uint8_t end_ch; |
| uint8_t *ch_list; |
| uint8_t ch_list_count; |
| #ifdef FEATURE_WLAN_AP_AP_ACS_OPTIMIZE |
| uint8_t skip_scan_status; |
| uint8_t skip_scan_range1_stch; |
| uint8_t skip_scan_range1_endch; |
| uint8_t skip_scan_range2_stch; |
| uint8_t skip_scan_range2_endch; |
| #endif |
| |
| uint16_t ch_width; |
| /* ACS Algo Output */ |
| uint8_t pri_ch; |
| uint8_t ht_sec_ch; |
| uint8_t vht_seg0_center_ch; |
| uint8_t vht_seg1_center_ch; |
| }; |
| |
| |
| /* |
| * enum sap_acs_dfs_mode- state of DFS mode |
| * @ACS_DFS_MODE_NONE: DFS mode attribute is not valid |
| * @ACS_DFS_MODE_ENABLE: DFS mode is enabled |
| * @ACS_DFS_MODE_DISABLE: DFS mode is disabled |
| * @ACS_DFS_MODE_DEPRIORITIZE: Deprioritize DFS channels in scanning |
| */ |
| enum sap_acs_dfs_mode { |
| ACS_DFS_MODE_NONE, |
| ACS_DFS_MODE_ENABLE, |
| ACS_DFS_MODE_DISABLE, |
| ACS_DFS_MODE_DEPRIORITIZE |
| }; |
| |
| /* |
| * enum vendor_ie_access_policy- access policy |
| * @ACCESS_POLICY_NONE: access policy attribute is not valid |
| * @ACCESS_POLICY_RESPOND_IF_IE_IS_PRESENT: respond to probe req/assoc req |
| * only if ie is present |
| * @ACCESS_POLICY_DONOT_RESPOND_IF_IE_IS_PRESENT: do not respond to probe req/ |
| * assoc req if ie is present |
| */ |
| enum vendor_ie_access_policy { |
| ACCESS_POLICY_NONE, |
| ACCESS_POLICY_RESPOND_IF_IE_IS_PRESENT, |
| ACCESS_POLICY_DONOT_RESPOND_IF_IE_IS_PRESENT, |
| }; |
| |
| /* |
| * enum sub20_chan_switch_mode- sub20 channel |
| * switch mode |
| * @SUB20_NONE: unsupport sub20 channel width |
| * @SUB20_STATIC: support sub20 channel width, |
| * but unsupport sub20 channel width switch |
| * @SUB20_DYN: support sub20 channel width, |
| * sub20 channel width switch auto |
| * @SUB20_MANUAL: support sub20 channel width, |
| * sub20 channel width switch manual |
| */ |
| enum sub20_chan_switch_mode { |
| SUB20_NONE, |
| SUB20_STATIC, |
| SUB20_DYN, |
| SUB20_MANUAL |
| }; |
| |
| typedef struct sap_Config { |
| tSap_SSIDInfo_t SSIDinfo; |
| eCsrPhyMode SapHw_mode; /* Wireless Mode */ |
| eSapMacAddrACL SapMacaddr_acl; |
| v_MACADDR_t accept_mac[MAX_ACL_MAC_ADDRESS]; /* MAC filtering */ |
| v_BOOL_t ieee80211d; /*Specify if 11D is enabled or disabled*/ |
| v_BOOL_t protEnabled; /*Specify if protection is enabled or disabled*/ |
| v_BOOL_t obssProtEnabled; /*Specify if OBSS protection is enabled or disabled*/ |
| v_MACADDR_t deny_mac[MAX_ACL_MAC_ADDRESS]; /* MAC filtering */ |
| v_MACADDR_t self_macaddr; //self macaddress or BSSID |
| |
| v_U8_t channel; /* Operation channel */ |
| uint8_t sec_ch; |
| uint16_t vht_channel_width; |
| uint16_t ch_width_orig; |
| #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH |
| uint16_t ch_width_24g_orig; |
| uint16_t ch_width_5g_orig; |
| #endif |
| v_U8_t max_num_sta; /* maximum number of STAs in station table */ |
| v_U8_t dtim_period; /* dtim interval */ |
| v_U8_t num_accept_mac; |
| v_U8_t num_deny_mac; |
| /* Max ie length 255 * 2(WPA+RSN) + 2 bytes(vendor specific ID) * 2 */ |
| v_U8_t RSNWPAReqIE[(SIR_MAC_MAX_IE_LENGTH * 2) + 4]; |
| v_U8_t countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //it is ignored if [0] is 0. |
| v_U8_t RSNAuthType; |
| v_U8_t RSNEncryptType; |
| v_U8_t mcRSNEncryptType; |
| eSapAuthType authType; |
| v_BOOL_t privacy; |
| v_BOOL_t UapsdEnable; |
| v_BOOL_t fwdWPSPBCProbeReq; |
| v_U8_t wps_state; // 0 - disabled, 1 - not configured , 2 - configured |
| |
| v_U16_t ht_capab; |
| v_U16_t RSNWPAReqIELength; //The byte count in the pWPAReqIE |
| |
| v_U32_t beacon_int; /* Beacon Interval */ |
| v_U32_t ap_table_max_size; |
| v_U32_t ap_table_expiration_time; |
| v_U32_t ht_op_mode_fixed; |
| tVOS_CON_MODE persona; /*Tells us which persona it is GO or AP for now*/ |
| v_U8_t disableDFSChSwitch; |
| v_U8_t enable_radar_war; |
| eCsrBand scanBandPreference; |
| v_BOOL_t enOverLapCh; |
| v_U16_t acsBandSwitchThreshold; |
| uint32_t auto_channel_select_weight; |
| struct sap_acs_cfg acs_cfg; |
| #ifdef WLAN_FEATURE_11W |
| v_BOOL_t mfpRequired; |
| v_BOOL_t mfpCapable; |
| #endif |
| #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH |
| v_U8_t cc_switch_mode; |
| bool band_switch_enable; |
| bool ap_p2pclient_concur_enable; |
| #endif |
| |
| v_U16_t probeRespIEsBufferLen; |
| v_PVOID_t pProbeRespIEsBuffer; /* buffer for addn ies comes from hostapd*/ |
| |
| v_U16_t assocRespIEsLen; |
| v_PVOID_t pAssocRespIEsBuffer; /* buffer for addn ies comes from hostapd*/ |
| |
| v_U16_t probeRespBcnIEsLen; |
| v_PVOID_t pProbeRespBcnIEsBuffer; /* buffer for addn ies comes from hostapd*/ |
| uint8_t sap_dot11mc; /* Specify if 11MC is enabled or disabled*/ |
| enum sap_acs_dfs_mode acs_dfs_mode; |
| uint16_t beacon_tx_rate; |
| uint8_t *vendor_ie; |
| enum vendor_ie_access_policy vendor_ie_access_policy; |
| uint16_t sta_inactivity_timeout; |
| uint16_t tx_pkt_fail_cnt_threshold; |
| uint8_t short_retry_limit; |
| uint8_t long_retry_limit; |
| uint8_t ampdu_size; |
| tSirMacRateSet supported_rates; |
| tSirMacRateSet extended_rates; |
| eCsrBand target_band; |
| uint16_t sub20_channelwidth; |
| /* beacon count before channel switch */ |
| uint8_t sap_chanswitch_beacon_cnt; |
| uint8_t sap_chanswitch_mode; |
| bool dfs_beacon_tx_enhanced; |
| uint16_t reduced_beacon_interval; |
| enum sub20_chan_switch_mode sub20_switch_mode; |
| uint8_t backup_channel; |
| } tsap_Config_t; |
| |
| #ifdef FEATURE_WLAN_AP_AP_ACS_OPTIMIZE |
| typedef enum { |
| eSAP_DO_NEW_ACS_SCAN, |
| eSAP_DO_PAR_ACS_SCAN, |
| eSAP_SKIP_ACS_SCAN |
| } tSap_skip_acs_scan; |
| #endif |
| |
| typedef enum { |
| eSAP_WPS_PROBE_RSP_IE, |
| eSAP_WPS_BEACON_IE, |
| eSAP_WPS_ASSOC_RSP_IE |
| } eSapWPSIE_CODE; |
| |
| typedef struct sSapName { |
| v_U8_t num_name; |
| v_U8_t name[MAX_NAME_SIZE]; |
| } tSapName; |
| |
| typedef struct sSapText { |
| v_U8_t num_text; |
| v_U8_t text[MAX_TEXT_SIZE]; |
| } tSapText; |
| |
| typedef enum |
| { |
| eSAP_DFS_DO_NOT_SKIP_CAC, |
| eSAP_DFS_SKIP_CAC |
| } eSapDfsCACState_t; |
| |
| typedef enum |
| { |
| eSAP_DFS_CHANNEL_USABLE, |
| eSAP_DFS_CHANNEL_AVAILABLE, |
| eSAP_DFS_CHANNEL_UNAVAILABLE |
| } eSapDfsChanStatus_t; |
| |
| typedef struct sSapDfsNolInfo |
| { |
| v_U8_t dfs_channel_number; |
| eSapDfsChanStatus_t radar_status_flag; |
| v_U64_t radar_found_timestamp; |
| } tSapDfsNolInfo; |
| |
| typedef struct sSapDfsInfo |
| { |
| vos_timer_t sap_dfs_cac_timer; |
| v_U8_t sap_radar_found_status; |
| /* |
| * New channel to move to when a Radar is |
| * detected on current Channel |
| */ |
| v_U8_t target_channel; |
| v_U8_t last_radar_found_channel; |
| v_U8_t ignore_cac; |
| eSapDfsCACState_t cac_state; |
| v_U8_t user_provided_target_channel; |
| |
| /* Requests for Channel Switch Announcement IE |
| * generation and transmission |
| */ |
| v_U8_t csaIERequired; |
| v_U8_t numCurrentRegDomainDfsChannels; |
| tSapDfsNolInfo sapDfsChannelNolList[NUM_5GHZ_CHANNELS]; |
| v_U8_t is_dfs_cac_timer_running; |
| /* |
| * New channel width and new channel bonding mode |
| * will only be updated via channel fallback mechanism |
| */ |
| tANI_U8 orig_cbMode; |
| tANI_U8 orig_chanWidth; |
| tANI_U8 new_chanWidth; |
| tANI_U8 new_cbMode; |
| |
| /* |
| * INI param to enable/disable SAP W53 |
| * channel operation. |
| */ |
| v_U8_t is_dfs_w53_disabled; |
| |
| /* |
| * sap_operating_channel_location holds SAP indoor, |
| * outdoor location information. Currently, if this |
| * param is set this Indoor/outdoor channel interop |
| * restriction will only be implemented for JAPAN |
| * regulatory domain. |
| * |
| * 0 - Indicates that location unknown |
| * (or) SAP Indoor/outdoor interop is allowed |
| * |
| * 1 - Indicates device is operating on Indoor channels |
| * and SAP cannot pick next random channel from outdoor |
| * list of channels when a radar is found on current operating |
| * DFS channel. |
| * |
| * 2 - Indicates device is operating on Outdoor Channels |
| * and SAP cannot pick next random channel from indoor |
| * list of channels when a radar is found on current |
| * operating DFS channel. |
| */ |
| v_U8_t sap_operating_chan_preferred_location; |
| |
| /* |
| * Flag to indicate if DFS test mode is enabled and |
| * channel switch is disabled. |
| */ |
| v_U8_t disable_dfs_ch_switch; |
| v_U8_t sap_enable_radar_war; |
| uint16_t tx_leakage_threshold; |
| uint8_t new_sub20_channelwidth; |
| /* beacon count before channel switch */ |
| uint8_t sap_ch_switch_beacon_cnt; |
| uint8_t sap_ch_switch_mode; |
| bool dfs_beacon_tx_enhanced; |
| uint16_t reduced_beacon_interval; |
| enum sub20_chan_switch_mode sub20_switch_mode; |
| } tSapDfsInfo; |
| |
| typedef struct tagSapCtxList |
| { |
| v_U8_t sessionID; |
| v_VOID_t* pSapContext; |
| tVOS_CON_MODE sapPersona; |
| } tSapCtxList, tpSapCtxList; |
| |
| typedef struct tagSapStruct |
| { |
| //Information Required for SAP DFS Master mode |
| tSapDfsInfo SapDfsInfo; |
| tSapCtxList sapCtxList[SAP_MAX_NUM_SESSION]; |
| #ifdef FEATURE_AP_MCC_CH_AVOIDANCE |
| bool sap_channel_avoidance; |
| #endif /* FEATURE_AP_MCC_CH_AVOIDANCE */ |
| bool enable_dfs_phy_error_logs; |
| } tSapStruct, *tpSapStruct; |
| |
| #define WPS_PROBRSP_VER_PRESENT 0x00000001 |
| #define WPS_PROBRSP_STATE_PRESENT 0x00000002 |
| #define WPS_PROBRSP_APSETUPLOCK_PRESENT 0x00000004 |
| #define WPS_PROBRSP_SELECTEDREGISTRA_PRESENT 0x00000008 |
| #define WPS_PROBRSP_DEVICEPASSWORDID_PRESENT 0x00000010 |
| #define WPS_PROBRSP_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020 |
| #define WPS_PROBRSP_RESPONSETYPE_PRESENT 0x00000040 |
| #define WPS_PROBRSP_UUIDE_PRESENT 0x00000080 |
| #define WPS_PROBRSP_MANUFACTURE_PRESENT 0x00000100 |
| #define WPS_PROBRSP_MODELNAME_PRESENT 0x00000200 |
| #define WPS_PROBRSP_MODELNUMBER_PRESENT 0x00000400 |
| #define WPS_PROBRSP_SERIALNUMBER_PRESENT 0x00000800 |
| #define WPS_PROBRSP_PRIMARYDEVICETYPE_PRESENT 0x00001000 |
| #define WPS_PROBRSP_DEVICENAME_PRESENT 0x00002000 |
| #define WPS_PROBRSP_CONFIGMETHODS_PRESENT 0x00004000 |
| #define WPS_PROBRSP_RF_BANDS_PRESENT 0x00008000 |
| |
| typedef struct sap_WPSProbeRspIE_s { |
| v_U32_t FieldPresent; |
| v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc. |
| v_U32_t wpsState; // 1 = unconfigured, 2 = configured. |
| v_BOOL_t APSetupLocked; // Must be included if value is TRUE |
| v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee. |
| v_U16_t DevicePasswordID; // Device Password ID |
| v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method |
| v_U8_t ResponseType; // Response type |
| v_U8_t UUID_E[16]; // Unique identifier of the AP. |
| tSapName Manufacture; |
| tSapText ModelName; |
| tSapText ModelNumber; |
| tSapText SerialNumber; |
| v_U32_t PrimaryDeviceCategory ; // Device Category ID: 1Computer, 2Input Device, ... |
| v_U8_t PrimaryDeviceOUI[4] ; // Vendor specific OUI for Device Sub Category |
| v_U32_t DeviceSubCategory ; // Device Sub Category ID: 1-PC, 2-Server if Device Category ID is computer |
| tSapText DeviceName; |
| v_U16_t ConfigMethod; // Configuaration method |
| v_U8_t RFBand; // RF bands available on the AP |
| } tSap_WPSProbeRspIE; |
| |
| #define WPS_BEACON_VER_PRESENT 0x00000001 |
| #define WPS_BEACON_STATE_PRESENT 0x00000002 |
| #define WPS_BEACON_APSETUPLOCK_PRESENT 0x00000004 |
| #define WPS_BEACON_SELECTEDREGISTRA_PRESENT 0x00000008 |
| #define WPS_BEACON_DEVICEPASSWORDID_PRESENT 0x00000010 |
| #define WPS_BEACON_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020 |
| #define WPS_BEACON_UUIDE_PRESENT 0x00000080 |
| #define WPS_BEACON_RF_BANDS_PRESENT 0x00000100 |
| |
| typedef struct sap_WPSBeaconIE_s { |
| v_U32_t FieldPresent; |
| v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc. |
| v_U32_t wpsState; // 1 = unconfigured, 2 = configured. |
| v_BOOL_t APSetupLocked; // Must be included if value is TRUE |
| v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee. |
| v_U16_t DevicePasswordID; // Device Password ID |
| v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method |
| v_U8_t UUID_E[16]; // Unique identifier of the AP. |
| v_U8_t RFBand; // RF bands available on the AP |
| } tSap_WPSBeaconIE; |
| |
| #define WPS_ASSOCRSP_VER_PRESENT 0x00000001 |
| #define WPS_ASSOCRSP_RESPONSETYPE_PRESENT 0x00000002 |
| |
| typedef struct sap_WPSAssocRspIE_s { |
| v_U32_t FieldPresent; |
| v_U32_t Version; |
| v_U8_t ResposeType; |
| } tSap_WPSAssocRspIE; |
| |
| typedef struct sap_WPSIE_s { |
| eSapWPSIE_CODE sapWPSIECode; |
| union { |
| tSap_WPSProbeRspIE sapWPSProbeRspIE; /*WPS Set Probe Respose IE*/ |
| tSap_WPSBeaconIE sapWPSBeaconIE; /*WPS Set Beacon IE*/ |
| tSap_WPSAssocRspIE sapWPSAssocRspIE; /*WPS Set Assoc Response IE*/ |
| } sapwpsie; |
| } tSap_WPSIE, *tpSap_WPSIE; |
| |
| #ifdef WLANTL_DEBUG |
| #define MAX_RATE_INDEX 136 |
| #define MAX_NUM_RSSI 100 |
| #define MAX_RSSI_INTERVAL 5 |
| #endif |
| |
| typedef struct sap_SoftapStats_s { |
| v_U32_t txUCFcnt; |
| v_U32_t txMCFcnt; |
| v_U32_t txBCFcnt; |
| v_U32_t txUCBcnt; |
| v_U32_t txMCBcnt; |
| v_U32_t txBCBcnt; |
| v_U32_t rxUCFcnt; |
| v_U32_t rxMCFcnt; |
| v_U32_t rxBCFcnt; |
| v_U32_t rxUCBcnt; |
| v_U32_t rxMCBcnt; |
| v_U32_t rxBCBcnt; |
| v_U32_t rxBcnt; |
| v_U32_t rxBcntCRCok; |
| v_U32_t rxRate; |
| #ifdef WLANTL_DEBUG |
| v_U32_t pktCounterRateIdx[MAX_RATE_INDEX]; |
| v_U32_t pktCounterRssi[MAX_NUM_RSSI]; |
| #endif |
| } tSap_SoftapStats, *tpSap_SoftapStats; |
| |
| int sapSetPreferredChannel |
| ( |
| #ifdef WLAN_FEATURE_MBSSID |
| v_PVOID_t sapContext, |
| #endif |
| tANI_U8* ptr |
| ); |
| |
| /* Channel/Frequency table */ |
| extern const tRfChannelProps rfChannels[NUM_RF_CHANNELS]; |
| |
| #ifdef FEATURE_WLAN_CH_AVOID |
| /* Store channel safety information */ |
| typedef struct |
| { |
| v_U16_t channelNumber; |
| v_BOOL_t isSafe; |
| } sapSafeChannelType; |
| #endif //FEATURE_WLAN_CH_AVOID |
| |
| void sapCleanupChannelList(v_PVOID_t sapContext); |
| |
| void sapCleanupAllChannelList(void); |
| |
| #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH |
| /** |
| * is_auto_channel_select() - is channel AUTO_CHANNEL_SELECT |
| * @p_vos_gctx: Pointer to ptSapContext |
| * |
| * Return: true on AUTO_CHANNEL_SELECT, false otherwise |
| */ |
| bool is_auto_channel_select(v_PVOID_t p_vos_gctx); |
| #endif |
| /*========================================================================== |
| FUNCTION WLANSAP_Set_WpsIe |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to set WPS IE. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pWPSIE: tSap_WPSIE structure for the station |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_Set_WpsIe |
| ( |
| v_PVOID_t pvosGCtx, |
| tSap_WPSIE *pWPSIe |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Update_WpsIe |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to start WPS session. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_Update_WpsIe |
| ( |
| v_PVOID_t pvosGCtx |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Stop_Wps |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to stop WPS session. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_Stop_Wps |
| ( |
| v_PVOID_t pvosGCtx |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Get_WPS_State |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to get WPS state. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| |
| OUT |
| pbWPSState: Pointer to variable to indicate if it is in WPS Registration state |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_Get_WPS_State |
| ( |
| v_PVOID_t pvosGCtx, |
| v_BOOL_t * pbWPSState |
| ); |
| |
| /*---------------------------------------------------------------------------- |
| * Opaque SAP handle Type Declaration |
| * -------------------------------------------------------------------------*/ |
| |
| typedef v_PVOID_t tSapHandle, *ptSapHandle; |
| |
| /*---------------------------------------------------------------------------- |
| * Function Declarations and Documentation |
| * -------------------------------------------------------------------------*/ |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Open |
| |
| DESCRIPTION |
| Called at driver initialization (vos_open). SAP will initialize |
| all its internal resources and will wait for the call to start to |
| register with the other modules. |
| |
| DEPENDENCIES |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: pointer to the global vos context; a handle to SAP's |
| control block can be extracted from its context |
| |
| RETURN VALUE |
| The result code associated with performing the operation |
| |
| VOS_STATUS_E_FAULT: pointer to SAP cb is NULL ; access would cause a page |
| fault |
| VOS_STATUS_SUCCESS: Everything is good :) |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| v_PVOID_t WLANSAP_Open(v_PVOID_t pvosGCtx); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Start |
| |
| DESCRIPTION |
| Called as part of the overall start procedure (vos_start). |
| |
| DEPENDENCIES |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: pointer to the global vos context; a handle to SAP's |
| control block can be extracted from its context |
| |
| RETURN VALUE |
| The result code associated with performing the operation |
| |
| VOS_STATUS_E_FAULT: pointer to SAP cb is NULL ; access would cause a page |
| fault |
| VOS_STATUS_SUCCESS: Everything is good :) |
| |
| Other codes can be returned as a result of a BAL failure; |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_Start |
| ( |
| v_PVOID_t pvosGCtx, |
| tVOS_CON_MODE mode, |
| uint8_t *addr, |
| uint32_t *session_id |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Stop |
| |
| DESCRIPTION |
| Called by vos_stop to stop operation in SAP, before close. |
| |
| DEPENDENCIES |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: pointer to the global vos context; a handle to SAP's |
| control block can be extracted from its context |
| |
| RETURN VALUE |
| The result code associated with performing the operation |
| |
| VOS_STATUS_E_FAULT: pointer to SAP cb is NULL ; access would cause a page |
| fault |
| VOS_STATUS_SUCCESS: Everything is good :) |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_Stop |
| ( |
| v_PVOID_t pvosGCtx |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Close |
| |
| DESCRIPTION |
| Called by vos_close during general driver close procedure. SAP will clean up |
| all the internal resources. |
| |
| DEPENDENCIES |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: pointer to the global vos context; a handle to SAP's |
| control block can be extracted from its context |
| |
| RETURN VALUE |
| The result code associated with performing the operation |
| |
| VOS_STATUS_E_FAULT: pointer to SAP cb is NULL ; access would cause a page |
| fault |
| VOS_STATUS_SUCCESS: Everything is good :) |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_Close |
| ( |
| v_PVOID_t pvosGCtx |
| ); |
| |
| /*========================================================================== |
| FUNCTION (*tpWLAN_SAPEventCB) |
| |
| DESCRIPTION |
| Implements the callback for ALL asynchronous events. |
| Including Events resulting from: |
| * Start BSS |
| * Stop BSS,... |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pSapEvent: pointer to the union of "Sap Event" structures. This now encodes ALL event types. |
| Including Command Complete and Command Status |
| pUsrContext : pUsrContext parameter that was passed to sapStartBss |
| RETURN VALUE |
| The result code associated with performing the operation |
| |
| VOS_STATUS_E_FAULT: pointer to pSapEvent is NULL |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| typedef VOS_STATUS (*tpWLAN_SAPEventCB)( tpSap_Event pSapEvent, v_PVOID_t pUsrContext); |
| |
| |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_getState |
| |
| DESCRIPTION |
| This api returns the current SAP state to the caller. |
| |
| DEPENDENCIES |
| |
| PARAMETERS |
| |
| IN |
| pContext : Pointer to Sap Context structure |
| |
| RETURN VALUE |
| Returns the SAP FSM state. |
| ============================================================================*/ |
| |
| v_U8_t WLANSAP_getState |
| ( |
| v_PVOID_t pvosGCtx |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_StartBss |
| |
| DESCRIPTION |
| This api function provides SAP FSM event eWLAN_SAP_HDD_PHYSICAL_LINK_CREATE for |
| starting AP BSS |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pConfig: Pointer to configuration structure passed down from HDD(HostApd for Android) |
| hdd_SapEventCallback: Callback function in HDD called by SAP to inform HDD about SAP results |
| usrDataForCallback: Parameter that will be passed back in all the SAP callback events. |
| |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_StartBss |
| ( |
| v_PVOID_t pvosGCtx, |
| tpWLAN_SAPEventCB pSapEventCallback, |
| tsap_Config_t *pConfig, |
| v_PVOID_t pUsrContext |
| ); |
| |
| #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH |
| /*========================================================================== |
| FUNCTION WLANSAP_CheckCCIntf |
| |
| DESCRIPTION Restart SAP if Concurrent Channel interfering |
| |
| DEPENDENCIES NA. |
| |
| PARAMETERS |
| IN |
| Ctx: Pointer to vos Context or Sap Context based on MBSSID |
| |
| RETURN VALUE Interference channel value |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| v_U16_t WLANSAP_CheckCCIntf(v_PVOID_t Ctx); |
| #endif |
| /*========================================================================== |
| FUNCTION WLANSAP_SetMacACL |
| |
| DESCRIPTION |
| This api function provides SAP to set mac list entry in accept list as well |
| as deny list |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pConfig: Pointer to configuration structure passed down from |
| HDD(HostApd for Android) |
| |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_SetMacACL |
| ( |
| v_PVOID_t pvosGCtx, |
| tsap_Config_t *pConfig |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Stop |
| |
| DESCRIPTION |
| This api function provides SAP FSM event eWLAN_SAP_HDD_PHYSICAL_LINK_DISCONNECT for |
| stopping BSS |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS W |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_StopBss |
| ( |
| v_PVOID_t pvosGCtx |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_DisassocSta |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD initiated disassociation of station |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx : Pointer to vos global context structure |
| pPeerStaMac : Mac address of the station to disassociate |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_DisassocSta |
| ( |
| v_PVOID_t pvosGCtx, |
| struct tagCsrDelStaParams *pDelStaParams |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_DeauthSta |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD initiated deauthentication of station |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx : Pointer to vos global context structure |
| pDelStaParams : Pointer to parameters of the station to |
| deauthenticate |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_DeauthSta |
| ( |
| v_PVOID_t pvosGCtx, |
| struct tagCsrDelStaParams *pDelStaParams |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_SetChannelChangeWithCsa |
| |
| DESCRIPTION |
| This api function does a channel change to the target channel specified |
| through an iwpriv. CSA IE is included in the beacons before doing a |
| channel change. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx : Pointer to vos global context structure |
| targetChannel : New target channel to change to. |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_SetChannelChangeWithCsa(v_PVOID_t pvosGCtx, v_U32_t targetChannel); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_SetKeySta |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to delete key for a station. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pSetKeyInfo: tCsrRoamSetKey structure for the station |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_SetKeySta |
| ( |
| v_PVOID_t pvosGCtx, |
| tCsrRoamSetKey *pSetKeyInfo |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_DelKeySta |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to delete key for a station. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pSetKeyInfo: tCsrRoamSetKey structure for the station |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_DelKeySta |
| ( |
| v_PVOID_t pvosGCtx, |
| tCsrRoamRemoveKey *pDelKeyInfo |
| ); |
| |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_GetAssocStations |
| |
| DESCRIPTION |
| This api function is used to probe the list of associated stations from various modules of CORE stack |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| mod: Module from whom list of associtated stations is supposed to be probed. If an invalid module is passed |
| then by default VOS_MODULE_ID_PE will be probed |
| IN/OUT |
| pNoOfAssocStas:- Number of associated stations that are known to the module specified in mod parameter |
| pAssocStas: Pointer to list of associated stations that are known to the module specified in mod parameter |
| NOTE:- The memory for this list will be allocated by the caller of this API |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_GetAssocStations |
| ( |
| v_PVOID_t pvosGCtx, |
| VOS_MODULE_ID module, |
| tpSap_AssocMacAddr pAssocStas |
| ); |
| /*========================================================================== |
| FUNCTION WLANSAP_RemoveWpsSessionOverlap |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to remove an entry from session session overlap info. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pRemoveMac: pointer to v_MACADDR_t for session MAC address that needs to be removed from wps session |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| VOS_STATUS_E_FAULT: Session is not dectected. The parameter is function not valid. |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_RemoveWpsSessionOverlap |
| |
| ( |
| v_PVOID_t pvosGCtx, |
| v_MACADDR_t pRemoveMac |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_getWpsSessionOverlap |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to get WPS session overlap info. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pSessionMac: pointer to v_MACADDR_t for session MAC address |
| uuide: Pointer to 16 bytes array for session UUID_E |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| VOS_STATUS_E_FAULT: Overlap is dectected. The parameter is function not valid. |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_getWpsSessionOverlap |
| ( |
| v_PVOID_t pvosGCtx |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_SetCounterMeasure |
| |
| DESCRIPTION |
| This api function is used to disassociate all the stations and prevent |
| association for any other station.Whenever Authenticator receives 2 mic failures |
| within 60 seconds, Authenticator will enable counter measure at SAP Layer. |
| Authenticator will start the 60 seconds timer. Core stack will not allow any |
| STA to associate till HDD disables counter meassure. Core stack shall kick out all the |
| STA which are currently associated and DIASSOC Event will be propogated to HDD for |
| each STA to clean up the HDD STA table.Once the 60 seconds timer expires, Authenticator |
| will disable the counter meassure at core stack. Now core stack can allow STAs to associate. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| bEnable: If TRUE than all stations will be disassociated and no more will be allowed to associate. If FALSE than CORE |
| will come out of this state. |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_SetCounterMeasure |
| ( |
| v_PVOID_t pvosGCtx, |
| v_BOOL_t bEnable |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSap_getstationIE_information |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to retrive the WPA and RSNIE of a station. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pLen : length of WPARSN elment IE where it would be copied |
| pBuf : buf to copy the WPARSNIe |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSap_getstationIE_information |
| ( |
| v_PVOID_t pvosGCtx, |
| v_U32_t *pLen, |
| v_U8_t *pBuf |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_ClearACL |
| |
| DESCRIPTION |
| This api function removes all the entries in both accept and deny lists. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_ClearACL |
| ( |
| v_PVOID_t pvosGCtx |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_GetACLAcceptList |
| |
| DESCRIPTION |
| This api function to get ACL accept list. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pAcceptList: ACL Accept list entries |
| nAcceptList: Number of entries in ACL Accept list |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_GetACLAcceptList |
| ( |
| v_PVOID_t pvosGCtx, |
| v_MACADDR_t *pAcceptList, |
| v_U8_t *nAcceptList |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_GetACLDenyList |
| |
| DESCRIPTION |
| This api function to get ACL Deny list. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pAcceptList: ACL Deny list entries |
| nAcceptList: Number of entries in ACL Deny list |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_GetACLDenyList |
| ( |
| v_PVOID_t pCtx, |
| v_MACADDR_t *pDenyList, |
| v_U8_t *nDenyList |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_SetMode |
| |
| DESCRIPTION |
| This api is used to set mode for ACL |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_SetMode |
| ( |
| v_PVOID_t pvosGCtx, |
| v_U32_t mode |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_GetACLMode |
| |
| DESCRIPTION |
| This api is used to get mode for ACL |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| mode: Current Mode of the ACL |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_GetACLMode |
| ( |
| v_PVOID_t pvosGCtx, |
| eSapMacAddrACL *mode |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_ModifyACL |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to add/remove mac addresses from black/white lists (ACLs). |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx : Pointer to vos global context structure |
| pPeerStaMac : MAC address to be added or removed |
| listType : add/remove to be done on black or white list |
| cmd : Are we doing to add or delete a mac addr from an ACL. |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_ModifyACL |
| ( |
| v_PVOID_t pvosGCtx, |
| v_U8_t *pPeerStaMac, |
| eSapACLType listType, |
| eSapACLCmdType cmd |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Set_WPARSNIes |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to set AP WPA and RSN IE in its beacon and probe response. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pWPARSNIEs: buffer to the WPA/RSN IEs |
| WPARSNIEsLen: length of WPA/RSN IEs |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS WLANSAP_Set_WPARSNIes |
| ( |
| v_PVOID_t pvosGCtx, |
| v_U8_t *pWPARSNIEs, |
| v_U32_t WPARSNIEsLen |
| ); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_GetStatistics |
| |
| DESCRIPTION |
| This api function provides for Ap App/HDD to get TL statistics for all stations of Soft AP. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| bReset: If set TL statistics will be cleared after reading |
| OUT |
| statBuf: Buffer to get the statistics |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS WLANSAP_GetStatistics |
| ( |
| v_PVOID_t pvosGCtx, |
| tSap_SoftapStats *statBuf, |
| v_BOOL_t bReset |
| ); |
| |
| /*========================================================================== |
| |
| FUNCTION WLANSAP_SendAction |
| |
| DESCRIPTION |
| This api function provides to send action frame sent by upper layer. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pBuf: Pointer of the action frame to be transmitted |
| len: Length of the action frame |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS WLANSAP_SendAction |
| ( |
| v_PVOID_t pvosGCtx, |
| const tANI_U8 *pBuf, |
| tANI_U32 len, |
| tANI_U16 wait |
| ); |
| |
| /*========================================================================== |
| |
| FUNCTION WLANSAP_RemainOnChannel |
| |
| DESCRIPTION |
| This api function provides to set Remain On channel on specified channel |
| for specified duration. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| channel: Channel on which driver has to listen |
| duration: Duration for which driver has to listen on specified channel |
| callback: Callback function to be called once Listen is done. |
| pContext: Context needs to be called in callback function. |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS WLANSAP_RemainOnChannel |
| ( |
| v_PVOID_t pvosGCtx, |
| tANI_U8 channel, |
| tANI_U32 duration, |
| remainOnChanCallback callback, |
| void *pContext |
| ); |
| |
| /*========================================================================== |
| |
| FUNCTION WLANSAP_CancelRemainOnChannel |
| |
| DESCRIPTION |
| This api cancel previous remain on channel request. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS WLANSAP_CancelRemainOnChannel |
| ( |
| v_PVOID_t pvosGCtx |
| ); |
| |
| |
| /*========================================================================== |
| |
| FUNCTION WLANSAP_RegisterMgmtFrame |
| |
| DESCRIPTION |
| HDD use this API to register specified type of frame with CORE stack. |
| On receiving such kind of frame CORE stack should pass this frame to HDD |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| frameType: frameType that needs to be registered with PE. |
| matchData: Data pointer which should be matched after frame type is matched. |
| matchLen: Length of the matchData |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS WLANSAP_RegisterMgmtFrame |
| ( |
| v_PVOID_t pvosGCtx, |
| tANI_U16 frameType, |
| tANI_U8* matchData, |
| tANI_U16 matchLen |
| ); |
| |
| /*========================================================================== |
| |
| FUNCTION WLANSAP_DeRegisterMgmtFrame |
| |
| DESCRIPTION |
| This API is used to deregister previously registered frame. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| frameType: frameType that needs to be De-registered with PE. |
| matchData: Data pointer which should be matched after frame type is matched. |
| matchLen: Length of the matchData |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS WLANSAP_DeRegisterMgmtFrame |
| ( |
| v_PVOID_t pvosGCtx, |
| tANI_U16 frameType, |
| tANI_U8* matchData, |
| tANI_U16 matchLen |
| ); |
| |
| /*========================================================================== |
| |
| FUNCTION WLANSAP_ChannelChangeRequest |
| DESCRIPTION |
| This API is used to send an Indication to SME/PE to change the |
| current operating channel to a different target channel. |
| |
| The Channel change will be issued by SAP under the following |
| scenarios. |
| 1. A radar indication is received during SAP CAC WAIT STATE and |
| channel change is required. |
| 2. A radar indication is received during SAP STARTED STATE and |
| channel change is required. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| TargetChannel: New target channel for channel change. |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS WLANSAP_ChannelChangeRequest(v_PVOID_t pvosGCtx, tANI_U8 tArgetChannel); |
| |
| /*========================================================================== |
| |
| FUNCTION WLANSAP_StartBeaconReq |
| DESCRIPTION |
| This API is used to send an Indication to SME/PE to start |
| beaconing on the current operating channel. |
| |
| Brief:When SAP is started on DFS channel and when ADD BSS RESP is received |
| LIM temporarily holds off Beaconing for SAP to do CAC WAIT. When |
| CAC WAIT is done SAP resumes the Beacon Tx by sending a start beacon |
| request to LIM. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS WLANSAP_StartBeaconReq(v_PVOID_t pSapCtx); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_DfsSendCSAIeRequest |
| |
| DESCRIPTION |
| This API is used to send channel switch announcement request to PE |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN |
| sapContext: Pointer to vos global context structure |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_DfsSendCSAIeRequest(v_PVOID_t pSapCtx); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Get_Dfs_Ignore_CAC |
| |
| DESCRIPTION |
| This API is used to get ignore_cac flag. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| |
| PARAMETERS |
| OUT |
| pIgnore_cac: pointer to variable |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| |
| VOS_STATUS |
| WLANSAP_Get_Dfs_Ignore_CAC(tHalHandle hHal, v_U8_t *pIgnore_cac); |
| |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Set_Dfs_Ignore_CAC |
| |
| DESCRIPTION |
| This API is used to set ignore_cac flag, used for ignoring the CAC operation for DFS channel. |
| If the flag set to 1 or TRUE then it will avoid CAC. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| |
| PARAMETERS |
| IN |
| ignore_cac: value to be set |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| |
| VOS_STATUS |
| WLANSAP_Set_Dfs_Ignore_CAC(tHalHandle hHal, v_U8_t ignore_cac); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_set_Dfs_Restrict_JapanW53 |
| |
| DESCRIPTION |
| This API is used to enable or disable Japan W53 Band |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN |
| hHal : HAL pointer |
| disable_Dfs_JapanW3 :Indicates if Japan W53 is disabled when set to 1 |
| Indicates if Japan W53 is enabled when set to 0 |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_set_Dfs_Restrict_JapanW53(tHalHandle hHal, v_U8_t disable_Dfs_JapanW3); |
| |
| #ifdef FEATURE_AP_MCC_CH_AVOIDANCE |
| /** |
| * wlan_sap_set_channel_avoidance() - sets sap mcc channel avoidance ini param |
| * @hal: hal handle |
| * @sap_channel_avoidance: ini parameter value |
| * |
| * sets sap mcc channel avoidance ini param, to be called in sap_start |
| * |
| * Return: success of failure of operation |
| */ |
| VOS_STATUS |
| wlan_sap_set_channel_avoidance(tHalHandle hal, bool sap_channel_avoidance); |
| #endif /* FEATURE_AP_MCC_CH_AVOIDANCE */ |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_set_Dfs_Preferred_Channel_location |
| |
| DESCRIPTION |
| This API is used to set sap preferred channels location |
| to resetrict the DFS random channel selection algorithm |
| either Indoor/Outdoor channels only. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN |
| hHal : HAL pointer |
| dfs_Preferred_Channels_location : |
| 0 - Indicates No preferred channel location restrictions |
| 1 - Indicates SAP Indoor Channels operation only. |
| 2 - Indicates SAP Outdoor Channels operation only. |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_set_Dfs_Preferred_Channel_location(tHalHandle hHal, |
| v_U8_t dfs_Preferred_Channels_location); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Set_Dfs_Target_Chnl |
| |
| DESCRIPTION |
| This API is used to set next target chnl as provided channel. |
| you can provide any valid channel to this API. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN |
| hHal: Pointer to HAL |
| |
| PARAMETERS |
| IN |
| target_channel: target channel number |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| |
| VOS_STATUS |
| WLANSAP_Set_Dfs_Target_Chnl(tHalHandle hHal, |
| v_U8_t target_channel); |
| |
| |
| |
| /*========================================================================== |
| FUNCTION wlan_sap_get_vht_ch_width |
| |
| DESCRIPTION Returns the SAP VHT channel width. |
| |
| DEPENDENCIES NA. |
| |
| PARAMETERS |
| IN |
| ctx: Pointer to vos Context or Sap Context based on MBSSID |
| |
| RETURN VALUE VHT channnel width |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| v_U32_t wlan_sap_get_vht_ch_width(v_PVOID_t ctx); |
| |
| /*========================================================================== |
| FUNCTION wlan_sap_set_vht_ch_width |
| |
| DESCRIPTION Sets the SAP VHT channel width. |
| |
| DEPENDENCIES NA. |
| |
| PARAMETERS |
| IN |
| ctx: Pointer to vos Context or Sap Context based on MBSSID |
| vht_channel_width - VHT channel width |
| |
| RETURN VALUE NONE |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| void wlan_sap_set_vht_ch_width(v_PVOID_t ctx, v_U32_t vht_channel_width); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_UpdateSapConfigAddIE |
| |
| DESCRIPTION |
| This API is used to set sap config parameter. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN OUT |
| pConfig: Pointer to sap config |
| |
| PARAMETERS |
| IN |
| additionIEBuffer - buffer containing addition IE from hostapd |
| |
| PARAMETERS |
| IN |
| additionIELength - length of buffer |
| |
| PARAMETERS |
| IN |
| updateType - Type of buffer |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| |
| VOS_STATUS WLANSAP_UpdateSapConfigAddIE(tsap_Config_t *pConfig, |
| const tANI_U8 *pAdditionIEBuffer, |
| tANI_U16 additionIELength, |
| eUpdateIEsType updateType); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_ResetSapConfigAddIE |
| |
| DESCRIPTION |
| This API is used to reset and clear the buffer in sap config. |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN OUT |
| pConfig: Pointer to sap config |
| PARAMETERS |
| IN |
| updateType: type buffer |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| |
| VOS_STATUS |
| WLANSAP_ResetSapConfigAddIE(tsap_Config_t *pConfig, |
| eUpdateIEsType updateType); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_extend_to_acs_range |
| |
| DESCRIPTION Function extends give channel range to consider ACS chan bonding |
| |
| DEPENDENCIES PARAMETERS |
| |
| IN /OUT |
| *startChannelNum : ACS extend start ch |
| *endChannelNum : ACS extended End ch |
| *bandStartChannel: Band start ch |
| *bandEndChannel : Band end ch |
| |
| RETURN VALUE NONE |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| v_VOID_t WLANSAP_extend_to_acs_range(v_U8_t *startChannelNum, |
| v_U8_t *endChannelNum, |
| v_U8_t *bandStartChannel, |
| v_U8_t *bandEndChannel); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Get_DfsNol |
| |
| DESCRIPTION |
| This API is used to dump the dfs nol |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN |
| sapContext: Pointer to vos global context structure |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_Get_DfsNol(v_PVOID_t pSapCtx); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_Set_DfsNol |
| |
| DESCRIPTION |
| This API is used to set the dfs nol |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN |
| sapContext: Pointer to vos global context structure |
| conf: set type |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_Set_DfsNol(v_PVOID_t pSapCtx, eSapDfsNolType conf); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_PopulateDelStaParams |
| |
| DESCRIPTION |
| This API is used to populate del station parameters |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| IN |
| mac: pointer to peer mac address. |
| reason_code: Reason code for the disassoc/deauth. |
| subtype: subtype points to either disassoc/deauth frame. |
| pDelStaParams: address where parameters to be populated. |
| |
| RETURN VALUE NONE |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| |
| void WLANSAP_PopulateDelStaParams(const v_U8_t *mac, |
| v_U16_t reason_code, |
| v_U8_t subtype, |
| struct tagCsrDelStaParams *pDelStaParams); |
| |
| /*========================================================================== |
| FUNCTION WLANSAP_ACS_CHSelect |
| |
| DESCRIPTION |
| This api function provides ACS selection for BSS |
| |
| DEPENDENCIES |
| NA. |
| |
| PARAMETERS |
| |
| IN |
| pvosGCtx: Pointer to vos global context structure |
| pConfig: Pointer to configuration structure passed down from HDD |
| pACSEventCallback: Callback function in HDD called by SAP to inform |
| HDD about channel section result |
| usrDataForCallback: Parameter that will be passed back in all the |
| SAP callback events. |
| |
| RETURN VALUE |
| The VOS_STATUS code associated with performing the operation |
| |
| VOS_STATUS_SUCCESS: Success |
| |
| SIDE EFFECTS |
| ============================================================================*/ |
| VOS_STATUS |
| WLANSAP_ACS_CHSelect(v_PVOID_t pvosGCtx, |
| tpWLAN_SAPEventCB pACSEventCallback, |
| tsap_Config_t *pConfig, |
| v_PVOID_t pUsrContext); |
| |
| eCsrPhyMode |
| wlansap_get_phymode(v_PVOID_t pctx); |
| |
| VOS_STATUS wlansap_set_tx_leakage_threshold(tHalHandle hal, |
| uint16 tx_leakage_threshold); |
| |
| VOS_STATUS wlansap_get_chan_width(void *pvosctx, |
| uint32_t *pchanwidth); |
| |
| VOS_STATUS wlansap_set_invalid_session(v_PVOID_t pctx); |
| |
| #ifdef FEATURE_WLAN_SUB_20_MHZ |
| VOS_STATUS |
| WLANSAP_set_sub20_channelwidth_with_csa( |
| void *vos_ctx_ptr, uint32_t chan_width); |
| VOS_STATUS |
| WLANSAP_get_sub20_channelwidth(void *vos_ctx_ptr, uint32_t *chan_width); |
| |
| #else |
| static inline VOS_STATUS |
| WLANSAP_set_sub20_channelwidth_with_csa( |
| void *vos_ctx_ptr, uint32_t chan_width) |
| { |
| return VOS_STATUS_SUCCESS; |
| } |
| |
| static inline VOS_STATUS |
| WLANSAP_get_sub20_channelwidth(void *vos_ctx_ptr, uint32_t *chan_width) |
| { |
| *chan_width = 0; |
| return VOS_STATUS_SUCCESS; |
| } |
| #endif |
| eHalStatus sapRoamSessionCloseCallback(void *pContext); |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| |
| #endif /* #ifndef WLAN_QCT_WLANSAP_H */ |