On Wed, 2011-08-24 at 18:40 -0700, Thomas Pedersen wrote:
From: Pedro Larbig <redacted>
To avoid contention problems in a mesh network's high load areas, this patch
adds a 2-stage packet dropping mechanism:
* If the transmit queue for HWMP frames is filled with 256 or more packets,
additional HWMP frames will be dropped
* If the transmit queue for forwarded packets is at 384 or more, drop those,
too
+ /* Frames going through ieee80211_tx_skb will be on the voice queue,
+ * Therefor we need to check only IEEE80211_AC_VO */
+ if (unlikely(skb_queue_len(&local->pending[IEEE80211_AC_VO]) >=
+ MESH_MGMT_QUEUE_LEN)) {
+ kfree_skb(skb);
+ I802_DEBUG_INC(local->tx_handlers_drop_mesh_mgmt);
+ return;
+ }
I still don't think this should be done. If the HW queue is full, we
will get a stop_queue from the driver, this could also tell mesh to stop
forwarding or so.
johannes