| From: Felix Fietkau <nbd@nbd.name> |
| Date: Fri, 2 Dec 2022 17:01:46 +0100 |
| Subject: [PATCH] wifi: mac80211: remove mesh forwarding congestion check |
| |
| Now that all drivers use iTXQ, it does not make sense to check to drop |
| tx forwarding packets when the driver has stopped the queues. |
| fq_codel will take care of dropping packets when the queues fill up |
| |
| Signed-off-by: Felix Fietkau <nbd@nbd.name> |
| --- |
| |
| --- a/net/mac80211/debugfs_netdev.c |
| +++ b/net/mac80211/debugfs_netdev.c |
| @@ -603,8 +603,6 @@ IEEE80211_IF_FILE(fwded_mcast, u.mesh.ms |
| IEEE80211_IF_FILE(fwded_unicast, u.mesh.mshstats.fwded_unicast, DEC); |
| IEEE80211_IF_FILE(fwded_frames, u.mesh.mshstats.fwded_frames, DEC); |
| IEEE80211_IF_FILE(dropped_frames_ttl, u.mesh.mshstats.dropped_frames_ttl, DEC); |
| -IEEE80211_IF_FILE(dropped_frames_congestion, |
| - u.mesh.mshstats.dropped_frames_congestion, DEC); |
| IEEE80211_IF_FILE(dropped_frames_no_route, |
| u.mesh.mshstats.dropped_frames_no_route, DEC); |
| |
| @@ -740,7 +738,6 @@ static void add_mesh_stats(struct ieee80 |
| MESHSTATS_ADD(fwded_frames); |
| MESHSTATS_ADD(dropped_frames_ttl); |
| MESHSTATS_ADD(dropped_frames_no_route); |
| - MESHSTATS_ADD(dropped_frames_congestion); |
| #undef MESHSTATS_ADD |
| } |
| |
| --- a/net/mac80211/ieee80211_i.h |
| +++ b/net/mac80211/ieee80211_i.h |
| @@ -329,7 +329,6 @@ struct mesh_stats { |
| __u32 fwded_frames; /* Mesh total forwarded frames */ |
| __u32 dropped_frames_ttl; /* Not transmitted since mesh_ttl == 0*/ |
| __u32 dropped_frames_no_route; /* Not transmitted, no route found */ |
| - __u32 dropped_frames_congestion;/* Not forwarded due to congestion */ |
| }; |
| |
| #define PREQ_Q_F_START 0x1 |
| --- a/net/mac80211/rx.c |
| +++ b/net/mac80211/rx.c |
| @@ -2926,11 +2926,6 @@ ieee80211_rx_h_mesh_fwding(struct ieee80 |
| return RX_CONTINUE; |
| |
| ac = ieee802_1d_to_ac[skb->priority]; |
| - q = sdata->vif.hw_queue[ac]; |
| - if (ieee80211_queue_stopped(&local->hw, q)) { |
| - IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, dropped_frames_congestion); |
| - return RX_DROP_MONITOR; |
| - } |
| skb_set_queue_mapping(skb, ac); |
| |
| if (!--mesh_hdr->ttl) { |