/* * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. 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 QOS related * converged configurations. */ #ifndef __CFG_MLME_QOS_H #define __CFG_MLME_QOS_H #define ADDBA_TXAGGR_SIZE 256 /* * * gTxAggregationSize - Gives an option to configure Tx aggregation size * in no of MPDUs * @Min: 0 * @Max: ADDBA_TXAGGR_SIZE * @Default: ADDBA_TXAGGR_SIZE * * gTxAggregationSize gives an option to configure Tx aggregation size * in no of MPDUs.This can be useful in debugging throughput issues * * Related: None * * Supported Feature: STA * * Usage: External * * */ #define CFG_TX_AGGREGATION_SIZE CFG_INI_UINT( \ "gTxAggregationSize", \ 0, \ ADDBA_TXAGGR_SIZE, \ ADDBA_TXAGGR_SIZE, \ CFG_VALUE_OR_DEFAULT, \ "Tx Aggregation size value") /* * * gTxAggregationSizeBE - To configure Tx aggregation size for BE queue * in no of MPDUs * @Min: 0 * @Max: ADDBA_TXAGGR_SIZE * @Default: 0 * * gTxAggregationSizeBE gives an option to configure Tx aggregation size * for BE queue in no of MPDUs.This can be useful in debugging * throughput issues * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_AGGREGATION_SIZEBE CFG_INI_UINT( \ "gTxAggregationSizeBE", \ 0, \ ADDBA_TXAGGR_SIZE, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx Aggregation size value BE") /* * * gTxAggregationSizeBK - To configure Tx aggregation size for BK queue * in no of MPDUs * @Min: 0 * @Max: ADDBA_TXAGGR_SIZE * @Default: 0 * * gTxAggregationSizeBK gives an option to configure Tx aggregation size * for BK queue in no of MPDUs.This can be useful in debugging * throughput issues * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_AGGREGATION_SIZEBK CFG_INI_UINT( \ "gTxAggregationSizeBK", \ 0, \ ADDBA_TXAGGR_SIZE, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx Aggregation size value BK") /* * * gTxAggregationSizeVI - To configure Tx aggregation size for VI queue * in no of MPDUs * @Min: 0 * @Max: ADDBA_TXAGGR_SIZE * @Default: 0 * * gTxAggregationSizeVI gives an option to configure Tx aggregation size * for VI queue in no of MPDUs.This can be useful in debugging * throughput issues * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_AGGREGATION_SIZEVI CFG_INI_UINT( \ "gTxAggregationSizeVI", \ 0, \ ADDBA_TXAGGR_SIZE, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx Aggregation size value for VI") /* * * gTxAggregationSizeVO - To configure Tx aggregation size for VO queue * in no of MPDUs * @Min: 0 * @Max: ADDBA_TXAGGR_SIZE * @Default: 0 * * gTxAggregationSizeVO gives an option to configure Tx aggregation size * for BE queue in no of MPDUs.This can be useful in debugging * throughput issues * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_AGGREGATION_SIZEVO CFG_INI_UINT( \ "gTxAggregationSizeVO", \ 0, \ ADDBA_TXAGGR_SIZE, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx Aggregation size value for VO") /* * * gRxAggregationSize - Gives an option to configure Rx aggregation size * in no of MPDUs * @Min: 1 * @Max: 1024 * @Default: 256 * * gRxAggregationSize gives an option to configure Rx aggregation size * in no of MPDUs. This can be useful in debugging throughput issues * * Related: None * * Supported Feature: STA * * Usage: External * * */ #define CFG_RX_AGGREGATION_SIZE CFG_INI_UINT( \ "gRxAggregationSize", \ 1, \ 1024, \ 256, \ CFG_VALUE_OR_DEFAULT, \ "Rx Aggregation size value") /* * * gTxAggSwRetryBE - Configure Tx aggregation sw retry for BE * @Min: 0 * @Max: 64 * @Default: 0 * * gTxAggSwRetryBE gives an option to configure Tx aggregation sw * retry for BE. This can be useful in debugging throughput issues. * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_AGGR_SW_RETRY_BE CFG_INI_UINT( \ "gTxAggSwRetryBE", \ 0, \ 64, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx aggregation retry value for BE") /* * * gTxAggSwRetryBK - Configure Tx aggregation sw retry for BK * @Min: 0 * @Max: 64 * @Default: 0 * * gTxAggSwRetryBK gives an option to configure Tx aggregation sw * retry for BK. This can be useful in debugging throughput issues. * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_AGGR_SW_RETRY_BK CFG_INI_UINT( \ "gTxAggSwRetryBK", \ 0, \ 64, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx aggregation retry value for BK") /* * * gTxAggSwRetryVI - Configure Tx aggregation sw retry for VI * @Min: 0 * @Max: 64 * @Default: 0 * * gTxAggSwRetryVI gives an option to configure Tx aggregation sw * retry for VI. This can be useful in debugging throughput issues. * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_AGGR_SW_RETRY_VI CFG_INI_UINT( \ "gTxAggSwRetryVI", \ 0, \ 64, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx aggregation retry value for VI") /* * * gTxAggSwRetryVO - Configure Tx aggregation sw retry for VO * @Min: 0 * @Max: 64 * @Default: 0 * * gTxAggSwRetryVO gives an option to configure Tx aggregation sw * retry for VO. This can be useful in debugging throughput issues. * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_AGGR_SW_RETRY_VO CFG_INI_UINT( \ "gTxAggSwRetryVO", \ 0, \ 64, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx aggregation retry value for VO") /* * * gTxNonAggSwRetryBE - Configure Tx non aggregation sw retry for BE * @Min: 0 * @Max: 64 * @Default: 0 * * gTxNonAggSwRetryBE gives an option to configure Tx non aggregation sw * retry for BE. This can be useful in debugging throughput issues. * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_NON_AGGR_SW_RETRY_BE CFG_INI_UINT( \ "gTxNonAggSwRetryBE", \ 0, \ 64, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx non aggregation retry value for BE") /* * * gTxNonAggSwRetryBK - Configure Tx non aggregation sw retry for BK * @Min: 0 * @Max: 64 * @Default: 0 * * gTxNonAggSwRetryBK gives an option to configure Tx non aggregation sw * retry for BK. This can be useful in debugging throughput issues. * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_NON_AGGR_SW_RETRY_BK CFG_INI_UINT( \ "gTxNonAggSwRetryBK", \ 0, \ 64, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx non aggregation retry value for BK") /* * * gTxNonAggSwRetryVI - Configure Tx non aggregation sw retry for VI * @Min: 0 * @Max: 64 * @Default: 0 * * gTxNonAggSwRetryVI gives an option to configure Tx non aggregation sw * retry for VI. This can be useful in debugging throughput issues. * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_NON_AGGR_SW_RETRY_VI CFG_INI_UINT( \ "gTxNonAggSwRetryVI", \ 0, \ 64, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx non aggregation retry value for VI") /* * * gTxNonAggSwRetryVO - Configure Tx non aggregation sw retry for VO * @Min: 0 * @Max: 64 * @Default: 0 * * gTxNonAggSwRetryVO gives an option to configure Tx non aggregation sw * retry for VO. This can be useful in debugging throughput issues. * * Related: None * * Supported Feature: STA * * Usage: Internal * * */ #define CFG_TX_NON_AGGR_SW_RETRY_VO CFG_INI_UINT( \ "gTxNonAggSwRetryVO", \ 0, \ 64, \ 0, \ CFG_VALUE_OR_DEFAULT, \ "Tx non aggregation retry value for VO") /* * * gTxAggSwRetry - Configure Tx aggregation sw retry * @Min: 0 * @Max: 64 * @Default: 16 * * gTxAggSwRetry gives an option to configure Tx aggregation sw * retry. This can be useful in debugging throughput issues. * * Related: None * * Supported Feature: STA * * Usage: External * * */ #define CFG_TX_AGGR_SW_RETRY CFG_INI_UINT( \ "gTxAggSwRetry", \ 0, \ 64, \ 16, \ CFG_VALUE_OR_DEFAULT, \ "Tx aggregation retry value") /* * * gTxNonAggSwRetry - Configure Tx non aggregation sw retry * @Min: 0 * @Max: 64 * @Default: 16 * * gTxNonAggSwRetry gives an option to configure Tx non aggregation sw * retry. This can be useful in debugging throughput issues. * * Related: None * * Supported Feature: STA * * Usage: External * * */ #define CFG_TX_NON_AGGR_SW_RETRY CFG_INI_UINT( \ "gTxNonAggSwRetry", \ 0, \ 64, \ 16, \ CFG_VALUE_OR_DEFAULT, \ "Tx non aggregation retry value") /* * * gSapMaxInactivityOverride - Configure * @Min: 0 * @Max: 1 * @Default: 0 * * This parameter will avoid updating ap_sta_inactivity from hostapd.conf * file. If a station does not send anything in ap_max_inactivity seconds, an * empty data frame is sent to it in order to verify whether it is * still in range. If this frame is not ACKed, the station will be * disassociated and then deauthenticated. This feature is used to * clear station table of old entries when the STAs move out of the * range. * * Related: None * * Supported Feature: SAP * * Usage: External * */ #define CFG_SAP_MAX_INACTIVITY_OVERRIDE CFG_INI_BOOL( \ "gSapMaxInactivityOverride", \ 0, \ "SAP maximum inactivity override flag") /* * * gEnableApUapsd - Enable/disable UAPSD for SoftAP * @Min: 0 * @Max: 1 * @Default: 1 * * This ini is used to setup setup U-APSD for Acs at association * * Related: None. * * Supported Feature: SAP * * Usage: External * * */ #define CFG_SAP_QOS_UAPSD CFG_INI_BOOL( \ "gEnableApUapsd", \ 1, \ "Enable UAPSD for SAP") #define IOT_AGGR_INFO_MAX_LEN 500 #define IOT_AGGR_INFO_MAX_NUM 32 #define IOT_AGGR_MSDU_MAX_NUM 6 #define IOT_AGGR_MPDU_MAX_NUM 512 /* * * cfg_tx_iot_aggr - OUI based tx aggr size for msdu/mpdu * * This ini gives an option to configure Tx aggregation size * in no. of MPDUs/MSDUs for specified OUI. * This can be useful for IOT issues. * * Format of the configuration: * cfg_tx_iot_aggr=,,,,,... * MSDU: 0..IOT_AGGR_MSDU_MAX_NUM, the max tx aggregation size in no. of MSDUs, * 0 means not specified. * MPDU: 0..IOT_AGGR_MPDU_MAX_NUM, the max tx aggregation size in no. of MPDUs, * 0 means not specified. * Note: MSDU-x/MPDU-x are the max values, FW will take decision for actual * AMSDU/AMPDU size on different platforms. * * For example: * cfg_tx_iot_aggr=112233,2,0,445566,3,32,778899,0,64 * If vendor OUI-1("\x11\x22\x33") is found in assoc resp, * set tx amsdu size to 2; * If vendor OUI-2("\x44\x55\x66") is found in assoc resp, * set tx amsdu size to 3, set tx ampdu size to 32; * If vendor OUI-3("\x77\x88\x99") is found in assoc resp, * set tx ampdu size to 64. * * Related: IOT * * Supported Feature: IOT * * Usage: External * * */ #define CFG_TX_IOT_AGGR CFG_INI_STRING( \ "cfg_tx_iot_aggr", \ 0, \ IOT_AGGR_INFO_MAX_LEN, \ "", \ "Used to configure OUI based tx aggr size for msdu/mpdu") #define CFG_QOS_ALL \ CFG(CFG_SAP_MAX_INACTIVITY_OVERRIDE) \ CFG(CFG_TX_AGGREGATION_SIZE) \ CFG(CFG_TX_AGGREGATION_SIZEBE) \ CFG(CFG_TX_AGGREGATION_SIZEBK) \ CFG(CFG_TX_AGGREGATION_SIZEVI) \ CFG(CFG_TX_AGGREGATION_SIZEVO) \ CFG(CFG_RX_AGGREGATION_SIZE) \ CFG(CFG_TX_AGGR_SW_RETRY_BE) \ CFG(CFG_TX_AGGR_SW_RETRY_BK) \ CFG(CFG_TX_AGGR_SW_RETRY_VI) \ CFG(CFG_TX_AGGR_SW_RETRY_VO) \ CFG(CFG_TX_AGGR_SW_RETRY) \ CFG(CFG_TX_NON_AGGR_SW_RETRY_BE) \ CFG(CFG_TX_NON_AGGR_SW_RETRY_BK) \ CFG(CFG_TX_NON_AGGR_SW_RETRY_VI) \ CFG(CFG_TX_NON_AGGR_SW_RETRY_VO) \ CFG(CFG_TX_NON_AGGR_SW_RETRY) \ CFG(CFG_SAP_QOS_UAPSD) \ CFG(CFG_TX_IOT_AGGR) #endif /* __CFG_MLME_QOS_H */