I haven't come up with a cleaner solution either for FreeBSD/ath/net80211 at the moment. Right now, if you try establishing an aggregation session by flooding 250+ Mbit of UDP, you can easily allocate all the ath_buf's before the driver gets a chance to send the addba. Or, the addba fails but before that retransmission occurs, another UDP frame has eaten up another mbuf/ath_buf. I'm totally open to a better idea/solution. Even if I delay allocating ath_buf's until actual packet TX, that doesn't necessarily stop mbuf exhaustion from occuring, which is in line with what you see you're seeing in Linux. My temporarily solution is likely to fail datapath TX at say, 70% of ath_buf's being allocated, allowing the other 30% for whatever management traffic needs to occur. (That said, what may be nice is applying backpressure to the source interface of the frame(s), eg by sending PAUSE frames to the ethernet port(s), but that's just me..) Adrian -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html