From f333b9e44ae6bb6637dd8a02697fc54d23492b2e Mon Sep 17 00:00:00 2001 From: Damien Bergamini Date: Sun, 18 Jun 2006 12:32:47 +0000 Subject: enable packet bursting when operating as a STA. limit bursts to 8 frames. --- sys/dev/ic/rt2560.c | 14 ++++++++------ sys/dev/ic/rt2661.c | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/sys/dev/ic/rt2560.c b/sys/dev/ic/rt2560.c index e1577516ae2..889018ae38a 100644 --- a/sys/dev/ic/rt2560.c +++ b/sys/dev/ic/rt2560.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rt2560.c,v 1.19 2006/06/14 19:31:47 damien Exp $ */ +/* $OpenBSD: rt2560.c,v 1.20 2006/06/18 12:32:46 damien Exp $ */ /*- * Copyright (c) 2005, 2006 @@ -1778,6 +1778,13 @@ rt2560_tx_data(struct rt2560_softc *sc, struct mbuf *m0, wh = mtod(m0, struct ieee80211_frame *); } + /* + * Packet Bursting: backoff after ppb=8 frames to give other STAs a + * chance to contend for the wireless medium. + */ + if (ic->ic_opmode == IEEE80211_M_STA && (ni->ni_txseq & 7)) + flags |= RT2560_TX_IFS_SIFS; + /*- * IEEE Std 802.11-1999, pp 82: "A STA shall use an RTS/CTS exchange * for directed frames only when the length of the MPDU is greater @@ -1847,11 +1854,6 @@ rt2560_tx_data(struct rt2560_softc *sc, struct mbuf *m0, sc->txq.cur_encrypt = (sc->txq.cur_encrypt + 1) % RT2560_TX_RING_COUNT; - /* - * IEEE Std 802.11-1999: "when an RTS/CTS exchange is used, the - * asynchronous data frame shall be transmitted after the CTS - * frame and a SIFS period". - */ flags |= RT2560_TX_LONG_RETRY | RT2560_TX_IFS_SIFS; } diff --git a/sys/dev/ic/rt2661.c b/sys/dev/ic/rt2661.c index f9cce6bfd30..5603be2ab1a 100644 --- a/sys/dev/ic/rt2661.c +++ b/sys/dev/ic/rt2661.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rt2661.c,v 1.21 2006/06/14 19:31:47 damien Exp $ */ +/* $OpenBSD: rt2661.c,v 1.22 2006/06/18 12:32:46 damien Exp $ */ /*- * Copyright (c) 2006 @@ -1614,6 +1614,13 @@ rt2661_tx_data(struct rt2661_softc *sc, struct mbuf *m0, wh = mtod(m0, struct ieee80211_frame *); } + /* + * Packet Bursting: backoff after ppb=8 frames to give other STAs a + * chance to contend for the wireless medium. + */ + if (ic->ic_opmode == IEEE80211_M_STA && (ni->ni_txseq & 7)) + flags |= RT2661_TX_IFS_SIFS; + /*- * IEEE Std 802.11-1999, pp 82: "A STA shall use an RTS/CTS exchange * for directed frames only when the length of the MPDU is greater @@ -1682,11 +1689,6 @@ rt2661_tx_data(struct rt2661_softc *sc, struct mbuf *m0, txq->queued++; txq->cur = (txq->cur + 1) % RT2661_TX_RING_COUNT; - /* - * IEEE Std 802.11-1999: "when an RTS/CTS exchange is used, the - * asynchronous data frame shall be transmitted after the CTS - * frame and a SIFS period". - */ flags |= RT2661_TX_LONG_RETRY | RT2661_TX_IFS_SIFS; } -- cgit v1.2.3