VER-1244: wifi: ath12k: fix unknown unicast TX on 4-address links with eth offload - #97
Merged
Conversation
Setting IEEE80211_OFFLOAD_ENCAP_4ADDR moved 4-address interfaces from mac80211's software encapsulation path (ieee80211_dataif_ops) to the 802.3 TX offload path (ieee80211_dataif_8023_ops), see ieee80211_set_vif_encap_ops(). Frames now reach the driver as ethernet and the hardware has to resolve the destination address itself. Only multicast was given an explicit address search override, so unicast still relies on the hardware finding the ethernet DA in the AST. That works for the station's own address, but misses for any address learned behind a 4-address station, so all unknown unicast traffic is lost after the frame has already been accounted as transmitted. Use the peer's AST entry and set the descriptor lookup override for unicast too. arsta is only populated for 4-address peers, so ordinary 3-address stations keep using the vdev level metadata and the address search. Fixes: 729cad3 ("wifi: ath12k: Add 4-address mode support for eth offload") Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The commit adding eth offload support for 4-address mode introduced a WMI_VDEV_PARAM_AP_ENABLE_NAWDS setup block, but reused the pre-existing early goto for it by retargeting "goto skip_use_4addr" to the new "skip_nawds" label at the end of the loop body. That silently widened the scope of the branch: it previously skipped only the USE_4ADDR peer param, and now skips the NAWDS setup as well. arvif->set_wds_vdev_param is set only for a station interface with use_4addr, so NAWDS is never enabled on precisely the vdev it is meant for, while an AP interface still gets it. Keep the branch limited to the peer param so the NAWDS setup is reached in both cases. The remaining goto still skips it for non-ethernet encapsulation, as intended. Fixes: 729cad3 ("wifi: ath12k: Add 4-address mode support for eth offload") Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This reverts commit 07e2746.
michaeln-ceragon
approved these changes
Aug 4, 2026
adrian-nicolau
deleted the
VER-1244-FR2-Unknown-Unicast-Traffic-Not-Delivered-Over-Modem-to-Modem-Link
branch
August 4, 2026 08:45
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Setting IEEE80211_OFFLOAD_ENCAP_4ADDR moved 4-address interfaces from
mac80211's software encapsulation path (ieee80211_dataif_ops) to the
802.3 TX offload path (ieee80211_dataif_8023_ops), see
ieee80211_set_vif_encap_ops(). Frames now reach the driver as ethernet
and the hardware has to resolve the destination address itself.
Only multicast was given an explicit address search override, so unicast
still relies on the hardware finding the ethernet DA in the AST. That
works for the station's own address, but misses for any address learned
behind a 4-address station, so all unknown unicast traffic is lost after
the frame has already been accounted as transmitted.
Use the peer's AST entry and set the descriptor lookup override for
unicast too. arsta is only populated for 4-address peers, so ordinary
3-address stations keep using the vdev level metadata and the address
search.
Fixes: 729cad3 ("wifi: ath12k: Add 4-address mode support for eth offload")