mac80211: SMPS for AP Mode
PATCH 1/1 mac80211: SMPS for AP Mode
Patch for SMPS mode for AP. This is to define a new ieee80211_tx_info flag to allow a lower AP driver to set RTS/CTS protection for a dynamic SMPS station
--- include/net/mac80211.h | 4 ++++ net/mac80211/rc80211_minstrel_ht.c | 3 +++ 2 files changed, 7 insertions(+), 0 deletions(-)
include/net/mac80211.h +4 -0
@@ -458,6 +458,9 @@ struct ieee80211_bss_conf {* @IEEE80211_TX_CTL_DONTFRAG: Don't fragment this packet even if it * would be fragmented by size (this is optional, only used for * monitor injection). +* @IEEE80211_TX_CTL_SMPS_SET_RTS: set the RTS/CTS protection mechanism +* for the packet at AP when SMPS mode at the station is +* dynamic SMPS. * * Note: If you have to add new flags to the enumeration, then don't * forget to update %IEEE80211_TX_TEMPORARY_FLAGS when necessary.
@@ -493,6 +496,7 @@ enum mac80211_tx_control_flags {IEEE80211_TX_STATUS_EOSP =BIT (28 ),IEEE80211_TX_CTL_USE_MINRATE =BIT (29 ),IEEE80211_TX_CTL_DONTFRAG =BIT (30 ), + IEEE80211_TX_CTL_SMPS_SET_RTS = BIT(31), };#define IEEE80211_TX_CTL_STBC_SHIFT 23
net/mac80211/rc80211_minstrel_ht.c +3 -0
@@ -719,6 +719,9 @@ minstrel_ht_get_rate(void *priv, struct ieee80211_sta *sta, void *priv_sta, info->flags |= mi->tx_flags;minstrel_ht_check_cck_shortpreamble (mp, mi, txrc->short_preamble); +if (sta->smps_mode ==IEEE80211_SMPS_DYNAMIC ) + info->flags |=IEEE80211_TX_CTL_SMPS_SET_RTS ; +/* Don't use EAPOL frames for sampling on non-mrr hw */ if (mp->hw->max_rates ==1 && txrc->skb->protocol ==cpu_to_be16 (ETH_P_PAE ))
Johannes Berg
maintainerQuoted 13 lines · Vivekananda Holla
Patch for SMPS mode for AP. This is to define a new
ieee80211_tx_infoflag to allow a lower AP driver to set RTS/CTS protection for a dynamic SMPS stationSigned-off-by Vivekananda Holla <[email protected]>--- include/net/mac80211.h | 4 ++++ net/mac80211/rc80211_minstrel_ht.c | 3 +++ 2 files changed, 7 insertions(+), 0 deletions(-)include/net/mac80211.h +0
-0
include/net/mac80211.h struct ieee80211_bss_conf { · line 463
Quoted 6 lines
include/net/mac80211.h +3
-0@@ -458,6 +458,9 @@ struct ieee80211_bss_conf {* @IEEE80211_TX_CTL_DONTFRAG: Don't fragment this packet even if it * would be fragmented by size (this is optional, only used for * monitor injection). +* @IEEE80211_TX_CTL_SMPS_SET_RTS: set the RTS/CTS protection mechanism +* for the packet at AP when SMPS mode at the station is +* dynamic SMPS.
Huh? No ... There are perfectly usable flags already inside each rate.
johannes
hi Johannes,
do you mean the IEEE80211_TX_RC_USE_RTS_CTS flag to set RTS/CTS protection for the packet?
I did not use this based on the below understanding
my understanding for SMPS is that a station system does not need to send an RTS packet before frame transmission for SMPS however an AP system needs to send out an RTS frame.
hence, I defined a new txinfo flag which tells the lower driver (if AP) to send RTS frame if the station for which the packet is scheduled is dynamic SMPS to set the RTS frame for the same.
awaiting your feedback
thanks and regards
Vivek
Quoted 24 lines · Johannes Berg
Quoted 13 lines · Vivekananda Holla
Patch for SMPS mode for AP. This is to define a new
ieee80211_tx_infoflag to allow a lower AP driver to set RTS/CTS protection for a dynamic SMPS stationSigned-off-by Vivekananda Holla <[email protected]>--- include/net/mac80211.h | 4 ++++ net/mac80211/rc80211_minstrel_ht.c | 3 +++ 2 files changed, 7 insertions(+), 0 deletions(-)include/net/mac80211.h +0
-0include/net/mac80211.h struct ieee80211_bss_conf { · line 463
Quoted 6 lines
include/net/mac80211.h +3
-0@@ -458,6 +458,9 @@ struct ieee80211_bss_conf {* @IEEE80211_TX_CTL_DONTFRAG: Don't fragment this packet even if it * would be fragmented by size (this is optional, only used for * monitor injection). +* @IEEE80211_TX_CTL_SMPS_SET_RTS: set the RTS/CTS protection mechanism +* for the packet at AP when SMPS mode at the station is +* dynamic SMPS. Huh? No ... There are perfectly usable flags already inside each rate.
johannes
Johannes Berg
maintainerQuoted 10 lines · Vivekananda Holla
hi Johannes,
do you mean the
IEEE80211_TX_RC_USE_RTS_CTSflag to set RTS/CTS protection for the packet?I did not use this based on the below understanding
my understanding for SMPS is that a station system does not need to send an RTS packet before frame transmission for SMPS however an AP system needs to send out an RTS frame.
No? Where did you get that idea? It's wrong, it doesn't matter whether it's AP or not.
johannes
Johannes Berg
maintainerQuoted 6 lines · Johannes Berg
Quoted 5 lines · Vivekananda Holla
hi Johannes,
do you mean the
IEEE80211_TX_RC_USE_RTS_CTSflag to set RTS/CTS protection for the packet?
Quoted 8 lines
Quoted 5 lines
I did not use this based on the below understanding
my understanding for SMPS is that a station system does not need to send an RTS packet before frame transmission for SMPS however an AP system needs to send out an RTS frame.
No? Where did you get that idea? It's wrong, it doesn't matter whether it's AP or not.
Of course, APs will rarely use SMPS, so stations almost never have to deal with an AP that uses it ...
johannes
hi Johannes,
thanks for the clarification.
I will update the patch and send it again.
thanks and regards
Vivek
Quoted 23 lines · Johannes Berg
Quoted 6 lines · Johannes Berg
Quoted 5 lines · Vivekananda Holla
hi Johannes,
do you mean the
IEEE80211_TX_RC_USE_RTS_CTSflag to set RTS/CTS protection for the packet?Quoted 7 lines
Quoted 5 lines
I did not use this based on the below understanding
my understanding for SMPS is that a station system does not need to send an RTS packet before frame transmission for SMPS however an AP system needs to send out an RTS frame.
No? Where did you get that idea? It's wrong, it doesn't matter whether it's AP or not.
Of course, APs will rarely use SMPS, so stations almost never have to deal with an AP that uses it ...
johannes
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html