From: "Grumbach, Emmanuel" <emmanuel.grumbach@intel.com>
To: "lee@kernel.org" <lee@kernel.org>,
"johannes@sipsolutions.net" <johannes@sipsolutions.net>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Coelho, Luciano" <luciano.coelho@intel.com>
Subject: Re: [PATCH 1/1] wifi: mac80211: ignore PM bit in non-bufferable MMPDUs for PS start
Date: Tue, 20 Oct 2026 07:47:03 +0000 [thread overview]
Message-ID: <cbf2c9297ab7ff1b2ef5fd98876e952fe5a52e7f.camel@intel.com> (raw)
In-Reply-To: <591baf4f5983a2205550523a792681dad4b77b66.camel@sipsolutions.net>
On Tue, 2026-10-20 at 09:42 +0200, Johannes Berg wrote:
> On Tue, 2026-10-20 at 07:58 +0100, Lee Jones wrote:
> >
> > You were also right to suspect the client-side TIM path in
> > ieee80211_rx_mgmt_beacon(), when (dynamic_ps_timeout == 0) (for
> > instance,
> > when power-save is disabled on the client interface) and
> > IEEE80211_CONF_PS
> > is not set, mac80211 currently ignores its AID bit in the TIM and
> > never
> > sends a wake nullfunc frame to flush the AP's buffered frames.
> >
> > If you're happy for me to do so, I'll send the following 2-patch v3
> > series:
> >
> > 1. Symmetric PM-bit handling in ieee80211_rx_h_sta_process() (only
> > consulting the PM bit on data and bufferable management frames,
> > while
> > waking sleeping stations on Auth / (Re)AssocReq as-per
> > 9fef65443388).
> >
> > 2. Sending a wake nullfunc in ieee80211_rx_mgmt_beacon() when the
> > TIM
> > indicates buffered unicast traffic while IEEE80211_CONF_PS is
> > not set.
> >
> > Does this help or hinder? Your call. If you decline, I'll go
> > ahead and
> > close out our internal (Android) report as `Won't Fix` and move on
> > to
> > something else.
>
> I think what you do with your report is probably not my problem ;-)
>
> IMHO adding the client side defence definitely makes sense, though in
> many/most cases it'll be up to the firmware anyway.
>
> I don't think I have a problem with the AP-side spec alignment, even
> if
> it's a touchy area, but depends how complex the code gets perhaps? I
> don't think any client would rely on us not handling the PM bit in
> those
> frames, and they're supposed to set it to 0 (reserved) anyway, so I'm
> not very worried about it. The patch was fine and I guess moving that
> around to apply to both sides wouldn't really change it much? Want to
> try?
>
FWIW: the firmware on Intel devices will send an NDP with PM=0 when we
get a TIM bit set even if we are already awake. This is meant to re-
sync the AP in case we are out of sync. So 2. makes sense to me.
next prev parent reply other threads:[~2026-10-20 7:47 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-28 10:05 [PATCH 1/1] wifi: mac80211: ignore PM bit in non-bufferable MMPDUs for PS start Lee Jones
2026-09-28 10:15 ` Johannes Berg
2026-09-28 14:24 ` Lee Jones
2026-09-29 16:32 ` Johannes Berg
2026-10-20 6:58 ` Lee Jones
2026-10-20 7:42 ` Johannes Berg
2026-10-20 7:47 ` Grumbach, Emmanuel [this message]
2026-10-20 9:54 ` Lee Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cbf2c9297ab7ff1b2ef5fd98876e952fe5a52e7f.camel@intel.com \
--to=emmanuel.grumbach@intel.com \
--cc=johannes@sipsolutions.net \
--cc=lee@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=luciano.coelho@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.