rtw89: support AP mode
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest7 patches 1 replyIn review
- v119 patches 6 repliesSuperseded
Changes in v2 from the cover letter
- use full logic style of 'self_role'
- 1~13/19 patches of patchset v1 are merged, so v2 contains remaining 7 patches.
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/7 | rtw89: extend role_maintain to support AP modedrivers/ drivers/ drivers/ | +17 | 1 reply | |
| 2/7 | rtw89: add addr_cam field to sta to support AP modedrivers/ drivers/ drivers/ | +43 | 0 replies | |
| 3/7 | rtw89: only STA mode change vif_type mapping dynamicallydrivers/ drivers/ | +5 | 0 replies | |
| 4/7 | rtw89: maintain assoc/disassoc STA states of firmware and hardwaredrivers/ drivers/ drivers/ | +33 | 0 replies | |
| 5/7 | rtw89: implement ieee80211_ops::start_ap and stop_apdrivers/ | +33 | 0 replies | |
| 6/7 | rtw89: debug: add stations entry to show ID assignmentdrivers/ | +71 | 0 replies | |
| 7/7 | rtw89: declare AP mode supportdrivers/ | +2 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [PATCH v2 0/7] rtw89: support AP mode
To support AP mode, we implement ::start_ap and ::stop_ap to configure firmware and hardware to play an AP. Then, we download beacon content to firmware, so firmware can send out periodically the frames that must have continual sequence number with other management frames.
When mac80211 buffers unicast packets for certain STAs, it tells driver via ::set_tim, and then we download the beacon content to firmware again. On the other hand, if a broadcast packet is going to send out, it should go via HIQ (HI queue) that hardware will raise group frame bit in TIM of beacon frame. But if no STA sleeps, a broadcast packet is sent via AC queue.
When a STA is going to connect, it issues a probe request frame and then auth/assoc frames. To receive these frames before it is connected, we need to consider more RX filter flags to set registers properly.
When a connection is established, we need to assign a mac_id as a behalf of this peer in firmware and hardware, and then use this mac_id to initialize an instance in firmware via H2C(s). The most important part is to add a corresponding address CAM entry that contains peer's MAC address and BSSID, so hardware can determine a packet is belong to which peer. If it is a security connection, keys will be filled to security CAM as well.
Since there are many CAM ID(s), I add a debugfs entry to see if the relations between ID(s) and STA(s) are expected.
v2:
- use full logic style of 'self_role'
- 1~13/19 patches of patchset v1 are merged, so v2 contains remaining 7 patches.
Ping-Ke Shih (7):
rtw89: extend role_maintain to support AP mode
rtw89: add addr_cam field to sta to support AP mode
rtw89: only STA mode change vif_type mapping dynamically
rtw89: maintain assoc/disassoc STA states of firmware and hardware
rtw89: implement ieee80211_ops::start_ap and stop_ap
rtw89: debug: add stations entry to show ID assignment
rtw89: declare AP mode support
drivers/net/wireless/realtek/rtw89/cam.c | 6 +- drivers/net/wireless/realtek/rtw89/core.c | 43 +++++++++-- drivers/net/wireless/realtek/rtw89/core.h | 62 +++++++++------- drivers/net/wireless/realtek/rtw89/debug.c | 71 +++++++++++++++++++ drivers/net/wireless/realtek/rtw89/fw.c | 16 ++++- drivers/net/wireless/realtek/rtw89/fw.h | 1 + drivers/net/wireless/realtek/rtw89/mac.c | 8 +-- drivers/net/wireless/realtek/rtw89/mac.h | 1 + drivers/net/wireless/realtek/rtw89/mac80211.c | 36 ++++++++++ 9 files changed, 204 insertions(+), 40 deletions(-)
Signature · 1 line
2.25.1