Add support to get the various Coex data from the debugfs.
This commit adds the support to get the various coex data:
* COEX STATE
* COEX DPWB STATE
* COEX TDM STATE
* COEX IDRX STATE
* COEX ANTENNA SHARING STATE
The specific state information can be read via the debugfs.
Example to read the COEX STATE logging:
sm6150:/ # cat /sys/kernel/debug/wlan/mws_coex_state
vdev_id = 0
coex_scheme_bitmap = 0
active_conflict_count = 0
potential_conflict_count = 0
chavd_group0_bitmap = 0
chavd_group1_bitmap = 0
chavd_group2_bitmap = 0
chavd_group3_bitmap = 0
Change-Id: I92272ad7edf44df22730ac0fa992d876840ba632
CRs-Fixed: 2413943
During LFR2 roaming, after the preauth with new AP
and disassociation with current AP are successful,
proper HW mode should be set based on the
existing concurrency scenario.
Change-Id: I312ed10bc844712b3dba36680457198a19f1e85c
CRs-Fixed: 2367224
Currently in case of SAP, supported mode of station received
in assoc request is not getting cached.
Add support to cache the supported mode of station received
in assoc request request in sta_info.
Change-Id: I9820ae2d65fc529a1ab16424f6732fd273da3ae0
CRs-fixed: 2419957
Currently the driver just start the vdev according to the ini
params, without consdering the tx, rx chainmask supported by the
FW per band, per mac, which can lead to connection in 2x2, even
though FW is not capable of 2 antennas on a particular band.
Fix is to intersect both the tx, rx chainmask for both bands,
and change the ini to minimum of the nss supported by ini, and
the BDF setting of the chains.
Change-Id: Ib0e9bac19959bbcf9bade7dbd78674be4099a23d
CRs-Fixed: 2414103
1) Refine the documentation text of 4 ini items:
gStaKeepAlivePeriod
gApKeepAlivePeriod
gChannelBondingMode5GHz
gChannelBondingMode24GHz
2) Fix a discrepancy which happens when ini cfg values
are converted from those defined in enum
eIniChanBondState to the corresponding values in
enum ePhyChanBondState.
3) Use the related APIs to setup channel bonding modes
instead of directly assigning values.
4) Remove the redundant inclusion of the following two
header files in csr_api_roam.c:
cfg_ucfg_api.h
wlan_mlme_api.h
Change-Id: I43c1e5a05bbb34952a5c7bdbde734f4014592c12
CRs-Fixed: 2416991
The driver currently defines two different data structures to hold
PLM Request parameters:
- legacy struct plm_req
- unified WMI struct plm_req_params
To align with the converged software architecture remove the legacy
definition and exclusively use the unified WMI definition.
Change-Id: I7675686aba9590a4507a8f9ebffcbf181ee00a21
CRs-Fixed: 2411817
In hdd_get_band_helper, use ucfg_reg_get_band() instead of
sme_get_freq_band() to get band information.
Also, remove sme_get_freq_band().
Change-Id: I8bb66527fb1ab92bc45f799bbca4310a3a8d1dcf
CRs-Fixed: 2414912
Add support to configure HE +HTC support in HE caps and HE OM
control transmission.
Change-Id: Ic3ad5952198472ecda79471a37ff527dfdbcdbf0
CRs-Fixed: 2359376
To address kernel control flow integrity (CFI) issues related to type
mismatch, correct the input argument type for sme_ser_cmd_callback().
Change-Id: I3f0b5df70163eca9282d2b1c2a48203448e4f0a6
CRs-Fixed: 2402977
Currently PTK, GTK and IGTK keys are not getting cleared
on wifi link disconnection from wifi driver memory, which
can lead to information disclosure. Clear PTK, GTK and IGTK
keys from wifi driver memory to avoid any potential information
disclore after wifi is turned off.
Change-Id: I309cd7af8d396167e9ec3ef9c6c443e8c08903d8
CRs-fixed: 2396603
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The tSmeConfigParams typedef does
not meet any of those criteria, so replace it (and the "tp" variant)
with a reference to the underlying struct.
Further note the Linux Coding Style frowns upon mixed-case names and
so-called Hungarian notation, so in conjunction rename the underlying
struct to be in compliance.
Change-Id: I926cf67d87398782049bf9acbcd06f806a7cec29
CRs-Fixed: 2412715
The rrmConfig struct inside tSmeConfigParams is written by
sme_get_config_param() but is otherwise never accessed. Since
this is unused, remove it.
Change-Id: Ia173b20e69506f62e80baf239e889026595ba579
CRs-Fixed: 2412714
Host driver code has several instances of struct bss_description
that is type defined to tSirBssDescription, *tpSirBssDescription
This goes against the linux coding style. This change replaces
tpSirBssDescription with struct bss_description *.
Also Linux Coding Style doesn't welcome mixed-case names. So
cleanup some mixed-case variable names as well.
This change should be followed by changes to replace
typedef tSirBssDescription also ultimately.
Change-Id: Ic6fa2d5c7db0d0c1fe4be1096d416295dcb83779
CRs-Fixed: 2409129
Currently the driver has hdd, sme api to set the hw
dbs capability in the mac context which is not used
by any other module, because the dispatcher APIs are
already present.
Remove the hw mode capability variable from the mac
context as it is no longer used.
Change-Id: I7aa53b09cfb93fcd87ba9faf97402c136ef6b7ed
CRs-Fixed: 2409368
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename identifier eBand to be compliant.
Change-Id: If232dac1fb05b64c7643ee0f3adea47a712a192b
CRs-Fixed: 2409886
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename SME local variable pPlmReq to be
compliant.
Change-Id: I89fbf08ccc2b16bfed397ac6afa190cefe34141c
CRs-Fixed: 2409885
The Linux Coding Style frowns upon mixed-case names so rename
proxyARPService to be compliant.
Change-Id: I8ad21c749caabde80fa21fa6800901c20988cfd2
CRs-Fixed: 2409875
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename nEmptyScanRefreshPeriod to be compliant.
Change-Id: Iaf3d2ea3dc66c79c7e0e9f5ec42f013efd95f938
CRs-Fixed: 2408523
Currently if the FW supports the dynamic nss update feature,
the driver rejects the command to change the nss, but
there can be case scenarios where this update is required.
Fix is to accept the command in disconnected state, and
update the vdev specific ini of nss, and also update the
ini, and dynamic configuration in vdev mlme obj, which
is used in dynamic nss update.
Change-Id: I9cfa7f112159148733f06bf479987928f112901f
CRs-Fixed: 2404262
When LFR3 compile time flag WLAN_FEATURE_ROAM_OFFLOAD is
disabled, compilation of wlan driver fails as btk_key is defined
under WLAN_FEATURE_ROAM_OFFLOAD but sme_add_key_btk tries to
access this value irrespective of the compile time flag.
As the caller of sme_add_key_btk, calls this only if the
function hdd_is_btk_enc_type returns true and this function
hdd_is_btk_enc_type() is conditionally compiled based on
WLAN_FEATURE_ROAM_OFFLOAD, its better to include sme_add_key_btk
only if WLAN_FEATURE_ROAM_OFFLOAD is enabled.
Change-Id: I51315ed3bff8979120b86f75c06362a1c8a5658c
CRs-Fixed: 2408418
If ACM is off and can't send AddTspec too, we should
be still ok to send uapsd info to AP via reassoc req.
If roam offload is enabled, when csr_reassoc is called, vdev
start cmd is sent during vdev started status, assert will happen.
Fix: call sme_fast_reassoc in sme_qos_request_reassoc to invoke
LFR3 roam if roam offload supported.
Reproduce steps:
1. Change ini: gAddTSWhenACMIsOff=0
2. DUT STA connected AP
3. iwpriv wlan0 addTspec 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Change-Id: Idbd53ff0af36cb3b68c514e399d0033c41c74a78
CRs-Fixed: 2402542
Add the support to allow user space applications through cfg80211
vendor command to check if wlan firmware is alive or not.
Change-Id: I96bb16e01974f7689493577741a36e3832963996
CRs-Fixed: 2399508
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename pEseBcnReq (used by both HDD and SME) to
be compliant.
Change-Id: I377e1c4ff65bafeba403aa87a6542891f03bb2ba
CRs-Fixed: 2405758
rssi_disallow_bssid could be accessed from different thread,
mutex protection is added to avoid node invalid access when
node has been deleted or updated.
Change-Id: I2b19d48f19a3da55030384f26c501aee283801c7
CRs-Fixed: 2405157
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename HDD local variable pUserData to be
compliant.
Change-Id: Ia6e960b2666ef2dc958cdc97cef0b525cfa9e58d
CRs-Fixed: 2405754
Introduce new CSR auth type eCSR_AUTH_TYPE_FT_SAE to support the
akm suite selector 00:0F:AC-09(FT-SAE) and 00:0F:AC(FT-Suite-B).
Based on the sta_ctx authType, rsn auth type and hdd key
management type, set the auth type eCSR_AUTH_TYPE_FT_SAE to the
roam_profile during initial connection.
csr_scan_get_result() pushes the scan filter to scm module.
Translate the legacy eCsrAuthType to wlan_auth_type and push it
to the filter->auth_type.
Change-Id: I3ab91799ac280b85cdd67ad26b0eb7519d3b8b14
CRs-Fixed: 2400679
When receiving assoc request from OWE STA, always send update OWE
info event which contains the following information:
- MAC address of STA
- RSN IE in assoc request
- DH IE in assoc request
Change-Id: I7017c5d2730e493db2472ae53d5dfa69553cfe45
CRs-Fixed: 2396925
The driver currently defines two different data structures to hold
Gateway Update parameters:
- legacy struct rssi_monitor_req
- unified WMI struct rssi_monitor_req
To align with the converged software architecture remove the legacy
definition and exclusively use the unified WMI definition.
Change-Id: Ia3336b68dac84ce8aeb53ea6d5be8b9f2e0f1736
CRs-Fixed: 2404088
Save RSN auth type in related context for RSN assocoation.
Some OWE specific operation need to be done according to
this RSN auth type since we cannot tell if a STA / SAP is OWE,
WPA2 or OPEN by its auth type OPEN.
Change-Id: I17dd72c7adf1c663725ac58ce263f4408d9c967b
CRs-Fixed: 2396885
The driver currently defines two different data structures to hold
Gateway Update parameters:
- legacy struct gateway_param_update_req
- unified WMI struct gateway_update_req_param
To align with the converged software architecture remove the legacy
definition and exclusively use the unified WMI definition.
Change-Id: Icc56c4d83808e3661593d2e4735533442d48eb7e
CRs-Fixed: 2404089
Currently struct csr_roam_session uses the legacy term sessionId. To
align with converged naming it is desirable to change this to vdev_id,
but due to the large number of places where sessionId is used it will
be difficult to modify all occurences at once. In order to allow
changes to "trickle in" replace the sessionId field with a union that
contains both a sessionId and a vdev_id field. This will allow vdev_id
and sessionId to both be used to access the same data item.
Subsequent changes can then replace references to sessionId with
vdev_id, and then once all references have been converted, replace the
union with a single vdev_id field.
Change-Id: I67877b9a407bb07ec9f6516a765ee511c9c933e9
CRs-Fixed: 2404157
Hostapd sends SAE authentication status with the NL command
NL80211_CMD_EXTERNAL_AUTH. Extract status and peer mac address
from the command data and set mlmState in preauth node accordingly.
Change-Id: If507a2f56c031ae1885a11d5f7cbe31a18aa8821
CRs-Fixed: 2396366
When userspace disconnect is received, wlan_hdd_disconnect()
checks if roaming is in progress and waits for 4 secs if roaming
is in progress. The roaming_in_progress flag is set after
CSR receives SIR_ROAMING_START and is unset after CSR receives
SIR_ROAM_SYNCH_NAPI_OFF. Since SIR_ROAM_SYNCH_COMPLETE is
received after SIR_ROAM_SYNCH_NAPI_OFF and all the roaming state
machine activities like filling connection info, bss description
happens after SIR_ROAM_SYNCH_COMPLETE is received. So there
exists a race window between SIR_ROAM_SYNCH_NAPI_OFF and
SIR_ROAM_SYNCH_COMPLETE when the wlan_hdd_disconnect() could
proceed to free the session->pCurRoamProfile and
csr_roam_prepare_bss_config() tries to acces this when
SIR_ROAM_SYNCH_COMPLETE or SIR_ROAM_SYNCH_PROPOGATE is received.
This could result in null pointer dereference of pCurRoamProfile.
Call hdd_set_roaming_in_progress(false) in
hdd_sme_roam_callback() when SIR_ROAM_SYNCH_COMPLETE is received
Change-Id: Ic350d55e857ad950a0e630b07d75a5b1b572a75c
CRs-Fixed: 2399474
Value of ts_acm_is_off gets updated by 0 irrespective of the value
passed by ini file results driver unable to send eSmeCommandAddTs
cmd.
Fix is to use value of ts_acm_is_off as per value in ini in
CSR_IS_ADDTS_WHEN_ACMOFF_SUPPORTED().
Change-Id: Ic5f34f4c4499f92471ce501a78c39a255d6537c9
CRs-Fixed: 2401454
Host driver packs only the RSN IE, WAP IE and additional IE
from association request to upper layers. With any new IE
support added on the driver, the driver has to add new structure
to csr_roam_info and pack that IE into the
tSap_StationAssocReassocCompleteEvent and pass it to higher
layers. This increases the redundancy with new IE introduced.
To facilitate hostapd to get information on all IE, pass all the
IE present in the assoc request to hostapd.
Change-Id: I1665a83de52bd67529ea026dc0c5e92cfbd51590
CRs-Fixed: 2390425
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename pGetTemperatureCb and
pTemperatureCbContext in struct sme_context to be compliant.
Change-Id: Ie87e87b8fffc89510d72a8b849282975b4202999
CRs-Fixed: 2400320
The Linux Coding Style frowns upon mixed-case names so rename
peerInfoParams in struct sme_context to be compliant.
Change-Id: I7221fa6b7b432440d62cded556365d524b28bb14
CRs-Fixed: 2400319
The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The tSmePeerInfoHddCbkInfo typedef
does not meet any of those criteria, so replace it with a reference to
the underlying struct.
Further note the Linux Coding Style frowns upon mixed-case names so in
conjunction rename the underlying struct to be in compliance.
Change-Id: I751e865a5d3ad64ee46794a28a11b2671e405d34
CRs-Fixed: 2400318