mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7996: disable rx header translation for BMC entry
When a BMC wtbl of station interface is correctly set with peer address, HW will do rx header translation for broadcast data packets, which makes mac80211 unable to find the corresponding ieee80211_sta and drop the packets. To fix this, disable HW rx header translation for BMC entry. Signed-off-by: Shayne Chen <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
committed by
Felix Fietkau
parent
02846a5d0f
commit
cb8df32e04
+5
-4
@@ -1778,10 +1778,10 @@ mt7996_mcu_sta_hdr_trans_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
|
||||
else
|
||||
hdr_trans->from_ds = true;
|
||||
|
||||
wcid = (struct mt76_wcid *)sta->drv_priv;
|
||||
if (!wcid)
|
||||
if (!sta)
|
||||
return;
|
||||
|
||||
wcid = (struct mt76_wcid *)sta->drv_priv;
|
||||
hdr_trans->dis_rx_hdr_tran = !test_bit(MT_WCID_FLAG_HDR_TRANS, &wcid->flags);
|
||||
if (test_bit(MT_WCID_FLAG_4ADDR, &wcid->flags)) {
|
||||
hdr_trans->to_ds = true;
|
||||
@@ -2154,6 +2154,9 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
|
||||
if (!enable)
|
||||
goto out;
|
||||
|
||||
/* starec hdr trans */
|
||||
mt7996_mcu_sta_hdr_trans_tlv(dev, skb, vif, sta);
|
||||
|
||||
/* tag order is in accordance with firmware dependency. */
|
||||
if (sta) {
|
||||
/* starec hdrt mode */
|
||||
@@ -2178,8 +2181,6 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
|
||||
mt7996_mcu_sta_muru_tlv(dev, skb, vif, sta);
|
||||
/* starec bfee */
|
||||
mt7996_mcu_sta_bfee_tlv(dev, skb, vif, sta);
|
||||
/* starec hdr trans */
|
||||
mt7996_mcu_sta_hdr_trans_tlv(dev, skb, vif, sta);
|
||||
}
|
||||
|
||||
ret = mt7996_mcu_add_group(dev, vif, sta);
|
||||
|
||||
Reference in New Issue
Block a user