1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. 4*5113495bSYour Name * 5*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 6*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 7*5113495bSYour Name * above copyright notice and this permission notice appear in all 8*5113495bSYour Name * copies. 9*5113495bSYour Name * 10*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 18*5113495bSYour Name */ 19*5113495bSYour Name 20*5113495bSYour Name #if !defined(CONFIG_TDLS_H__) 21*5113495bSYour Name #define CONFIG_TDLS_H__ 22*5113495bSYour Name 23*5113495bSYour Name #include "cfg_define.h" 24*5113495bSYour Name #include "cfg_converged.h" 25*5113495bSYour Name #include "qdf_types.h" 26*5113495bSYour Name 27*5113495bSYour Name /* 28*5113495bSYour Name * <ini> 29*5113495bSYour Name * gTDLSUapsdMask - ACs to setup U-APSD for TDLS Sta. 30*5113495bSYour Name * @Min: 0 31*5113495bSYour Name * @Max: 0x0F 32*5113495bSYour Name * @Default: 0x0F 33*5113495bSYour Name * 34*5113495bSYour Name * This ini is used to configure the ACs for which mask needs to be enabled. 35*5113495bSYour Name * 0x1: Background 0x2: Best effort 36*5113495bSYour Name * 0x4: Video 0x8: Voice 37*5113495bSYour Name * 38*5113495bSYour Name * Related: gEnableTDLSSupport. 39*5113495bSYour Name * 40*5113495bSYour Name * Supported Feature: TDLS 41*5113495bSYour Name * 42*5113495bSYour Name * Usage: Internal/External 43*5113495bSYour Name * 44*5113495bSYour Name * </ini> 45*5113495bSYour Name */ 46*5113495bSYour Name #define CFG_TDLS_QOS_WMM_UAPSD_MASK CFG_INI_UINT( \ 47*5113495bSYour Name "gTDLSUapsdMask", \ 48*5113495bSYour Name 0, \ 49*5113495bSYour Name 0x0F, \ 50*5113495bSYour Name 0x0F, \ 51*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 52*5113495bSYour Name "ACs to setup U-APSD for TDLS Sta") 53*5113495bSYour Name 54*5113495bSYour Name /* 55*5113495bSYour Name * <ini> 56*5113495bSYour Name * gEnableTDLSBufferSta - Controls the TDLS buffer. 57*5113495bSYour Name * @Min: 0 58*5113495bSYour Name * @Max: 1 59*5113495bSYour Name * @Default: 1 60*5113495bSYour Name * 61*5113495bSYour Name * This ini is used to control the TDLS buffer. 62*5113495bSYour Name * Buffer STA is not enabled in CLD 2.0 yet. 63*5113495bSYour Name * 64*5113495bSYour Name * Related: gEnableTDLSSupport. 65*5113495bSYour Name * 66*5113495bSYour Name * Supported Feature: TDLS 67*5113495bSYour Name * 68*5113495bSYour Name * Usage: Internal/External 69*5113495bSYour Name * 70*5113495bSYour Name * </ini> 71*5113495bSYour Name */ 72*5113495bSYour Name #define CFG_TDLS_BUF_STA_ENABLED CFG_INI_BOOL( \ 73*5113495bSYour Name "gEnableTDLSBufferSta", \ 74*5113495bSYour Name 1, \ 75*5113495bSYour Name "Controls the TDLS buffer") 76*5113495bSYour Name 77*5113495bSYour Name /* 78*5113495bSYour Name * <ini> 79*5113495bSYour Name * gTDLSPuapsdInactivityTime - Peer UAPSD Inactivity time. 80*5113495bSYour Name * @Min: 0 81*5113495bSYour Name * @Max: 10 82*5113495bSYour Name * @Default: 0 83*5113495bSYour Name * 84*5113495bSYour Name * This ini is used to configure peer uapsd inactivity time(in ms). 85*5113495bSYour Name * 86*5113495bSYour Name * Related: gEnableTDLSSupport. 87*5113495bSYour Name * 88*5113495bSYour Name * Supported Feature: TDLS 89*5113495bSYour Name * 90*5113495bSYour Name * Usage: Internal/External 91*5113495bSYour Name * 92*5113495bSYour Name * </ini> 93*5113495bSYour Name */ 94*5113495bSYour Name #define CFG_TDLS_PUAPSD_INACT_TIME CFG_INI_UINT( \ 95*5113495bSYour Name "gTDLSPuapsdInactivityTime", \ 96*5113495bSYour Name 0, \ 97*5113495bSYour Name 10, \ 98*5113495bSYour Name 0, \ 99*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 100*5113495bSYour Name "Peer UAPSD Inactivity time") 101*5113495bSYour Name 102*5113495bSYour Name /* 103*5113495bSYour Name * <ini> 104*5113495bSYour Name * gTDLSPuapsdRxFrameThreshold - Peer UAPSD Rx frame threshold. 105*5113495bSYour Name * @Min: 10 106*5113495bSYour Name * @Max: 20 107*5113495bSYour Name * @Default: 10 108*5113495bSYour Name * 109*5113495bSYour Name * This ini is used to configure maximum Rx frame during SP. 110*5113495bSYour Name * 111*5113495bSYour Name * Related: gEnableTDLSSupport. 112*5113495bSYour Name * 113*5113495bSYour Name * Supported Feature: TDLS 114*5113495bSYour Name * 115*5113495bSYour Name * Usage: Internal/External 116*5113495bSYour Name * 117*5113495bSYour Name * </ini> 118*5113495bSYour Name */ 119*5113495bSYour Name #define CFG_TDLS_RX_FRAME_THRESHOLD CFG_INI_UINT( \ 120*5113495bSYour Name "gTDLSPuapsdRxFrameThreshold", \ 121*5113495bSYour Name 10, \ 122*5113495bSYour Name 20, \ 123*5113495bSYour Name 10, \ 124*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 125*5113495bSYour Name "Peer UAPSD Rx frame threshold") 126*5113495bSYour Name 127*5113495bSYour Name /* 128*5113495bSYour Name * <ini> 129*5113495bSYour Name * gEnableTDLSOffChannel - Enables off-channel support for TDLS link. 130*5113495bSYour Name * @Min: 0 131*5113495bSYour Name * @Max: 1 132*5113495bSYour Name * @Default: 1 133*5113495bSYour Name * 134*5113495bSYour Name * This ini is used to enable/disable off-channel support for TDLS link. 135*5113495bSYour Name * 136*5113495bSYour Name * Related: gEnableTDLSSupport. 137*5113495bSYour Name * 138*5113495bSYour Name * Supported Feature: TDLS 139*5113495bSYour Name * 140*5113495bSYour Name * Usage: Internal/External 141*5113495bSYour Name * 142*5113495bSYour Name * </ini> 143*5113495bSYour Name */ 144*5113495bSYour Name #define CFG_TDLS_OFF_CHANNEL_ENABLED CFG_INI_BOOL( \ 145*5113495bSYour Name "gEnableTDLSOffChannel", \ 146*5113495bSYour Name 1, \ 147*5113495bSYour Name "Enables off-channel support for TDLS") 148*5113495bSYour Name 149*5113495bSYour Name /* 150*5113495bSYour Name * <ini> 151*5113495bSYour Name * gEnableTDLSSupport - Enable support for TDLS. 152*5113495bSYour Name * @Min: 0 153*5113495bSYour Name * @Max: 1 154*5113495bSYour Name * @Default: 1 155*5113495bSYour Name * 156*5113495bSYour Name * This ini is used to enable/disable TDLS support. 157*5113495bSYour Name * 158*5113495bSYour Name * Related: None. 159*5113495bSYour Name * 160*5113495bSYour Name * Supported Feature: TDLS 161*5113495bSYour Name * 162*5113495bSYour Name * Usage: Internal/External 163*5113495bSYour Name * 164*5113495bSYour Name * </ini> 165*5113495bSYour Name */ 166*5113495bSYour Name #define CFG_TDLS_SUPPORT_ENABLE CFG_INI_BOOL( \ 167*5113495bSYour Name "gEnableTDLSSupport", \ 168*5113495bSYour Name 1, \ 169*5113495bSYour Name "enable/disable TDLS support") 170*5113495bSYour Name 171*5113495bSYour Name /* 172*5113495bSYour Name * <ini> 173*5113495bSYour Name * gEnableTDLSImplicitTrigger - Enable Implicit TDLS. 174*5113495bSYour Name * @Min: 0 175*5113495bSYour Name * @Max: 1 176*5113495bSYour Name * @Default: 1 177*5113495bSYour Name * 178*5113495bSYour Name * This ini is used to enable/disable implicit TDLS. 179*5113495bSYour Name * CLD driver initiates TDLS Discovery towards a peer whenever TDLS Setup 180*5113495bSYour Name * criteria (throughput and RSSI thresholds) is met and then it tears down 181*5113495bSYour Name * TDLS when teardown criteria (idle packet count and RSSI) is met. 182*5113495bSYour Name * 183*5113495bSYour Name * Related: gEnableTDLSSupport. 184*5113495bSYour Name * 185*5113495bSYour Name * Supported Feature: TDLS 186*5113495bSYour Name * 187*5113495bSYour Name * Usage: Internal/External 188*5113495bSYour Name * 189*5113495bSYour Name * </ini> 190*5113495bSYour Name */ 191*5113495bSYour Name #define CFG_TDLS_IMPLICIT_TRIGGER CFG_INI_BOOL( \ 192*5113495bSYour Name "gEnableTDLSImplicitTrigger", \ 193*5113495bSYour Name 1, \ 194*5113495bSYour Name "enable/disable implicit TDLS") 195*5113495bSYour Name 196*5113495bSYour Name /* 197*5113495bSYour Name * <ini> 198*5113495bSYour Name * gTDLSTxStatsPeriod - TDLS TX statistics time period. 199*5113495bSYour Name * @Min: 1000 200*5113495bSYour Name * @Max: 4294967295 201*5113495bSYour Name * @Default: 2000 202*5113495bSYour Name * 203*5113495bSYour Name * This ini is used to configure the time period (in ms) to evaluate whether 204*5113495bSYour Name * the number of Tx/Rx packets exceeds TDLSTxPacketThreshold and triggers a 205*5113495bSYour Name * TDLS Discovery request. 206*5113495bSYour Name * 207*5113495bSYour Name * Related: gEnableTDLSSupport. 208*5113495bSYour Name * 209*5113495bSYour Name * Supported Feature: TDLS 210*5113495bSYour Name * 211*5113495bSYour Name * Usage: Internal/External 212*5113495bSYour Name * 213*5113495bSYour Name * </ini> 214*5113495bSYour Name */ 215*5113495bSYour Name #define CFG_TDLS_TX_STATS_PERIOD CFG_INI_UINT( \ 216*5113495bSYour Name "gTDLSTxStatsPeriod", \ 217*5113495bSYour Name 1000, \ 218*5113495bSYour Name 4294967295UL, \ 219*5113495bSYour Name 2000, \ 220*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 221*5113495bSYour Name "TDLS TX statistics time period") 222*5113495bSYour Name 223*5113495bSYour Name /* 224*5113495bSYour Name * <ini> 225*5113495bSYour Name * gTDLSTxPacketThreshold - Tx/Rx Packet threshold for initiating TDLS. 226*5113495bSYour Name * @Min: 0 227*5113495bSYour Name * @Max: 4294967295 228*5113495bSYour Name * @Default: 40 229*5113495bSYour Name * 230*5113495bSYour Name * This ini is used to configure the number of Tx/Rx packets during the 231*5113495bSYour Name * period of gTDLSTxStatsPeriod when exceeded, a TDLS Discovery request 232*5113495bSYour Name * is triggered. 233*5113495bSYour Name * Related: gEnableTDLSSupport. 234*5113495bSYour Name * 235*5113495bSYour Name * Supported Feature: TDLS 236*5113495bSYour Name * 237*5113495bSYour Name * Usage: Internal/External 238*5113495bSYour Name * 239*5113495bSYour Name * </ini> 240*5113495bSYour Name */ 241*5113495bSYour Name #define CFG_TDLS_TX_PACKET_THRESHOLD CFG_INI_UINT( \ 242*5113495bSYour Name "gTDLSTxPacketThreshold", \ 243*5113495bSYour Name 0, \ 244*5113495bSYour Name 4294967295UL, \ 245*5113495bSYour Name 40, \ 246*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 247*5113495bSYour Name "Tx/Rx Packet threshold for initiating TDLS") 248*5113495bSYour Name 249*5113495bSYour Name /* 250*5113495bSYour Name * <ini> 251*5113495bSYour Name * gTDLSMaxDiscoveryAttempt - Attempts for sending TDLS discovery requests. 252*5113495bSYour Name * @Min: 1 253*5113495bSYour Name * @Max: 100 254*5113495bSYour Name * @Default: 5 255*5113495bSYour Name * 256*5113495bSYour Name * This ini is used to configure the number of failures of discover request, 257*5113495bSYour Name * when exceeded, the peer is assumed to be not TDLS capable and no further 258*5113495bSYour Name * TDLS Discovery request is made. 259*5113495bSYour Name * 260*5113495bSYour Name * Related: gEnableTDLSSupport. 261*5113495bSYour Name * 262*5113495bSYour Name * Supported Feature: TDLS 263*5113495bSYour Name * 264*5113495bSYour Name * Usage: Internal/External 265*5113495bSYour Name * 266*5113495bSYour Name * </ini> 267*5113495bSYour Name */ 268*5113495bSYour Name #define CFG_TDLS_MAX_DISCOVERY_ATTEMPT CFG_INI_UINT( \ 269*5113495bSYour Name "gTDLSMaxDiscoveryAttempt", \ 270*5113495bSYour Name 1, \ 271*5113495bSYour Name 100, \ 272*5113495bSYour Name 5, \ 273*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 274*5113495bSYour Name "Attempts for sending TDLS discovery requests") 275*5113495bSYour Name 276*5113495bSYour Name /* 277*5113495bSYour Name * gTDLSMaxPeerCount - Max TDLS connected peer count 278*5113495bSYour Name * @Min: 1 279*5113495bSYour Name * @Max: 8 280*5113495bSYour Name * @Default: 8 281*5113495bSYour Name * 282*5113495bSYour Name * This ini is used to configure the max connected TDLS peer count. 283*5113495bSYour Name * 284*5113495bSYour Name * Related: gEnableTDLSSupport. 285*5113495bSYour Name * 286*5113495bSYour Name * Supported Feature: TDLS 287*5113495bSYour Name * 288*5113495bSYour Name * Usage: External 289*5113495bSYour Name * 290*5113495bSYour Name * </ini> 291*5113495bSYour Name */ 292*5113495bSYour Name #define CFG_TDLS_MAX_PEER_COUNT CFG_INI_UINT( \ 293*5113495bSYour Name "gTDLSMaxPeerCount", \ 294*5113495bSYour Name 1, \ 295*5113495bSYour Name 8, \ 296*5113495bSYour Name 8, \ 297*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 298*5113495bSYour Name "Max TDLS peer count") 299*5113495bSYour Name 300*5113495bSYour Name /* 301*5113495bSYour Name * <ini> 302*5113495bSYour Name * gTDLSIdleTimeout - Duration within which number of TX / RX frames meet the 303*5113495bSYour Name * criteria for TDLS teardown. 304*5113495bSYour Name * @Min: 500 305*5113495bSYour Name * @Max: 40000 306*5113495bSYour Name * @Default: 5000 307*5113495bSYour Name * 308*5113495bSYour Name * This ini is used to configure the time period (in ms) to evaluate whether 309*5113495bSYour Name * the number of Tx/Rx packets exceeds gTDLSIdlePacketThreshold and thus meets 310*5113495bSYour Name * criteria for TDLS teardown. 311*5113495bSYour Name * Teardown notification interval (gTDLSIdleTimeout) should be multiple of 312*5113495bSYour Name * setup notification (gTDLSTxStatsPeriod) interval. 313*5113495bSYour Name * e.g. 314*5113495bSYour Name * if setup notification (gTDLSTxStatsPeriod) interval = 500, then 315*5113495bSYour Name * teardown notification (gTDLSIdleTimeout) interval should be 1000, 316*5113495bSYour Name * 1500, 2000, 2500... 317*5113495bSYour Name * 318*5113495bSYour Name * Related: gEnableTDLSSupport. 319*5113495bSYour Name * 320*5113495bSYour Name * Supported Feature: TDLS 321*5113495bSYour Name * 322*5113495bSYour Name * Usage: Internal/External 323*5113495bSYour Name * 324*5113495bSYour Name */ 325*5113495bSYour Name #define CFG_TDLS_IDLE_TIMEOUT CFG_INI_UINT( \ 326*5113495bSYour Name "gTDLSIdleTimeout", \ 327*5113495bSYour Name 500, \ 328*5113495bSYour Name 40000, \ 329*5113495bSYour Name 5000, \ 330*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 331*5113495bSYour Name "this is idle time period") 332*5113495bSYour Name 333*5113495bSYour Name /* 334*5113495bSYour Name * <ini> 335*5113495bSYour Name * gTDLSIdlePacketThreshold - Number of idle packet. 336*5113495bSYour Name * @Min: 0 337*5113495bSYour Name * @Max: 40000 338*5113495bSYour Name * @Default: 3 339*5113495bSYour Name * 340*5113495bSYour Name * This ini is used to configure the number of Tx/Rx packet, below which 341*5113495bSYour Name * within last gTDLSTxStatsPeriod period is considered as idle condition. 342*5113495bSYour Name * 343*5113495bSYour Name * Related: gEnableTDLSSupport. 344*5113495bSYour Name * 345*5113495bSYour Name * Supported Feature: TDLS 346*5113495bSYour Name * 347*5113495bSYour Name * Usage: Internal/External 348*5113495bSYour Name * 349*5113495bSYour Name * </ini> 350*5113495bSYour Name */ 351*5113495bSYour Name #define CFG_TDLS_IDLE_PACKET_THRESHOLD CFG_INI_UINT( \ 352*5113495bSYour Name "gTDLSIdlePacketThreshold", \ 353*5113495bSYour Name 0, \ 354*5113495bSYour Name 40000, \ 355*5113495bSYour Name 3, \ 356*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 357*5113495bSYour Name "Number of idle packet") 358*5113495bSYour Name 359*5113495bSYour Name /* 360*5113495bSYour Name * <ini> 361*5113495bSYour Name * gTDLSRSSITriggerThreshold - RSSI threshold for TDLS connection. 362*5113495bSYour Name * @Min: -120 363*5113495bSYour Name * @Max: 0 364*5113495bSYour Name * @Default: -75 365*5113495bSYour Name * 366*5113495bSYour Name * This ini is used to configure the absolute value (in dB) of the peer RSSI, 367*5113495bSYour Name * below which a TDLS setup request is triggered. 368*5113495bSYour Name * 369*5113495bSYour Name * Related: gEnableTDLSSupport. 370*5113495bSYour Name * 371*5113495bSYour Name * Supported Feature: TDLS 372*5113495bSYour Name * 373*5113495bSYour Name * Usage: Internal/External 374*5113495bSYour Name * 375*5113495bSYour Name * </ini> 376*5113495bSYour Name */ 377*5113495bSYour Name #define CFG_TDLS_RSSI_TRIGGER_THRESHOLD CFG_INI_INT( \ 378*5113495bSYour Name "gTDLSRSSITriggerThreshold", \ 379*5113495bSYour Name -120, \ 380*5113495bSYour Name 0, \ 381*5113495bSYour Name -75, \ 382*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 383*5113495bSYour Name "RSSI threshold for TDLS connection") 384*5113495bSYour Name 385*5113495bSYour Name /* 386*5113495bSYour Name * <ini> 387*5113495bSYour Name * gTDLSRSSITeardownThreshold - RSSI threshold for TDLS teardown. 388*5113495bSYour Name * @Min: -120 389*5113495bSYour Name * @Max: 0 390*5113495bSYour Name * @Default: -75 391*5113495bSYour Name * 392*5113495bSYour Name * This ini is used to configure the absolute value (in dB) of the peer RSSI, 393*5113495bSYour Name * when exceed, a TDLS teardown is triggered. 394*5113495bSYour Name * 395*5113495bSYour Name * Related: gEnableTDLSSupport. 396*5113495bSYour Name * 397*5113495bSYour Name * Supported Feature: TDLS 398*5113495bSYour Name * 399*5113495bSYour Name * Usage: Internal/External 400*5113495bSYour Name * 401*5113495bSYour Name * </ini> 402*5113495bSYour Name */ 403*5113495bSYour Name #define CFG_TDLS_RSSI_TEARDOWN_THRESHOLD CFG_INI_INT( \ 404*5113495bSYour Name "gTDLSRSSITeardownThreshold", \ 405*5113495bSYour Name -120, \ 406*5113495bSYour Name 0, \ 407*5113495bSYour Name -75, \ 408*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 409*5113495bSYour Name "RSSI threshold for TDLS teardown") 410*5113495bSYour Name 411*5113495bSYour Name /* 412*5113495bSYour Name * <ini> 413*5113495bSYour Name * gTDLSRSSIDelta - Delta value for the peer RSSI that can trigger teardown. 414*5113495bSYour Name * @Min: -30 415*5113495bSYour Name * @Max: 0 416*5113495bSYour Name * @Default: -20 417*5113495bSYour Name * 418*5113495bSYour Name * This ini is used to configure delta for peer RSSI such that if Peer RSSI 419*5113495bSYour Name * is less than AP RSSI plus delta will trigger a teardown. 420*5113495bSYour Name * 421*5113495bSYour Name * Related: gEnableTDLSSupport. 422*5113495bSYour Name * 423*5113495bSYour Name * Supported Feature: TDLS 424*5113495bSYour Name * 425*5113495bSYour Name * Usage: Internal/External 426*5113495bSYour Name * 427*5113495bSYour Name * </ini> 428*5113495bSYour Name */ 429*5113495bSYour Name #define CFG_TDLS_RSSI_DELTA CFG_INI_INT( \ 430*5113495bSYour Name "gTDLSRSSIDelta", \ 431*5113495bSYour Name -30, \ 432*5113495bSYour Name 0, \ 433*5113495bSYour Name -20, \ 434*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 435*5113495bSYour Name "Delta value for the peer RSSI that can trigger teardown") 436*5113495bSYour Name 437*5113495bSYour Name /* 438*5113495bSYour Name * <ini> 439*5113495bSYour Name * gTDLSPrefOffChanNum - Preferred TDLS channel number when off-channel support 440*5113495bSYour Name * is enabled. 441*5113495bSYour Name * @Min: 1 442*5113495bSYour Name * @Max: 165 443*5113495bSYour Name * @Default: 36 444*5113495bSYour Name * 445*5113495bSYour Name * This ini is used to configure preferred TDLS channel number when off-channel 446*5113495bSYour Name * support is enabled. 447*5113495bSYour Name * 448*5113495bSYour Name * Related: gEnableTDLSSupport, gEnableTDLSOffChannel. 449*5113495bSYour Name * 450*5113495bSYour Name * Supported Feature: TDLS 451*5113495bSYour Name * 452*5113495bSYour Name * Usage: Internal/External 453*5113495bSYour Name * 454*5113495bSYour Name * </ini> 455*5113495bSYour Name */ 456*5113495bSYour Name #define CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM CFG_INI_UINT( \ 457*5113495bSYour Name "gTDLSPrefOffChanNum", \ 458*5113495bSYour Name 1, \ 459*5113495bSYour Name 165, \ 460*5113495bSYour Name 36, \ 461*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 462*5113495bSYour Name "Preferred TDLS channel number") 463*5113495bSYour Name 464*5113495bSYour Name /* 465*5113495bSYour Name * <ini> 466*5113495bSYour Name * tdls_pref_off_chan_num_6g - Preferred TDLS 6g channel freq when off-channel 467*5113495bSYour Name * support is enabled. 468*5113495bSYour Name * @Min: 0 469*5113495bSYour Name * @Max: 7115 470*5113495bSYour Name * @Default: 5975 471*5113495bSYour Name * 472*5113495bSYour Name * This ini is used to configure preferred TDLS 6G channel number when 473*5113495bSYour Name * off-channel support is enabled. If this is set to 0, 6Ghz offchannel is 474*5113495bSYour Name * disabled. 475*5113495bSYour Name * 476*5113495bSYour Name * Related: gEnableTDLSSupport, gEnableTDLSOffChannel. 477*5113495bSYour Name * 478*5113495bSYour Name * Supported Feature: TDLS 479*5113495bSYour Name * 480*5113495bSYour Name * Usage: Internal/External 481*5113495bSYour Name * 482*5113495bSYour Name * </ini> 483*5113495bSYour Name */ 484*5113495bSYour Name #define CFG_TDLS_PREFERRED_OFF_CHANNEL_FREQ_6G CFG_INI_UINT( \ 485*5113495bSYour Name "tdls_pref_off_chan_freq_6g", \ 486*5113495bSYour Name 0, \ 487*5113495bSYour Name 7115, \ 488*5113495bSYour Name 5975, \ 489*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 490*5113495bSYour Name "Preferred TDLS channel frequency for 6ghz channels") 491*5113495bSYour Name 492*5113495bSYour Name /* 493*5113495bSYour Name * <ini> 494*5113495bSYour Name * gTDLSPrefOffChanBandwidth - Preferred TDLS channel bandwidth when 495*5113495bSYour Name * off-channel support is enabled. 496*5113495bSYour Name * @Min: 1 497*5113495bSYour Name * @Max: 15 498*5113495bSYour Name * @Default: 15 499*5113495bSYour Name * 500*5113495bSYour Name * This ini is used to configure preferred TDLS channel bandwidth when 501*5113495bSYour Name * off-channel support is enabled. 502*5113495bSYour Name * 0x1: 20 MHz 0x2: 40 MHz 0x4: 80 MHz 0x8: 160 MHz 503*5113495bSYour Name * When more than one bits are set then firmware starts from the highest and 504*5113495bSYour Name * selects one based on capability of peer. So, that means if 0xF is set that 505*5113495bSYour Name * means fw will try intersect with 160 MHz BW and the peer supported BW. 506*5113495bSYour Name * 507*5113495bSYour Name * Related: gEnableTDLSSupport, gEnableTDLSOffChannel. 508*5113495bSYour Name * 509*5113495bSYour Name * Supported Feature: TDLS 510*5113495bSYour Name * 511*5113495bSYour Name * Usage: Internal/External 512*5113495bSYour Name * 513*5113495bSYour Name * </ini> 514*5113495bSYour Name */ 515*5113495bSYour Name #define CFG_TDLS_PREFERRED_OFF_CHANNEL_BW CFG_INI_UINT( \ 516*5113495bSYour Name "gTDLSPrefOffChanBandwidth", \ 517*5113495bSYour Name 1, \ 518*5113495bSYour Name 15, \ 519*5113495bSYour Name 15, \ 520*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 521*5113495bSYour Name "Preferred TDLS channel bandwidth") 522*5113495bSYour Name 523*5113495bSYour Name /* 524*5113495bSYour Name * <ini> 525*5113495bSYour Name * gTDLSPuapsdPTIWindow - This ini is used to configure peer traffic indication 526*5113495bSYour Name * window. 527*5113495bSYour Name * @Min: 1 528*5113495bSYour Name * @Max: 5 529*5113495bSYour Name * @Default: 2 530*5113495bSYour Name * 531*5113495bSYour Name * This ini is used to configure buffering time in number of beacon intervals. 532*5113495bSYour Name * 533*5113495bSYour Name * Related: gEnableTDLSSupport. 534*5113495bSYour Name * 535*5113495bSYour Name * Supported Feature: TDLS 536*5113495bSYour Name * 537*5113495bSYour Name * Usage: Internal/External 538*5113495bSYour Name * 539*5113495bSYour Name * </ini> 540*5113495bSYour Name */ 541*5113495bSYour Name #define CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW CFG_INI_UINT( \ 542*5113495bSYour Name "gTDLSPuapsdPTIWindow", \ 543*5113495bSYour Name 1, \ 544*5113495bSYour Name 5, \ 545*5113495bSYour Name 2, \ 546*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 547*5113495bSYour Name "This ini is used to configure peer traffic indication") 548*5113495bSYour Name 549*5113495bSYour Name /* 550*5113495bSYour Name * <ini> 551*5113495bSYour Name * gTDLSPuapsdPTIWindow - This ini is used to configure peer traffic indication 552*5113495bSYour Name * window. 553*5113495bSYour Name * @Min: 1 554*5113495bSYour Name * @Max: 5 555*5113495bSYour Name * @Default: 2 556*5113495bSYour Name * 557*5113495bSYour Name * This ini is used to configure buffering time in number of beacon intervals. 558*5113495bSYour Name * 559*5113495bSYour Name * Related: gEnableTDLSSupport. 560*5113495bSYour Name * 561*5113495bSYour Name * Supported Feature: TDLS 562*5113495bSYour Name * 563*5113495bSYour Name * Usage: Internal/External 564*5113495bSYour Name * 565*5113495bSYour Name * </ini> 566*5113495bSYour Name */ 567*5113495bSYour Name #define CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT CFG_INI_UINT( \ 568*5113495bSYour Name "gTDLSPuapsdPTRTimeout", \ 569*5113495bSYour Name 0, \ 570*5113495bSYour Name 10000, \ 571*5113495bSYour Name 5000, \ 572*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 573*5113495bSYour Name "Peer Traffic Response timer duration in ms") 574*5113495bSYour Name 575*5113495bSYour Name /* 576*5113495bSYour Name * <ini> 577*5113495bSYour Name * gTDLSExternalControl - Enable external TDLS control. 578*5113495bSYour Name * @Min: 0 579*5113495bSYour Name * @Max: 2 580*5113495bSYour Name * @Default: 1 581*5113495bSYour Name * 582*5113495bSYour Name * This ini is used to enable/disable external TDLS control. 583*5113495bSYour Name * TDLS external control works with TDLS implicit trigger. TDLS external 584*5113495bSYour Name * control allows a user to add a MAC address of potential TDLS peers so 585*5113495bSYour Name * that the CLD driver can initiate implicit TDLS setup to only those peers 586*5113495bSYour Name * when criteria for TDLS setup (throughput and RSSI threshold) is met. 587*5113495bSYour Name * There are two flavors of external control supported. If control default 588*5113495bSYour Name * is set 1 it means strict external control where only for configured 589*5113495bSYour Name * tdls peer mac address tdls link will be established. If control default 590*5113495bSYour Name * is set 2 liberal tdls external control is needed which means 591*5113495bSYour Name * tdls link will be established with configured peer mac address as well 592*5113495bSYour Name * as any other peer which supports tdls. 593*5113495bSYour Name * 594*5113495bSYour Name * Related: gEnableTDLSSupport, gEnableTDLSImplicitTrigger. 595*5113495bSYour Name * 596*5113495bSYour Name * Supported Feature: TDLS 597*5113495bSYour Name * 598*5113495bSYour Name * Usage: Internal/External 599*5113495bSYour Name * 600*5113495bSYour Name * </ini> 601*5113495bSYour Name */ 602*5113495bSYour Name #define CFG_TDLS_EXTERNAL_CONTROL CFG_INI_UINT( \ 603*5113495bSYour Name "gTDLSExternalControl", \ 604*5113495bSYour Name 0, \ 605*5113495bSYour Name 2, \ 606*5113495bSYour Name 1, \ 607*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 608*5113495bSYour Name "Enable external TDLS control") 609*5113495bSYour Name 610*5113495bSYour Name /* 611*5113495bSYour Name * <ini> 612*5113495bSYour Name * gEnableTDLSWmmMode - Enables WMM support over TDLS link. 613*5113495bSYour Name * @Min: 0 614*5113495bSYour Name * @Max: 1 615*5113495bSYour Name * @Default: 1 616*5113495bSYour Name * 617*5113495bSYour Name * This ini is used to enable/disable WMM support over TDLS link. 618*5113495bSYour Name * This is required to be set to 1 for any TDLS and uAPSD functionality. 619*5113495bSYour Name * 620*5113495bSYour Name * Related: gEnableTDLSSupport. 621*5113495bSYour Name * 622*5113495bSYour Name * Supported Feature: TDLS 623*5113495bSYour Name * 624*5113495bSYour Name * Usage: Internal/External 625*5113495bSYour Name * 626*5113495bSYour Name * </ini> 627*5113495bSYour Name */ 628*5113495bSYour Name #define CFG_TDLS_WMM_MODE_ENABLE CFG_INI_BOOL( \ 629*5113495bSYour Name "gEnableTDLSWmmMode", \ 630*5113495bSYour Name 1, \ 631*5113495bSYour Name "Enables WMM support over TDLS link") 632*5113495bSYour Name 633*5113495bSYour Name /* 634*5113495bSYour Name * <ini> 635*5113495bSYour Name * gEnableTDLSScan - Allow scan and maintain TDLS link. 636*5113495bSYour Name * @Min: 0 637*5113495bSYour Name * @Max: 1 638*5113495bSYour Name * @Default: 1 639*5113495bSYour Name * 640*5113495bSYour Name * This ini is used to enable/disable TDLS scan. 641*5113495bSYour Name * 0: If peer is not buffer STA capable and device is not sleep STA 642*5113495bSYour Name * capable, then teardown TDLS link when scan is initiated. If peer 643*5113495bSYour Name * is buffer STA and we can be sleep STA then TDLS link is maintained 644*5113495bSYour Name * during scan. 645*5113495bSYour Name * 1: Maintain TDLS link and allow scan even if peer is not buffer STA 646*5113495bSYour Name * capable and device is not sleep STA capable. There will be loss of 647*5113495bSYour Name * Rx pkts since peer would not know when device moves away from tdls 648*5113495bSYour Name * channel. Tx on TDLS link would stop when device moves away from tdls 649*5113495bSYour Name * channel. 650*5113495bSYour Name * 651*5113495bSYour Name * Related: gEnableTDLSSupport. 652*5113495bSYour Name * 653*5113495bSYour Name * Supported Feature: TDLS 654*5113495bSYour Name * 655*5113495bSYour Name * Usage: Internal/External 656*5113495bSYour Name * 657*5113495bSYour Name * </ini> 658*5113495bSYour Name */ 659*5113495bSYour Name #define CFG_TDLS_SCAN_ENABLE CFG_INI_BOOL( \ 660*5113495bSYour Name "gEnableTDLSScan", \ 661*5113495bSYour Name 1, \ 662*5113495bSYour Name "Allow scan and maintain TDLS link") 663*5113495bSYour Name 664*5113495bSYour Name /* 665*5113495bSYour Name * <ini> 666*5113495bSYour Name * gTDLSPeerKickoutThreshold - TDLS peer kick out threshold to firmware. 667*5113495bSYour Name * @Min: 10 668*5113495bSYour Name * @Max: 5000 669*5113495bSYour Name * @Default: 96 670*5113495bSYour Name * 671*5113495bSYour Name * This ini is used to configure TDLS peer kick out threshold to firmware. 672*5113495bSYour Name * Firmware will use this value to determine, when to send TDLS 673*5113495bSYour Name * peer kick out event to host. 674*5113495bSYour Name * E.g. 675*5113495bSYour Name * if peer kick out threshold is 10, then firmware will wait for 10 676*5113495bSYour Name * consecutive packet failures and then send TDLS kick out 677*5113495bSYour Name * notification to host driver 678*5113495bSYour Name * 679*5113495bSYour Name * Related: gEnableTDLSSupport. 680*5113495bSYour Name * 681*5113495bSYour Name * Supported Feature: TDLS 682*5113495bSYour Name * 683*5113495bSYour Name * Usage: Internal/External 684*5113495bSYour Name * 685*5113495bSYour Name * </ini> 686*5113495bSYour Name */ 687*5113495bSYour Name #define CFG_TDLS_PEER_KICKOUT_THRESHOLD CFG_INI_UINT( \ 688*5113495bSYour Name "gTDLSPeerKickoutThreshold", \ 689*5113495bSYour Name 10, \ 690*5113495bSYour Name 5000, \ 691*5113495bSYour Name 96, \ 692*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 693*5113495bSYour Name "TDLS peer kick out threshold to firmware") 694*5113495bSYour Name /* 695*5113495bSYour Name * <ini> 696*5113495bSYour Name * gTDLSDiscoveryWakeTimeout - TDLS discovery WAKE timeout in ms. 697*5113495bSYour Name * @Min: 10 698*5113495bSYour Name * @Max: 5000 699*5113495bSYour Name * @Default: 96 700*5113495bSYour Name * 701*5113495bSYour Name * DUT will wake until this timeout to receive TDLS discovery response 702*5113495bSYour Name * from peer. If tdls_discovery_wake_timeout is 0x0, the DUT will 703*5113495bSYour Name * choose autonomously what wake timeout value to use. 704*5113495bSYour Name * 705*5113495bSYour Name * 706*5113495bSYour Name * Related: gEnableTDLSSupport. 707*5113495bSYour Name * 708*5113495bSYour Name * Supported Feature: TDLS 709*5113495bSYour Name * 710*5113495bSYour Name * Usage: External 711*5113495bSYour Name * 712*5113495bSYour Name * </ini> 713*5113495bSYour Name */ 714*5113495bSYour Name #define CFG_TDLS_DISCOVERY_WAKE_TIMEOUT CFG_INI_UINT( \ 715*5113495bSYour Name "gTDLSDiscoveryWakeTimeout", \ 716*5113495bSYour Name 0, \ 717*5113495bSYour Name 2000, \ 718*5113495bSYour Name 200, \ 719*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 720*5113495bSYour Name "TDLS peer kick out threshold to firmware") 721*5113495bSYour Name 722*5113495bSYour Name /* 723*5113495bSYour Name * <ini> 724*5113495bSYour Name * gTDLSEnableDeferTime - Timer to defer for enabling TDLS on P2P listen. 725*5113495bSYour Name * @Min: 500 726*5113495bSYour Name * @Max: 6000 727*5113495bSYour Name * @Default: 2000 728*5113495bSYour Name * 729*5113495bSYour Name * This ini is used to set the timer to defer for enabling TDLS on P2P 730*5113495bSYour Name * listen (value in milliseconds). 731*5113495bSYour Name * 732*5113495bSYour Name * Related: gEnableTDLSSupport. 733*5113495bSYour Name * 734*5113495bSYour Name * Supported Feature: TDLS 735*5113495bSYour Name * 736*5113495bSYour Name * Usage: Internal/External 737*5113495bSYour Name * 738*5113495bSYour Name * </ini> 739*5113495bSYour Name */ 740*5113495bSYour Name #define CFG_TDLS_ENABLE_DEFER_TIMER CFG_INI_UINT( \ 741*5113495bSYour Name "gTDLSEnableDeferTime", \ 742*5113495bSYour Name 500, \ 743*5113495bSYour Name 6000, \ 744*5113495bSYour Name 2000, \ 745*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 746*5113495bSYour Name "Timer to defer for enabling TDLS on P2P listen") 747*5113495bSYour Name 748*5113495bSYour Name #define CFG_TDLS_ALL \ 749*5113495bSYour Name CFG(CFG_TDLS_QOS_WMM_UAPSD_MASK) \ 750*5113495bSYour Name CFG(CFG_TDLS_BUF_STA_ENABLED) \ 751*5113495bSYour Name CFG(CFG_TDLS_PUAPSD_INACT_TIME) \ 752*5113495bSYour Name CFG(CFG_TDLS_RX_FRAME_THRESHOLD) \ 753*5113495bSYour Name CFG(CFG_TDLS_OFF_CHANNEL_ENABLED) \ 754*5113495bSYour Name CFG(CFG_TDLS_SUPPORT_ENABLE) \ 755*5113495bSYour Name CFG(CFG_TDLS_IMPLICIT_TRIGGER) \ 756*5113495bSYour Name CFG(CFG_TDLS_TX_STATS_PERIOD) \ 757*5113495bSYour Name CFG(CFG_TDLS_TX_PACKET_THRESHOLD) \ 758*5113495bSYour Name CFG(CFG_TDLS_MAX_DISCOVERY_ATTEMPT) \ 759*5113495bSYour Name CFG(CFG_TDLS_MAX_PEER_COUNT) \ 760*5113495bSYour Name CFG(CFG_TDLS_IDLE_TIMEOUT) \ 761*5113495bSYour Name CFG(CFG_TDLS_IDLE_PACKET_THRESHOLD) \ 762*5113495bSYour Name CFG(CFG_TDLS_RSSI_TRIGGER_THRESHOLD) \ 763*5113495bSYour Name CFG(CFG_TDLS_RSSI_TEARDOWN_THRESHOLD) \ 764*5113495bSYour Name CFG(CFG_TDLS_RSSI_DELTA) \ 765*5113495bSYour Name CFG(CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM) \ 766*5113495bSYour Name CFG(CFG_TDLS_PREFERRED_OFF_CHANNEL_FREQ_6G) \ 767*5113495bSYour Name CFG(CFG_TDLS_PREFERRED_OFF_CHANNEL_BW) \ 768*5113495bSYour Name CFG(CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW) \ 769*5113495bSYour Name CFG(CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT) \ 770*5113495bSYour Name CFG(CFG_TDLS_EXTERNAL_CONTROL) \ 771*5113495bSYour Name CFG(CFG_TDLS_WMM_MODE_ENABLE) \ 772*5113495bSYour Name CFG(CFG_TDLS_SCAN_ENABLE) \ 773*5113495bSYour Name CFG(CFG_TDLS_PEER_KICKOUT_THRESHOLD) \ 774*5113495bSYour Name CFG(CFG_TDLS_DISCOVERY_WAKE_TIMEOUT) \ 775*5113495bSYour Name CFG(CFG_TDLS_ENABLE_DEFER_TIMER) 776*5113495bSYour Name 777*5113495bSYour Name #endif 778