From: Ping-Ke Shih <pkshih@realtek.com>
To: <linux-wireless@vger.kernel.org>
Cc: <timlee@realtek.com>, <dian_syuan0116@realtek.com>,
<phhuang@realtek.com>, <kevin_yang@realtek.com>
Subject: [PATCH rtw-next 08/13] wifi: rtw89: wow: send ARP reply packets instead of Null packets to keep alive
Date: Fri, 15 May 2026 09:44:28 +0800 [thread overview]
Message-ID: <20260515014433.16168-9-pkshih@realtek.com> (raw)
In-Reply-To: <20260515014433.16168-1-pkshih@realtek.com>
From: Chin-Yen Lee <timlee@realtek.com>
In WoWLAN mode, the firmware periodically sends Null packets to the AP
to keep the connection alive and prevent the AP from disconnecting the
client due to inactivity. However, it was observed that certain APs,
such as TP-Link Archer BE800, do not recognize Null packets as
valid activity and still drop the connection. Replacing Null packets
with ARP reply packets effectively resolves this compatibility issue
and maintains the connection.
Specifically, while the firmware typically handles standard ARP
offloads by dynamically modifying target IP/MAC fields, these
keep-alive ARP reply packets are pre-filled by the driver with the
DUT's own MAC and IP addresses for both sender and target fields.
In this case, the firmware transmits the packets as-is without
further modification. This approach ensures compatibility with APs
that require valid Layer 3 traffic for activity monitoring while
simplifying the firmware's processing logic during WoWLAN mode.
Signed-off-by: Chin-Yen Lee <timlee@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
drivers/net/wireless/realtek/rtw89/fw.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c
index 29d8d13d11fe..eb5683d64461 100644
--- a/drivers/net/wireless/realtek/rtw89/fw.c
+++ b/drivers/net/wireless/realtek/rtw89/fw.c
@@ -2958,6 +2958,8 @@ static struct sk_buff *rtw89_arp_response_get(struct rtw89_dev *rtwdev,
ether_addr_copy(arp_skb->sender_hw, rtwvif_link->mac_addr);
arp_skb->sender_ip = rtwvif->ip_addr;
+ ether_addr_copy(arp_skb->target_hw, rtwvif_link->mac_addr);
+ arp_skb->target_ip = rtwvif->ip_addr;
return skb;
}
@@ -9617,7 +9619,7 @@ int rtw89_fw_h2c_keep_alive(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtw
if (enable) {
ret = rtw89_fw_h2c_add_general_pkt(rtwdev, rtwvif_link,
- RTW89_PKT_OFLD_TYPE_NULL_DATA,
+ RTW89_PKT_OFLD_TYPE_ARP_RSP,
&pkt_id);
if (ret)
return -EPERM;
--
2.25.1
next prev parent reply other threads:[~2026-05-15 1:45 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-15 1:44 [PATCH rtw-next 00/13] wifi: rtw89: update SER, PCI, WoW and quota settings Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 01/13] wifi: rtw89: debug: Wi-Fi 7 show count of SER L0 simulation Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 02/13] wifi: rtw89: debug: Wi-Fi 7 update simulation of SER L0/L1 by halt H2C command Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 03/13] wifi: rtw89: fw: dump status of H2C command and C2H event for SER Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 04/13] wifi: rtw89: pci: enable LTR based on pcie control register Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 05/13] wifi: rtw89: pci: not disable PCI completion timeout control for a variant of RTL8922DE Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 06/13] wifi: rtw89: pci: disable PCI PHY error flag 8 Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 07/13] wifi: rtw89: clear auto K delay value before downloading firmware Ping-Ke Shih
2026-05-15 1:44 ` Ping-Ke Shih [this message]
2026-05-15 1:44 ` [PATCH rtw-next 09/13] wifi: rtw89: correct drop logic for malformed AMPDU frames Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 10/13] wifi: rtw89: 8922d: change naming number and update values for WDE/PLE quota Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 11/13] wifi: rtw89: mac: add field of release report size to DLE quota Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 12/13] wifi: rtw89: mac: consolidate quota into a struct for variant chips Ping-Ke Shih
2026-05-15 1:44 ` [PATCH rtw-next 13/13] wifi: rtw89: 8922d: add quota for RTL8922DE variant Ping-Ke Shih
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=20260515014433.16168-9-pkshih@realtek.com \
--to=pkshih@realtek.com \
--cc=dian_syuan0116@realtek.com \
--cc=kevin_yang@realtek.com \
--cc=linux-wireless@vger.kernel.org \
--cc=phhuang@realtek.com \
--cc=timlee@realtek.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.