blob: dd2aee7023ac58ca1404cfe67339c5a283e4234a [file] [log] [blame]
/****************************************************************************
**+-----------------------------------------------------------------------+**
**| |**
**| Copyright(c) 1998 - 2008 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 scanMngrTypes.h
* \brief This file include public type definitions for the scan manager application level module,
* \brief to be included both by driver and user-mode.
* \author Ronen Kalish
* \date 01-Mar-2005
*/
#ifndef __SCAN_MNGR_TYPES_API_H__
#define __SCAN_MNGR_TYPES_API_H__
#include "scanTypes.h"
/*
***********************************************************************
* Constant definitions.
***********************************************************************
*/
/* AMximal number of channels per band policy */
#define MAX_BAND_POLICY_CHANNLES 30
/*
***********************************************************************
* Enums.
***********************************************************************
*/
/*
***********************************************************************
* Typedefs.
***********************************************************************
*/
/*
***********************************************************************
* Structure definitions.
***********************************************************************
*/
/** \struct scan_probReqParams_t
* \brief This structure contains all information needed for probe request transmission.
*/
typedef struct
{
UINT8 numOfProbeReqs; /**< number of probe requests to send */
UINT8 txPowerDbm; /**< TX power at which to transmit */
rateMask_e bitrate; /**< Bit rate at which to transmit */
} scan_probReqParams_t;
/** \struct scan_basicMethodParams_t
* \brief This structure contains parameters for basic scan operation
*/
typedef struct
{
UINT32 maxChannelDwellTime; /**< Maximum time to spend on each channel */
UINT32 minChannelDwellTime; /**<
* Minimum time to spend on each channel
* (if no activity at all was discovered
*/
scan_ETCondition_e earlyTerminationEvent; /**< The cause for early termination */
UINT8 ETMaxNumberOfApFrames; /**<
* Number of frames from the above type after which
* scan is early terminated.
*/
scan_probReqParams_t probReqParams; /**< Parameters for probe request transmission */
} scan_basicMethodParams_t;
/** \struct scan_TidTriggeredMethodParams_t
* \brief This structure contains parameters for Tid-Triggered scan operation
*/
typedef struct
{
scan_basicMethodParams_t basicMethodParams; /**< Basic scan parameters */
UINT8 triggeringTid; /**<
* Tid triggering the basic scan,
* one channel at a time.
*/
} scan_TidTriggeredMethodParams_t;
/** \struct scan_SPSMethodParams_t
* \brief This structure contains parameters for SPS scan operation
*/
typedef struct
{
scan_ETCondition_e earlyTerminationEvent; /**< The cause for early termination */
UINT8 ETMaxNumberOfApFrames; /**<
* Number of frames from the above type after which
* scan is early terminated.
*/
UINT32 scanDuration; /**< Time to spend on each channel (in usec) */
} scan_SPSMethodParams_t;
/** \struct scan_Method_t
* \brief This structure contains scan type, and accompanying parameters
*/
typedef struct
{
scan_Type_e scanType; /**<
* scan type (normal - active or passive),
* Tid-Triggered (active or passive), or SPS
*/
union
{
scan_basicMethodParams_t basicMethodParams; /**< scan parameters for normal scan */
scan_TidTriggeredMethodParams_t TidTriggerdMethodParams; /**< scan parameters for Tid-Triggered scan */
scan_SPSMethodParams_t spsMethodParams; /**< scan parameters for SPS scan */
} method;
} scan_Method_t;
/** \struct scan_bandPolicy_t
* \brief This structure contains parameters comprising a scan policy for a single band
*/
typedef struct
{
radioBand_e band; /**< the band (2.4 / 5 GHz) */
scan_Method_t discoveryMethod; /**< scan method used to discover new BSS'es */
scan_Method_t trackingMethod; /**<
* scan method used to track previously
* discovered AP's
*/
scan_Method_t immediateScanMethod; /**< scan method used for immediate scan */
INT8 rxRSSIThreshold; /**< quality threshold for received frames */
UINT8 numOfChannlesForDiscovery; /**<
* number of channels to scan at each discovery
* attempt
*/
UINT8 numOfChannles; /**< number of channels to use on this band */
UINT8 channelList[ MAX_BAND_POLICY_CHANNLES ];
/**< all possible channels */
} scan_bandPolicy_t;
/** \struct scan_Policy_t
* \brief This structure contains parameters comprising scan policies on all bands
*/
typedef struct
{
UINT32 normalScanInterval; /**<
* time interval (im msec) at which to perform
* continuous scan, when current BSS quality is
* considered "normal".
*/
UINT32 deterioratingScanInterval; /**<
* time interval (in msec) at which to perform
* continuous scab, when current BSS quality is
* considered "deteriorating"
*/
UINT8 maxTrackFailures; /**<
* the max number of track failures to keep
* an AP in the BSS list
*/
UINT8 BSSListSize; /**< the number of APs in the BSS list */
UINT8 BSSNumberToStartDiscovery; /**<
* the number of APs in the BSS list at which
* discovery process is initiated
*/
UINT8 numOfBands; /**< number of bands to scan */
scan_bandPolicy_t bandScanPolicy[ RADIO_BAND_NUM_OF_BANDS ];/**< bands' policies */
} scan_Policy_t;
/*
***********************************************************************
* External data definitions.
***********************************************************************
*/
/*
***********************************************************************
* External functions definitions
***********************************************************************
*/
#endif /* __SCAN_MNGR_TYPES_API_H__ */