blob: e66c5c69b0845914114c441b3dd485ccdc9f06d8 [file] [log] [blame]
/*
* roamingMngrTypes.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.
*/
/****************************************************************************
* *
* MODULE: Roaming Manager *
* PURPOSE: Roaming Manager Module Types *
* *
****************************************************************************/
#ifndef _ROAMING_MNGR_TYPES_H_
#define _ROAMING_MNGR_TYPES_H_
/** \file roamingMngrTypes.h
* \brief Internal Roaming Manager Types API
*/
/*-----------*/
/* Constants */
/*-----------*/
#define ROAMING_ENABLED 1
#define ROAMING_DISABLED 0
#define ROAMING_OPERATIONAL_MODE_MANUAL 0
#define ROAMING_OPERATIONAL_MODE_AUTO 1
/*--------------*/
/* Enumerations */
/*--------------*/
/*----------*/
/* Typedefs */
/*----------*/
/** \struct roamingMngrConfig_t
* \brief Roaming Manager Configuration
*
* \par Description
* This Structure defines the Roaming Manager Configuration Type
*
* \sa
*/
typedef struct
{
TI_UINT16 enableDisable; /**< Indicates if roaming is enabled/disabled:
* ROAMING_ENABLED: Enables roaming manager
* ROAMING _DISABLED: Disables roaming manager
* TI recommended default: roaming is disabled
* Note: TI_BOOL is not used, beacuse of misdefinition between the Driver and CU
*/
TI_UINT16 lowPassFilterRoamingAttempt; /**< Time to wait in seconds before roaming caused by low connection quality;
* TI recommended default: 30 seconds
*/
TI_INT8 apQualityThreshold; /**< Quality indicator (RSSI) to be used when comparing AP List matching quality
* TI recommended default: 0
*/
} roamingMngrConfig_t;
/** \struct roamingMngrThresholdsConfig_t
* \brief Roaming Manager Thresholds Configuration
*
* \par Description
* This Structure defines the Roaming Manager Trigger Thresholds Configuration type \n
* Note - It is the applicatio's responsibility to change the threshold when Voice is On
*
* \sa
*/
typedef struct
{
TI_UINT8 dataRetryThreshold; /**< Consecutive number of TX retries per roaming event;
* TI recommended default: 20
*/
TI_UINT8 numExpectedTbttForBSSLoss; /**< Number of expected TBTTs for BSS Loss event
* TI recommended default: 10
*/
TI_UINT8 txRateThreshold; /**< Low TX rate roaming even threshold;
* TI recommended default: 2 Mbps
*/
TI_INT8 lowRssiThreshold; /**< When the low RSSI threshold is crossed, the low RSSI roaming event is initiated in dBm;
* TI recommended default: -80 dBm
*/
TI_UINT8 lowSnrThreshold; /**< When the low SNR threshold is crossed, the low SNR roaming event is initiated.
* TI recommended default: 0
*/
TI_INT8 lowQualityForBackgroungScanCondition; /**< Indicator used to increase the background scan period when quality is low
* TI recommended default: -80
*/
TI_INT8 normalQualityForBackgroungScanCondition;/**< Indicator used to reduce the background scan period when quality is normal
* TI recommended default: -80
*/
} roamingMngrThresholdsConfig_t;
/** \struct roamingMngrConfigParams_t
* \brief Roaming Manager Configuration Parameters
*
* \par Description
*
* \sa
*/
typedef struct
{
roamingMngrConfig_t roamingMngrConfig; /**< Roaming Manager Configuration */
roamingMngrThresholdsConfig_t roamingMngrThresholdsConfig; /**< Roaming Manager Thresholds Configuration */
} roamingMngrConfigParams_t;
/** \struct TUserDefinedQualityTrigger
* \brief User Defined Quality Trigger
*
* \par Description
* This struct defines the User Defined Quality Trigger Parameters \n
* Used for setting Roaming User Defined Trigger
*
* \sa
*/
typedef struct
{
TI_INT16 iThreshold; /**< Input Trigger Threshold. Units: dBm / dB ; Range: (-100 .. 100) */
TI_UINT16 uPacing; /**< Minimum delay between consecutive triggers. Units: milliseconds ; Range: (0 .. 60000) */
TI_UINT8 uMetric; /**< 0 - RSSI Beacon, 1 - RSSI Packet, 2 - SNR Beacon, 3 - SNR Packet */
TI_UINT8 uType; /**< 0 - Level, 1 - Edge */
TI_UINT8 uDirection; /**< 0 - Low, 1 - High, 2 - Bidirectional */
TI_UINT8 uHystersis; /**< Hysteresis range around the threshold value. Units: dB ; Threshold range: (0 .. 255) */
TI_UINT8 uIndex; /**< User Index (0 .. 1) */
TI_UINT8 uEnable; /**< User trigger Enable. 0 - Disable, 1 - Enable */
TI_UINT8 padding[2]; /**< */
TI_UINT16 uClientID; /**< the client ID that registered for the trigger event */
} TUserDefinedQualityTrigger;
#endif /* _ROAMING_MNGR_TYPES_H_*/