[PATCH] wifi: mac80211: determine missing link_id in ieee80211_rx_for_interface() based on band

Michael-CY Lee michael-cy.lee at mediatek.com
Wed Jul 2 18:41:04 PDT 2025


On Wed, 2025-07-02 at 12:52 +0200, Johannes Berg wrote:
> 
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> 
> 
> On Wed, 2025-07-02 at 18:44 +0800, Michael-CY Lee wrote:
> > For broadcast frames, every interface might have to process it and
> > therefore the link_id cannot be determined in the driver.
> > 
> > When the frame is about to be forwarded to each interface, we can
> > use the member "band" in struct ieee80211_rx_status to determine
> > the
> > "link_id" for each interface.
> 
> Hm. Qualcomm has a similar thing with frequency, I think, and that
> probably makes more sense for them since 'band' isn't unique for the
> radio:
> 
> https://lore.kernel.org/linux-wireless/20250612121127.1960948-3-maharaja.kennadyrajan@oss.qualcomm.com/
> 
> Or is it not related?
> 
> johannes

Hi Johannes,

I think they're related but address different issues about group-
addressed frames.

The Qualcomm patch seems to focus on preventing frames from getting
processed on an interface running on a different band. (referred from
their commit message)
For example, a frame from frequency 6135 MHz should not be processed by
an interface that does not have a link on frequency 6135 MHz.

On the other hand, the problem we encountered is that the interface is
going to process the frame, but the "status->link_valid" is unset
because the driver is incapable of determining the "link_id". The
"link_id" remains its default value of -1, and the frame is handled by
the interface's default link and is dropped because an AP MLD interface
is not using its default link (sdata->deflink).

In summary, the Qualcomm patch focuses on avoiding frames being
processed by unsuitable interfaces, while our patch aims to determine
the "link_id" so that the interface can correctly handle it.

Additionally, we also think the 'link_id' can be determined based on
'freq' rather than 'band'. What do you think?

Best,
Michael




More information about the Linux-mediatek mailing list