Commit Graph

359 Commits

Author SHA1 Message Date
Vinay Gannevaram
092199e995 BACKPORT: wifi: nl80211: Allow authentication frames and set keys on NAN interface
Wi-Fi Aware R4 specification defines NAN Pairing which uses PASN handshake
to authenticate the peer and generate keys. Hence allow to register and transmit
the PASN authentication frames on NAN interface and set the keys to driver or
underlying modules on NAN interface.

The driver needs to configure the feature flag NL80211_EXT_FEATURE_SECURE_NAN,
which also helps userspace modules to know if the driver supports secure NAN.

Signed-off-by: Vinay Gannevaram <quic_vganneva@quicinc.com>
Link: https://lore.kernel.org/r/1675519179-24174-1-git-send-email-quic_vganneva@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 272227555
Change-Id: Ib8e15683772cf9696b51fb5360642813ca0a078b
(cherry picked from commit 9b89495e479c5fedbf3f2eca4f1c4e9dd481265e)
[shivbara: replace reserved UAPI attribute with corresponding upstream
attribute]
Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2023-03-23 09:17:28 +00:00
Aloka Dixit
e8a4772f4d BACKPORT: wifi: nl80211: validate and configure puncturing bitmap
- New feature flag, NL80211_EXT_FEATURE_PUNCT, to advertise
  driver support for preamble puncturing in AP mode.
- New attribute, NL80211_ATTR_PUNCT_BITMAP, to receive a puncturing
  bitmap from the userspace during AP bring up (NL80211_CMD_START_AP)
  and channel switch (NL80211_CMD_CHANNEL_SWITCH) operations. Each bit
  corresponds to a 20 MHz channel in the operating bandwidth, lowest
  bit for the lowest channel. Bit set to 1 indicates that the channel
  is punctured. Higher 16 bits are reserved.
- New members added to structures cfg80211_ap_settings and
  cfg80211_csa_settings to propagate the bitmap to the driver after
  validation.

Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
Link: https://lore.kernel.org/r/20230131001227.25014-3-quic_alokad@quicinc.com
[move validation against 0xffff into policy]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 272227555
Change-Id: I2d9a90cba8812bfe81d0168133ef2239dcc536ac
(cherry picked from commit d7c1a9a0ed180d8884798ce97afe7283622a484f)
[shivbara: replace reserved UAPI attributes with corresponding
upstream attributes]
Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
2023-03-23 09:17:28 +00:00
Vinayak Yadawad
83e77c3183 BACKPORT: cfg80211: Update Transition Disable policy during port authorization
In case of 4way handshake offload, transition disable policy
updated by the AP during EAPOL 3/4 is not updated to the upper layer.
This results in mismatch between transition disable policy
between the upper layer and the driver. This patch addresses this
issue by updating transition disable policy as part of port
authorization indication.

Signed-off-by: Vinayak Yadawad <vinayak.yadawad@broadcom.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 272227555
Change-Id: Iac5d22a2c3999c7bdddc3a1f683fef82ed8ff918
(cherry picked from commit 0ff57171d6d225558c81a69439d5323e35b40549)
[shivbara: replace reserved UAPI attribute with corresponding upstream
attribute]
Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
2023-03-14 06:27:21 +00:00
Veerendranath Jakkam
9216110fdf UPSTREAM: wifi: cfg80211: Authentication offload to user space for MLO connection in STA mode
Currently authentication request event interface doesn't have support to
indicate the user space whether it should enable MLO or not during the
authentication with the specified AP. But driver needs such capability
since the connection is MLO or not decided by the driver in case of SME
offload to the driver.

Add support for driver to indicate MLD address of the AP in
authentication offload request to inform user space to enable MLO during
authentication process. Driver shall look at NL80211_ATTR_MLO_SUPPORT
flag capability in NL80211_CMD_CONNECT to know whether the user space
supports enabling MLO during the authentication offload.

User space should enable MLO during the authentication only when it
receives the AP MLD address in authentication offload request. User
space shouldn't enable MLO if the authentication offload request doesn't
indicate the AP MLD address even if the AP is MLO capable.

When MLO is enabled, user space should use the MAC address of the
interface (on which driver sent request) as self MLD address. User space
and driver to use MLD addresses in RA, TA and BSSID fields of the frames
between them, and driver translates the MLD addresses to/from link
addresses based on the link chosen for the authentication.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Link: https://lore.kernel.org/r/20230116125058.1604843-1-quic_vjakkam@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 270356419
Change-Id: I3ea1d7b9990a0b9e8220cf83c01ef301f82b851e
(cherry picked from commit 9a47c1ef5a95d1fd229ee5e375985f809a9d8177)
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2023-02-28 14:35:03 +00:00
Shivani Baranwal
3383d21e9e UPSTREAM: wifi: cfg80211: Support 32 bytes KCK key in GTK rekey offload
Currently, maximum KCK key length supported for GTK rekey offload is 24
bytes but with some newer AKMs the KCK key length can be 32 bytes. e.g.,
00-0F-AC:24 AKM suite with SAE finite cyclic group 21.

Add support to allow 32 bytes KCK keys in GTK rekey offload.

Link: https://lore.kernel.org/r/20221206143715.1802987-3-quic_vjakkam@quicinc.com
Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>


Bug: 267404496
Change-Id: I49cede61dc0ddc7d8d063caf986c81aa89437617
(cherry picked from commit 648fba791cb0f5ef6166449d056f82e6639fe268)
Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2023-02-24 22:51:41 +00:00
Avraham Stern
1148c260a1 BACKPORT: wifi: nl80211: add RX and TX timestamp attributes
Add attributes for reporting hardware timestamps for management frames
RX and TX. These attributes will be used for reporting hardware
timestamps for Timing measurement and Fine Timing Measurement action
frames, which will allow userspace applications to measure the path
delay between devices and sync clocks.

For TX, these attributes are used for reporting the frame RX time and
the ack TX time. For TX, they are used for reporting the frame TX time
and the ack RX time.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 253289327
Change-Id: I683d2bd4a753a3c78b7c87d7e7802bd66cb1cea5
(cherry picked from commit 80b0ed70a271d375feb2286696ca8af147a035cf)
Signed-off-by: Kiran Kumar Lokere <quic_klokere@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-11-04 18:35:59 +00:00
Johannes Berg
9c20617add BACKPORT: wifi: nl80211: add EML/MLD capabilities to per-iftype capabilities
We have the per-interface type capabilities, currently for
extended capabilities, add the EML/MLD capabilities there
to have this advertised by the driver.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 253289327
Change-Id: I41b8b95feea270a7e0803f613c8f11ce3af235a0
(cherry picked from commit 4e9c3af398207d95957ae6c25290891574f2d7e8)
[Kiran Kumar Lokere: Resolved conflicts in include/uapi/linux/nl80211.h]
[vjakkam: Use kabi backport reserved space to avoid KMI issue]
Signed-off-by: Kiran Kumar Lokere <quic_klokere@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-11-04 18:35:59 +00:00
Johannes Berg
3658e1b900 BACKPORT: wifi: nl80211: add MLD address to assoc BSS entries
Add an MLD address attribute to BSS entries that the interface
is currently associated with to help userspace figure out what's
going on.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 253289327
Change-Id: Ic50963e39a8b1ddaa4078d649f3ba24a78b92e5e
(cherry picked from commit 6522047c65764c9aaec8009e73daa8c0b138c701)
Signed-off-by: Kiran Kumar Lokere <quic_klokere@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-11-04 18:35:59 +00:00
James Prestwood
acf72eda07 BACKPORT: wifi: nl80211: Add POWERED_ADDR_CHANGE feature
Add a new extended feature bit signifying that the wireless hardware
supports changing the MAC address while the underlying net_device is
powered. Note that this has a different meaning from
IFF_LIVE_ADDR_CHANGE as additional restrictions might be imposed by
the hardware, such as:

 - No connection is active on this interface, carrier is off
 - No scan is in progress
 - No offchannel operations are in progress

Signed-off-by: James Prestwood <prestwoj@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 253289327
Change-Id: I078108064077205e605c1bd72300f5362a0d2d8b
(cherry picked from commit a36c421690b3e5dee38fc12abfcabda742f00064)
Signed-off-by: Kiran Kumar Lokere <quic_klokere@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-11-04 18:35:59 +00:00
Johannes Berg
3ae950a584 UPSTREAM: wifi: nl80211: add MLO link ID to the NL80211_CMD_FRAME TX API
Allow optionally specifying the link ID to transmit on,
which can be done instead of the link frequency, on an
MLD addressed frame. Both can also be omitted in which
case the frame must be MLD addressed and link selection
(and address translation) will be done on lower layers.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 253289327
Change-Id: I9031c721b41e4ad2723c3b6fb171e760035f4321
(cherry picked from commit 95f498bb49f7030c1f40236107e5241e50f79ade)
Signed-off-by: Kiran Kumar Lokere <quic_klokere@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-11-04 18:35:58 +00:00
Johannes Berg
6d81ebd631 BACKPORT: wifi: nl80211/mac80211: clarify link ID in control port TX
Clarify the link ID behaviour in control port TX, we need it
to select the link to transmit on for both MLD and non-MLD
receivers, but select the link address as the SA only if the
receiver is not an MLD.

Fixes: 67207bab9341 ("wifi: cfg80211/mac80211: Support control port TX from specific link")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 253289327
Change-Id: Ia0884899da06d0ed9109922b8f2144d261782b4c
(cherry picked from commit 9dd1953846c7cd58100a5c6bd90db54e2c60668a)
[Kiran Kumar Lokere: Skipped the changes in net/mac80211/tx.c]
Signed-off-by: Kiran Kumar Lokere <quic_klokere@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-11-04 18:35:58 +00:00
Shaul Triebitz
5b0ceee1bd UPSTREAM: wifi: cfg80211: add API to add/modify/remove a link station
Add an API for adding/modifying/removing a link of a station.

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 248430009
Change-Id: I5418c5eb85f64852f2c9bf6794119ced21f23dd0
(cherry picked from commit 577e5b8c3924539c7a09e3e00477534f39e61829)
Signed-off-by: Kiran Kumar Lokere <quic_klokere@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-09-27 20:12:04 +00:00
Veerendranath Jakkam
22c312bbde ANDROID: nl80211: enable reserved attributes with upstream assignments
Enable reserved UAPI attributes which are merged in upstream linux.git
with the real upstream values.

Below are the upstream commits which are adding enabled UAPI attributes:
- 7b0a0e3c3a88 ("wifi: cfg80211: do some rework towards MLO link APIs")
- d648c23024bd ("wifi: nl80211: support MLO in auth/assoc")
- efbabc116500 ("cfg80211: Indicate MLO connection info in connect and roam callbacks")
- ecad3b0b99bf ("wifi: cfg80211: Increase akm_suites array size in cfg80211_crypto_settings")
- 3c512307de40 ("wifi: nl80211: fix sending link ID info of associated BSS")

Bug: 242509379
Change-Id: I7216e002bcdab940819433a6e1aaef4db2ae91b2
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-08-24 20:34:21 +00:00
Veerendranath Jakkam
af6d390801 BACKPORT: FROMLIST: wifi: cfg80211: Add link_id parameter to various key operations for MLO
Add support for various key operations on MLD by adding new parameter
link_id. Pass the link_id received from userspace to driver for add_key,
get_key, del_key, set_default_key, set_default_mgmt_key and
set_default_beacon_key to support configuring keys specific to each MLO
link. Userspace must not specify link ID for MLO pairwise key since it
is common for all the MLO links.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>

Bug: 241223350
Change-Id: I5dc861b57cf40f1dd2fab070e3c82161426df36a
Link: https://lore.kernel.org/linux-wireless/20220730052643.1959111-4-quic_vjakkam@quicinc.com/
[quic_vjakkam: Resolved minor conflict in drivers/net/wireless/microchip/wilc1000/cfg80211.c ]
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-08-05 19:38:55 +00:00
Veerendranath Jakkam
87896ef1b6 ANDROID: nl80211: Fix reserved UAPI attributes order
Order of the reserved UAPI attributes merged through b/233387627 was
changed due to change in merge order of the commits to
wireless-next.git main branch.

Fix the reserved UAPI attributes order to be in sync with
wireless-next.git. These attributes are still reserved since the changes
not into linux.git yet. So, these attributes must not be used in
production until the UAPI change lands into linux.git tree.

Fixes: af34adaa6a ("BACKPORT: FROMLIST: cfg80211: Increase akm_suites array size in cfg80211_crypto_settings")
Fixes: d975927513 ("BACKPORT: FROMGIT: wifi: cfg80211: do some rework towards MLO link APIs")
Fixes: 3f048cd911 ("BACKPORT: FROMGIT: wifi: nl80211: support MLO in auth/assoc")
Fixes: 6abf3c5ef2 ("BACKPORT: FROMLIST: cfg80211: Indicate MLO connection info in connect and roam callbacks")

Bug: 238103864
Change-Id: If9038ba6ce953933faf827a6a4102223dcc436b3
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-07-16 00:49:57 +00:00
Veerendranath Jakkam
f9b717e9c4 BACKPORT: FROMGIT: wifi: nl80211: fix sending link ID info of associated BSS
commit dd374f84baec ("wifi: nl80211: expose link ID for associated
BSSes") used a top-level attribute to send link ID of the associated
BSS in the nested attribute NL80211_ATTR_BSS. But since NL80211_ATTR_BSS
is a nested attribute of the attributes defined in enum nl80211_bss,
define a new attribute in enum nl80211_bss and use it for sending the
link ID of the BSS.

Fixes: dd374f84baec ("wifi: nl80211: expose link ID for associated BSSes")
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Reviewed-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Link: https://lore.kernel.org/r/20220708122607.1836958-1-quic_vjakkam@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 238597250
Change-Id: I335cac339eab3b4ae63cd57a76577ec222c717a2
(cherry picked from commit 3c512307de4097aaaab3f4741c7a98fe88afa469
 https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git main)
[quic_vjakkam: Add NL80211_BSS_MLO_LINK_ID as reserved attribute ]
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-07-15 00:07:17 +00:00
Veerendranath Jakkam
c747ed57f2 Revert "ANDROID: nl80211: bring delta changes from final upstream MLO commits"
This reverts commit 4238cf1087.

UAPI changes should be in linux.git tree to consider them as upstream.
Revert the changes done in commit 4238cf1087 ("ANDROID: nl80211: bring
 delta changes from final upstream MLO commits") since the UAPI changes
are not in linux.git yet though they are in wireless-next.git main
branch.

Bug: 238103864
Change-Id: Iaa516ae3246efa2e398064839808ee5eaeddb6a6
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-07-14 15:57:52 +00:00
Veerendranath Jakkam
4238cf1087 ANDROID: nl80211: bring delta changes from final upstream MLO commits
This commit brings in delta changes merged in final upstream commits of
backport commits merged with b/233387627.

Update netlink attributes order to be in sync with final changes. Since
the changes are upstream replace corresponding reserved attributes with
actual attributes. Also, add missing changes from upstream commits.

Fixes:
- af34adaa6a ("BACKPORT: FROMLIST: cfg80211: Increase akm_suites array size in cfg80211_crypto_settings")
- d975927513 ("BACKPORT: FROMGIT: wifi: cfg80211: do some rework towards MLO link APIs")
- 3f048cd911 ("BACKPORT: FROMGIT: wifi: nl80211: support MLO in auth/assoc")
- 6abf3c5ef2 ("BACKPORT: FROMLIST: cfg80211: Indicate MLO connection info in connect and roam callbacks")

Corresponding upstream commits:
- ecad3b0b99bf ("wifi: cfg80211: Increase akm_suites array size in cfg80211_crypto_settings")
- 7b0a0e3c3a88 ("wifi: cfg80211: do some rework towards MLO link APIs")
- d648c23024bd ("wifi: nl80211: support MLO in auth/assoc")
- efbabc116500 ("cfg80211: Indicate MLO connection info in connect and roam callbacks")

Bug: 238103864
Change-Id: I160f11a150cd275105fb7261b4facb468aa04325
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-07-07 02:12:53 +00:00
Veerendranath Jakkam
6abf3c5ef2 BACKPORT: FROMLIST: cfg80211: Indicate MLO connection info in connect and roam callbacks
The MLO links used for connection with an MLD AP are decided by the
driver in case of SME offloaded to driver.

Add support for the drivers to indicate the information of links used
for MLO connection in connect and roam callbacks, update the connected
links information in wdev from connect/roam result sent by driver.
Also, send the connected links information to userspace.

Add a netlink flag attribute to indicate that userspace supports
handling of MLO connection. Drivers must not do MLO connection when this
flag is not set. This is to maintain backwards compatibility with older
supplicant versions which doesn't have support for MLO connection.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>

Bug: 233387627
Change-Id: I4aabf721c0976b3410d81fa56fc72408271f9806
Link: https://lore.kernel.org/linux-wireless/1654679797-7740-1-git-send-email-quic_vjakkam@quicinc.com/
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-06-18 18:44:20 +00:00
Johannes Berg
3f048cd911 BACKPORT: FROMGIT: wifi: nl80211: support MLO in auth/assoc
For authentication, we need the BSS, the link_id and the AP
MLD address to create the link and station, (for now) the
driver assigns a link address and sends the frame, the MLD
address needs to be the address of the interface.

For association, pass the list of BSSes that were selected
for the MLO connection, along with extra per-STA profile
elements, the AP MLD address and the link ID on which the
association request should be sent.

Note that for now we don't have a proper way to pass the link
address(es) and so the driver/mac80211 will select one, but
depending on how that selection works it means that assoc w/o
auth data still being around (mac80211 implementation detail)
the association won't necessarily work - so this will need to
be extended in the future to sort out the link addressing.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 233387627
Change-Id: Ieeed23b85499f584b1d1b90cb437906186460b44
(cherry picked from commit e35626979423cadc21bd4a68d4aa14eaeccbbd59
 https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git mld)
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-06-18 18:44:20 +00:00
Johannes Berg
d975927513 BACKPORT: FROMGIT: wifi: cfg80211: do some rework towards MLO link APIs
In order to support multi-link operation with multiple links,
start adding some APIs. The notable addition here is to have
the link ID in a new nl80211 attribute, that will be used to
differentiate the links in many nl80211 operations.

So far, this patch adds the netlink NL80211_ATTR_MLO_LINK_ID
attribute (as well as the NL80211_ATTR_MLO_LINKS attribute)
and plugs it through the system in some places, checking the
validity etc. along with other infrastructure needed for it.

For now, I've decided to include only the over-the-air link
ID in the API. I know we discussed that we eventually need to
have to have other ways of identifying a link, but for local
AP mode and auth/assoc commands as well as set_key etc. we'll
use the OTA ID.

Also included in this patch is some refactoring of the data
structures in struct wireless_dev, splitting for the first
time the data into type dependent pieces, to make reasoning
about these things easier.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 233387627
Change-Id: I023f35d382282691d7e2cbc607fb11691355cd63
(cherry picked from commit a353a99fb75e5c1c3b15050e9efaab1997350862
 https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git mld)
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-06-18 18:44:19 +00:00
Veerendranath Jakkam
af34adaa6a BACKPORT: FROMLIST: cfg80211: Increase akm_suites array size in cfg80211_crypto_settings
Increase akm_suites array size in struct cfg80211_crypto_settings to 10
and advertise the capability to userspace. This allows userspace to send
more than two AKMs to driver in netlink commands such as
NL80211_CMD_CONNECT.

This capability is needed for implementing WPA3-Personal transition mode
correctly with any driver that handles roaming internally. Currently,
the possible AKMs for multi-AKM connect can include PSK, PSK-SHA-256,
SAE, FT-PSK and FT-SAE. Since the count is already 5, increasing
the akm_suites array size to 10 should be reasonable for future
usecases.

Contains a fix for the issue:
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>

Bug: 233387627
Change-Id: Ief3648fda9195c1fa6b9bf881aae36da74b9738b
Link: https://lore.kernel.org/linux-wireless/1653312358-12321-1-git-send-email-quic_vjakkam@quicinc.com/
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-06-18 18:44:19 +00:00
Veerendranath Jakkam
bee631cec5 ANDROID: nl80211/cfg80211: Add support to do API changes after GKI freeze
Reserve sufficient nl80211 attributes in enum nl80211_commands and enum
nl80211_attr to backport upstream UAPI changes.

Reserve data fields for upstream backport changes and vendor hooks.
Also, add vendor hooks to set/get additional info from driver based on
the cfg80211 current context. These APIs can be used to configure/fetch
data of the new params added in upstream cfg80211_op calls.

Ex:
upstream kernel added a new param to existing cfg80211_op "add_key()".
The addtional param info added in the upstream kernel can be configured
using "android_vh_cfg80211_set_context" before calling "add_key".

Bug: 233387627
Change-Id: I99f696ad291ae5965fc6d91bf565cc0c9d423dd5
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-06-18 18:44:19 +00:00
Muna Sinada
20b85fc84c UPSTREAM: cfg80211: support disabling EHT mode
Allow userspace to disable EHT mode during association.

Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
Link: https://lore.kernel.org/r/20220323224636.20211-1-quic_alokad@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 233160029
(cherry picked from commit 36f8423597000bd7d5e48b7b306e1d0958e72359)
Change-Id: I06d3c8895590df47980b4f3fce96a0f8d1292be2
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-06-01 09:32:35 -07:00
Ilan Peer
f3ff03c9a1 UPSTREAM: cfg80211: Support configuration of station EHT capabilities
Add attributes and some code bits to support userspace passing
in EHT capabilities of stations.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Link: https://lore.kernel.org/r/20220214173004.ecf0b3ff9627.Icb4a5f2ec7b41d9008ac4cfc16c59baeb84793d3@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 220975804
Change-Id: I63ac58dc56e22620cd1ed1082ca851a7a9206409
(cherry picked from commit ea05fd3581d32a0f1098657005c7a9b763798fe8)
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-03-09 08:52:39 -08:00
Ilan Peer
160e88de72 UPSTREAM: cfg80211: add NO-EHT flag to regulatory
This may be necessary in some cases, add a flag and propagate
it, just like the NO-HE that already exists.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
[split off from a combined 320/no-EHT patch]
Link: https://lore.kernel.org/r/20220214173004.dbb85a7b86bb.Ifc1e2daac51c1cc5f895ccfb79faf5eaec3950ec@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 220975804
Change-Id: I1622fd73d18616ef05d4975e8a981bc58e98b8b0
(cherry picked from commit 31846b657857e6a73d982604f36a34710d98902c)
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-03-09 08:52:38 -08:00
Sriram R
93637453d1 UPSTREAM: nl80211: add support for 320MHz channel limitation
Add support to advertise drivers or regulatory limitations on 320 MHz
channels to userspace.

Signed-off-by: Sriram R <quic_srirrama@quicinc.com>
Co-authored-by: Karthikeyan Periyasamy <quic_periyasia@quicinc.com>
Signed-off-by: Karthikeyan Periyasamy <quic_periyasia@quicinc.com>
Co-authored-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Link: https://lore.kernel.org/r/1640163883-12696-6-git-send-email-quic_vjakkam@quicinc.com
Link: https://lore.kernel.org/r/20220214163009.175289-3-johannes@sipsolutions.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 220975804
Change-Id: I2bc918f9ce4f64b675464d6b5ad3eedd2e0fb38a
(cherry picked from commit c2b3d7699fb0ce66538b829af43970acc2f89060)
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-03-09 08:52:38 -08:00
Veerendranath Jakkam
44f32f3f7f UPSTREAM: nl80211: add EHT MCS support
Add support for reporting and calculating EHT bitrates.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Link: https://lore.kernel.org/r/1640163883-12696-7-git-send-email-quic_vjakkam@quicinc.com
Link: https://lore.kernel.org/r/20220214163009.175289-2-johannes@sipsolutions.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 220975804
Change-Id: Idc8fd87e32e7bd84936f29df3e49e57e1efc3b64
(cherry picked from commit cfb14110acf87b4db62e07ba08a80429f1749f40)
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-03-09 08:52:38 -08:00
Jia Ding
263ab78988 UPSTREAM: cfg80211: Add support for EHT 320 MHz channel width
Add 320 MHz support in the channel def and center frequency validation
with compatible check.

Signed-off-by: Jia Ding <quic_jiad@quicinc.com>
Co-authored-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Co-authored-by: Muna Sinada <quic_msinada@quicinc.com>
Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
Co-authored-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Link: https://lore.kernel.org/r/1640163883-12696-5-git-send-email-quic_vjakkam@quicinc.com
Link: https://lore.kernel.org/r/20220214163009.175289-1-johannes@sipsolutions.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 220975804
Change-Id: I62a1f7cd17faceea96df4eeb5edf3aa5ef903d2b
(cherry picked from commit 3743bec6120ae0748cb3fda6ff80a690117ef1f3)
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-03-09 08:52:38 -08:00
Ilan Peer
2626768c2a UPSTREAM: cfg80211: Add data structures to capture EHT capabilities
And advertise EHT capabilities to user space when supported.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Link: https://lore.kernel.org/r/20220214173004.6fb70658529f.I2413a37c8f7d2d6d638038a3d95360a3fce0114d@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 220975804
Change-Id: If6ca3026ba618317a1719c62243c6710c16b8344
(cherry picked from commit 5cd5a8a3e2fb11b1c8a09f062c44c1e228ef987a)
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-03-09 08:52:38 -08:00
Veerendranath Jakkam
b5660868d7 UPSTREAM: nl80211: Add support to offload SA Query procedures for AP SME device
Add a flag attribute to use in ap settings to indicate userspace
supports offloading of SA Query procedures to driver. Also add AP SME
device feature flag to advertise that the SA Query procedures offloaded
to driver when userspace indicates support for offloading of SA Query
procedures.

Driver handles SA Query procedures in driver's SME it self and skip
sending SA Query request or response frames to userspace when userspace
indicates support for SA Query procedures offload. But if userspace
doesn't advertise support for SA Query procedures offload driver shall
not offload SA Query procedures handling.

Also userspace with SA Query procedures offload capability shall skip SA
Query specific validations when driver indicates support for handling SA
Query procedures.

Signed-off-by: Veerendranath Jakkam <vjakkam@codeaurora.org>
Link: https://lore.kernel.org/r/1637911519-21306-2-git-send-email-vjakkam@codeaurora.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 215824523
(cherry picked from commit 87c1aec15dee8bdb245aabbd181f9f9e1a4770ae)
Change-Id: Ib6373a9f71d42cbd699ee7b03b81500ec242fa5c
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-02-03 10:54:54 -08:00
Veerendranath Jakkam
6ebaf9ca4c UPSTREAM: nl80211: Add support to set AP settings flags with single attribute
In previous method each AP settings flag is represented by a top-level
flag attribute and conversion to enum cfg80211_ap_settings_flags had to
be done before sending them to driver. This commit is to make it easier
to define new AP settings flags and sending them to driver.

This commit also deprecate sending of
%NL80211_ATTR_EXTERNAL_AUTH_SUPPORT in %NL80211_CMD_START_AP. But to
maintain backwards compatibility checks for
%NL80211_ATTR_EXTERNAL_AUTH_SUPPORT in %NL80211_CMD_START_AP when
%NL80211_ATTR_AP_SETTINGS_FLAGS not present in %NL80211_CMD_START_AP.

Signed-off-by: Veerendranath Jakkam <vjakkam@codeaurora.org>
Link: https://lore.kernel.org/r/1637911519-21306-1-git-send-email-vjakkam@codeaurora.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 215824523
(cherry picked from commit 47301a74bbfa80cef876e646a8c5fec03c20fc8d)
Change-Id: I84d7c859fabcda0c90cb05b0f4d3714b268ba232
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-02-03 10:54:54 -08:00
Lorenzo Bianconi
edd3b03740 UPSTREAM: cfg80211: rename offchannel_chain structs to background_chain to avoid confusion with ETSI standard
ETSI standard defines "Offchannel CAC" as:
"Off-Channel CAC is performed by a number of non-continuous checks
spread over a period in time. This period, which is required to
determine the presence of radar signals, is defined as the Off-Channel
CAC Time..
Minimum Off-Channel CAC Time 6 minutes and Maximum Off-Channel CAC Time
4 hours..".
mac80211 implementation refers to a dedicated hw chain used for continuous
radar monitoring. Rename offchannel_* references to background_* in
order to avoid confusion with ETSI standard.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://lore.kernel.org/r/4204cc1d648d76b44557981713231e030a3bd991.1638190762.git.lorenzo@kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 215824523
(cherry picked from commit a95bfb876fa87e2d0fa718ee61a8030ddf162d2b)
Change-Id: I0dbbbd3d3276959cec772ee65d9f57879712e74c
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-02-03 10:54:54 -08:00
Ilan Peer
2706cc9064 UPSTREAM: cfg80211: Add support for notifying association comeback
Thought the underline driver MLME can handle association temporal
rejection with comeback, it is still useful to notify this to
user space, as user space might want to handle the temporal
rejection differently. For example, in case the comeback time
is too long, user space can deauthenticate immediately and try
to associate with a different AP.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20211129152938.2467809e8cb3.I45574185b582666bc78eef0c29a4c36b478e5382@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 215824523
(cherry picked from commit a083ee8a4e03348fb90a4b24cbe957b3252c7b04)
Change-Id: I47f7aa2b409f267b82431fd79c205e20e4df4981
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-02-03 10:54:54 -08:00
Ilan Peer
9ba3336fdc UPSTREAM: cfg80211: Fix order of enum nl80211_band_iftype_attr documentation
And fix the comment.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20211129152938.4ef43aff0c5d.I96dcb743bcd4f387ba4cfaa61987aeb642ad762b@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 215824523
(cherry picked from commit 28f350a67d291575492057c92ceb8518ecbace95)
Change-Id: I8e5cb61c85e448dbf537c3d098090f2e98549239
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-02-03 10:54:52 -08:00
Lorenzo Bianconi
5d0725f5d6 UPSTREAM: cfg80211: implement APIs for dedicated radar detection HW
If a dedicated (off-channel) radar detection hardware (chain)
is available in the hardware/driver, allow this to be used by
calling the NL80211_CMD_RADAR_DETECT command with a new flag
attribute requesting off-channel radar detection is used.

Offchannel CAC (channel availability check) avoids the CAC
downtime when switching to a radar channel or when turning on
the AP.

Drivers advertise support for this using the new feature flag
NL80211_EXT_FEATURE_RADAR_OFFCHAN.

Tested-by: Evelyn Tsai <evelyn.tsai@mediatek.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://lore.kernel.org/r/7468e291ef5d05d692c1738d25b8f778d8ea5c3f.1634979655.git.lorenzo@kernel.org
Link: https://lore.kernel.org/r/1e60e60fef00e14401adae81c3d49f3e5f307537.1634979655.git.lorenzo@kernel.org
Link: https://lore.kernel.org/r/85fa50f57fc3adb2934c8d9ca0be30394de6b7e8.1634979655.git.lorenzo@kernel.org
Link: https://lore.kernel.org/r/4b6c08671ad59aae0ac46fc94c02f31b1610eb72.1634979655.git.lorenzo@kernel.org
Link: https://lore.kernel.org/r/241849ccaf2c228873c6f8495bf87b19159ba458.1634979655.git.lorenzo@kernel.org
[remove offchan_mutex, fix cfg80211_stop_offchan_radar_detection(),
 remove gfp_t argument, fix documentation, fix tracing]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 215824523
(cherry picked from commit bc2dfc02836b1133d1bf4d22aa13d48ac98eabef)
Change-Id: Ib1b423534d2383c7b1d186ed7ec085c89151d5ff
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-02-03 10:54:52 -08:00
Johannes Berg
38631d440d UPSTREAM: cfg80211: fix kernel-doc for MBSSID EMA
The struct member ema_max_profile_periodicity was listed
with the wrong name in the kernel-doc, fix that.

Link: https://lore.kernel.org/r/20211021173038.18ec2030c66b.Iac731bb299525940948adad2c41f514b7dd81c47@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 215824523
(cherry picked from commit f9d366d420af4ce8719c59e60853573c02831f61)
Change-Id: I69bba5ae01593ea76a08c155c5141849ec945f8b
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-02-03 10:54:52 -08:00
Srinivasan Raju
290bc8e2f8 UPSTREAM: nl80211: Add LC placeholder band definition to nl80211_band
Define LC band which is a draft under IEEE 802.11bb.
Current NL80211_BAND_LC is a placeholder band and
will be more defined IEEE 802.11bb progresses.

Signed-off-by: Srinivasan Raju <srini.raju@purelifi.com>
Link: https://lore.kernel.org/r/20211018100143.7565-2-srini.raju@purelifi.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 215824523
(cherry picked from commit 63fa04266629b9559d66c4dc18b03e0f9fc04a02)
Change-Id: I61a62aad3449a7f5efad8e18454980d53b7bd010
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-02-03 10:54:52 -08:00
John Crispin
ede2a43301 UPSTREAM: nl80211: MBSSID and EMA support in AP mode
Add new attributes to configure support for multiple BSSID
and advanced multi-BSSID advertisements (EMA) in AP mode.

- NL80211_ATTR_MBSSID_CONFIG used for per interface configuration.
- NL80211_ATTR_MBSSID_ELEMS used to MBSSID elements for beacons.

Memory for the elements is allocated dynamically. This change frees
the memory in existing functions which call nl80211_parse_beacon(),
a comment is added to indicate the new references to do the same.

Signed-off-by: John Crispin <john@phrozen.org>
Co-developed-by: Aloka Dixit <alokad@codeaurora.org>
Signed-off-by: Aloka Dixit <alokad@codeaurora.org>
Link: https://lore.kernel.org/r/20210916025437.29138-2-alokad@codeaurora.org
[don't leave ERR_PTR hanging around]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 215824523
(cherry picked from commit dc1e3cb8da8b414b37208b2fb6755fef8122504b)
Change-Id: I446257c295df9eb840b4e113b646559120c71f31
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-02-03 10:54:52 -08:00
Subrat Mishra
e021381788 UPSTREAM: cfg80211: AP mode driver offload for FILS association crypto
Add a driver FILS crypto offload extended capability flag to indicate
that the driver running in AP mode is capable of handling encryption
and decryption of (Re)Association request and response frames.
Add a command to set FILS AAD data to driver.

This feature is supported on drivers running in AP mode only.
This extended capability is exchanged with hostapd during cfg80211
init. If the driver indicates this capability, then before sending the
Authentication response frame, hostapd sets FILS AAD data to the
driver. This allows the driver to decrypt (Re)Association Request
frame and encrypt (Re)Association Response frame. FILS Key derivation
will still be done in hostapd.

Signed-off-by: Subrat Mishra <subratm@codeaurora.org>
Link: https://lore.kernel.org/r/1631685143-13530-1-git-send-email-subratm@codeaurora.org
[fix whitespace]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Bug: 215824523
(cherry picked from commit e306784a8de08868d0ecbf78dd42a0051d0e14ce)
Change-Id: I3ab2a3c5a31deef0ae44da3eca4b82c91c46e453
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2022-02-03 10:54:51 -08:00
John Crispin
0d2ab3aea5 nl80211: add support for BSS coloring
This patch adds support for BSS color collisions to the wireless subsystem.
Add the required functionality to nl80211 that will notify about color
collisions, triggering the color change and notifying when it is completed.

Co-developed-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: John Crispin <john@phrozen.org>
Link: https://lore.kernel.org/r/500b3582aec8fe2c42ef46f3117b148cb7cbceb5.1625247619.git.lorenzo@kernel.org
[remove unnecessary NULL initialisation]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2021-08-17 11:58:21 +02:00
Johannes Berg
f4f8650588 cfg80211: allow advertising vendor-specific capabilities
There may be cases where vendor-specific elements need to be
used over the air. Rather than have driver or firmware add
them and possibly cause problems that way, add them to the
iftype-data band capabilities. This way we can advertise to
userspace first, and use them in mac80211 next.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210618133832.e8c4f0347276.Iee5964682b3e9ec51fc1cd57a7c62383eaf6ddd7@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2021-06-23 13:05:09 +02:00
Avraham Stern
dd3e4fc75b nl80211/cfg80211: add BSS color to NDP ranging parameters
In NDP ranging, the initiator need to set the BSS color in the NDP
to the BSS color of the responder. Add the BSS color as a parameter
for NDP ranging.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210618133832.f097a6144b59.I27dec8b994df52e691925ea61be4dd4fa6d396c0@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2021-06-23 11:29:14 +02:00
Ilan Peer
f12ce9f607 nl80211: Add new RSNXE related nl80211 extended features
Draft P802.11ax_D2.5 defines the following capabilities that
can be negotiated using RSNXE capabilities:

- Secure LTF measurement exchange protocol.
- Secure RTT measurement exchange protocol.
- Management frame protection for all management frames exchanged
  during the negotiation and range measurement procedure.

Extend the nl80211 API to allow drivers to declare support for
these new capabilities as part of extended feature.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210409123755.8280e31d8091.Ifcb29f84f432290338f80c8378aa5c9e0a390c93@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2021-04-19 12:04:37 +02:00
Avraham Stern
73807523f9 nl80211/cfg80211: add a flag to negotiate for LMR feedback in NDP ranging
Add a flag that indicates that the ISTA shall indicate support for
LMR feedback in NDP ranging negotiation.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210409123755.eff546283504.I2606161e700ac24d94d0b50c8edcdedd4c0395c2@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2021-04-19 12:02:51 +02:00
Vamsi Krishna
d84d13d6f6 nl80211: Add interface to indicate TDLS peer's HE capability
Enhance enum nl80211_tdls_peer_capability to configure TDLS peer's
support for HE mode. Userspace decodes the TDLS setup response frame
and confugures the HE mode support to driver if the peer has advertized
HE mode support in TDLS setup response frame. The driver uses this
information to decide whether to include HE operation IE in TDLS setup
confirmation frame.

Signed-off-by: Vamsi Krishna <vamsin@codeaurora.org>
Link: https://lore.kernel.org/r/1614696636-30144-1-git-send-email-vamsin@codeaurora.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2021-04-08 13:07:02 +02:00
James Prestwood
0750cfd8b7 nl80211: better document CMD_ROAM behavior
The docs were very sparse with how exactly CMD_ROAM should be
used. Specifically related to BSS information normally obtained
through a user space scan.

Signed-off-by: James Prestwood <prestwoj@gmail.com>
Link: https://lore.kernel.org/r/20210311230333.103934-1-prestwoj@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2021-04-08 12:04:08 +02:00
Johannes Berg
735a48481c nl80211: add documentation for HT/VHT/HE disable attributes
These were missed earlier, add the necessary documentation
and, while at it, clarify it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Link: https://lore.kernel.org/r/20210212105023.895c3389f063.I46dea3bfc64385bc6f600c50d294007510994f8f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2021-02-12 11:00:07 +01:00
Ben Greear
b6db0f899a cfg80211/mac80211: Support disabling HE mode
Allow user to disable HE mode, similar to how VHT and HT
can be disabled.  Useful for testing.

Signed-off-by: Ben Greear <greearb@candelatech.com>
Link: https://lore.kernel.org/r/20210204144610.25971-1-greearb@candelatech.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2021-02-12 09:33:34 +01:00
Carl Huang
6bdb68cef7 nl80211: add common API to configure SAR power limitations
NL80211_CMD_SET_SAR_SPECS is added to configure SAR from
user space. NL80211_ATTR_SAR_SPEC is used to pass the SAR
power specification when used with NL80211_CMD_SET_SAR_SPECS.

Wireless driver needs to register SAR type, supported frequency
ranges to wiphy, so user space can query it. The index in
frequency range is used to specify which sub band the power
limitation applies to. The SAR type is for compatibility, so later
other SAR mechanism can be implemented without breaking the user
space SAR applications.

Normal process is user space queries the SAR capability, and
gets the index of supported frequency ranges and associates the
power limitation with this index and sends to kernel.

Here is an example of message send to kernel:
8c 00 00 00 08 00 01 00 00 00 00 00 38 00 2b 81
08 00 01 00 00 00 00 00 2c 00 02 80 14 00 00 80
08 00 02 00 00 00 00 00 08 00 01 00 38 00 00 00
14 00 01 80 08 00 02 00 01 00 00 00 08 00 01 00
48 00 00 00

NL80211_CMD_SET_SAR_SPECS:  0x8c
NL80211_ATTR_WIPHY:     0x01(phy idx is 0)
NL80211_ATTR_SAR_SPEC:  0x812b (NLA_NESTED)
NL80211_SAR_ATTR_TYPE:  0x00 (NL80211_SAR_TYPE_POWER)
NL80211_SAR_ATTR_SPECS: 0x8002 (NLA_NESTED)
freq range 0 power: 0x38 in 0.25dbm unit (14dbm)
freq range 1 power: 0x48 in 0.25dbm unit (18dbm)

Signed-off-by: Carl Huang <cjhuang@codeaurora.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Abhishek Kumar <kuabhs@chromium.org>
Link: https://lore.kernel.org/r/20201203103728.3034-2-cjhuang@codeaurora.org
[minor edits, NLA parse cleanups]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2020-12-11 13:38:54 +01:00