Presently upon interface up a message is posted to the scheduler
to create the vdev, which sends the vdev create to the firmware,
for the vdev create there is no response from the firmware host
internally posts a fake message internally for the vdev create
response.
Dont post the vdev create to the scheduler thread but directly
send the vdev create to the firmware in the caller context.
Change-Id: Iafb186b13d948e421d152c3142cb8614fdbbffa6
CRs-Fixed: 2549530
With des_chan->ch_phymode already having the chanmode value,
remove chanmode from from struct wma_txrx_node to use common
des_chan->ch_phymode
Change-Id: Ib34a032b541367305a9fdba998ed6a00073ac9aa
CRs-Fixed: 2550440
CONFIG_WLAN_TX_FLOW_CONTROL_LEGACY may be not set yes, if only
CONFIG_ROME_IF is set pci in external file. Because it is set yes
only when CONFIG_HIF_PCI set yes, however, CONFIG_HIF_PCI set yes
after it. For example, in file default_defconfig, CONFIG_HIF_PCI
set to yes on line 465, however line 311 checking CONFIG_HIF_PCI
to enable CONFIG_WLAN_TX_FLOW_CONTROL_LEGACY. So, line 314 can't
be called, CONFIG_WLAN_TX_FLOW_CONTROL_LEGACY is not set yes.
Change "ifeq ($(CONFIG_HIF_PCI), y)" to "ifeq ($(CONFIG_ROME_IF),pci)"
to avoid it.
Change-Id: Id324cdb99d6ee2d20bc00e698836c3ea4c5e0a05
CRs-Fixed: 2496110
When the ini gReportMaxLinkSpeed is set, it indicates that the rates
provided to the userspace should give the maximum possible rate for the
given connected parameters. But currently in the driver, the max rate
that is being sent to the userspace is dependent on the NSS at which
the tx/rx is being done. The NSS is calculated by taking the union of
the value from assoc req and from the rate table using MCS index/rates
from firmware. The rates fluctuate as per the tx/rx by firmware which
subsequently affects the NSS in the host.
To keep the max rate independent of this changing NSS, decouple the NSS
calculation to contain the value from only the assoc req when reporting
max rate.
Change-Id: I03d10e397fca6853d05b4812a2adeac0110bc517
CRs-Fixed: 2548498
Structure csr_roam_info member 'sae_info' is defined only when
WLAN_FEATURE_SAE is defined.
But function csr_process_roam_auth_offload_callback() call it
without any checking.
Because function csr_process_roam_auth_offload_callback() processes
WPA3 SAE info, so rename it, and move it to macro WLAN_FEATURE_SAE.
Change-Id: If3d5c1e6739fbd7bee24d19fbbab3495a9a6f8f6
CRs-Fixed: 2532693
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_get_pcl
policy_mgr_update_with_safe_channel_list
policy_mgr_get_valid_chans_from_range
policy_mgr_get_valid_chans
policy_mgr_set_sap_mandatory_channels
policy_mgr_get_pcl_for_existing_conn
policy_mgr_get_mode_specific_conn_info
Change-Id: Ia21829345be2746cd3fc1f2337cfc90abf0c53f4
CRs-fixed: 2550092
The functions hdd_sysfs_create_adapter_root_obj() and
hdd_sysfs_destroy_adapter_root_obj() are declared but not
implemented if CONFIG_WLAN_SYSFS is not defined but
CONFIG_FEATURE_BECN_STATS is defined. Do not enable
CONFIG_FEATURE_BECN_STATS if CONFIG_WLAN_SYSFS is not defined.
Change-Id: Iccf0ea4519416266e43533cfd34c9a3085820bee
CRs-Fixed: 2549288
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_get_chan_by_session_id
policy_mgr_get_mcc_operating_channel
policy_mgr_check_and_set_hw_mode_for_channel_switch
policy_mgr_is_chan_ok_for_dnbs
policy_mgr_is_safe_channel
policy_mgr_valid_sap_conc_channel_check
policy_mgr_disallow_mcc
policy_mgr_add_sap_mandatory_chan
policy_mgr_remove_sap_mandatory_chan
policy_mgr_is_hwmode_set_for_given_chnl
policy_mgr_is_valid_for_channel_switch
policy_mgr_update_user_config_sap_chan
policy_mgr_is_sap_restart_required_after_sta_disconnect
policy_mgr_is_sta_sap_scc
policy_mgr_nan_sap_scc_on_unsafe_ch_chk
Change-Id: I682f8380d9dc41fc015d73f06b6e055d1d04ef97
CRs-fixed: 2545110
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_allow_concurrency
policy_mgr_nan_sap_pre_enable_conc_check
policy_mgr_allow_concurrency_csa
policy_mgr_current_connections_update
policy_mgr_incr_connection_count_utfw
policy_mgr_update_connection_info_utfw
policy_mgr_get_channel_from_scan_result
policy_mgr_update_and_wait_for_connection_update
policy_mgr_get_sap_mandatory_channel
policy_mgr_checkn_update_hw_mode_single_mac_mode
Change-Id: I162c2b90a58539194907c5ecd6915eafecc635cc
CRs-fixed: 2545099
For 6GHz support and to remove channel number ambiguity use policy
manager APIs updated for frequency in other modules. This change
covers following APIs:
policy_mgr_is_chnl_in_diff_band
policy_mgr_check_for_session_conc
policy_mgr_handle_conc_multiport
policy_mgr_change_sap_channel_with_csa
policy_mgr_get_channel
policy_mgr_get_nondfs_preferred_channel
Change-Id: I4a6673db3a02b6e8d7fa94ae452338db618e3883
CRs-fixed: 2545099
Remove sta index references in TDLS structures and APIs
and mac address would be used instead to refer the peer.
Change-Id: I861f7ce068f3f545598129b9f3955b84b2a6fbce
CRs-Fixed: 2524512
Remove sta index references in lim since mac address
would be used instead of this index as part of the
sta index cleanup.
Change-Id: Ia7cbb94cf988a04506440ddaca6b1c302e13e852
CRs-Fixed: 2524509
Remove usage of cdp APIs to fetch local id and cleanup
few sta index references in wma and lim.
Change-Id: I32633ef7491b3b91ee55dd813a009c4d8010a3f5
CRs-Fixed: 2524506
The IOCTL command WE_IBSS_GET_PEER_INFO used to fetch the IBSS peer info
is not used by any external entities. Also, as sta_id is being removed,
the implementation of the current ioctl is outdated.
Remove the IOCTL command all together.
Change-Id: Id4dfafb8d42f6c04af46a633df2a1d1e232da5e4
CRs-Fixed: 2532488
Remove sta index in few prints and replace it
with MAC address as part of sta_index cleanup.
Change-Id: I689ede9dc345667f1a054f76bf3d08b236131c13
CRs-Fixed: 2524505
As a part of the sta_id clean up, remove the usage of the sta_id from
struct hdd_connection_info. Instead of the station id, use peer mac
address to interact with the protocol and DP layers.
Change-Id: I60b939c37ff49b50579791f45e3e81ed81b86967
CRs-Fixed: 2524514
WHUNT is host unit testing framework which simulates
firmware. Add a PLD wrapper layer for this virtual device.
Change-Id: I1d09b8a18a25b414b0c1d56723cc5687f2bfe297
Remove the check that limits the SAP Nss to 1x1 mode when SAP
is brought up with 160MHz bandwidth.
Change-Id: I1f2416b8c0c9500ed9d553ba1fed2f45ff2e9f13
CRs-Fixed: 2549916
Based on the current, Host driver assign a int value to tstamp directly.
But it is not compatible with previous kernel version.
Use function "ktime_set" to assign the value.
Change-Id: Id5fb5001e22aea8503c2dafbfef3fc8d27de1166
CRs-Fixed: 2549495
Currently the driver checks for the ACS in progress
in change iface and returns fail if the ACS is in
progress. The return status is not checked by the
kernel and it assumes that the interface change is
successfull, which may lead to out of sync between
driver and kernel.
Fix is to wait for ACS completion if the iface change
or interface down is triggered in between ACS.
Change-Id: Iaabd42fc959a533041b18b181e1b63493f17e0a5
CRs-Fixed: 2541325
Increase CE history max records size to 8k to capture
more events in case of CE full ring condition.
Change-Id: Ia2a3ea61dc99dd21d06b442ef00cd25550f4cb5a
CRs-Fixed: 2549528
In SAE pmksa caching case, the authentication algorithm will be
open and pmkid will be included in association request frame.
Full SAE authentication with auth algo 3 will not happen.
If in SAE pmksa caching case, the auth frame is not acknowledged
then auth retry happens and while filling the authentication
algorithm in the auth retry frame, the driver doesn't check if
sae pmk caching is used. So if auth retry happens due to auth
failure, the driver sends authentication frame with auth algo as
SAE. So the AP tries to validate the auth frame for SAE cyclic
group and sends auth reject with status code 77 - the offered
finite cyclic group is not supported.
Fill the authentication algorithm as open for auth retry frame
in sae pmk cached case.
Change-Id: I6b579b8254623d1d267670862d2060fabc85edeb
CRs-Fixed: 2545547
Userspace gives a connect request to the driver with bssid/bssid
hint and if association reject is received from AP with reason
invalid PMKID(53), then it means the previous PMKID cached is
not valid and the STA has to do full SAE authentication to
derive new PMK. When assoc reject is received from AP, and
if no other candidate is found for connection, the driver sends
nl80211 connection failed notification and the supplicant issues
delete pmksa for that failed bssid, thereby preventing from
trying to the same AP again with same stale pmkid. But after
receiving assoc rejection, if other candidate is found, the
driver tries to connect to the other BSS and if association
fails with that too, the driver will send connect failed
notification for the latest BSSID to which connection failed. So
the PMKID for AP1, for which assoc reject was received due to
invalid pmkid, is not deleted and when connect request for that
AP is received again, the driver will try to do open auth with
the stale PMKID.
So delete the PMKID of SAE bssid when association rejection is
received from the AP due to invalid PMKID.
Change-Id: I2c7064b5cd333ccd166890bc4a6f7c8b8b9d503b
CRs-Fixed: 2542232
Update policy manager to use regulatory module API to get valid
channel list instead of MLME config item.
Change-Id: I2fa24c73892746de68ece00e50fd55d6135b7753
CRs-fixed: 2545120
Update policy manager data structures and APIs to use frequency
instead of channels. This is done to address channel number
ambiguity with introduction of 6GHZ band. Fix all references of
channel and add temporary internal functions for frequency
usage as replacement for public APIs using channels. Also modify
the channel list handling to frequency list in associated modules.
Change-Id: I11dff14a5fbe6d49cf411f8fce6863994ffccd75
CRs-fixed: 2540000
If intra band is enabled, just build roam channel map from valid
channel list, ignore all other ways:
1. from the occupied channels list
2. from ini
3. channels in the neighbor list
then channel map will include full channels of that band except
dfs/unsafe channels, which make roam scan time much longer.
Fix:
Firt try to get channel cache from following way as config:
1. from the occupied channels list
2. from ini
3. channels in the neighbor list
Then filter channels by intra band config.
If channel num is 0, use full channel list from same band
except dfs/unsafe channels.
Refactor roam scan channel retrieve code, converge duplicate code
for DFS, unsafe, intra band check.
Change-Id: I69e28be76c05284d32e237b9af33d5c01b9bb742
CRs-Fixed: 2541937
There is no sync between driver unloading & SSR recovering.
If SSR is in progress, need to wait when driver unloading.
Change-Id: I81b935f9d8d6336b68abd6aecbdc7d28f4762be9
CRs-Fixed: 2534890
Do not check for center frequency segment 2 with 160MHz bandwidth
in set channel as hostapd does not set it for 160MHz mode.
Change-Id: I43a7a30b5f6e1c5916ddc2c72e18b82fc6814b06
CRs-Fixed: 2545967
Current code in __hdd_bus_bw_work_handler function there is a
possibility of variables sta_tx_bytes and sap_tx_bytes uninitialized.
Improve the code by initializing the variable.
Change-Id: I6e21350267e9ff7a5b3a5cb5b3f3166d26121c8a
CRs-Fixed: 2536318
Implement metering stats quota to support ipa offload sta plus
sap wifi sharing use cases.
Change-Id: Ic9d5ad817ffb4d671a43f3f3aebb2d8cce293873
CRs-Fixed: 2517696
Based on the current codes, Host driver use "tstamp" of skb buffer
structure to store HW timestamp info. But this parameter is designed
for SW timestamp. If host driver fill the value to "tstamp", it will
affect other functions, for example, NTP, PING etc.
The host driver use "hwtstamp" of skb buffer structure to store
the HW timestamp info now.
Change-Id: I8d92e0afe212bc4a5cdad1b30cd12f36ab9a0ebc
CRs-Fixed: 2547514
Commit 9e02e1e104 ("qcacmn: Cleanup dp_register_peer [PEER_ID_PHASE1]")
of qca-wifi-host-cmn changes peer search from peer id based to mac address
based, this change makes corresponding fix for monitor mode, otherwise it
will fail to get wlan interface up, since can't find peer.
Change-Id: Ife031b9e9b856850e08ef8c195e1a99c6dee80c5
Currently the function ucfg_nan_get_ndi_state is not defined for the
case WLAN_FEATURE_NAN is not defined. As this is a public function
defined in dispatcher/inc/ and can be used externally, there would be a
compilation failure on such cases.
Resolve the failure by declaring ucfg_nan_get_ndi_state as static in the
case WLAN_FEATURE_NAN is not enabled.
Change-Id: I30297e8a3781f9a529c40a1423a9d2613c286f4e
CRs-Fixed: 2548223
In csr_scan_callback sme lock is not taken and csr session
is accessed without taking the lock. This may lead to
race where a north bound thread and scheduler thread
might modify the same param at a time.
Thus if a new connect request is received at same time which
also lead to scan for ssid, scheduler and the NB thread
may try to free session->scan_info.profile at same time
leading to double free.
Fix is to protect csr_scan_callback with sme lock.
Change-Id: I44519f53f41b94a1ba6420efef2d35a98a7bcaf5
CRs-Fixed: 2547428
Currently the value of force 1x1 exception is 2
which can lead to STA connection to a OUI AP in 1x1.
In a DBS configuration when AS is disabled, STA came
up in Single Mac mode in 2x2, and when a SAP came up
in DBS, then it sent out a SMPS to AP which lead to AP
crash. But very few APs have this behaviour, so it is
better to have a higher throughput than limit the
connection to 1x1.
Change-Id: I0ebd1ed2b764c3280151ca55117545349e474cbb
CRs-Fixed: 2538438