qcacld-2.0 to qcacld-3.0 propagation
If ieee80211w=2 or pmf=2 is an explicit configuration in the
supplicant configuration MFPEnabled is set and driver assume it
as a PMF required connection, even if AP is in open security
mode.
Now when disconnect is received from supplicant driver sends a
protected deauth and assert is observed as firmware do not have
any valid key.
To fix this if ieee80211w=2 or pmf=2 is an explicit configuration
in the supplicant configuration but peer AP is non-PMF drop the
connection request.
Change-Id: I40faf63df4e95b367d66e9b51ff165759989a1d1
CRs-Fixed: 1011976
qcacld-2.0 to qcacld-3.0 propagation
wlan_queue_logmsg_for_app is called while holding spin lock with
interrupts disabled. It may call pr_info to log if node is dropped
while sending to user space.
This may cause interrupts disabled for some time.
As part of fix remove all pr_info from wlan_queue_logmsg_for_app.
Change-Id: Iffa5d463ae4e807bb30ff6eec5f3949735663fd5
CRs-Fixed: 1005714
qcacld-2.0 to qcacld-3.0 propagation
If roaming is initiated by firmware, after getting the candidate
list the CSR will start preauth with the candidates and thus
preauth will be the active command in SME.
Now if at the same time connect is issued from supplicant,
HDD will queue disconnect cmd in SME queue and wait for disconnect
to get complete for 2 sec. Now there is a chance that channel
change along with preauth timeout can take more than 2 secs.
In this scenareo the disconnect will timeout in HDD and will
return connect failure to supplicant. Next supplicant will issue
disconnect which is ignored by HDD as disconnect is already been
queued in SME. Now if supplicant again sends the connect command,
as part of connect command CSR will remove the disconnect command
from the SME queue and queue this connect command.
On preauth timeout the preauth state machine checks if disconnect
is queued and if it is queued it will abort preauth. But in this
case disconnect is removed by the connect request and thus preauth
retry continues and if preauth is success handoff will be queued
in SME queue.
Now the connect request is processed and if this connect request's
BSSID is same as the BSSID of the roam candidate, as all the CSR
states for this BSSID session indicate roaming, instead of
join it will try to reassociate and continue changing the CSR states
again. Eventually this connect will fail. Next the handoff command
is processed and as part of handoff it will try to cleanup
original session, but as CSR states are changed by connect request
the original session is not cleaned up properly. This results in
stale PE session entry which does not allow the scan to be sent to
firmware, returning the cached results and thus 0 scan results.
To fix this:
- Increase the WLAN_WAIT_TIME_DISCONNECT to 5 sec to make sure all
sessions are cleaned up before allowing the new connect to proceed.
- Increase the priority of preauth scans.
Change-Id: Id7cc1e6f3c31df8a8c8955eb3ff48cb60e5b5ab2
CRs-Fixed: 1048394
Integration from qcacld-2.0 to qcacld-3.0
IPv6 Multicast (Neighbor Solicitation) frames are
not rejected by the WLAN driver when these frames
are bounced back from the AP. This causes network
stack to assume the duplicate IP address on the
network and fails to assign the IPv6 address.
Currently, this is a workaround till the issue is
root caused.
Change-Id: If5d48ed903f484805e7f4be9df52582e50bd6ce5
CRs-Fixed: 748105
With the introduction of rx_mode ini config, gEnableRxThread and
gEnableNAPI configuration are obsolete. So remove them.
Change-Id: Ida8063eff86a644ebf9c494b94bcb3396b35b6e8
CRs-Fixed: 1056091
There are few NL80211 commands which can be triggered from the upper
layer even when the interfaces are down. Check the driver state
machine when these commands gets triggered from the upper layer and
start the modules if they are closed, so these commands can be honoured
correctly.
Change-Id: I4a1d2e95379a5e690b00eea37e80ceb8a91925fb
CRs-Fixed: 1056959
* From the GUI, After change interface, only stop
and de-init of adapter was getting done.
The interface to be changed was not getting started. So, start
the adapter from the mode since the interface was already up in the
P2P device mode before the change_iface, supplicant doesn't invoke
interface up on the adapter again.
* In the standalone scenario, the interface up for the p2p0 comes 1st,
as part of which the sme session shall be opened with sessionId 0.
So, as part of indicating the management from to HDD, LIM layer tries
to traverse the adapter list with the sessionId and since the wlan0 interface
is also part of the linked list with the same sessid. It tries to send the
management frames on the wrong interface index because of which frames were
not reaching the supplicant. To migitate this issue, once the adapter is
allocated, fill the session with invalid sessionId so that it can be updated
with the valid sessionId once the session is created.
Change-Id: I63b320aea1eb779883dfa070bad3f2057fd5c371
CRs-Fixed: 1056344
qcacld-2.0 to qcacld-3.0 propagation
In pe_reset_protection_callback psession's beaconParams struct is
reset to 0 and thus short preamble support being part of this
structure is set to 0. Due to this beacons always have barker
preamble set to 1 even if no non short preamble enabled STA is
connected.
To avoid this do not reset the short preamble support and beacon
interval in psession's beaconParams structure.
Change-Id: I631fb202fba6bc129d03ff21cff2adef328abff2
CRs-Fixed: 1032578
This reverts commit-id: "Ib028c29863d4e95ccac434f7d47bfedd59ef883f"
It caused peer object memory access after it was freed.
CRs-Fixed: 1057347
Change-Id: I99842eb646371e186ade3b126ea0e8f84b7f2187
Auth request is not sent out due to which assoc reject is observed.
As part of the vdev down firmware clears the software tx queue which
is blocked due to the "Ia5394390d376c638b3976d446a6ecc98d0584159"
change. So reverting this change will enable
the vdev down and clears the tx queue.
This reverts commit-id "Ia5394390d376c638b3976d446a6ecc98d0584159"
Change-Id: If7d7ca5939f7586b12d84d6e070e94bb5e7e6c2c
CRs-Fixed: 1057329
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Update
wlan_hdd_main.c to use the unified set of APIs. Since there are a
large number of changes in this file, perform the conversion in
phases.
For phase 7 set the HDD_DISALLOW_LEGACY_HDDLOG flag so that no future
changes can introduce new instances of legacy logging.
Change-Id: I09ed8f80764cc7b55bbcdd506253f56b5ee07937
CRs-Fixed: 937663
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Update
wlan_hdd_main.c to use the unified set of APIs. Since there are a
large number of changes in this file, perform the conversion in
phases.
For phase 6 update the following functions:
wlan_hdd_auto_shutdown_cb()
wlan_hdd_auto_shutdown_enable()
hdd_stop_bus_bw_compute_timer()
wlan_hdd_check_custom_con_channel_rules()
wlan_hdd_stop_sap()
wlan_hdd_start_sap()
Change-Id: I87781017f43b2e40ede02448d7332b6ee18465f1
CRs-Fixed: 937663
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Update
wlan_hdd_main.c to use the unified set of APIs. Since there are a
large number of changes in this file, perform the conversion in
phases.
For phase 5 update the following functions:
hdd_ch_avoid_cb()
hdd_init_channel_avoidance()
hdd_populate_random_mac_addr()
hdd_cnss_wlan_mac()
hdd_wlan_startup()
hdd_softap_sta_deauth()
hdd_softap_sta_disassoc()
hdd_softap_tkip_mic_fail_counter_measure()
wlan_hdd_disable_roaming()
wlan_hdd_enable_roaming()
wlan_hdd_send_svc_nlink_msg()
Change-Id: If71de96e81600f2a5136a0907b2404a8e2a05a8b
CRs-Fixed: 937663
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Update
wlan_hdd_main.c to use the unified set of APIs. Since there are a
large number of changes in this file, perform the conversion in
phases.
For phase 4 update the following functions:
hdd_skip_acs_scan_timer_handler()
hdd_wlan_set_ht2040_mode()
hdd_wlan_notify_modem_power_state()
hdd_post_cds_enable_config()
hdd_exchange_version_and_caps()
hdd_bus_bw_compute_cbk()
wlan_hdd_init_tx_rx_histogram()
wlan_hdd_display_tx_rx_histogram()
wlan_hdd_display_netif_queue_history()
Change-Id: Ibfd53f4f2703dba8c7ce96368392afa3c0c12d5b
CRs-Fixed: 937663
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Update
wlan_hdd_main.c to use the unified set of APIs. Since there are a
large number of changes in this file, perform the conversion in
phases.
For phase 3 update the following functions:
hdd_cleanup_actionframe()
hdd_cleanup_adapter()
hdd_open_adapter()
hdd_close_adapter()
wlan_hdd_reset_prob_rspies()
hdd_stop_adapter()
hdd_reset_all_adapters()
hdd_start_all_adapters()
hdd_get_adapter_by_vdev()
hdd_wlan_exit()
__hdd_wlan_exit()
Change-Id: I4eaedea4a7e7da5d4f0284be4ad2ca5d05f8b98a
CRs-Fixed: 937663
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Update
wlan_hdd_main.c to use the unified set of APIs. Since there are a
large number of changes in this file, perform the conversion in
phases.
For phase 2 update the following functions:
__hdd_stop()
__hdd_uninit()
hdd_open_cesium_nl_sock()
__hdd_set_multicast_list()
hdd_register_interface()
hdd_sme_close_session_callback()
hdd_check_and_init_tdls()
hdd_init_station_mode()
Change-Id: Ia181a89d55b2e584739a543a0d163877b474d3ae
CRs-FIxed: 937663
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Update
wlan_hdd_main.c to use the unified set of APIs. Since there are a
large number of changes in this file, perform the conversion in
phases.
For phase 1 update the following functions:
__hdd_netdev_notifier_call()
hdd_checkandupdate_phymode()
hdd_set_ibss_power_save_params()
hdd_update_macaddr()
hdd_update_tgt_services()
hdd_update_tgt_ht_cap()
hdd_update_tgt_vht_cap()
hdd_update_tgt_cfg()
Change-Id: Id394b038f35c3f663ae6a00f49c903dc52f4f4a2
CRs-Fixed: 937663
Currently the HDD code uses a variety of logging APIs. In
qcacld-3.0 HDD should converge on a unified set of logging APIs.
Update wlan_hdd_ftm.c to use the unified set of APIs.
Change-Id: I58b2214ba1243e93dd5e3c9b6774c08537094139
CRs-Fixed: 937659
Log rx packet in packetlog as per HTT_T2H_MSG_TYPE_RX_IN_ORD_PADDR_IND
message from firmware.
CRs-Fixed: 970647
Change-Id: I5773b67a9269063531d038d46ac404c978818dcc
Currently packet logging can be enabled by using the pktlogconf tool.
* Customers are not happy running the user program to collect the logs.
* There are chances of running pktlogconf between traffic.
* If packet logging is enabled after the issue has happened, we will
miss the crucial debug info.
Hence introduce a mechanism to enable packet logging during driver load.
Change-Id: I3138e252e02009094d61150a55172b49f9fca4fd
CRs-Fixed: 970647
If channel 144 is disabled in service ready event, host is only
disabling the channel in corestack. Fix that by also disabling the
channel in wiphy, which is used by kernel and user-space.
Change-Id: I4222aef646ede78d97b554faaf7f0c5b627feec0
CRs-Fixed: 1054102
US regulatory domain is FCC3_FCCA and not FCC8_FCCA. Fix that.
Also add regulatory domain APL8_WORLD to regulatory tables.
Bolivia and Nigeria map to APL8_WORLD.
Change-Id: I539d2720f08026a06669b1c5117523667dfcef52
CRs-Fixed: 1053513
qcacld-2.0 to qcacld-3.0 propagation
Currently indoor channels are unconditionally set to
IEEE80211_CHAN_PASSIVE_SCAN in driver. Add logic to report INDOOR
channel as passive channel only when gindoor_channel_support is FALSE.
Change-Id: Iab55a394a28ff452c06c739f3fbd47506eda85eb
CRs-Fixed: 955272
While processing ROAM_OFFLOAD_SYNCH_IND, delete the peer entry
even if reference count is non-zero sine firmware has already
deleted that peer. It allows addition of new peer without waiting
for peer_unmap events. Fix the logic error in checking the timeout
in ol_txrx_peer_attach().
Change-Id: Ib028c29863d4e95ccac434f7d47bfedd59ef883f
CRs-Fixed: 1046754
In following conditions RX LDPC support needs to be enabled
1) when STA is coming up in 5G band
2) when IBSS is coming up in 5G band
for anyother cases RX LDPC needs to be disabled. If user has
choosen RX LDPC to be disabled from INI file then it needs to
be disabled for all the cases including above mentioned cases.
To achieve this, take the intersection of global, INI, and harware
specific RX LDPC settings.
Change-Id: Iae10aa4a8c0931cdb796cd9c8ff558d4bc8e0aed
CRs-Fixed: 1050004
this patch will fix the memory leak caused by pmfSaQueryTimer
which was encountered during stress and stability tests.
Change-Id: I5a2367302e0eac3a024626795a4469d1ced76e8c
CRs-Fixed: 970527
Change structure names to fix WIN compilation when used in
coexistence with MCL codebase.
Change-Id: Ife09989e1f0f0c4d619f73c5960968d3a6721b6e
Acked-by: prgandhi@qti.qualcomm.com
CRs-Fixed: 1008872
In sap_acs_channel_check fix ‘if’ condition will be always true for any
given channel, this will fail to validate if the given channel is in ACS
channel range.
Fix the if condition check from logical OR to AND to validate given channel
is within the ACS start and end channel range.
Change-Id: I1d69c9d440e641b052fd6098d1c99f22a64e9a9d
CRs-Fixed: 1056036
The enableOverLapCh is not populated from HDD context, So sap_filter_over_lap_ch
function always filter overlapping channel causing ACS to select only
non-overlapping channel.
Populate enableOverLapCh from HDD context to SAP context.
Change-Id: I99b1ada48573e8b03ab42a94d98f92f7b0b0e871
CRs-Fixed: 1055071