qcacmn: Define configures about TDLS
Based on converged cfg component, define TDLS configures and APIs to get or set these configures. Change-Id: I86f61246b810c7f25a74c814df20d0e2c810b292 CRs-Fixed: 2277559
Bu işleme şunda yer alıyor:
759
dispatcher/inc/wlan_tdls_cfg.h
Normal dosya
759
dispatcher/inc/wlan_tdls_cfg.h
Normal dosya
@@ -0,0 +1,759 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(CONFIG_TDLS_H__)
|
||||||
|
#define CONFIG_TDLS_H__
|
||||||
|
|
||||||
|
#include "cfg_define.h"
|
||||||
|
#include "cfg_converged.h"
|
||||||
|
#include "qdf_types.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSUapsdMask - ACs to setup U-APSD for TDLS Sta.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 0x0F
|
||||||
|
* @Default: 0x0F
|
||||||
|
*
|
||||||
|
* This ini is used to configure the ACs for which mask needs to be enabled.
|
||||||
|
* 0x1: Background 0x2: Best effort
|
||||||
|
* 0x4: Video 0x8: Voice
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_QOS_WMM_UAPSD_MASK CFG_INI_UINT( \
|
||||||
|
"gTDLSUapsdMask", \
|
||||||
|
0, \
|
||||||
|
0x0F, \
|
||||||
|
0x0F, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"ACs to setup U-APSD for TDLS Sta")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableTDLSBufferSta - Controls the TDLS buffer.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 1
|
||||||
|
*
|
||||||
|
* This ini is used to control the TDLS buffer.
|
||||||
|
* Buffer STA is not enabled in CLD 2.0 yet.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_BUF_STA_ENABLED CFG_INI_BOOL( \
|
||||||
|
"gEnableTDLSBufferSta", \
|
||||||
|
1, \
|
||||||
|
"Controls the TDLS buffer")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSPuapsdInactivityTime - Peer UAPSD Inactivity time.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 10
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* This ini is used to configure peer uapsd inactivity time.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_PUAPSD_INACT_TIME CFG_INI_UINT( \
|
||||||
|
"gTDLSPuapsdInactivityTime", \
|
||||||
|
0, \
|
||||||
|
10, \
|
||||||
|
0, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Peer UAPSD Inactivity time")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSPuapsdRxFrameThreshold - Peer UAPSD Rx frame threshold.
|
||||||
|
* @Min: 10
|
||||||
|
* @Max: 20
|
||||||
|
* @Default: 10
|
||||||
|
*
|
||||||
|
* This ini is used to configure maximum Rx frame during SP.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_RX_FRAME_THRESHOLD CFG_INI_UINT( \
|
||||||
|
"gTDLSPuapsdRxFrameThreshold", \
|
||||||
|
10, \
|
||||||
|
20, \
|
||||||
|
10, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Peer UAPSD Rx frame threshold")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableTDLSOffChannel - Enables off-channel support for TDLS link.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* This ini is used to enable/disable off-channel support for TDLS link.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_OFF_CHANNEL_ENABLED CFG_INI_BOOL( \
|
||||||
|
"gEnableTDLSOffChannel", \
|
||||||
|
0, \
|
||||||
|
"Enables off-channel support for TDLS")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableTDLSSupport - Enable support for TDLS.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* This ini is used to enable/disable TDLS support.
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_SUPPORT_ENABLE CFG_INI_BOOL( \
|
||||||
|
"gEnableTDLSSupport", \
|
||||||
|
0, \
|
||||||
|
"enable/disable TDLS support")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableTDLSImplicitTrigger - Enable Implicit TDLS.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* This ini is used to enable/disable implicit TDLS.
|
||||||
|
* CLD driver initiates TDLS Discovery towards a peer whenever TDLS Setup
|
||||||
|
* criteria (throughput and RSSI thresholds) is met and then it tears down
|
||||||
|
* TDLS when teardown criteria (idle packet count and RSSI) is met.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_IMPLICIT_TRIGGER CFG_INI_BOOL( \
|
||||||
|
"gEnableTDLSImplicitTrigger", \
|
||||||
|
0, \
|
||||||
|
"enable/disable implicit TDLS")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSTxStatsPeriod - TDLS TX statistics time period.
|
||||||
|
* @Min: 1000
|
||||||
|
* @Max: 4294967295
|
||||||
|
* @Default: 2000
|
||||||
|
*
|
||||||
|
* This ini is used to configure the time period (in ms) to evaluate whether
|
||||||
|
* the number of Tx/Rx packets exceeds TDLSTxPacketThreshold and triggers a
|
||||||
|
* TDLS Discovery request.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_TX_STATS_PERIOD CFG_INI_UINT( \
|
||||||
|
"gTDLSTxStatsPeriod", \
|
||||||
|
1000, \
|
||||||
|
4294967295UL, \
|
||||||
|
2000, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"TDLS TX statistics time period")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSTxPacketThreshold - Tx/Rx Packet threshold for initiating TDLS.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 4294967295
|
||||||
|
* @Default: 40
|
||||||
|
*
|
||||||
|
* This ini is used to configure the number of Tx/Rx packets during the
|
||||||
|
* period of gTDLSTxStatsPeriod when exceeded, a TDLS Discovery request
|
||||||
|
* is triggered.
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_TX_PACKET_THRESHOLD CFG_INI_UINT( \
|
||||||
|
"gTDLSTxPacketThreshold", \
|
||||||
|
0, \
|
||||||
|
4294967295UL, \
|
||||||
|
40, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Tx/Rx Packet threshold for initiating TDLS")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSMaxDiscoveryAttempt - Attempts for sending TDLS discovery requests.
|
||||||
|
* @Min: 1
|
||||||
|
* @Max: 100
|
||||||
|
* @Default: 5
|
||||||
|
*
|
||||||
|
* This ini is used to configure the number of failures of discover request,
|
||||||
|
* when exceeded, the peer is assumed to be not TDLS capable and no further
|
||||||
|
* TDLS Discovery request is made.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_MAX_DISCOVERY_ATTEMPT CFG_INI_UINT( \
|
||||||
|
"gTDLSMaxDiscoveryAttempt", \
|
||||||
|
1, \
|
||||||
|
100, \
|
||||||
|
5, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Attempts for sending TDLS discovery requests")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSIdleTimeout - Duration within which number of TX / RX frames meet the
|
||||||
|
* criteria for TDLS teardown.
|
||||||
|
* @Min: 500
|
||||||
|
* @Max: 40000
|
||||||
|
* @Default: 5000
|
||||||
|
*
|
||||||
|
* This ini is used to configure the time period (in ms) to evaluate whether
|
||||||
|
* the number of Tx/Rx packets exceeds gTDLSIdlePacketThreshold and thus meets
|
||||||
|
* criteria for TDLS teardown.
|
||||||
|
* Teardown notification interval (gTDLSIdleTimeout) should be multiple of
|
||||||
|
* setup notification (gTDLSTxStatsPeriod) interval.
|
||||||
|
* e.g.
|
||||||
|
* if setup notification (gTDLSTxStatsPeriod) interval = 500, then
|
||||||
|
* teardown notification (gTDLSIdleTimeout) interval should be 1000,
|
||||||
|
* 1500, 2000, 2500...
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_IDLE_TIMEOUT CFG_INI_UINT( \
|
||||||
|
"gTDLSIdleTimeout", \
|
||||||
|
500, \
|
||||||
|
40000, \
|
||||||
|
5000, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"this is idle time period")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSIdlePacketThreshold - Number of idle packet.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 40000
|
||||||
|
* @Default: 3
|
||||||
|
*
|
||||||
|
* This ini is used to configure the number of Tx/Rx packet, below which
|
||||||
|
* within last gTDLSTxStatsPeriod period is considered as idle condition.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_IDLE_PACKET_THRESHOLD CFG_INI_UINT( \
|
||||||
|
"gTDLSIdlePacketThreshold", \
|
||||||
|
0, \
|
||||||
|
40000, \
|
||||||
|
3, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Number of idle packet")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSRSSITriggerThreshold - RSSI threshold for TDLS connection.
|
||||||
|
* @Min: -120
|
||||||
|
* @Max: 0
|
||||||
|
* @Default: -75
|
||||||
|
*
|
||||||
|
* This ini is used to configure the absolute value (in dB) of the peer RSSI,
|
||||||
|
* below which a TDLS setup request is triggered.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_RSSI_TRIGGER_THRESHOLD CFG_INI_INT( \
|
||||||
|
"gTDLSRSSITriggerThreshold", \
|
||||||
|
-120, \
|
||||||
|
0, \
|
||||||
|
-75, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"RSSI threshold for TDLS connection")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSRSSITeardownThreshold - RSSI threshold for TDLS teardown.
|
||||||
|
* @Min: -120
|
||||||
|
* @Max: 0
|
||||||
|
* @Default: -75
|
||||||
|
*
|
||||||
|
* This ini is used to configure the absolute value (in dB) of the peer RSSI,
|
||||||
|
* when exceed, a TDLS teardown is triggered.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_RSSI_TEARDOWN_THRESHOLD CFG_INI_INT( \
|
||||||
|
"gTDLSRSSITeardownThreshold", \
|
||||||
|
-120, \
|
||||||
|
0, \
|
||||||
|
-75, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"RSSI threshold for TDLS teardown")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSRSSITeardownThreshold - RSSI threshold for TDLS teardown.
|
||||||
|
* @Min: -120
|
||||||
|
* @Max: 0
|
||||||
|
* @Default: -75
|
||||||
|
*
|
||||||
|
* This ini is used to configure the absolute value (in dB) of the peer RSSI,
|
||||||
|
* when exceed, a TDLS teardown is triggered.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_RSSI_DELTA CFG_INI_INT( \
|
||||||
|
"gTDLSRSSIDelta", \
|
||||||
|
-30, \
|
||||||
|
0, \
|
||||||
|
-20, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Delta value for the peer RSSI that can trigger teardown")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSPrefOffChanNum - Preferred TDLS channel number when off-channel support
|
||||||
|
* is enabled.
|
||||||
|
* @Min: 1
|
||||||
|
* @Max: 165
|
||||||
|
* @Default: 36
|
||||||
|
*
|
||||||
|
* This ini is used to configure preferred TDLS channel number when off-channel
|
||||||
|
* support is enabled.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport, gEnableTDLSOffChannel.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM CFG_INI_UINT( \
|
||||||
|
"gTDLSPrefOffChanNum", \
|
||||||
|
1, \
|
||||||
|
165, \
|
||||||
|
36, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Preferred TDLS channel number")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSPrefOffChanBandwidth - Preferred TDLS channel bandwidth when
|
||||||
|
* off-channel support is enabled.
|
||||||
|
* @Min: 0x01
|
||||||
|
* @Max: 0x0F
|
||||||
|
* @Default: 0x07
|
||||||
|
*
|
||||||
|
* This ini is used to configure preferred TDLS channel bandwidth when
|
||||||
|
* off-channel support is enabled.
|
||||||
|
* 0x1: 20 MHz 0x2: 40 MHz 0x4: 80 MHz 0x8: 160 MHz
|
||||||
|
* When more than one bits are set then firmware starts from the highest and
|
||||||
|
* selects one based on capability of peer.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport, gEnableTDLSOffChannel.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_PREFERRED_OFF_CHANNEL_BW CFG_INI_UINT( \
|
||||||
|
"gTDLSPrefOffChanBandwidth", \
|
||||||
|
1, \
|
||||||
|
15, \
|
||||||
|
7, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Preferred TDLS channel bandwidth")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSPuapsdInactivityTime - Peer UAPSD Inactivity time.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 10
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* This ini is used to configure peer uapsd inactivity time.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_PUAPSD_INACTIVITY_TIME CFG_INI_UINT( \
|
||||||
|
"gTDLSPuapsdInactivityTime", \
|
||||||
|
0, \
|
||||||
|
10, \
|
||||||
|
0, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Peer UAPSD Inactivity time")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSPuapsdInactivityTime - Peer UAPSD Inactivity time.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 10
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* This ini is used to configure peer uapsd inactivity time.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD CFG_INI_UINT( \
|
||||||
|
"gTDLSPuapsdRxFrameThreshold", \
|
||||||
|
10, \
|
||||||
|
20, \
|
||||||
|
10, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Peer UAPSD Rx frame threshold")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSPuapsdPTIWindow - This ini is used to configure peer traffic indication
|
||||||
|
* window.
|
||||||
|
* @Min: 1
|
||||||
|
* @Max: 5
|
||||||
|
* @Default: 2
|
||||||
|
*
|
||||||
|
* This ini is used to configure buffering time in number of beacon intervals.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW CFG_INI_UINT( \
|
||||||
|
"gTDLSPuapsdPTIWindow", \
|
||||||
|
1, \
|
||||||
|
5, \
|
||||||
|
2, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"This ini is used to configure peer traffic indication")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSPuapsdPTIWindow - This ini is used to configure peer traffic indication
|
||||||
|
* window.
|
||||||
|
* @Min: 1
|
||||||
|
* @Max: 5
|
||||||
|
* @Default: 2
|
||||||
|
*
|
||||||
|
* This ini is used to configure buffering time in number of beacon intervals.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT CFG_INI_UINT( \
|
||||||
|
"gTDLSPuapsdPTRTimeout", \
|
||||||
|
0, \
|
||||||
|
10000, \
|
||||||
|
5000, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Peer Traffic Response timer duration in ms")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSPuapsdPTIWindow - This ini is used to configure peer traffic indication
|
||||||
|
* window.
|
||||||
|
* @Min: 1
|
||||||
|
* @Max: 5
|
||||||
|
* @Default: 2
|
||||||
|
*
|
||||||
|
* This ini is used to configure buffering time in number of beacon intervals.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_EXTERNAL_CONTROL CFG_INI_BOOL( \
|
||||||
|
"gTDLSExternalControl", \
|
||||||
|
1, \
|
||||||
|
"Enable external TDLS control")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableTDLSWmmMode - Enables WMM support over TDLS link.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 1
|
||||||
|
*
|
||||||
|
* This ini is used to enable/disable WMM support over TDLS link.
|
||||||
|
* This is required to be set to 1 for any TDLS and uAPSD functionality.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_WMM_MODE_ENABLE CFG_INI_BOOL( \
|
||||||
|
"gEnableTDLSWmmMode", \
|
||||||
|
1, \
|
||||||
|
"Enables WMM support over TDLS link")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableTDLSScan - Allow scan and maintain TDLS link.
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* This ini is used to enable/disable TDLS scan.
|
||||||
|
* 0: If peer is not buffer STA capable and device is not sleep STA
|
||||||
|
* capable, then teardown TDLS link when scan is initiated. If peer
|
||||||
|
* is buffer STA and we can be sleep STA then TDLS link is maintained
|
||||||
|
* during scan.
|
||||||
|
* 1: Maintain TDLS link and allow scan even if peer is not buffer STA
|
||||||
|
* capable and device is not sleep STA capable. There will be loss of
|
||||||
|
* Rx pkts since peer would not know when device moves away from tdls
|
||||||
|
* channel. Tx on TDLS link would stop when device moves away from tdls
|
||||||
|
* channel.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_SCAN_ENABLE CFG_INI_BOOL( \
|
||||||
|
"gEnableTDLSScan", \
|
||||||
|
0, \
|
||||||
|
"Allow scan and maintain TDLS link")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSPeerKickoutThreshold - TDLS peer kick out threshold to firmware.
|
||||||
|
* @Min: 10
|
||||||
|
* @Max: 5000
|
||||||
|
* @Default: 96
|
||||||
|
*
|
||||||
|
* This ini is used to configure TDLS peer kick out threshold to firmware.
|
||||||
|
* Firmware will use this value to determine, when to send TDLS
|
||||||
|
* peer kick out event to host.
|
||||||
|
* E.g.
|
||||||
|
* if peer kick out threshold is 10, then firmware will wait for 10
|
||||||
|
* consecutive packet failures and then send TDLS kick out
|
||||||
|
* notification to host driver
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_PEER_KICKOUT_THRESHOLD CFG_INI_UINT( \
|
||||||
|
"gTDLSPeerKickoutThreshold", \
|
||||||
|
10, \
|
||||||
|
5000, \
|
||||||
|
96, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"TDLS peer kick out threshold to firmware")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTDLSEnableDeferTime - Timer to defer for enabling TDLS on P2P listen.
|
||||||
|
* @Min: 500
|
||||||
|
* @Max: 6000
|
||||||
|
* @Default: 2000
|
||||||
|
*
|
||||||
|
* This ini is used to set the timer to defer for enabling TDLS on P2P
|
||||||
|
* listen (value in milliseconds).
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_ENABLE_DEFER_TIMER CFG_INI_UINT( \
|
||||||
|
"gTDLSEnableDeferTime", \
|
||||||
|
500, \
|
||||||
|
6000, \
|
||||||
|
2000, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Timer to defer for enabling TDLS on P2P listen")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* DelayedTriggerFrmInt - delayed trigger frame interval.
|
||||||
|
* @Min: 500
|
||||||
|
* @Max: 6000
|
||||||
|
* @Default: 2000
|
||||||
|
*
|
||||||
|
* This ini is used to set the delayed trigger frame interval.
|
||||||
|
*
|
||||||
|
* Related: gEnableTDLSSupport.
|
||||||
|
*
|
||||||
|
* Supported Feature: TDLS
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TDLS_DELAYED_TRGR_FRM_INT CFG_INI_UINT( \
|
||||||
|
"DelayedTriggerFrmInt", \
|
||||||
|
1, \
|
||||||
|
4294967295UL, \
|
||||||
|
3000, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"delayed trigger frame interval")
|
||||||
|
|
||||||
|
#define CFG_TDLS_ALL \
|
||||||
|
CFG(CFG_TDLS_QOS_WMM_UAPSD_MASK) \
|
||||||
|
CFG(CFG_TDLS_BUF_STA_ENABLED) \
|
||||||
|
CFG(CFG_TDLS_PUAPSD_INACT_TIME) \
|
||||||
|
CFG(CFG_TDLS_RX_FRAME_THRESHOLD) \
|
||||||
|
CFG(CFG_TDLS_OFF_CHANNEL_ENABLED) \
|
||||||
|
CFG(CFG_TDLS_SUPPORT_ENABLE) \
|
||||||
|
CFG(CFG_TDLS_IMPLICIT_TRIGGER) \
|
||||||
|
CFG(CFG_TDLS_TX_STATS_PERIOD) \
|
||||||
|
CFG(CFG_TDLS_TX_PACKET_THRESHOLD) \
|
||||||
|
CFG(CFG_TDLS_MAX_DISCOVERY_ATTEMPT) \
|
||||||
|
CFG(CFG_TDLS_IDLE_TIMEOUT) \
|
||||||
|
CFG(CFG_TDLS_IDLE_PACKET_THRESHOLD) \
|
||||||
|
CFG(CFG_TDLS_RSSI_TRIGGER_THRESHOLD) \
|
||||||
|
CFG(CFG_TDLS_RSSI_TEARDOWN_THRESHOLD) \
|
||||||
|
CFG(CFG_TDLS_RSSI_DELTA) \
|
||||||
|
CFG(CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM) \
|
||||||
|
CFG(CFG_TDLS_PREFERRED_OFF_CHANNEL_BW) \
|
||||||
|
CFG(CFG_TDLS_PUAPSD_INACTIVITY_TIME) \
|
||||||
|
CFG(CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD) \
|
||||||
|
CFG(CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW) \
|
||||||
|
CFG(CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT) \
|
||||||
|
CFG(CFG_TDLS_EXTERNAL_CONTROL) \
|
||||||
|
CFG(CFG_TDLS_WMM_MODE_ENABLE) \
|
||||||
|
CFG(CFG_TDLS_SCAN_ENABLE) \
|
||||||
|
CFG(CFG_TDLS_PEER_KICKOUT_THRESHOLD) \
|
||||||
|
CFG(CFG_TDLS_ENABLE_DEFER_TIMER) \
|
||||||
|
CFG(CFG_TDLS_DELAYED_TRGR_FRM_INT)
|
||||||
|
|
||||||
|
#endif
|
217
dispatcher/inc/wlan_tdls_cfg_api.h
Normal dosya
217
dispatcher/inc/wlan_tdls_cfg_api.h
Normal dosya
@@ -0,0 +1,217 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 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: Contains p2p configures interface definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _WLAN_TDLS_CFG_API_H_
|
||||||
|
#define _WLAN_TDLS_CFG_API_H_
|
||||||
|
|
||||||
|
#include <qdf_types.h>
|
||||||
|
|
||||||
|
struct wlan_objmgr_psoc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_get_support_enable() - get tdls support enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to tdls support enable/disable
|
||||||
|
*
|
||||||
|
* This function gets tdls support enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_support_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_set_support_enable() - set tdls support enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: set tdls support enable/disable
|
||||||
|
*
|
||||||
|
* This function sets tdls support enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_support_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_get_external_control() - get tdls external control
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to tdls external control enable/disable
|
||||||
|
*
|
||||||
|
* This function gets tdls external control
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_external_control(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_get_uapsd_mask() - get tdls uapsd mask
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to tdls uapsd mask
|
||||||
|
*
|
||||||
|
* This function gets tdls uapsd mask
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_uapsd_mask(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_get_buffer_sta_enable() - get tdls buffer sta enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to tdls buffer sta enable
|
||||||
|
*
|
||||||
|
* This function gets tdls buffer sta enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_buffer_sta_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_set_buffer_sta_enable() - set tdls buffer sta enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: tdls buffer sta enable
|
||||||
|
*
|
||||||
|
* This function sets tdls buffer sta enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_buffer_sta_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_get_uapsd_inactivity_time() - get tdls uapsd inactivity time
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to tdls uapsd inactivity time
|
||||||
|
*
|
||||||
|
* This function gets tdls uapsd inactivity time
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_uapsd_inactivity_time(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_get_rx_pkt_threshold() - get tdls rx pkt threshold
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to tdls tdls rx pkt threshold
|
||||||
|
*
|
||||||
|
* This function gets tdls rx pkt threshold
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_rx_pkt_threshold(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_get_off_channel_enable() - get tdls off channel enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to tdls off channel enable
|
||||||
|
*
|
||||||
|
* This function gets tdls off channel enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_off_channel_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_set_off_channel_enable() - set tdls off channel enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: tdls off channel enable
|
||||||
|
*
|
||||||
|
* This function sets tdls off channel enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_off_channel_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_get_wmm_mode_enable() - get tdls wmm mode enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to tdls wmm mode enable
|
||||||
|
*
|
||||||
|
* This function gets tdls wmm mode enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_wmm_mode_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_set_vdev_nss_2g() - set tdls vdev nss 2g
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: tdls vdev nss 2g
|
||||||
|
*
|
||||||
|
* This function sets tdls vdev nss 2g
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_vdev_nss_2g(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_set_vdev_nss_5g() - set tdls vdev nss 5g
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: tdls vdev nss 5g
|
||||||
|
*
|
||||||
|
* This function sets tdls vdev nss 5g
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_vdev_nss_5g(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_get_sleep_sta_enable() - get tdls sleep sta enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to tdls sleep sta enable
|
||||||
|
*
|
||||||
|
* This function gets tdls sleep sta enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_sleep_sta_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_set_sleep_sta_enable() - set tdls sleep sta enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: tdls sleep sta enable
|
||||||
|
*
|
||||||
|
* This function sets tdls sleep sta enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_sleep_sta_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_get_scan_enable() - get tdls scan enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: pointer to tdls scan enable
|
||||||
|
*
|
||||||
|
* This function gets tdls scan enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_scan_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cfg_tdls_set_scan_enable() - set tdls scan enable
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @val: tdls scan enable
|
||||||
|
*
|
||||||
|
* This function sets tdls scan enable
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_scan_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool val);
|
||||||
|
|
||||||
|
#endif /* _WLAN_TDLS_CFG_API_H_ */
|
@@ -427,6 +427,14 @@ enum tdls_feature_bit {
|
|||||||
* @delayed_trig_framint: delayed trigger frame interval
|
* @delayed_trig_framint: delayed trigger frame interval
|
||||||
* @tdls_vdev_nss_2g: tdls NSS setting for 2G band
|
* @tdls_vdev_nss_2g: tdls NSS setting for 2G band
|
||||||
* @tdls_vdev_nss_5g: tdls NSS setting for 5G band
|
* @tdls_vdev_nss_5g: tdls NSS setting for 5G band
|
||||||
|
* @tdls_buffer_sta_enable: tdls buffer station enable
|
||||||
|
* @tdls_off_chan_enable: tdls off channel enable
|
||||||
|
* @tdls_wmm_mode_enable: tdls wmm mode enable
|
||||||
|
* @tdls_external_control: tdls external control enable
|
||||||
|
* @tdls_implicit_trigger_enable: tdls implicit trigger enable
|
||||||
|
* @tdls_scan_enable: tdls scan enable
|
||||||
|
* @tdls_sleep_sta_enable: tdls sleep sta enable
|
||||||
|
* @tdls_support_enable: tdls support enable
|
||||||
*/
|
*/
|
||||||
struct tdls_user_config {
|
struct tdls_user_config {
|
||||||
uint32_t tdls_tx_states_period;
|
uint32_t tdls_tx_states_period;
|
||||||
@@ -435,8 +443,8 @@ struct tdls_user_config {
|
|||||||
uint32_t tdls_max_discovery_attempt;
|
uint32_t tdls_max_discovery_attempt;
|
||||||
uint32_t tdls_idle_timeout;
|
uint32_t tdls_idle_timeout;
|
||||||
uint32_t tdls_idle_pkt_threshold;
|
uint32_t tdls_idle_pkt_threshold;
|
||||||
uint32_t tdls_rssi_trigger_threshold;
|
int32_t tdls_rssi_trigger_threshold;
|
||||||
uint32_t tdls_rssi_teardown_threshold;
|
int32_t tdls_rssi_teardown_threshold;
|
||||||
uint32_t tdls_rssi_delta;
|
uint32_t tdls_rssi_delta;
|
||||||
uint32_t tdls_uapsd_mask;
|
uint32_t tdls_uapsd_mask;
|
||||||
uint32_t tdls_uapsd_inactivity_time;
|
uint32_t tdls_uapsd_inactivity_time;
|
||||||
@@ -449,6 +457,14 @@ struct tdls_user_config {
|
|||||||
uint32_t delayed_trig_framint;
|
uint32_t delayed_trig_framint;
|
||||||
uint8_t tdls_vdev_nss_2g;
|
uint8_t tdls_vdev_nss_2g;
|
||||||
uint8_t tdls_vdev_nss_5g;
|
uint8_t tdls_vdev_nss_5g;
|
||||||
|
bool tdls_buffer_sta_enable;
|
||||||
|
bool tdls_off_chan_enable;
|
||||||
|
bool tdls_wmm_mode_enable;
|
||||||
|
bool tdls_external_control;
|
||||||
|
bool tdls_implicit_trigger_enable;
|
||||||
|
bool tdls_scan_enable;
|
||||||
|
bool tdls_sleep_sta_enable;
|
||||||
|
bool tdls_support_enable;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
324
dispatcher/src/wlan_tdls_cfg.c
Normal dosya
324
dispatcher/src/wlan_tdls_cfg.c
Normal dosya
@@ -0,0 +1,324 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 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 TDLS configures interface definitions
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <wlan_objmgr_psoc_obj.h>
|
||||||
|
#include "wlan_tdls_cfg_api.h"
|
||||||
|
#include "../../core/src/wlan_tdls_main.h"
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_support_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
*val = false;
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = soc_obj->tdls_configs.tdls_support_enable;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_support_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
soc_obj->tdls_configs.tdls_support_enable = val;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_external_control(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
*val = false;
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = soc_obj->tdls_configs.tdls_external_control;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_uapsd_mask(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
*val = 0;
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = soc_obj->tdls_configs.tdls_uapsd_mask;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_buffer_sta_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
*val = false;
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = soc_obj->tdls_configs.tdls_buffer_sta_enable;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_buffer_sta_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
soc_obj->tdls_configs.tdls_buffer_sta_enable = val;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_uapsd_inactivity_time(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
*val = 0;
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = soc_obj->tdls_configs.tdls_uapsd_inactivity_time;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_rx_pkt_threshold(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
*val = 0;
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = soc_obj->tdls_configs.tdls_rx_pkt_threshold;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_off_channel_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
*val = false;
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = soc_obj->tdls_configs.tdls_off_chan_enable;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_off_channel_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
soc_obj->tdls_configs.tdls_off_chan_enable = val;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_wmm_mode_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
*val = false;
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = soc_obj->tdls_configs.tdls_wmm_mode_enable;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_vdev_nss_2g(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
soc_obj->tdls_configs.tdls_vdev_nss_2g = val;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_vdev_nss_5g(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
soc_obj->tdls_configs.tdls_vdev_nss_5g = val;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_sleep_sta_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
*val = false;
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = soc_obj->tdls_configs.tdls_sleep_sta_enable;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_sleep_sta_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
soc_obj->tdls_configs.tdls_sleep_sta_enable = val;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_get_scan_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool *val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
*val = false;
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*val = soc_obj->tdls_configs.tdls_scan_enable;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
cfg_tdls_set_scan_enable(struct wlan_objmgr_psoc *psoc,
|
||||||
|
bool val)
|
||||||
|
{
|
||||||
|
struct tdls_soc_priv_obj *soc_obj;
|
||||||
|
|
||||||
|
soc_obj = wlan_psoc_get_tdls_soc_obj(psoc);
|
||||||
|
if (!soc_obj) {
|
||||||
|
tdls_err("tdls soc null");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
soc_obj->tdls_configs.tdls_scan_enable = val;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
@@ -32,6 +32,8 @@
|
|||||||
#include <wlan_objmgr_cmn.h>
|
#include <wlan_objmgr_cmn.h>
|
||||||
#include "wlan_policy_mgr_api.h"
|
#include "wlan_policy_mgr_api.h"
|
||||||
#include "wlan_scan_ucfg_api.h"
|
#include "wlan_scan_ucfg_api.h"
|
||||||
|
#include "wlan_tdls_cfg.h"
|
||||||
|
#include "cfg_ucfg_api.h"
|
||||||
|
|
||||||
QDF_STATUS ucfg_tdls_init(void)
|
QDF_STATUS ucfg_tdls_init(void)
|
||||||
{
|
{
|
||||||
@@ -116,11 +118,104 @@ QDF_STATUS ucfg_tdls_deinit(void)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tdls_object_init_params() - init parameters for tdls object
|
||||||
|
* @tdls_soc_obj: pointer to tdls psoc object
|
||||||
|
*
|
||||||
|
* This function init parameters for tdls object
|
||||||
|
*/
|
||||||
|
static QDF_STATUS tdls_object_init_params(
|
||||||
|
struct tdls_soc_priv_obj *tdls_soc_obj)
|
||||||
|
{
|
||||||
|
struct wlan_objmgr_psoc *psoc;
|
||||||
|
|
||||||
|
if (!tdls_soc_obj) {
|
||||||
|
tdls_err("invalid param");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
psoc = tdls_soc_obj->soc;
|
||||||
|
if (!psoc) {
|
||||||
|
tdls_err("invalid psoc object");
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_tx_states_period =
|
||||||
|
cfg_get(psoc, CFG_TDLS_TX_STATS_PERIOD);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_tx_pkt_threshold =
|
||||||
|
cfg_get(psoc, CFG_TDLS_TX_PACKET_THRESHOLD);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_rx_pkt_threshold =
|
||||||
|
cfg_get(psoc, CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_max_discovery_attempt =
|
||||||
|
cfg_get(psoc, CFG_TDLS_MAX_DISCOVERY_ATTEMPT);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_idle_timeout =
|
||||||
|
cfg_get(psoc, CFG_TDLS_IDLE_TIMEOUT);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_idle_pkt_threshold =
|
||||||
|
cfg_get(psoc, CFG_TDLS_IDLE_PACKET_THRESHOLD);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_rssi_trigger_threshold =
|
||||||
|
cfg_get(psoc, CFG_TDLS_RSSI_TRIGGER_THRESHOLD);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_rssi_teardown_threshold =
|
||||||
|
cfg_get(psoc, CFG_TDLS_RSSI_TEARDOWN_THRESHOLD);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_rssi_delta =
|
||||||
|
cfg_get(psoc, CFG_TDLS_RSSI_DELTA);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_uapsd_mask =
|
||||||
|
cfg_get(psoc, CFG_TDLS_QOS_WMM_UAPSD_MASK);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_uapsd_inactivity_time =
|
||||||
|
cfg_get(psoc, CFG_TDLS_PUAPSD_INACT_TIME);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_uapsd_pti_window =
|
||||||
|
cfg_get(psoc, CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_uapsd_ptr_timeout =
|
||||||
|
cfg_get(psoc, CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_pre_off_chan_num =
|
||||||
|
cfg_get(psoc, CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_pre_off_chan_bw =
|
||||||
|
cfg_get(psoc, CFG_TDLS_PREFERRED_OFF_CHANNEL_BW);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_peer_kickout_threshold =
|
||||||
|
cfg_get(psoc, CFG_TDLS_PEER_KICKOUT_THRESHOLD);
|
||||||
|
tdls_soc_obj->tdls_configs.delayed_trig_framint =
|
||||||
|
cfg_get(psoc, CFG_TDLS_DELAYED_TRGR_FRM_INT);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_wmm_mode_enable =
|
||||||
|
cfg_get(psoc, CFG_TDLS_WMM_MODE_ENABLE);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_off_chan_enable =
|
||||||
|
cfg_get(psoc, CFG_TDLS_OFF_CHANNEL_ENABLED);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_buffer_sta_enable =
|
||||||
|
cfg_get(psoc, CFG_TDLS_BUF_STA_ENABLED);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_scan_enable =
|
||||||
|
cfg_get(psoc, CFG_TDLS_SCAN_ENABLE);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_support_enable =
|
||||||
|
cfg_get(psoc, CFG_TDLS_SUPPORT_ENABLE);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_implicit_trigger_enable =
|
||||||
|
cfg_get(psoc, CFG_TDLS_IMPLICIT_TRIGGER);
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_external_control =
|
||||||
|
cfg_get(psoc, CFG_TDLS_EXTERNAL_CONTROL);
|
||||||
|
|
||||||
|
tdls_soc_obj->tdls_configs.tdls_feature_flags =
|
||||||
|
((tdls_soc_obj->tdls_configs.tdls_off_chan_enable ?
|
||||||
|
1 << TDLS_FEATURE_OFF_CHANNEL : 0) |
|
||||||
|
(tdls_soc_obj->tdls_configs.tdls_wmm_mode_enable ?
|
||||||
|
1 << TDLS_FEATURE_WMM : 0) |
|
||||||
|
(tdls_soc_obj->tdls_configs.tdls_buffer_sta_enable ?
|
||||||
|
1 << TDLS_FEATURE_BUFFER_STA : 0) |
|
||||||
|
(tdls_soc_obj->tdls_configs.tdls_sleep_sta_enable ?
|
||||||
|
1 << TDLS_FEATURE_SLEEP_STA : 0) |
|
||||||
|
(tdls_soc_obj->tdls_configs.tdls_scan_enable ?
|
||||||
|
1 << TDLS_FEATURE_SCAN : 0) |
|
||||||
|
(tdls_soc_obj->tdls_configs.tdls_support_enable ?
|
||||||
|
1 << TDLS_FEATURE_ENABLE : 0) |
|
||||||
|
(tdls_soc_obj->tdls_configs.tdls_implicit_trigger_enable ?
|
||||||
|
1 << TDLS_FEAUTRE_IMPLICIT_TRIGGER : 0) |
|
||||||
|
(tdls_soc_obj->tdls_configs.tdls_external_control ?
|
||||||
|
1 << TDLS_FEATURE_EXTERNAL_CONTROL : 0));
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
static QDF_STATUS tdls_global_init(struct tdls_soc_priv_obj *soc_obj)
|
static QDF_STATUS tdls_global_init(struct tdls_soc_priv_obj *soc_obj)
|
||||||
{
|
{
|
||||||
uint8_t sta_idx;
|
uint8_t sta_idx;
|
||||||
uint32_t feature;
|
uint32_t feature;
|
||||||
|
|
||||||
|
tdls_object_init_params(soc_obj);
|
||||||
soc_obj->connected_peer_count = 0;
|
soc_obj->connected_peer_count = 0;
|
||||||
soc_obj->tdls_nss_switch_in_progress = false;
|
soc_obj->tdls_nss_switch_in_progress = false;
|
||||||
soc_obj->tdls_teardown_peers_cnt = 0;
|
soc_obj->tdls_teardown_peers_cnt = 0;
|
||||||
@@ -228,8 +323,6 @@ QDF_STATUS ucfg_tdls_update_config(struct wlan_objmgr_psoc *psoc,
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update TDLS user config */
|
|
||||||
qdf_mem_copy(&soc_obj->tdls_configs, &req->config, sizeof(req->config));
|
|
||||||
tdls_feature_flags = soc_obj->tdls_configs.tdls_feature_flags;
|
tdls_feature_flags = soc_obj->tdls_configs.tdls_feature_flags;
|
||||||
|
|
||||||
if (!TDLS_IS_IMPLICIT_TRIG_ENABLED(tdls_feature_flags))
|
if (!TDLS_IS_IMPLICIT_TRIG_ENABLED(tdls_feature_flags))
|
||||||
|
Yeni konuda referans
Bir kullanıcı engelle