• Chih-Kang Chang's avatar
    wifi: rtw88: process VO packets without workqueue to avoid PTK rekey failed · 67d7f24b
    Chih-Kang Chang authored
    In the wpa_supplicant rekey flow, it sends an EAPOL packet 4/4 through
    nl80211_tx_control_port() and triggers wake_tx_queue() in the driver.
    Then, it sends nl80211_new_key() to configure a new key in mac80211.
    However, in wake_tx_queue(), a workqueue is used to process the tx packet,
    which might cause the driver to process the EAPOL packet later than
    nl80211_new_key(). As a result, the EAPOL 4/4 packet is dropped by mac80211
    due to the rekey configuration being finished. The EAPOL packets belongs to
    VO packets that need high priority. Therefore, we process VO packets
    directly without workqueue to ensure that packets can process immediately.
    
    VO is normally used by voice application that is low traffic load and low
    latency, that doesn't affect user experience.
    We test iperf with VO packets(iperf3 -P4 -u -b 10000M -S 0xdf)
                              before       after
    TX throughput             162M         162M
    ping RTT                  3.8ms        3.7ms
    Signed-off-by: default avatarChih-Kang Chang <gary.chang@realtek.com>
    Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
    Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20230616031713.16769-1-pkshih@realtek.com
    67d7f24b
mac80211.c 24 KB