summaryrefslogtreecommitdiff
path: root/wilink_6_1/stad/src/Application/scanMngrApi.h
diff options
context:
space:
mode:
Diffstat (limited to 'wilink_6_1/stad/src/Application/scanMngrApi.h')
-rw-r--r--wilink_6_1/stad/src/Application/scanMngrApi.h396
1 files changed, 396 insertions, 0 deletions
diff --git a/wilink_6_1/stad/src/Application/scanMngrApi.h b/wilink_6_1/stad/src/Application/scanMngrApi.h
new file mode 100644
index 0000000..792c25d
--- /dev/null
+++ b/wilink_6_1/stad/src/Application/scanMngrApi.h
@@ -0,0 +1,396 @@
+/*
+ * scanMngrApi.h
+ *
+ * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name Texas Instruments nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** \file scanMngrApi.h
+ * \brief This file include public definitions for the scan manager module, comprising its API.
+ *
+ * \see scanMngr.c, scanMngr.h, scanMngrTypes.h
+ */
+
+
+#ifndef __SCAN_MNGR_API_H__
+#define __SCAN_MNGR_API_H__
+
+#include "scanMngrTypes.h"
+#include "bssTypes.h"
+#include "ScanCncn.h"
+#include "DrvMainModules.h"
+
+
+/*
+ ***********************************************************************
+ * Constant definitions.
+ ***********************************************************************
+ */
+
+#define SCANNING_OPERATIONAL_MODE_MANUAL 0
+#define SCANNING_OPERATIONAL_MODE_AUTO 1
+
+
+/*
+ ***********************************************************************
+ * Enums.
+ ***********************************************************************
+ */
+/** \enum scan_mngrResultStatus_e
+ *
+ * \brief Scan Manager Result Status
+ *
+ * \par Description
+ * Enumerates the possible Scan result statuses.
+ * Returned as a response to an immediate scan request.
+ *
+ * \sa
+ */
+ typedef enum
+{
+/* 0 */ SCAN_MRS_SCAN_COMPLETE_OK, /**< Scan was completed successfully */
+/* 1 */ SCAN_MRS_SCAN_RUNNING, /**< Scan was started successfully and is now running */
+/* 2 */ SCAN_MRS_SCAN_NOT_ATTEMPTED_ALREADY_RUNNING, /**< scan was not attempted because it is already running */
+/* 3 */ SCAN_MRS_SCAN_NOT_ATTEMPTED_EMPTY_POLICY, /**<
+ * Scan was not attempted because the policy defines
+ * NULL scan type
+ */
+/* 4 */ SCAN_MRS_SCAN_NOT_ATTEMPTED_NO_CHANNLES_AVAILABLE, /**<
+ * Scan was not attempted because no channels are
+ * available for scan, according to the defined policy.
+ */
+/* 5 */ SCAN_MRS_SCAN_FAILED, /**< Scan failed to start */
+/* 6 */ SCAN_MRS_SCAN_STOPPED, /**< Scan was stopped by caller */
+/* 7 */ SCAN_MRS_SCAN_ABORTED_FW_RESET, /**< Scan was aborted due to recovery */
+/* 8 */ SCAN_MRS_SCAN_ABORTED_HIGHER_PRIORITY /**< Scan was aborted due to a higher priority client */
+
+} scan_mngrResultStatus_e;
+
+typedef enum {
+ CONNECTION_STATUS_CONNECTED =0,
+ CONNECTION_STATUS_NOT_CONNECTED
+} scanMngr_connStatus_e;
+
+
+
+
+/*
+ ***********************************************************************
+ * Typedefs.
+ ***********************************************************************
+ */
+
+/*
+ ***********************************************************************
+ * Structure definitions.
+ ***********************************************************************
+ */
+
+typedef struct {
+ TI_UINT8 numOfChannels; /**< Number of channels to scan */
+ TScanChannelEntry channelEntry[ MAX_NUMBER_OF_CHANNELS_PER_SCAN ]; /**< Channel data array, actual size according to the above field. */
+} channelList_t;
+
+typedef struct _BssListEx_t
+{
+ bssList_t *pListOfAPs;
+ TI_BOOL scanIsRunning;
+} BssListEx_t;
+
+
+/*
+ ***********************************************************************
+ * External data definitions.
+ ***********************************************************************
+ */
+/*
+ ***********************************************************************
+ * External functions definitions
+ ***********************************************************************
+ */
+/**
+ * \brief Creates the scan manager object
+ *
+ * \param hScanMngr - handle to the OS object
+ * \return Handle to the Scan Manager Object on Success, NULL otherwise
+ *
+ * \par Description
+ * Creates (allocates) the scan manager object and its database
+ *
+ * \sa
+ */
+TI_HANDLE scanMngr_create( TI_HANDLE hOS );
+/**
+ * \brief Initializes the scan manager
+ *
+ * \param pStadHandles - The driver modules handles
+ * \return void
+ *
+ * \par Description
+ * Initializes the scan manager object with other object handlers called by the driver core logic,
+ * and creates Scan Manager Timer
+ *
+ * \sa scanMngr_unload
+ */
+void scanMngr_init (TStadHandlesList *pStadHandles);
+/**
+ * \brief Unloads the scan manager object
+ *
+ * \param hScanMngr - Handle to the scan manager object to unload
+ * \return void
+ *
+ * \par Description
+ * Frees the memory allocated by the scan manager.
+ * The function is called as part of the unloading process of the driver.
+ *
+ * \sa
+ */
+void scanMngr_unload( TI_HANDLE hScanMngr );
+/**
+ * \brief Starts an immediate scan operation
+ *
+ * \param hScanMngr - handle to the scan manager object
+ * \param pNeighborAPsOnly - Indicates whether to scan only neighbor APs (or all channels defined by the policy)
+ * TI_TRUE if scan for neighbor APs only, TI_FALSE if scan on all channels
+ * \return Scan Result Status
+ *
+ * \par Description
+ *
+ * \sa scanMngr_create
+ */
+scan_mngrResultStatus_e scanMngr_startImmediateScan( TI_HANDLE hScanMngr, TI_BOOL bNeighborAPsOnly );
+/**
+ * \brief Stops the immediate scan operation
+ *
+ * \param hScanMngr - handle to the scan manager object
+ * \return void
+ *
+ * \par Description
+ *
+ * \sa
+ */
+void scanMngr_stopImmediateScan( TI_HANDLE hScanMngr );
+/**
+ * \brief Starts the continuous scan timer
+ *
+ * \param hScanMngr - Handle to the scan manager object
+ * \param currentBSS - BSSID of the AP to which the STA is connected
+ * \param currentBSSBand - Band of the AP to which the STA is connected
+ * \return void
+ *
+ * \par Description
+ * Starts the continuous scan process performed by the scan manager.
+ * It is called by the roaming manager when an STA connection is established
+ *
+ * \sa
+ */
+void scanMngr_startContScan( TI_HANDLE hScanMngr, TMacAddr* currentBSS, ERadioBand currentBSSBand );
+/**
+ * \brief Stops the continuous scan timer
+ *
+ * \param hScanMngr - Handle to the scan manager object
+ * \return void
+ *
+ * \par Description
+ * Stops the continues scan performed by the scan manager.
+ * It is called by the roaming manager when the STA disconnects
+ *
+ * \sa
+ */
+void scanMngr_stopContScan( TI_HANDLE hScanMngr );
+/**
+ * \brief Returns the currently available BSS list
+ *
+ * \param hScanMngr - Handle to the scan manager object
+ * \return Pointer to BSS list
+ *
+ * \par Description
+ * Used by the roaming manager to obtain the scan manager BSS list.
+ *
+ * \sa
+ */
+bssList_t *scanMngr_getBSSList( TI_HANDLE hScanMngr );
+/**
+ * \brief Sets the neighbor APs
+ *
+ * \param hScanMngr - Handle to the scan manager object
+ * \param neighborAPList - Pointer to the neighbor AP list
+ * \return void
+ *
+ * \par Description
+ * Used by the roaming manager to set a list of neighbor APs for the scan manager,
+ * which are then given priority over policy channels in the discovery phase
+ *
+ * \sa
+ */
+void scanMngr_setNeighborAPs( TI_HANDLE hScanMngr, neighborAPList_t* neighborAPList );
+/**
+ * \brief Change quality level (normal / deteriorating)
+ *
+ * \param hScanMngr - Handle to the scan manager object
+ * \param bLowQuality - TI_TRUE if quality is deteriorating, TI_FALSE if quality is normal
+ * \return void
+ *
+ * \par Description
+ * Used by the roaming manager to set the scan interval used by the scan manager,
+ * according to the current AP quality level
+ *
+ * \sa
+ */
+void scanMngr_qualityChangeTrigger( TI_HANDLE hScanMngr, TI_BOOL bLowQuality );
+/**
+ * \brief Change quality level (normal / deteriorating)
+ *
+ * \param hScanMngr - Handle to the scan manager object
+ * \param macAddress - MAC address of the new AP (to which the STA is currently connected to)
+ * \param band - Band of the new AP (to which the STA is currently connected to)
+ * \return void
+ *
+ * \par Description
+ * Used by the roaming manager to notify the scan manager that roaming is complete.
+ * This is done so that the scan manager does not attempt to discover the current AP,
+ * in case it is also a neighbor AP
+ *
+ * \sa
+ */
+void scanMngr_handoverDone( TI_HANDLE hScanMngr, TMacAddr* macAddress, ERadioBand band );
+/**
+ * \brief Get Scan Manager Parameters
+ *
+ * \param hScanMngr - Handle to the scan manager object
+ * \param pParam - Pointer to get Parameter
+ * \return TI_OK if the parameter got successfully, TI_NOK otherwise
+ *
+ * \par Description
+ * Parses and executes a get parameter command
+ *
+ * \sa
+ */
+TI_STATUS scanMngr_getParam( TI_HANDLE hScanMngr, paramInfo_t *pParam );
+/**
+ * \brief Set Scan Manager Parameters
+ *
+ * \param hScanMngr - Handle to the scan manager object
+ * \param pParam - Pointer to set Parameter
+ * \return TI_OK if the parameter was set successfully, TI_NOK otherwise
+ *
+ * \par Description
+ * Called when the user configures scan parameters. It parses and executes a set parameter command
+ *
+ * \sa
+ */
+TI_STATUS scanMngr_setParam( TI_HANDLE hScanMngr, paramInfo_t *pParam );
+
+
+
+
+
+/********** New APIs added for EMP manual scan support ******/
+
+void scanMngr_startManual(TI_HANDLE hScanMngr);
+
+void scanMngr_stopManual(TI_HANDLE hScanMngr);
+
+TI_STATUS scanMngr_setManualScanChannelList (TI_HANDLE hScanMngr, channelList_t* pChannelList);
+
+EScanCncnResultStatus scanMngr_Start1ShotScan (TI_HANDLE hScanMngr, EScanCncnClient eClient);
+
+TI_STATUS scanMngr_immediateScanComplete(TI_HANDLE hScanMngr, scan_mngrResultStatus_e scanCmpltStatus);
+
+TI_STATUS scanMngr_reportImmediateScanResults(TI_HANDLE hScanMngr, scan_mngrResultStatus_e scanCmpltStatus);
+
+TI_STATUS scanMngr_startContinuousScanByApp (TI_HANDLE hScanMngr, channelList_t* pChannelList);
+
+TI_STATUS scanMngr_stopContinuousScanByApp (TI_HANDLE hScanMngr);
+
+/********** New APIs added for EMP manual scan support ******/
+
+
+#ifdef TI_DBG
+/**
+ * \brief Print scan policy
+ *
+ * \param scanPolicy - scan policy to print
+ * \return void
+ *
+ * \par Description
+ *
+ * \sa
+ */
+void scanMngrTracePrintScanPolicy( TScanPolicy* scanPolicy );
+/**
+ * \brief Print scan manager statistics
+ *
+ * \param hScanMngr - handle to the scan manager object.\n
+ * \return void
+ *
+ * \par Description
+ *
+ * \sa
+ */
+void scanMngr_statsPrint( TI_HANDLE hScanMngr );
+/**
+ * \brief Reset scan manager statistics
+ *
+ * \param hScanMngr - handle to the scan manager object.\n
+ * \return void
+ *
+ * \par Description
+ *
+ * \sa
+ */
+void scanMngr_statsReset( TI_HANDLE hScanMngr );
+/**
+ * \brief Print Neighbor AP list
+ *
+ * \param hScanMngr - handle to the scan manager object.\n
+ * \return void
+ *
+ * \par Description
+ *
+ * \sa
+ */
+void scanMngrDebugPrintNeighborAPList( TI_HANDLE hScanMngr );
+/**
+ * \brief Prints all data in the scan manager object
+ *
+ * \param hScanMngr - handle to the scan manager object.\n
+ * \return void
+ *
+ * \par Description
+ *
+ * \sa
+ */
+void scanMngrDebugPrintObject( TI_HANDLE hScanMngr );
+
+#endif /* TI_DBG */
+
+void scanMngr_SetDefaults (TI_HANDLE hScanMngr, TRoamScanMngrInitParams *pInitParams);
+
+#endif /* __SCAN_MNGR_API_H__ */