In bcm43xx-mac80211, the mechanism for decreasing the transmit rate cannot
be triggered. This may be shown by walking away from the AP with a laptop.
At some distance, communications will be lost and never recovered because
the rate decreasing mechanism of rc80211_simple needs to see excessive_retries
set in the ieee80211_tx_status struct. With this patch, the transmit rate
will decrease until communications restart.

Signed-off-by: Larry Finger <[EMAIL PROTECTED]>
---

John and Michael,

This is based on the wireless-dev tree.

Larry

 bcm43xx_dma.c |    3 +++
 1 file changed, 3 insertions(+)

Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_dma.c
===================================================================
--- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_dma.c
+++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_dma.c
@@ -1311,6 +1311,9 @@ void bcm43xx_dma_handle_txstatus(struct 
                         */
                        if (status->acked)
                                meta->txstat.flags |= IEEE80211_TX_STATUS_ACK;
+                       else
+                               if (!(meta->txstat.flags & 
IEEE80211_TXCTL_NO_ACK))
+                                       meta->txstat.excessive_retries = 1;
                        meta->txstat.retry_count = status->frame_count - 1;
                        ieee80211_tx_status_irqsafe(dev->wl->hw, meta->skb, 
&(meta->txstat));
                        /* skb is freed by ieee80211_tx_status_irqsafe() */
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to