123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568 |
- /*
- * 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
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_AGGREGATION_SIZE CFG_INI_UINT( \
- "gTxAggregationSize", \
- 0, \
- ADDBA_TXAGGR_SIZE, \
- ADDBA_TXAGGR_SIZE, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx Aggregation size value")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_AGGREGATION_SIZEBE CFG_INI_UINT( \
- "gTxAggregationSizeBE", \
- 0, \
- ADDBA_TXAGGR_SIZE, \
- 0, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx Aggregation size value BE")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_AGGREGATION_SIZEBK CFG_INI_UINT( \
- "gTxAggregationSizeBK", \
- 0, \
- ADDBA_TXAGGR_SIZE, \
- 0, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx Aggregation size value BK")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_AGGREGATION_SIZEVI CFG_INI_UINT( \
- "gTxAggregationSizeVI", \
- 0, \
- ADDBA_TXAGGR_SIZE, \
- 0, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx Aggregation size value for VI")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_AGGREGATION_SIZEVO CFG_INI_UINT( \
- "gTxAggregationSizeVO", \
- 0, \
- ADDBA_TXAGGR_SIZE, \
- 0, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx Aggregation size value for VO")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_RX_AGGREGATION_SIZE CFG_INI_UINT( \
- "gRxAggregationSize", \
- 1, \
- 1024, \
- 256, \
- CFG_VALUE_OR_DEFAULT, \
- "Rx Aggregation size value")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_AGGR_SW_RETRY_BE CFG_INI_UINT( \
- "gTxAggSwRetryBE", \
- 0, \
- 64, \
- 0, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx aggregation retry value for BE")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_AGGR_SW_RETRY_BK CFG_INI_UINT( \
- "gTxAggSwRetryBK", \
- 0, \
- 64, \
- 0, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx aggregation retry value for BK")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_AGGR_SW_RETRY_VI CFG_INI_UINT( \
- "gTxAggSwRetryVI", \
- 0, \
- 64, \
- 0, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx aggregation retry value for VI")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_AGGR_SW_RETRY_VO CFG_INI_UINT( \
- "gTxAggSwRetryVO", \
- 0, \
- 64, \
- 0, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx aggregation retry value for VO")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #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")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #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")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #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")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #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")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_AGGR_SW_RETRY CFG_INI_UINT( \
- "gTxAggSwRetry", \
- 0, \
- 64, \
- 16, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx aggregation retry value")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #define CFG_TX_NON_AGGR_SW_RETRY CFG_INI_UINT( \
- "gTxNonAggSwRetry", \
- 0, \
- 64, \
- 16, \
- CFG_VALUE_OR_DEFAULT, \
- "Tx non aggregation retry value")
- /*
- * <ini>
- * 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
- * </ini>
- */
- #define CFG_SAP_MAX_INACTIVITY_OVERRIDE CFG_INI_BOOL( \
- "gSapMaxInactivityOverride", \
- 0, \
- "SAP maximum inactivity override flag")
- /*
- * <ini>
- * 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
- *
- * </ini>
- */
- #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
- /*
- * <ini>
- * 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=<OUI-1>,<MSDU-1>,<MPDU-1>,<OUI-2>,<MSDU-2>,<MPDU-2>...
- * 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
- *
- * </ini>
- */
- #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 */
|