/*
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
*
* 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.
*/
/**
* DOC: This file contains centralized definitions of converged configuration.
*/
#ifndef __CFG_MLME_IBSS_H
#define __CFG_MLME_IBSS_H
/*
*
* g_IBSS_AUTO_BSSID - Control IBSS Auto BSSID setup
* @Min: 0
* @Max: 1
* @Default: 1
*
* Control IBSS Auto BSSID enable / disable
* Usage: External
*
*
*/
#define CFG_IBSS_AUTO_BSSID CFG_BOOL( \
"gIbssAutoBssid", \
1, \
"Enable Auto BSSID for IBSS")
/*
*
* gAdHocChannel5G - Default 5Ghz IBSS channel if channel is not
* provided by supplicant.
* @Min: 36
* @Max: 165
* @Default: 44
*
* This ini is used to set default 5Ghz IBSS channel
* if channel is not provided by supplicant and band is 5Ghz
*
* Related: None
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_ADHOC_CHANNEL_5GHZ CFG_INI_UINT( \
"gAdHocChannel5G", \
36, \
165, \
44, \
CFG_VALUE_OR_DEFAULT, \
"Default 5Ghz IBSS channel if not provided by supplicant")
/*
*
* gAdHocChannel24G - Default 2.4Ghz IBSS channel if channel is not
* provided by supplicant.
* @Min: 1
* @Max: 14
* @Default: 6
*
* This ini is used to set default 2.4Ghz IBSS channel
* if channel is not provided by supplicant and band is 2.4Ghz
*
* Related: None
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_ADHOC_CHANNEL_24GHZ CFG_INI_UINT( \
"gAdHocChannel24G", \
1, \
14, \
6, \
CFG_VALUE_OR_DEFAULT, \
"Default 2.4Ghz IBSS channel if not provided by supplicant")
/*
*
* gCoalesingInIBSS - If IBSS coalesing is enabled.
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to set IBSS coalesing
*
* Related: None
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_COALESING CFG_INI_BOOL( \
"gCoalesingInIBSS", \
0, \
"IBSS coalesing control param")
/*
*
* gIbssATIMWinSize - Set IBSS ATIM window size
* @Min: 0
* @Max: 50
* @Default: 0
*
* This ini is used to set IBSS ATIM window size
*
* Related: None
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_ATIM_WIN_SIZE CFG_INI_UINT( \
"gIbssATIMWinSize", \
0, \
50, \
0, \
CFG_VALUE_OR_DEFAULT, \
"Set IBSS ATIM window size")
/*
*
* gIbssIsPowerSaveAllowed - Indicates if IBSS Power Save is
* supported or not
* @Min: 0
* @Max: 1
* @Default: 1
*
* This ini is used to Indicates if IBSS Power Save is
* supported or not. When not allowed,IBSS station has
* to stay awake all the time and should never set PM=1
* in its transmitted frames.
*
* Related: valid only when gIbssATIMWinSize is non-zero
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_IS_POWER_SAVE_ALLOWED CFG_INI_BOOL( \
"gIbssIsPowerSaveAllowed", \
1, \
"IBSS Power Save control")
/*
*
* gIbssIsPowerCollapseAllowed - Indicates if IBSS Power Collapse
* is allowed
* @Min: 0
* @Max: 1
* @Default: 1
*
* This ini is used to indicates if IBSS Power Collapse
* is allowed
*
* Related: None
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED CFG_INI_BOOL( \
"gIbssIsPowerCollapseAllowed", \
1, \
"Indicates if IBSS Power Collapse is allowed")
/*
*
* gIbssAwakeOnTxRx - Indicates whether IBSS station
* can exit power save mode and enter power active
* state whenever there is a TX/RX activity.
*
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to ndicates whether IBSS station
* can exit power save mode and enter power active
* state whenever there is a TX/RX activity.
*
* Related: None
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_AWAKE_ON_TX_RX CFG_INI_BOOL( \
"gIbssAwakeOnTxRx", \
0, \
"IBSS sta power save mode on TX/RX activity")
/*
*
* gIbssInactivityTime - Indicates the data
* inactivity time in number of beacon intervals
* after which IBSS station re-inters power save
*
* @Min: 1
* @Max: 10
* @Default: 1
*
* In IBSS mode if Awake on TX/RX activity is enabled
* Ibss Inactivity parameter indicates the data
* inactivity time in number of beacon intervals
* after which IBSS station re-inters power save
* by sending Null frame with PM=1
*
* Related: Aplicable if gIbssAwakeOnTxRx is enabled
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_INACTIVITY_TIME CFG_INI_UINT( \
"gIbssInactivityTime", \
1, \
10, \
1, \
CFG_VALUE_OR_DEFAULT, \
"No of Beacons intervals of data inactivity for power save")
/*
*
* gIbssTxSpEndInactivityTime - Indicates the time after
* which TX Service Period is terminated by
* sending a Qos Null frame with EOSP.
*
* @Min: 0
* @Max: 100
* @Default: 0
*
* In IBSS mode Tx Service Period Inactivity
* time in msecs indicates the time after
* which TX Service Period is terminated by
* sending a Qos Null frame with EOSP.
* If value is 0, TX SP is terminated with the
* last buffered packet itself instead of waiting
* for the inactivity.
*
* Related: None
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_TXSP_END_INACTIVITY CFG_INI_UINT( \
"gIbssTxSpEndInactivityTime", \
0, \
100, \
0, \
CFG_VALUE_OR_DEFAULT, \
"TX service period inactivity timeout")
/*
*
* gIbssPsWarmupTime - PS-supporting device
* does not enter protocol sleep state during first
* gIbssPsWarmupTime seconds.
*
* @Min: 0
* @Max: 65535
* @Default: 0
*
* When IBSS network is initialized, PS-supporting device
* does not enter protocol sleep state during first
* gIbssPsWarmupTime seconds.
*
* Related: valid if gIbssIsPowerSaveAllowed is set
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_PS_WARMUP_TIME CFG_INI_UINT( \
"gIbssPsWarmupTime", \
0, \
65535, \
0, \
CFG_VALUE_OR_DEFAULT, \
"IBSS Power save skip time")
/*
*
* gIbssPs1RxChainInAtim - IBSS Power Save Enable/Disable 1 RX
* chain usage during the ATIM window
*
* @Min: 0
* @Max: 1
* @Default: 0
*
* IBSS Power Save Enable/Disable 1 RX
* chain usage during the ATIM window
*
* Related: Depend on gIbssIsPowerSaveAllowed
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW CFG_INI_BOOL( \
"gIbssPs1RxChainInAtim", \
0, \
"Control IBSS Power save in 1RX chain during ATIM")
/*
*
* gIbssBssid - Default IBSS BSSID if BSSID is not provided by supplicant
* @Min: "000000000000"
* @Max: "ffffffffffff"
* @Default: "000AF5040506"
*
* This ini is used to set Default IBSS BSSID if BSSID
* is not provided by supplicant and Coalesing is disabled
*
* Related: Only applicable if gCoalesingInIBSS is 0
*
* Supported Feature: IBSS
*
* Usage: Internal/External
*
*
*/
#define IBSS_BSSID_DEFAULT { .bytes = { 0x00, 0x0a, 0xf5, 0x04, 0x05, 0x06 } }
#define CFG_IBSS_BSSID CFG_INI_MAC("gIbssBssid", \
IBSS_BSSID_DEFAULT, \
"IBSS BSSID if not provided by supplicant")
#define CFG_IBSS_ALL \
CFG(CFG_IBSS_ADHOC_CHANNEL_5GHZ) \
CFG(CFG_IBSS_ADHOC_CHANNEL_24GHZ) \
CFG(CFG_IBSS_ATIM_WIN_SIZE) \
CFG(CFG_IBSS_AUTO_BSSID) \
CFG(CFG_IBSS_AWAKE_ON_TX_RX) \
CFG(CFG_IBSS_BSSID) \
CFG(CFG_IBSS_COALESING) \
CFG(CFG_IBSS_INACTIVITY_TIME) \
CFG(CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED) \
CFG(CFG_IBSS_IS_POWER_SAVE_ALLOWED) \
CFG(CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW) \
CFG(CFG_IBSS_PS_WARMUP_TIME) \
CFG(CFG_IBSS_TXSP_END_INACTIVITY)
#endif