Here upper layer configures roam band via the SETROAMBAND
NCHO command. This means DUT should be restricted to roam
to the configured band only but as per current PCL filtration
logic, DUT is allowed to roam beyond the configured band AP
also. Roam Band definition is:
0: auto (all supported bands)
1: 2.4 only
2: 5 only
3: 2.4 + 5
4: 6 only
5: 2.4 + 6
6: 5 + 6
7: 2.4 + 5 + 6
Fix is to update the PCL filtration logic in wma_send_set_pcl_cmd
and make sure DUT doesn't roam beyond the configured band AP.
Change-Id: Ia2353e8ff982609a4ab5a35715886648f140cd22
CRs-Fixed: 3158456
Upon reception of assoc request from an already associated
PMF-enabled STA, the SAP is expected to start SA-Query
mechanism.
On the other hand, host driver drops all the
retried assoc request frames if the STA is already in
connected state. This is valid as long as the original
assoc request is currently under processing(to prevent
duplicate processing). However, for reassoc attempt cases,
this assoc request with retry bit set could be the first
assoc request under processing.
Therefore, change the logic to drop only retry-bit set
assoc requests in non-PMF STA cases.
For PMF-enabled STA, drop the assoc requests only if
key installation is pending. Otherwise, send SA query.
Change-Id: I1f3a564864e70f4e11994698389be427ac202fa3
CRs-Fixed: 3446033
Currently host drops an AP from scan list if host country is set to
US and AP country is non-US. This implementation violates our
standard regulatory scan policy.
To address this issue, introduce a new INI to differentiate
between our standard regulatory policy with others.
Change-Id: Ie6bd2d1925048aef427136b34d00d361955f40b2
CRs-Fixed: 3377242
Send the driver disconnect internal reason code as an event to user space
using QCA_NL80211_VENDOR_SUBCMD_DRIVER_DISCONNECT_REASON vendor command.
Change-Id: I19959e097c5709d63fbd941583b934e291c3af1c
CRs-Fixed: 3371396
In api sch_set_fixed_beacon_fields(), the channel switch announcement
method selection was based on config "CONFIG_CHANNEL_HOPPING_ALL_BANDS"
due to which peer STA may not be able to switch channel when MTP
is working as SAP and doing channel switching.
Modify the check in order to select the channel switch method based
on nature of peer STA and operating/target frequency.
Change-Id: I3deb09245496d65e6bb3ec27ed7eefd3dcaa27bc
CRs-Fixed: 3293983
If is_pre_cac_on is set, in __wlan_hdd_del_virtual_intf firstly
frees the sap context by calling hdd_clean_up_interface and then
frees the pre cac by calling hdd_clean_up_pre_cac_interface this
will fails to access the sap context which is already freed.
So, replace order of calling, firstly hdd_clean_up_pre_cac_interface
and then hdd_clean_up_interface.
cds flush work will cancel the work which will not delete the pre cac
vdev. Replace with qdf_flush_work will wait for a work to finish,
executing the last queueing instance.
Assign NULL to fn and arg of pre cac work to ensure proper cleanup
of work.
Change-Id: I093bf627ce7a73e7c4f7c4cf30e2ec56814a80ed
CRs-Fixed: 3286477
Before sending peer create command to firmware, defer the
messages to LIM so that peer create confirm event is
protected from disconnect. If the messages are not defered,
disconnect gets processed and the lim timers are not
aborted as part of disconnect sequence and back to back
connect followed by disconnect causes ANR
Defer the LIM messages during peer create and allow the messages
after peer create confirm is received.
Change-Id: Ifffbb4897a4fa85dd83c94eb84be72295905b785
CRs-Fixed: 3421721
Currently, our host logic is "If an STA connection is in
progress in another adapter, driver disconnects the STA and
completes the SAP operation (start BSS or stop BSS)". This
is due to below reasons:
In the old kernel version and for STA+SAP concurrency support
from GUI, the first STA connection gets triggered and while it
is in progress, SAP start/stop also comes up. Once STA association
is successful, the STA connect event is sent to the kernel which
gets queued in the kernel workqueue and the supplicant won't
process M1 received from AP and send M2 until this NL80211_CONNECT
event is received. Workqueue is not scheduled as RTNL lock is
already taken by hostapd thread which has issued start_bss/stop_bss
command to the driver. The driver cannot complete start_bss/stop_bss
as the pending command at the head of the SME command pending list
is hw_mode_update for STA session which cannot be processed as SME
is in WAITforKey state for STA interface. The start_bss/stop_bss
command for SAP interface is queued behind the hw_mode_update
command and so it cannot be processed until hw_mode_update command
is processed. This is causing a deadlock so disconnect the STA
interface first if a connection or key exchange is in progress and
then start or stop the SAP interface.
As part of connection mgr changes, removed dependency on WAITforKey
state in serialization, and h/w mode also is not sent immediately
after the STA connection, So no possibility of the above deadlock
scenario.
The fix is to avoid disconnection on the STA interface during the
start or stop of the SAP interface.
Change-Id: Iad3ada091e505007cc6901a461be3b88fc051f4e
CRs-Fixed: 3339784
Currently if SCC frequencies are added in pcl list and
rest 5 GHz frequencies are required to be added with lesser
weightage then all 5 GHz/6 GHz frequencies are added including
SCC channels. so in pcl duplicate entries are found for SCC
frequencies with different weightage.
Fix is not to add SCC frequencies during addition of 5 GHz/6 GHz
frequencies if SCC frequencies are already present in pcl.
Change-Id: I03123e4bf8caee62b0fcd0c3ae78d6cd7187c7de
CRs-Fixed: 3209858
In function wlan_hdd_populate_weigh_pcl weight is populated
to 0 only if weighed_valid_list is 0 otherwise weight of
non-pcl entries will be populated as 20 less than weight
of last pcl entry but weighed_valid_list is set to 1 in
policy_mgr_get_valid_chan_weights. So, non-pcl entries
are also sent to upper layer.
Fix is to change weighed_valid_list to 0,
if there is existing p2p connection.
Change-Id: Ic0d86021c00fd95e5bc20eeabea56e2a69658599
CRs-Fixed: 3140467
Currently support is not there for 3rd mode when CLI+CLI
connection is there on DUT.
Update PCL table for 3rd mode when CLI+CLI exsits and add
support to fetch index based on new connection band and
concurrency.
Change-Id: I6041c40b3208d0b33dff2b4f9dc854d2d2dc17a1
CRs-Fixed: 3050537
Add feature flag for conditional compilation of feature to enable
p2p+p2p on a device.
Change-Id: I2c95b39c3db6e51213f7625383c365799fff9e31
CRs-Fixed: 2991307
INI g_enable_go_force_scc states the force MCC to SCC mode.
Mode 1-strict: Implement force scc strictly as part of start bss
Mode 2-liberal: Turn on p2p go on provided channel and move
first p2p go to the new p2p go channel after set key.
Currently for p2p-GO forceSCC, support is present where no matter
what is the GO negotiated channel in start_bss, driver will force
the other GO/STA/GC channel (on the same band) to the current GO
channel. This is force SCC strict mode where value 1 is used for
g_enable_go_force_scc ini. In this mode GC will have to do full
scan as the GO channel may be different from actual negotiated
channel. DUT may see some issues if GC dosent do full scan in
this mode.
As part of this change, add support for value 2(Liberal mode)
in g_enable_go_force_scc ini. As part of this liberal mode,
driver will allow the GO to start in MCC mode and after set key,
it will check any other concurrent GO and will do forceSCC for
that GO to the newly formed GO channel.
Change-Id: Ifc7beb06335616c51dc064f48a78b825dbdbda25
CRs-Fixed: 2992098
Check fw capability to support p2p + p2p concurrency from
soc_fw_ext_caps and based on fw capability, set policy
mgr concurrency for p2p + p2p.
Change-Id: Ia32f81f37174e9d722911b1fae6d4897d0af9816
CRs-Fixed: 2991300
From the caller, the args comes as pm_ctx but in definition
it's assigned as work_info which causes crash.
Change-Id: I9928a2c3862407b02cb34356ad54895e1d3069c7
CRs-Fixed: 3035090
Add support to allow/disallow three port combinations on
same band based on PCL table
Change-Id: Id2e9ad7d17bab6ea0aff6913b25f0eb330dc6c13
CRs-Fixed: 3028527
Add fixed 300ms extra ROC time instead of multiplying the
ROC duration by 6 as this causes the ROC to be upto 1.5 secs
if GO is present. Firmware will advertize NOA of 1.5 secs
and if supplicant cancels ROC after 200 or 300ms then
firmware cannot cancel NOA. So when supplicant sends next
ROC it will be delayed as firmware already is running previous
NOA which may cause p2p find issues if GO is present.
Fix this by capping the max ROC time to 600ms when GO is present.
Change-Id: I0774b06ff4db1fae7efc387388fdf3059505150e
CRs-Fixed: 3025870
Remove WLAN_ENABLE_AGEIE_ON_SCAN_RESULTS macro as BSS age
is calculated using NL80211_BSS_SEEN_MS_AGO
Change-Id: I5473f9cea216df4968a43551875b0385605f616f
CRs-Fixed: 3391078
Currently, mode of p2p virtual interface with type managed
is added as sta mode. This may cause issue during p2p find
as in function p2p_vdev_check_valid probe response frames
are dropped for sta mode.
Fix is to convert mode to P2P DEVICE mode from STA mode in
case added interface string contains p2p substring.
Change-Id: I9bf9d8c44af940b42c38cd7819bcdb9c00a90a26
CRs-Fixed: 3036500
In very noisy environment and with 6 GHz co-located AP, scan
database size of 300 might not be enough.
So increase the size to 500.
Change-Id: I26077b2ab0d24f73a7c8e29990504d5b284eccf4
CRs-Fixed: 3395834
When Scan db reaches max size, driver deletes the oldest node,
so chances are that BSS on 1st freq scanned is removed.
This lead to scan for SSID, which will do a scan again on
all freqs, and thus we end up in flushing the entry again.
TO fix this use freq hint to scan for ssid to quickly find the
AP so that required AP remains in scan database as it will
be the latest entry.
Change-Id: I28849ee97ff1f492d372870c362288206c4ec9a5
CRs-Fixed: 3391899
In the case of STA/CLI + STA/CLI, if an STA/CLI is in connecting state
and a disconnect is received on any other STA/CLI, the disconnect can
timeout waiting for the connection on the first STA/CLI to get completed.
This is because the connection is a blocking serialization command and
it can try multiple candidates and thus can take up to 30+ sec to
complete.
Same way if an SAP/GO has a start/stop command or peer disconnect in
pending queue, the delay is processing it can cause timeouts and other
issues.
So abort the next connection attempt if any of the vdev is waiting
for vdev operation to avoid timeouts.
Change-Id: I09077555b4f3a33f5ef5846ffd6e2bc5ea998858
CRs-Fixed: 3386150
Currently 160 MHz chan width set for 6 GHz band channel is not
allowing.
This change is to set 160 MHz chan width if 6 GHz band channel support.
Example cmd: hostapd_cli DRIVER CHANNEL_SWITCH <Channel> <BW>
Change-Id: I5955ba524d3e77fb49d7acf4098fd0c564e138b0
CRs-Fixed: 3356605
Use cdp_wdi_event_unsub() to unsubscribe
PKT_CAPTURE_RX_NO_PEER_SUBSCRIBER in
pkt_capture_wdi_event_unsubscribe().
Change-Id: I43575df1402611d468b8523bf948d2dc86f31dd7
CRs-Fixed: 3260272
Currently there is no attribute to set the wifi calling state
from user space to fw.
With this change add an attribute to set wifi config vendor
command to configure wifi calling state to fw via platform
driver.
Change-Id: I982e9a7245b9e5108cd6cbcb4162daa4b4b6a412
CRs-Fixed: 3345705