qcacld-3.0: Set AMSDU/AMPDU caps per vdev from cli

In the case of EHT, if the mode is MLO then set AMSDU/AMPDU
caps per vdev instead of setting it only on assoc vdev.

Change-Id: Iaf480ee6a42cea83e30f412f663f688c0330d246
CRs-Fixed: 3392015
This commit is contained in:
Gururaj Pandurangi
2022-11-09 14:32:00 -08:00
committed by Madan Koyyalamudi
parent d595b21680
commit 8bb46df0d8
6 changed files with 183 additions and 11 deletions

View File

@@ -57,6 +57,27 @@ enum wlan_wds_mode {
WLAN_WDS_MODE_MAX = WLAN_WDS_MODE_LAST - 1,
};
/**
* enum wlan_eht_mode - EHT mode of operation
* @WLAN_EHT_MODE_DISABLED: EHT is disabled
* @WLAN_EHT_MODE_SLO: Single-link operation mode
* @WLAN_EHT_MODE_MLSR: Multi-link Single-Radio mode
* @WLAN_EHT_MODE_MLMR: Multi-link Multi-Radio mode
* @WLAN_EHT_MODE_LAST: last value in enum
* @WLAN_EHT_MODE_MAX: max value supported
*
* This is used for 'type' values in eht_mode
*/
enum wlan_eht_mode {
WLAN_EHT_MODE_DISABLED = 0,
WLAN_EHT_MODE_SLO = 1,
WLAN_EHT_MODE_MLSR = 2,
WLAN_EHT_MODE_MLMR = 3,
/* keep this last */
WLAN_EHT_MODE_LAST,
WLAN_EHT_MODE_MAX = WLAN_EHT_MODE_LAST - 1,
};
/**
* enum debug_packet_log_type - Debug packet log type
* @DEBUG_PKTLOG_TYPE_NONE: Debug packet log is disabled

View File

@@ -2510,6 +2510,27 @@ wlan_mlme_set_relaxed_6ghz_conn_policy(struct wlan_objmgr_psoc *psoc,
#endif
#ifdef WLAN_FEATURE_11BE_MLO
/**
* wlan_mlme_get_eht_mode() - Get the EHT mode of operations
* @psoc: psoc context
* @value: EHT mode value ptr
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_mlme_get_eht_mode(struct wlan_objmgr_psoc *psoc,
enum wlan_eht_mode *value);
/**
* wlan_mlme_set_eht_mode() - Set the EHT mode of operation
* @psoc: psoc context
* @value: EHT mode value
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_mlme_set_eht_mode(struct wlan_objmgr_psoc *psoc, enum wlan_eht_mode value);
/**
* wlan_mlme_get_emlsr_mode_enabled() - Get the eMLSR mode flag
* @psoc: psoc context
@@ -2575,6 +2596,19 @@ QDF_STATUS
wlan_mlme_set_t2lm_negotiation_supported(struct wlan_objmgr_psoc *psoc,
uint8_t value);
#else
static inline QDF_STATUS
wlan_mlme_get_eht_mode(struct wlan_objmgr_psoc *psoc, enum wlan_eht_mode *value)
{
*value = WLAN_EHT_MODE_DISABLED;
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
wlan_mlme_set_eht_mode(struct wlan_objmgr_psoc *psoc, enum wlan_eht_mode value)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
wlan_mlme_get_emlsr_mode_enabled(struct wlan_objmgr_psoc *psoc, bool *value)
{

View File

@@ -1388,6 +1388,7 @@ struct wlan_user_mcc_quota {
* @mgmt_hw_tx_retry_count: MGMT HW tx retry count for frames
* @relaxed_6ghz_conn_policy: 6GHz relaxed connection policy
* @std_6ghz_conn_policy: 6GHz standard connection policy
* @eht_mode: EHT mode of operation
* @t2lm_negotiation_support: T2LM negotiation supported enum value
* @enable_emlsr_mode: 11BE eMLSR mode support
* @safe_mode_enable: safe mode to bypass some strict 6 GHz checks for
@@ -1446,6 +1447,7 @@ struct wlan_mlme_generic {
bool std_6ghz_conn_policy;
#endif
#ifdef WLAN_FEATURE_11BE_MLO
enum wlan_eht_mode eht_mode;
bool enable_emlsr_mode;
enum t2lm_negotiation_support t2lm_negotiation_support;
#endif

View File

@@ -2951,18 +2951,33 @@ ucfg_mlme_set_relaxed_6ghz_conn_policy(struct wlan_objmgr_psoc *psoc,
}
/**
* ucfg_mlme_get_emlsr_mode_enabled() - Get eMLSR mode flag
* ucfg_mlme_set_eht_mode() - Set EHT mode of operation
* @psoc: pointer to psoc object
* @value: Value that needs to be set from the caller
* @value: EHT mode value that needs to be set from the caller
*
* Inline UCFG API to be used by HDD/OSIF callers
*
* Return: QDF Status
*/
static inline QDF_STATUS
ucfg_mlme_get_emlsr_mode_enabled(struct wlan_objmgr_psoc *psoc, bool *value)
ucfg_mlme_set_eht_mode(struct wlan_objmgr_psoc *psoc, enum wlan_eht_mode value)
{
return wlan_mlme_get_emlsr_mode_enabled(psoc, value);
return wlan_mlme_set_eht_mode(psoc, value);
}
/**
* ucfg_mlme_get_eht_mode() - Get EHT mode of operation
* @psoc: pointer to psoc object
* @value: EHT mode value that is set by the user
*
* Inline UCFG API to be used by HDD/OSIF callers
*
* Return: QDF Status
*/
static inline QDF_STATUS
ucfg_mlme_get_eht_mode(struct wlan_objmgr_psoc *psoc, enum wlan_eht_mode *value)
{
return wlan_mlme_get_eht_mode(psoc, value);
}
/**
@@ -2980,6 +2995,21 @@ ucfg_mlme_set_emlsr_mode_enabled(struct wlan_objmgr_psoc *psoc, bool value)
return wlan_mlme_set_emlsr_mode_enabled(psoc, value);
}
/**
* ucfg_mlme_get_emlsr_mode_enabled() - Get eMLSR mode flag
* @psoc: pointer to psoc object
* @value: Value that is set by the user
*
* Inline UCFG API to be used by HDD/OSIF callers
*
* Return: QDF Status
*/
static inline QDF_STATUS
ucfg_mlme_get_emlsr_mode_enabled(struct wlan_objmgr_psoc *psoc, bool *value)
{
return wlan_mlme_get_emlsr_mode_enabled(psoc, value);
}
/**
* ucfg_mlme_get_opr_rate() - Get operational rate set
* @vdev: pointer to vdev object