diff --git a/modules b/modules index f0ff06faf7e23578ee0d51693ffbaf6135891a80..55caf39b9b0a9efa661cccee80a7e6991f5967bc 100644 --- a/modules +++ b/modules @@ -2,7 +2,7 @@ GLUON_FEEDS='gluon packages routing' OPENWRT_REPO=https://github.com/openwrt/openwrt.git OPENWRT_BRANCH=openwrt-24.10 -OPENWRT_COMMIT=298654b9ab57b953b5c5d72cc69f1c46e0a5dd23 +OPENWRT_COMMIT=f3a210b7425497155b22e197a4bcdaa034f142fa PACKAGES_GLUON_REPO=https://github.com/freifunk-gluon/packages.git PACKAGES_GLUON_COMMIT=3d08b0fee8dc5d96d8bcdb985fad1d5564de4022 diff --git a/patches/openwrt/0004-mt76-include-fixes-for-MT7603-MT7612.patch b/patches/openwrt/0004-mt76-include-fixes-for-MT7603-MT7612.patch index e8b9896181107d15098308e2cc2ed096f5b0998e..31b263b83f6bb4924919ba2a8746f0ad68e21241 100644 --- a/patches/openwrt/0004-mt76-include-fixes-for-MT7603-MT7612.patch +++ b/patches/openwrt/0004-mt76-include-fixes-for-MT7603-MT7612.patch @@ -2,91 +2,6 @@ From: David Bauer <mail@david-bauer.net> Date: Thu, 14 Mar 2024 09:39:22 +0100 Subject: mt76: include fixes for MT7603 / MT7612 -diff --git a/package/kernel/mt76/patches/0001-tx-add-limit-for-TXS-ack-override.patch b/package/kernel/mt76/patches/0001-tx-add-limit-for-TXS-ack-override.patch -new file mode 100644 -index 0000000000000000000000000000000000000000..568c590f24c251dda70522865af32b3753cd5beb ---- /dev/null -+++ b/package/kernel/mt76/patches/0001-tx-add-limit-for-TXS-ack-override.patch -@@ -0,0 +1,79 @@ -+From a95c23b2c2e923ed293eb794b74735c7d6c5b272 Mon Sep 17 00:00:00 2001 -+From: David Bauer <mail@david-bauer.net> -+Date: Fri, 1 Mar 2024 17:41:33 +0100 -+Subject: [PATCH 1/2] tx: add limit for TXS ack override -+ -+Add an upper limit for overriding missing TX status for each client. -+ -+This avoids clients, which to mac80211 still appear as if they are -+connected when in fact they are not reachable for the AP anymore. -+ -+This can happen, as the radio (observed on MT7603 in particular) might -+skip TX status-reporting which the host will then mark as acked. This -+prevents the client from timing out and become "sticky" on the AP. -+ -+Signed-off-by: David Bauer <mail@david-bauer.net> -+--- -+ mt76.h | 2 ++ -+ tx.c | 20 +++++++++++++++++++- -+ 2 files changed, 21 insertions(+), 1 deletion(-) -+ -+diff --git a/mt76.h b/mt76.h -+index fd527649..6d9b7028 100644 -+--- a/mt76.h -++++ b/mt76.h -+@@ -330,6 +330,8 @@ struct mt76_wcid { -+ u8 rx_key_pn[IEEE80211_NUM_TIDS + 1][6]; -+ u16 cipher; -+ -++ u8 txs_failed_cnt; -++ -+ u32 tx_info; -+ bool sw_iv; -+ -+diff --git a/tx.c b/tx.c -+index 1809b032..65d6104f 100644 -+--- a/tx.c -++++ b/tx.c -+@@ -91,6 +91,7 @@ __mt76_tx_status_skb_done(struct mt76_dev *dev, struct sk_buff *skb, u8 flags, -+ { -+ struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); -+ struct mt76_tx_cb *cb = mt76_tx_skb_cb(skb); -++ struct mt76_wcid *wcid; -+ u8 done = MT_TX_CB_DMA_DONE | MT_TX_CB_TXS_DONE; -+ -+ flags |= cb->flags; -+@@ -98,12 +99,29 @@ __mt76_tx_status_skb_done(struct mt76_dev *dev, struct sk_buff *skb, u8 flags, -+ -+ if ((flags & done) != done) -+ return; -++ -++ wcid = rcu_dereference(dev->wcid[cb->wcid]); -+ -+ /* Tx status can be unreliable. if it fails, mark the frame as ACKed */ -+ if (flags & MT_TX_CB_TXS_FAILED) { -++ /* Increment station counter */ -++ if (wcid && wcid->sta) -++ wcid->txs_failed_cnt++; -++ -+ info->status.rates[0].count = 0; -+ info->status.rates[0].idx = -1; -+- info->flags |= IEEE80211_TX_STAT_ACK; -++ -++ /** -++ * Check if station counter exceeds the limit for -++ * implicit acks. If not, mark the frame as ACKed. -++ */ -++ if (!wcid || wcid->txs_failed_cnt < 25) { -++ info->flags |= IEEE80211_TX_STAT_ACK; -++ } -++ } else if (info->flags & IEEE80211_TX_STAT_ACK) { -++ /* Reset station counter */ -++ if (wcid && wcid->sta) -++ wcid->txs_failed_cnt = 0; -+ } -+ -+ __skb_queue_tail(list, skb); -+-- -+2.43.0 -+ diff --git a/package/kernel/mt76/patches/0002-mt76x02-avoid-action-ghost-ack.patch b/package/kernel/mt76/patches/0002-mt76x02-avoid-action-ghost-ack.patch new file mode 100644 index 0000000000000000000000000000000000000000..0910ed99ef473db9cf4129f88017912b5d63267d