From: Mehmet Fide <mehmet.fide@gmail.com>
To: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Cc: Ping-Ke Shih <pkshih@realtek.com>,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
Mehmet Fide <mehmet.fide@screeningeagle.com>
Subject: Re: [PATCH rtw-next] wifi: rtw88: usb: send broadcast/multicast via the AC queues
Date: Thu, 13 Aug 2026 23:44:22 +0200 [thread overview]
Message-ID: <20260813214422.2438768-1-mehmet.fide@gmail.com> (raw)
In-Reply-To: <ccc4cb9f-41a8-4de1-a6ca-b5e074385e4d@gmail.com>
From: Mehmet Fide <mehmet.fide@screeningeagle.com>
Hello Bitterblue,
> Shouldn't mac80211 handle the buffering already?
It handles the decision already, and that turns out to be the key.
For bmc frames in AP mode, ieee80211_tx_h_multicast_ps_buf() sets
IEEE80211_TX_CTL_SEND_AFTER_DTIM only while at least one station is
actually dozing, and then either buffers the frame itself, when the
driver declares IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING and pulls
them with ieee80211_get_buffered_bc() after each DTIM beacon, or
passes it to the driver with the flag set and expects the device to
do the after-DTIM release.
rtw88 is in the second group, but it never looks at the flag: it
routes every bmc frame through the high queue whether anybody sleeps
or not, which is what lets the backlog build up. The full host
buffering model does not really fit rtw88 USB, the beacons come from
the firmware and there is no per-beacon event to pull buffered frames
on. Honoring the flag fits, and it is a one line change: flagged
frames keep the high queue with the MORE_DATA/HGQMD handling from
076f786a0ae1, everything else goes out through the AC queues at line
rate. The vendor driver gates on the same condition, a station
actually being in PS, just with its own bookkeeping.
I have sent a v2 doing exactly that. It passes the same reconnect
test that fails on stock (RTL8822BU 10/10 with 4/4 pings on every
cycle, first association included). The dozing-station path keeps the
existing high queue code unchanged; I could not exercise a client in
powersave on this bench yet and will follow up with that measurement
next week.
Thanks,
Mehmet
prev parent reply other threads:[~2026-08-13 21:44 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-13 13:18 [PATCH rtw-next] wifi: rtw88: usb: send broadcast/multicast via the AC queues Mehmet Fide
2026-08-13 15:07 ` Bitterblue Smith
2026-08-13 15:52 ` Mehmet Fide
2026-08-13 18:34 ` Bitterblue Smith
2026-08-13 18:50 ` Mehmet Fide
2026-08-13 19:47 ` Bitterblue Smith
2026-08-13 21:44 ` Mehmet Fide [this message]
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=20260813214422.2438768-1-mehmet.fide@gmail.com \
--to=mehmet.fide@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=mehmet.fide@screeningeagle.com \
--cc=pkshih@realtek.com \
--cc=rtl8821cerfe2@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox