* [PATCH 1/2] mac80211: Add new AMPDU factor macro for HE peer caps
@ 2020-05-04 17:04 ` Tamizh Chelvam
0 siblings, 0 replies; 10+ messages in thread
From: Tamizh Chelvam @ 2020-05-04 17:04 UTC (permalink / raw)
To: ath11k, johannes; +Cc: linux-wireless, Tamizh Chelvam
Add IEEE80211_HE_VHT_MAX_AMPDU_FACTOR and IEEE80211_HE_HT_MAX_AMPDU_FACTOR
as per spec to use for peer max ampdu factor.
Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
---
include/linux/ieee80211.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index a561db4..69e214c 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -1821,6 +1821,8 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
#define IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED 0x40
#define IEEE80211_HE_MAC_CAP3_RX_CTRL_FRAME_TO_MULTIBSS 0x80
+#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT 3
+
#define IEEE80211_HE_MAC_CAP4_BSRP_BQRP_A_MPDU_AGG 0x01
#define IEEE80211_HE_MAC_CAP4_QTP 0x02
#define IEEE80211_HE_MAC_CAP4_BQR 0x04
@@ -1842,6 +1844,9 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
#define IEEE80211_HE_MAC_CAP5_PUNCTURED_SOUNDING 0x40
#define IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX 0x80
+#define IEEE80211_HE_VHT_MAX_AMPDU_FACTOR 20
+#define IEEE80211_HE_HT_MAX_AMPDU_FACTOR 16
+
/* 802.11ax HE PHY capabilities */
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G 0x02
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G 0x04
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 1/2] mac80211: Add new AMPDU factor macro for HE peer caps
@ 2020-05-04 17:04 ` Tamizh Chelvam
0 siblings, 0 replies; 10+ messages in thread
From: Tamizh Chelvam @ 2020-05-04 17:04 UTC (permalink / raw)
To: ath11k, johannes; +Cc: linux-wireless, Tamizh Chelvam
Add IEEE80211_HE_VHT_MAX_AMPDU_FACTOR and IEEE80211_HE_HT_MAX_AMPDU_FACTOR
as per spec to use for peer max ampdu factor.
Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
---
include/linux/ieee80211.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index a561db4..69e214c 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -1821,6 +1821,8 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
#define IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED 0x40
#define IEEE80211_HE_MAC_CAP3_RX_CTRL_FRAME_TO_MULTIBSS 0x80
+#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT 3
+
#define IEEE80211_HE_MAC_CAP4_BSRP_BQRP_A_MPDU_AGG 0x01
#define IEEE80211_HE_MAC_CAP4_QTP 0x02
#define IEEE80211_HE_MAC_CAP4_BQR 0x04
@@ -1842,6 +1844,9 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
#define IEEE80211_HE_MAC_CAP5_PUNCTURED_SOUNDING 0x40
#define IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX 0x80
+#define IEEE80211_HE_VHT_MAX_AMPDU_FACTOR 20
+#define IEEE80211_HE_HT_MAX_AMPDU_FACTOR 16
+
/* 802.11ax HE PHY capabilities */
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G 0x02
#define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G 0x04
--
1.9.1
_______________________________________________
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/2] ath11k: Add peer max mpdu parameter in peer assoc command
2020-05-04 17:04 ` Tamizh Chelvam
@ 2020-05-04 17:05 ` Tamizh Chelvam
-1 siblings, 0 replies; 10+ messages in thread
From: Tamizh Chelvam @ 2020-05-04 17:05 UTC (permalink / raw)
To: ath11k, johannes; +Cc: linux-wireless, Tamizh Chelvam
Add peer max mpdu length configuration support in peer_assoc_he
parameters. Noticed low throughput for the STA which
supports HE, HT and not VHT in MU-MIMO case without this
configuration
Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
---
drivers/net/wireless/ath/ath11k/mac.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index f33c6d7..88e533c 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -1161,6 +1161,7 @@ static void ath11k_peer_assoc_h_he(struct ath11k *ar,
struct peer_assoc_params *arg)
{
const struct ieee80211_sta_he_cap *he_cap = &sta->he_cap;
+ u8 ampdu_factor;
u16 v;
if (!he_cap->has_he)
@@ -1178,6 +1179,30 @@ static void ath11k_peer_assoc_h_he(struct ath11k *ar,
/* the top most byte is used to indicate BSS color info */
arg->peer_he_ops &= 0xffffff;
+ /* As per section 26.6.1 11ax Draft5.0, if the Max AMPDU Exponent Extension
+ * in HE cap is zero, use the arg->peer_max_mpdu as calculated while parsing
+ * VHT caps(if VHT caps is present) or HT caps (if VHT caps is not present).
+ *
+ * For non-zero value of Max AMPDU Extponent Extension in HE MAC caps,
+ * if a HE STA sends VHT cap and HE cap IE in assoc request then, use
+ * MAX_AMPDU_LEN_FACTOR as 20 to calculate max_ampdu length.
+ * If a HE STA that does not send VHT cap, but HE and HT cap in assoc
+ * request, then use MAX_AMPDU_LEN_FACTOR as 16 to calculate max_ampdu
+ * length.
+ */
+ ampdu_factor = (he_cap->he_cap_elem.mac_cap_info[3] &
+ IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) >>
+ IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
+
+ if (ampdu_factor) {
+ if (sta->vht_cap.vht_supported)
+ arg->peer_max_mpdu = (1 << (IEEE80211_HE_VHT_MAX_AMPDU_FACTOR +
+ ampdu_factor)) - 1;
+ else if (sta->ht_cap.ht_supported)
+ arg->peer_max_mpdu = (1 << (IEEE80211_HE_HT_MAX_AMPDU_FACTOR +
+ ampdu_factor)) - 1;
+ }
+
if (he_cap->he_cap_elem.phy_cap_info[6] &
IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) {
int bit = 7;
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/2] ath11k: Add peer max mpdu parameter in peer assoc command
@ 2020-05-04 17:05 ` Tamizh Chelvam
0 siblings, 0 replies; 10+ messages in thread
From: Tamizh Chelvam @ 2020-05-04 17:05 UTC (permalink / raw)
To: ath11k, johannes; +Cc: linux-wireless, Tamizh Chelvam
Add peer max mpdu length configuration support in peer_assoc_he
parameters. Noticed low throughput for the STA which
supports HE, HT and not VHT in MU-MIMO case without this
configuration
Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
---
drivers/net/wireless/ath/ath11k/mac.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index f33c6d7..88e533c 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -1161,6 +1161,7 @@ static void ath11k_peer_assoc_h_he(struct ath11k *ar,
struct peer_assoc_params *arg)
{
const struct ieee80211_sta_he_cap *he_cap = &sta->he_cap;
+ u8 ampdu_factor;
u16 v;
if (!he_cap->has_he)
@@ -1178,6 +1179,30 @@ static void ath11k_peer_assoc_h_he(struct ath11k *ar,
/* the top most byte is used to indicate BSS color info */
arg->peer_he_ops &= 0xffffff;
+ /* As per section 26.6.1 11ax Draft5.0, if the Max AMPDU Exponent Extension
+ * in HE cap is zero, use the arg->peer_max_mpdu as calculated while parsing
+ * VHT caps(if VHT caps is present) or HT caps (if VHT caps is not present).
+ *
+ * For non-zero value of Max AMPDU Extponent Extension in HE MAC caps,
+ * if a HE STA sends VHT cap and HE cap IE in assoc request then, use
+ * MAX_AMPDU_LEN_FACTOR as 20 to calculate max_ampdu length.
+ * If a HE STA that does not send VHT cap, but HE and HT cap in assoc
+ * request, then use MAX_AMPDU_LEN_FACTOR as 16 to calculate max_ampdu
+ * length.
+ */
+ ampdu_factor = (he_cap->he_cap_elem.mac_cap_info[3] &
+ IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) >>
+ IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
+
+ if (ampdu_factor) {
+ if (sta->vht_cap.vht_supported)
+ arg->peer_max_mpdu = (1 << (IEEE80211_HE_VHT_MAX_AMPDU_FACTOR +
+ ampdu_factor)) - 1;
+ else if (sta->ht_cap.ht_supported)
+ arg->peer_max_mpdu = (1 << (IEEE80211_HE_HT_MAX_AMPDU_FACTOR +
+ ampdu_factor)) - 1;
+ }
+
if (he_cap->he_cap_elem.phy_cap_info[6] &
IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) {
int bit = 7;
--
1.9.1
_______________________________________________
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] ath11k: Add peer max mpdu parameter in peer assoc command
2020-05-04 17:05 ` Tamizh Chelvam
(?)
(?)
@ 2020-05-29 14:49 ` Kalle Valo
-1 siblings, 0 replies; 10+ messages in thread
From: Kalle Valo @ 2020-05-29 14:49 UTC (permalink / raw)
To: Tamizh Chelvam; +Cc: ath11k, johannes, linux-wireless, Tamizh Chelvam
Tamizh Chelvam <tamizhr@codeaurora.org> wrote:
> Add peer max mpdu length configuration support in peer_assoc_he
> parameters. Noticed low throughput for the STA which
> supports HE, HT and not VHT in MU-MIMO case without this
> configuration
>
> Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
Depends on:
fedd0fe4e89b mac80211: Add new AMPDU factor macro for HE peer caps
Currently in mac80211-next.
--
https://patchwork.kernel.org/patch/11526769/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] ath11k: Add peer max mpdu parameter in peer assoc command
2020-05-04 17:05 ` Tamizh Chelvam
(?)
@ 2020-05-29 14:49 ` Kalle Valo
-1 siblings, 0 replies; 10+ messages in thread
From: Kalle Valo @ 2020-05-29 14:49 UTC (permalink / raw)
To: Tamizh Chelvam; +Cc: johannes, linux-wireless, ath11k
Tamizh Chelvam <tamizhr@codeaurora.org> wrote:
> Add peer max mpdu length configuration support in peer_assoc_he
> parameters. Noticed low throughput for the STA which
> supports HE, HT and not VHT in MU-MIMO case without this
> configuration
>
> Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
Depends on:
fedd0fe4e89b mac80211: Add new AMPDU factor macro for HE peer caps
Currently in mac80211-next.
--
https://patchwork.kernel.org/patch/11526769/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
_______________________________________________
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] ath11k: Add peer max mpdu parameter in peer assoc command
2020-05-04 17:05 ` Tamizh Chelvam
` (2 preceding siblings ...)
(?)
@ 2020-09-09 6:50 ` Kalle Valo
-1 siblings, 0 replies; 10+ messages in thread
From: Kalle Valo @ 2020-09-09 6:50 UTC (permalink / raw)
To: Tamizh Chelvam; +Cc: johannes, linux-wireless, ath11k
Tamizh Chelvam <tamizhr@codeaurora.org> wrote:
> Add peer max mpdu length configuration support in peer_assoc_he
> parameters. Noticed low throughput for the STA which
> supports HE, HT and not VHT in MU-MIMO case without this
> configuration
>
> Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Patch applied to ath-next branch of ath.git, thanks.
af6d39db1b04 ath11k: Add peer max mpdu parameter in peer assoc command
--
https://patchwork.kernel.org/patch/11526769/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
--
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] ath11k: Add peer max mpdu parameter in peer assoc command
2020-05-04 17:05 ` Tamizh Chelvam
` (3 preceding siblings ...)
(?)
@ 2020-09-09 6:50 ` Kalle Valo
-1 siblings, 0 replies; 10+ messages in thread
From: Kalle Valo @ 2020-09-09 6:50 UTC (permalink / raw)
To: Tamizh Chelvam; +Cc: ath11k, johannes, linux-wireless, Tamizh Chelvam
Tamizh Chelvam <tamizhr@codeaurora.org> wrote:
> Add peer max mpdu length configuration support in peer_assoc_he
> parameters. Noticed low throughput for the STA which
> supports HE, HT and not VHT in MU-MIMO case without this
> configuration
>
> Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Patch applied to ath-next branch of ath.git, thanks.
af6d39db1b04 ath11k: Add peer max mpdu parameter in peer assoc command
--
https://patchwork.kernel.org/patch/11526769/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] mac80211: Add new AMPDU factor macro for HE peer caps
2020-05-04 17:04 ` Tamizh Chelvam
@ 2020-09-09 12:03 ` Felix Fietkau
-1 siblings, 0 replies; 10+ messages in thread
From: Felix Fietkau @ 2020-09-09 12:03 UTC (permalink / raw)
To: Tamizh Chelvam, ath11k, johannes; +Cc: linux-wireless
On 2020-05-04 19:04, Tamizh Chelvam wrote:
> Add IEEE80211_HE_VHT_MAX_AMPDU_FACTOR and IEEE80211_HE_HT_MAX_AMPDU_FACTOR
> as per spec to use for peer max ampdu factor.
>
> Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
> ---
> include/linux/ieee80211.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
> index a561db4..69e214c 100644
> --- a/include/linux/ieee80211.h
> +++ b/include/linux/ieee80211.h
> @@ -1821,6 +1821,8 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
> #define IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED 0x40
> #define IEEE80211_HE_MAC_CAP3_RX_CTRL_FRAME_TO_MULTIBSS 0x80
>
> +#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT 3
Can we please stop adding these redundant _MASK and _SHIFT combinations
in places where having just the mask is enough when used with FIELD_GET?
- Felix
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] mac80211: Add new AMPDU factor macro for HE peer caps
@ 2020-09-09 12:03 ` Felix Fietkau
0 siblings, 0 replies; 10+ messages in thread
From: Felix Fietkau @ 2020-09-09 12:03 UTC (permalink / raw)
To: Tamizh Chelvam, ath11k, johannes; +Cc: linux-wireless
On 2020-05-04 19:04, Tamizh Chelvam wrote:
> Add IEEE80211_HE_VHT_MAX_AMPDU_FACTOR and IEEE80211_HE_HT_MAX_AMPDU_FACTOR
> as per spec to use for peer max ampdu factor.
>
> Signed-off-by: Tamizh Chelvam <tamizhr@codeaurora.org>
> ---
> include/linux/ieee80211.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
> index a561db4..69e214c 100644
> --- a/include/linux/ieee80211.h
> +++ b/include/linux/ieee80211.h
> @@ -1821,6 +1821,8 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
> #define IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED 0x40
> #define IEEE80211_HE_MAC_CAP3_RX_CTRL_FRAME_TO_MULTIBSS 0x80
>
> +#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT 3
Can we please stop adding these redundant _MASK and _SHIFT combinations
in places where having just the mask is enough when used with FIELD_GET?
- Felix
--
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-09-09 12:18 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-04 17:04 [PATCH 1/2] mac80211: Add new AMPDU factor macro for HE peer caps Tamizh Chelvam
2020-05-04 17:04 ` Tamizh Chelvam
2020-05-04 17:05 ` [PATCH 2/2] ath11k: Add peer max mpdu parameter in peer assoc command Tamizh Chelvam
2020-05-04 17:05 ` Tamizh Chelvam
2020-05-29 14:49 ` Kalle Valo
2020-05-29 14:49 ` Kalle Valo
2020-09-09 6:50 ` Kalle Valo
2020-09-09 6:50 ` Kalle Valo
2020-09-09 12:03 ` [PATCH 1/2] mac80211: Add new AMPDU factor macro for HE peer caps Felix Fietkau
2020-09-09 12:03 ` Felix Fietkau
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.