From 960a4d850db11d08f7e1e7af10ecf4a965acf9f9 Mon Sep 17 00:00:00 2001 From: adrian Date: Sat, 7 Apr 2012 05:46:00 +0000 Subject: [PATCH] As I thought, this is a bad idea. When forming aggregates, the RTS/CTS stuff and rate control lookup is only done on the first frame. --- sys/dev/ath/if_ath_tx_ht.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/sys/dev/ath/if_ath_tx_ht.c b/sys/dev/ath/if_ath_tx_ht.c index b7875a3fbc0..a2fc1c00eb9 100644 --- a/sys/dev/ath/if_ath_tx_ht.c +++ b/sys/dev/ath/if_ath_tx_ht.c @@ -741,18 +741,14 @@ ath_tx_form_aggr(struct ath_softc *sc, struct ath_node *an, struct ath_tid *tid, /* * If the current frame has an RTS/CTS configuration - * that differs from the first frame, don't include - * this in the aggregate. It's possible that the - * "right" thing to do here is enforce the aggregate - * configuration. + * that differs from the first frame, override the + * subsequent frame with this config. */ - if ((bf_first->bf_state.bfs_txflags & - (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA)) != - (bf->bf_state.bfs_txflags & - (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA))) { - status = ATH_AGGR_NONAGGR; - break; - } + bf->bf_state.bfs_txflags &= + (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA); + bf->bf_state.bfs_txflags |= + bf_first->bf_state.bfs_txflags & + (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA); /* * TODO: If it's _before_ the BAW left edge, complain very -- 2.45.2