Currently, MLO flags are cleared before issuing disconnect on
the link vdev when DUT roams to a single link ML-AP. But these
flags get cleared as part of disconnect handler and not supposed
to be cleared anywhere else.
Clearing these flags before issuing disconnect on link causes
sending disconnect done indication to kernel as the flags
got cleared, which make the vdev as non-MLO. This race condition
is possible when a disconnect is queued from userspace on
link vdev while one disconnect gets processed on it(due to
single link roaming).
Change-Id: I8206c1b8197bf26ad852eafb631c8585bc749846
CRs-Fixed: 3439175
For TDLS in MLO case, when send addba response, it needs to
use MLD macaddr and set action code, then the frame can send
out properly and be received by peer.
Change-Id: I93b46ad88738fc2ee9c88bd52ab5d3a86ead3cd7
CRs-Fixed: 3462062
Since for MLD device, it can only choice one link for tdls,
add logic like this:
1\ As initiator, it needs to send discovery request on each
link, before send the frame, it needs to force active the link;
2\ As responder, it sends the discovery response the link id,
before send the frame, it needs to force active the link;
3\ For other tdls management and tdls operation, it needs to
find out which link(vdev) is used as tdls link first.
Change-Id: I64e27219eb6c6b3fef62e541423aa8e5d84b1560
CRs-Fixed: 3439568
In some build environments the length of the C compiler command line
exceeds the maximum length of the underlying shell, resulting in the
shell reporting: Argument list too long.
Kbuild has many definitions which add -D switches to the C compiler
command line to define macros to be used for conditional compilation.
Most of these are set conditionally, but there are some that are set
unconditionally.
As one step in the process of shortening the command line, refactor
the macros that are set unconditionally out of Kbuild, and put them in
a separate .h file which is then included in every build. As long as
the added -include switch takes up less room than the sum of the -D
switches, then this will result in a shorter command line.
Change-Id: I95e0e8237d15dee58e519ea526a74c52eeb7dbd2
CRs-Fixed: 3460064
TWT concurrency update is called before ndp connection is added to
policy_mgr count. TWT concurrency_handler reads incorrect count which
causes wrong mode to be checked. Fix is to call TWT concurrency
update after NDP entry is made in the policy manager.
Change-Id: I7f259885f7402ab018ff7c7cd020bb3f9298dba1
CRs-Fixed: 3454000
Add optimization to select the max possible band width
when do SAP LTE channel avoidance channel change.
Change-Id: I82745d47c55ae42f59691a9634a34b0cff2b4e36
CRs-Fixed: 3440166
Host received deauth and roam sync back-to-back after WoW, sent vdev
RSO_DISABLE before RSO_STATUS event, F/W assert.
1. Host received deauth event, limSmeState went out of link est state, sent
async event of cm_send_sb_disconnect_req.
2. Host received and handled roam_sync, CM_RSO: vdev0:
[ROAM_RSO_ENABLED(2)] --> [ROAM_SYNCH_IN_PROG(5)], roam sync failed since
not in link est state.
3. Host aborted roaming, ent back to CM-VDEV-0: CONNECTED, removed roaming
cmd from serialization queue.
4. Host sent RSO stop to F/W.
5. Host handled cm_send_sb_disconnect_req, dropped RSO stop during roam
sync, called cm_disconnect_continue_after_rso_stop without waiting for
RSO_STATUS event.
6. Host sent vdev RSO_DISABLE and vdev stop before received RSO_STATUS
event, F/W asserted.
To fix it, if host roam sync failed, need wait for HO_FAIL event and handle
it before handling other cmd, can't remove roaming cmd from assoc vdev
serialization queue to unblock other pending cmd before handling
HO_FAIL, just send assoc link RSO stop to F/W one time with
REASON_ROAM_SYNCH_FAILED, then wait for 2 events: FW_ROAM_EVT RSO status
and HO_FAIL. then handle HO_FAIL, at last remove roaming cmd, unblock other
cmd and trigger disconnect.
Change-Id: I03dd3ed21007ee67613c2d90b5567348c240f375
CRs-Fixed: 3445233
For MLD case, it may receive two discovery response frames if
peer is MLD device. In this case, it needs to check the response
frame and make a decision about which vdev is used for TDLS
vdev.
Change-Id: I3d7c3343aef2d6843b362fca191caef8b982d3f8
CRs-Fixed: 3439577
Set parameter add_sta_params->eht_capable accordingly whether
the peer STA support it or not.
Change-Id: Ib3664be74ece59804321e187fea889610c0a2a86
CRs-Fixed: 3454661
Reserve log like "[18:11:32.086000] [ROAM_TRIGGER]: VDEV[0]"
for common roam and special roam.
Some customers are used to get log from serial port, reserve
this log can better support debug.
Change-Id: I79565c87cfcf42ae5de3d6895c27666d2676370b
CRs-Fixed: 3451003
Update tdls vdevs to 2 if fw 11be capable. Add
WMI_SERVICE_11BE_TDLS_SUPPORT update num tdls vdevs
to 2 for firmware while init_cmd_send_tlv.
Change-Id: I12cced5718cb189ce1f96d204ac64108ccef5ca3
CRs-Fixed: 3436013
Do not indicate channel switch on link dev, because there is no
links information in wireless_dev of link dev. Links information
is saved in wireless_dev of assoc dev through cfg80211_connect_done.
Indicate channel switch on MLO assoc dev, otherwise channel switch
event will be dropped.
Change-Id: I17b861cacafa2bd98c9d50c45e5fb65ba2a30eef
CRs-Fixed: 3447351
The IPA component has now been moved out of
the kernel. This change supports WLAN dependency
on IPA to access the IPA header files and
exported module symbols.
Change-Id: I0eb1b9ca49108cf27cec2895696d2517acb7d18e
CRs-Fixed: 3458960
Currently in CSA path if the target channel is 6 GHz, it is not
checking the keymgmt used and allowing the open security to be
configured.
This changes add check for open security for 6 GHz if check_6ghz_security
ini is enabled.
Change-Id: Ie26ff05dc7c7a97a48398c2a81b091f66c6bd39e
CRs-Fixed: 3413618
Before stop pre cac adapter, need call wlan_hdd_stop_sap to stop sap vdev
first.
Change-Id: I108a42932f2631d901e72569f2878d08026b3ea4
CRs-Fixed: 3441589
Currently the RX rates stats is obtained from data frames from
driver. There is no data frames for driver to get rates stats
for a few seconds after ASSOC/REASSOC/ROAMING, so driver has to
gets rates stats by parsing the rateflags and the raw_rate from
FW until a data frame is received. However, the raw_rate from FW
is sometimes inaccurate after ASSOC/REASSOC/ROAMING. This is hard
to be seen since the period between ASSOC/REASSOC/ROAMING and
receiving a data frame is not long. To address this issue, using
TX rate stats to figure out max rate before receiving a data frame.
Change-Id: I83613447f56fc892ec6d20527ea1a872778afae1
CRs-Fixed: 3449455
Use the following HE caps based on the target support
on the current operating band:
a) Ng=16 for SU feedback support
b) Ng=16 for MU feedback support
c) Codebook size for SU
d) Codebook size for MU
Change-Id: I2dbc50d2bdeaadf97e1a0638eb53cea0d9a69e30
CRs-Fixed: 3457504
Currently rtt responder FW cap is checked while sending
the rtt initiator enable disable vdev param command
to the FW which is wrong.
To address this issue, check the rtt initiator FW cap
when host sends the rtt initiator enable disable command
to the FW.
Change-Id: Ib200d83bc91d791713eca91733ee2acc1968ac20
CRs-Fixed: 3458526
Add gActionOUIDisableDynamicQosNullTxRate to control FW's dynamic qos
null tx rate feature.
Some APs sometimes don't honor Qos null frames with some specific rate.
This ini will disable dynamic qos null tx rate feature for specified
APs.
Change-Id: I1690c14142c93e8456705183c9e12c41c20f3a4a
CRs-Fixed: 3450104
Currently host driver doesn't fill peer mac address
per ml vdev for station stats request as part of peer
stats request hence incorrect stats sent to userspace.
To address this issue, save peer mac per ml vdev in
request info structure.
Change-Id: Iebb1b810e112743602607e31d779be2ba1d48f90
CRs-Fixed: 3450665
Rename policy_mgr_is_sap_allowed_on_indoor() to
policy_mgr_is_sap_go_interface_allowed_on_indoor() since
it is common between SAP and GO. Cleanup the API as well.
Change-Id: I8380bd81c5050e9f12c00fff830455f14135c2b4
CRs-Fixed: 3423703
Send QMI misc request message to WFDS server and wait
for response before cleaning up the resources pertaining
to WFDS server on LPASS.
Change-Id: I24bc2295c5a625365a6da95be697c46b08f8b6b7
CRs-Fixed: 3448838
Add support for sending QMI WFDS misc request to QMI
server on Direct link deinit.
Change-Id: I611625d83719c0f8a7dfbef1d3c8328cb618ef7f
CRs-Fixed: 3454630
Since for MLO there may be several link connections, for TDLS
using api policy_mgr_get_connection_count_with_mlo() to replace
with policy_mgr_get_connection_count() to follow the original
logic.
Change-Id: Ic13c89f2e834196c01ca6966329cbd0d1552f292
CRs-Fixed: 3436049
Inorder to send out the tdls management frame properly,
1\ Make sure to use assoc vdev id when transmit frames;
2\ TDLS discovery response is sent to peer directly;
3\ TDLS link identifier IE is using mld mac address.
Change-Id: Ib34b6a5070e0acdf41668f44e5b5250761eb936e
CRs-Fixed: 3439343
Wrong debug ID is used (WLAN_OSIF_ID) to increment the ref
count of the pdev object when sending tx params update event.
This is causing crash as ref count is decremented using
different id, WLAN_DP_ID.
To fix this, use WLAN_DP_ID to get the pdev object and increment
the ref count of right debug id.
Change-Id: If20fc1a4e4c2a37287f7703aa70bb8dc556f0125
CRs-Fixed: 3453570