In whitelist roaming, the roam offload event is sent
for an BSSID with different SSID, however host driver
copies the connected bssid in the external auth event
to the userspace. This leads to preauth failure.
Cache the ssid from the beacon received as part of the
roam frame event before every roam auth offload event
and use that ssid for external auth events to userspace.
Change-Id: I634992baf0c98054897707aaf3b1265e17d46f04
CRs-Fixed: 3262859
Add sysfs entry to configure status and dscp values
used by application for regular traffic and last packet
to mark traffic end.
Change-Id: Ib0e0aaf64e24da3b402b695840850b01c19a4991
CRs-Fixed: 3207451
Add ucfg APIs to set/get feature status and dscp
values and structure to store values
Change-Id: I839c89696581b8aefd873a120d938a5cbbc32899
CRs-Fixed: 3255692
If particular channel's last scan time is less than the last_scan_ageout
threshold, skip that channel from ACS scan frequency list.
This change optimises the ACS scan time by reducing the number of
channels in ACS scan request to firmware.
Change-Id: Id81815035a89039ef1f492a622c5d89cb4aa298e
CRs-Fixed: 3239387
Reorder the BTM logging according to the below
scenarios:
Scenario 1: Roaming to AP2 and BTM query is sent to AP2.
1. Connected to AP1.
2. <Low RSSI> triggered roam to AP2. Successful roam to AP2.
==== Roam stats event 1 with full TLV case with AP1
(scan_type == partial, roam_trigger = low rssi) ====
3. BTM query to AP2 after 1sec.
4. BTM req from AP2
5. BTM resp to AP2
==== Roam stats event 2 with full TLV case having AP2 BTM info
(scan_type ==NO_SCAN, roam_trigger = BTM) ====
Scenario 2: Connected to AP1, send BTM query to AP1
==== Roam stats event 1 with full TLV case having AP1 BTM info
(scan_type ==NO_SCAN, roam_trigger = BTM) ====
Scenario 3: BTM request initiated by the AP
1. Connected to AP1.
2. AP1 sends BTM request with disassoc imminent set.
3. Roam scan is triggered.
4. BTM response to AP1
5. Roam to AP2.
==== Roam stats event 1 with full TLV case having AP1 BTM info
(scan_type = full or partial, roam_trigger = BTM) ====
6. Send BTM query to roamed AP2.
7. AP2 sends BTM req.
8. Send BTM resp to AP2
==== Roam stats event 2 with full TLV case having AP2 BTM info
(scan_type=NO_SCAN, roam_trigger = BTM) ====
Change-Id: I4571cbe75397fb795046abe8711571264ed98a65
CRs-Fixed: 3260060
In the api cm_roam_mgmt_frame_event(), TX status is sent
without conversion to the userspace resulting in
wrong value of tx status during logging.
Correct this by converting the tx status value before
sending to userspace in order for userspace to properly
evaluate the tx status.
Change-Id: Ie4b6b8bff5e8b9c88edfaf303ce6a4ae370edd67
CRs-Fixed: 3250473
Currently in peer assoc, MCS rates are filled on basis of on-channel
TDLS connection BW. For cases such as TDLS offchannel on 6 GHz, the bw
can go till 160 MHz and in peer assoc those MCS rates for bw 160 MHz
should also be filled. As fix, if offchannel 6 GHz is supported then
fill the MCS rates for 160 MHz BW as well.
Change-Id: I00605bd66f403f0171e0f81b9108d6460ef109c5
CRs-Fixed: 3250792
When build assoc req, partner link has no pe session yet, so it just get
original ht cap from mac->mlme_cfg->ht_caps.ht_cap_info, which is got from
CFG_HT_CAP_INFO with default 364, BIT1 supportedChannelWidthSet is 0.
Assoc link has no such issue, since pe session is created when build
assoc req, pDot11f->supportedChannelWidthSet is reconfiged in
populate_dot11f_ht_caps.
Change-Id: Iec7b34d8364618948e9ac2a50462bcb4ede13433
CRs-Fixed: 3267261
Currently host starts the start_rso_stop_timer when it sends roam
stop related commands to firmware. And tries to stop the timer when
it receives roam event with reason ROAM_REASON_RSO_STATUS or
ROAM_REASON_HO_FAILED. Since firmware also sends roam event with
above reasons when host configs other roam parameters. This causes
host confused about whether to stop the timer or not.
To resolve this issue, add one more condition
roam_event->notif_params == WMI_ROAM_SCAN_MODE_NONE
Change-Id: Ia24d5bba1e35bc4102951adcafc76edda7769d35
CRs-Fixed: 3267506
If DUT only supports one link, it does not set the partner info
in the probe request. But it tries to match the partner info when
it receives the ML probe response no matter the peer supports more
then one link. It causes the matching failure if peer supports two
links.
To resolve this issue, using the DUT's num_partner_links to control
the iteration.
Change-Id: I0e30cf1b566641dfd7eff5678f8d46be99005d51
CRs-Fixed: 3265252
Add support to populate MLO assoc request with EMLSR
subfields like EMLSR padding delay, transition delay that
are extracted from FW during ext service ready event.
Change-Id: Id5def8da6bef92ff6bf2101a7b3e0d8fb0cf3050
CRs-Fixed: 3262939
This reverts Change-Id: Id1f5172a7fc1792c83c8c1c20127de815f7e4980
to avoid deadlock between cnss_pm_notify and unregister_pm_notifier
during soft driver unload.
Change-Id: Ic82db9dc0ca9d6686df99926335af27abc61cdb5
CRs-Fixed: 3266366
The dynamic MAC address update for non-MLO netdev is not
updating the self-peer MAC address which is causing
reference count leak during VDEV destroy.
For non-MLO netdev always update the self-peer MAC address
and for MLO netdev, update self-peer MAC address only
on the link adapter which is associated to MLD adapter.
For non-MLO netdev, send MLD MAC address as NULL in the
request sent to FW set MAC address.
Change-Id: I37a4fdaef0fb8b274769295fd8a920ebd45ffae4
CRs-Fixed: 3265957
Based on new requirement add an INI to enable/disable
get wifi features support.
Change-Id: I45ec54ac781724c2eaffa657f203db3abae2b74e
CRs-Fixed: 3266164
Based on the new requirement, add support to get requested
feature set info from different feature components.
Change-Id: I1bfc097c8ae8c4ab678d4dc07b7932cf3272d851
CRs-Fixed: 3262868
Currently driver creates sysfs features file if fw provides
file name in oem data event, but it tries to free without
any condition, this leeds to an unexpected behaviour if
fw does not provides file name in oem data event.
To address above issue, free wifi features sysfs file only
if fw provides file name in oem data event.
Change-Id: Ida6a69846638ba6edd5d0e5322323ef66433b364
CRs-Fixed: 3266097
Currently host driver creates wifi kobject based on dump in
progress feature flag, because of this, other features can not
use this wifi kobject.
To address this issue, create wifi kobject if platform driver
does not creates this.
Change-Id: I0ce3616cd229e58de5ab929555be6e1a9eb09c6a
CRs-Fixed: 3262667
Enable the feature to replenish rx buffers in a
separate thread and attach them in the NAPI context.
Change-Id: Iee54bb49b4592003265e2543550dab13f9b9640a
CRs-Fixed: 3266638
When radar is detected in EasyMesh agent, it should update its current
operating frequency as disallowed due to radar detection to EasyMesh
controller through channel preference report frame.
Indicate operating frequency to SON when radar is detected, so that
EasyMesh agent can notify it to EasyMesh controller.
Change-Id: I83de68c8a3aecd3588d14f59081d6676304093b9
CRs-Fixed: 3262578
To avoid unmeaningful roaming, when low RSSI trigger,
only roam when rx linkspeed is also bad.
Steps:
1. F/W indicates feature supported by:
wmi_service_linkspeed_roam_trigger_support
2. App sets vdev rx link speed threshold by vendor cmd.
3. Bus_bw_work gets rx link speed from data path periodically.
4. If found rx link speed change from good to poor, or poor to good, send
to F/W.
5. F/W low rssi roaming is triggered only when both RSSI and link speed are
poor.
Change-Id: I56829e42b26e407dd8e989a870aee2b3ea406232
CRs-Fixed: 3261996
To avoid unmeaningful roaming, when low RSSI trigger,
only roam when rx linkspeed is also bad.
Steps:
1. F/W indicates feature supported by:
wmi_service_linkspeed_roam_trigger_support
2. App sets vdev rx link speed threshold by vendor cmd.
3. Bus_bw_work gets rx link speed from data path periodically.
4. If found rx link speed change from good to poor, or poor to good, send
to F/W.
5. F/W low rssi roaming is triggered only when both RSSI and link speed are
poor.
Change-Id: I38c60c55cca80ad9c71fcffda6712ac5984daef0
CRs-Fixed: 3264981
After setting link speed threshold to low value like 10 Mbps by vendor cmd,
in bus bw timer, when find link speed above theshold, just change local
link speed state to good, not update global var dp_intf->link_monitoring,
so link_monitoring_cb is called periodically, message to update link
speed to good is sent to scheduler thread periodically,
WMI_ROAM_SET_PARAM_CMDID is sent to F/W periodically too.
To fix it, when find link speed state change from bad to good, update to
global var dp_intf->link_monitoring too. In next bus bw timer, find link
speed state keep good, don't send msg to update link speed again.
Change-Id: I3840e834a76465242face5b2529f004d1d277312
CRs-Fixed: 3266159
Add a debug print in wlan_hdd_main.c to to differentiate
between hard and soft driver unload.
Change-Id: Ia1f2c7d90e86c03e94a2ef20d8d7eef5acc316f0
CRs-Fixed: 3266415
Driver is able to get rates info per MSDU, which can
exclude special frames like ARP, DHCP, etc. This change
is to refill the rates info parsing by rateflags from FW,
including legacy rate, MCS, NSS, BW, preamble, GI, etc.
Change-Id: I129d5f0dc48758d1a92ac0c3622c1761cdae8286
CRs-Fixed: 3257425