Skip to contentSkip to conversation

mac80211: SMPS for AP Mode

PATCH In review Vivekananda Holla 2 participants 6 messages Apr 10, 2013 mac80211

lore
Share & tools
lore
#0 lore raw

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
index 64faf01..48a950c 100644
@@ -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
index d2b264d..84557e4 100644
@@ -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))
maintainer
#1 lore raw
Quoted 13 lines · Vivekananda Holla

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 +0 -0
index 64faf01..48a950c 100644

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

#2 lore raw

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_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 +0 -0
index 64faf01..48a950c 100644

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

maintainer
#3 lore raw
Quoted 10 lines · Vivekananda Holla

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.

No? Where did you get that idea? It's wrong, it doesn't matter whether it's AP or not.

johannes

maintainer
#4 lore raw
Quoted 6 lines · Johannes Berg
Quoted 5 lines · Vivekananda Holla

hi Johannes,

do you mean the IEEE80211_TX_RC_USE_RTS_CTS flag 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

#5 lore raw

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_CTS flag 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