qcacld-3.0: add ini for setting oui based aggr size
Add ini 'cfg_tx_iot_aggr', it 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/MPDU means the max tx aggregation size in no. of MSDUs/MPDUs, 0 means not specified. 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. Change-Id: Idcf370a4bf93ca299ce1126eaba4394be1ab5b9d CRs-Fixed: 2849203
Dieser Commit ist enthalten in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2012-2021 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
|
||||
@@ -496,6 +496,51 @@
|
||||
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) \
|
||||
@@ -514,6 +559,7 @@
|
||||
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_SAP_QOS_UAPSD) \
|
||||
CFG(CFG_TX_IOT_AGGR)
|
||||
|
||||
#endif /* __CFG_MLME_QOS_H */
|
||||
|
@@ -2380,6 +2380,34 @@ struct wlan_mlme_reg {
|
||||
bool retain_nol_across_regdmn_update;
|
||||
};
|
||||
|
||||
#define IOT_AGGR_INFO_MAX_NUM 32
|
||||
|
||||
/**
|
||||
* struct wlan_iot_aggr - IOT related AGGR rule
|
||||
*
|
||||
* @oui: OUI for the rule
|
||||
* @oui_len: length of the OUI
|
||||
* @ampdu_sz: max aggregation size in no. of MPDUs
|
||||
* @amsdu_sz: max aggregation size in no. of MSDUs
|
||||
*/
|
||||
struct wlan_iot_aggr {
|
||||
uint8_t oui[OUI_LENGTH];
|
||||
uint32_t oui_len;
|
||||
uint32_t ampdu_sz;
|
||||
uint32_t amsdu_sz;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wlan_mlme_iot - IOT related CFG Items
|
||||
*
|
||||
* @aggr: aggr rules
|
||||
* @aggr_num: number of the configured aggr rules
|
||||
*/
|
||||
struct wlan_mlme_iot {
|
||||
struct wlan_iot_aggr aggr[IOT_AGGR_INFO_MAX_NUM];
|
||||
uint32_t aggr_num;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wlan_mlme_cfg - MLME config items
|
||||
* @chainmask_cfg: VHT chainmask related cfg items
|
||||
@@ -2423,6 +2451,7 @@ struct wlan_mlme_reg {
|
||||
* @trig_score_delta: Roam score delta value for various roam triggers
|
||||
* @trig_min_rssi: Expected minimum RSSI value of candidate AP for
|
||||
* various roam triggers
|
||||
* @iot: IOT related CFG items
|
||||
*/
|
||||
struct wlan_mlme_cfg {
|
||||
struct wlan_mlme_chainmask chainmask_cfg;
|
||||
@@ -2467,6 +2496,7 @@ struct wlan_mlme_cfg {
|
||||
struct roam_trigger_score_delta trig_score_delta[NUM_OF_ROAM_TRIGGERS];
|
||||
struct roam_trigger_min_rssi trig_min_rssi[NUM_OF_ROAM_MIN_RSSI];
|
||||
struct wlan_mlme_ratemask ratemask_cfg;
|
||||
struct wlan_mlme_iot iot;
|
||||
};
|
||||
|
||||
enum pkt_origin {
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren