mbox series

[v3,0/8] wifi: ath12k: add support for WoW

Message ID 20240530072714.25671-1-quic_bqiang@quicinc.com (mailing list archive)
Headers show
Series wifi: ath12k: add support for WoW | expand

Message

Baochen Qiang May 30, 2024, 7:27 a.m. UTC
Add support for WoW (Wakeup on Wireless) funtionalities, this including
magic-pattern, net-detect, disconnect and patterns, HW data filter, ARP
and NS offload, GTK rekey offload.

Also enable keepalive before suspend to avoid unexpected kick out by AP.

v3:
 - wifi: ath12k: add ATH12K_DBG_WOW log level
	1. new addition.
 - wifi: ath12k: support ARP and NS offload
	1. move ipv6 infomation parse to ath12k_wow_arp_ns_offload() to
	   avoid memory leak issue.
	2. move ARP/NS related definition from core.h to wmi.h
	3. rename ath12k_arp_ns_offlaod to wmi_arp_ns_offload_arg
	4. rename some macros
 - wifi: ath12k: support GTK rekey offload
	1. add rcu_read_lock/unlock in ath12k_wmi_gtk_offload_status_event()


v2:
 - [2/7] wifi: ath12k: add basic WoW functionalities
        1. In ath12k_wow_convert_8023_to_80211(), change to use 'size_t'
           instead of 'int' to make GCC happy
 - [5/7] wifi: ath12k: support ARP and NS offload
        1. In ath12k_mac_arvif_get_arp_ns_offload(), change to use
           GFP_ATOMIC to fix kernel crash due to sleep in invalid context
 - rebased on ToT

Baochen Qiang (8):
  wifi: ath12k: add ATH12K_DBG_WOW log level
  wifi: ath12k: implement WoW enable and wakeup commands
  wifi: ath12k: add basic WoW functionalities
  wifi: ath12k: add WoW net-detect functionality
  wifi: ath12k: implement hardware data filter
  wifi: ath12k: support ARP and NS offload
  wifi: ath12k: support GTK rekey offload
  wifi: ath12k: handle keepalive during WoWLAN suspend and resume

 drivers/net/wireless/ath/ath12k/Makefile |    1 +
 drivers/net/wireless/ath/ath12k/core.c   |   48 +-
 drivers/net/wireless/ath/ath12k/core.h   |   20 +
 drivers/net/wireless/ath/ath12k/debug.h  |    1 +
 drivers/net/wireless/ath/ath12k/htc.c    |    6 +
 drivers/net/wireless/ath/ath12k/mac.c    |  110 +++
 drivers/net/wireless/ath/ath12k/mac.h    |    4 +
 drivers/net/wireless/ath/ath12k/wmi.c    |  720 +++++++++++++++
 drivers/net/wireless/ath/ath12k/wmi.h    |  578 ++++++++++++
 drivers/net/wireless/ath/ath12k/wow.c    | 1012 ++++++++++++++++++++++
 drivers/net/wireless/ath/ath12k/wow.h    |   62 ++
 11 files changed, 2554 insertions(+), 8 deletions(-)
 create mode 100644 drivers/net/wireless/ath/ath12k/wow.c
 create mode 100644 drivers/net/wireless/ath/ath12k/wow.h


base-commit: 2580be9ee6f5d97d6763b5d4ae4f9c0383fdf130

Comments

Jeff Johnson May 30, 2024, 5:45 p.m. UTC | #1
On 5/30/2024 12:27 AM, Baochen Qiang wrote:
> Add support for WoW (Wakeup on Wireless) funtionalities, this including
> magic-pattern, net-detect, disconnect and patterns, HW data filter, ARP
> and NS offload, GTK rekey offload.
> 
> Also enable keepalive before suspend to avoid unexpected kick out by AP.
> 
> v3:
>  - wifi: ath12k: add ATH12K_DBG_WOW log level
> 	1. new addition.
>  - wifi: ath12k: support ARP and NS offload
> 	1. move ipv6 infomation parse to ath12k_wow_arp_ns_offload() to
> 	   avoid memory leak issue.
> 	2. move ARP/NS related definition from core.h to wmi.h
> 	3. rename ath12k_arp_ns_offlaod to wmi_arp_ns_offload_arg
> 	4. rename some macros
>  - wifi: ath12k: support GTK rekey offload
> 	1. add rcu_read_lock/unlock in ath12k_wmi_gtk_offload_status_event()
> 
> 
> v2:
>  - [2/7] wifi: ath12k: add basic WoW functionalities
>         1. In ath12k_wow_convert_8023_to_80211(), change to use 'size_t'
>            instead of 'int' to make GCC happy
>  - [5/7] wifi: ath12k: support ARP and NS offload
>         1. In ath12k_mac_arvif_get_arp_ns_offload(), change to use
>            GFP_ATOMIC to fix kernel crash due to sleep in invalid context
>  - rebased on ToT
> 
> Baochen Qiang (8):
>   wifi: ath12k: add ATH12K_DBG_WOW log level
>   wifi: ath12k: implement WoW enable and wakeup commands
>   wifi: ath12k: add basic WoW functionalities
>   wifi: ath12k: add WoW net-detect functionality
>   wifi: ath12k: implement hardware data filter
>   wifi: ath12k: support ARP and NS offload
>   wifi: ath12k: support GTK rekey offload
>   wifi: ath12k: handle keepalive during WoWLAN suspend and resume
> 
>  drivers/net/wireless/ath/ath12k/Makefile |    1 +
>  drivers/net/wireless/ath/ath12k/core.c   |   48 +-
>  drivers/net/wireless/ath/ath12k/core.h   |   20 +
>  drivers/net/wireless/ath/ath12k/debug.h  |    1 +

My Qualcomm Innovation Center copyright checker reports:
drivers/net/wireless/ath/ath12k/debug.h copyright missing 2024

>  drivers/net/wireless/ath/ath12k/htc.c    |    6 +
>  drivers/net/wireless/ath/ath12k/mac.c    |  110 +++
>  drivers/net/wireless/ath/ath12k/mac.h    |    4 +
>  drivers/net/wireless/ath/ath12k/wmi.c    |  720 +++++++++++++++
>  drivers/net/wireless/ath/ath12k/wmi.h    |  578 ++++++++++++
>  drivers/net/wireless/ath/ath12k/wow.c    | 1012 ++++++++++++++++++++++
>  drivers/net/wireless/ath/ath12k/wow.h    |   62 ++
>  11 files changed, 2554 insertions(+), 8 deletions(-)
>  create mode 100644 drivers/net/wireless/ath/ath12k/wow.c
>  create mode 100644 drivers/net/wireless/ath/ath12k/wow.h
> 
> 
> base-commit: 2580be9ee6f5d97d6763b5d4ae4f9c0383fdf130