Add 165MHz support to wmi_host_channel_width to keep in accordance
with the wmi_channel_width structure in wmi_unified.h
Change-Id: Ib8aea0bc725a1c43b8fb7510cf86da4633143f69
CRs-Fixed: 2463171
Clean up of CONFIG_MCL and optimise memory of peer_assoc_param
structure by use of bit fields instead of bool type
Change-Id: I4b06af69b7fd9af981a250c881d163ddb1f68fa7
CRs-Fixed: 2450763
Add WMI commands:
1) WMI_PDEV_PARAM_SET_MGMT_TTL
Enable/Disable/Set MGMT_TTL in milliseconds.
2) WMI_PDEV_PARAM_SET_PROBE_RESP_TTL
Enable/Disable/Set PROBE_RESP_TTL in milliseconds.
3) WMI_PDEV_PARAM_SET_MU_PPDU_DURATION
Set global MU PPDU duration for DL (usec units)
4) WMI_PDEV_PARAM_SET_TBTT_CTRL.
Set TBTT CTRL value BITS 0 - 2
(refer to WMI_TBTT_CTRL_CFG enum)
Change-Id: Iedda500fdb7bdedcc11fef31f0b29ad3f1812a43
CRs-Fixed: 2415745
Channel RF info contains metrics that signify the throughput
availability of all the supported channels. This information
is sent in as discrete TLVs (per channel) as part of the WMI
extended service ready event.
Each TLV contains the frequency, bandwidth represented and
the actual channel metric.
Add support to read the above-mentioned TLVs from the extended
service ready event
Change-Id: If947e179c1ca41466997cc48840a8d36b6236780
CRs-Fixed: 2441921
Add interface API to send reject ap list to FW,
also add the blacklist manager UMAC, and QDF component
for the same.
Change-Id: I826e537683441762043003d71dc2b79ceebebbcb
CRs-Fixed: 2460770
Implement the interface to transfer the info between
host driver and firmware about the ap which has interop
issues with the DUT. It is detected by firmware and
forwarded to user sapce for persistent storage. User
space configs these APs to firmware when the DUT
starts up next time.
CRs-Fixed: 2425197
Change-Id: I3857d2a605baa2673af333a7a0412f1690b59769
Convert host param id to target param id using arrays
instead of switch case. This enables removal of CONFIG_MCL
compile time macro and use specific macro
ENABLE_HOST_TO_TARGET_CONVERSION for conversions
Change-Id: I223141d47e92521e6600fc0e160ab2deef43d7d2
CRs-Fixed: 2418030
Currently, If invalid pdev_id is passed to
convert_target_pdev_id_to_host_pdev_id it results into Assert.
Fix is to remove QDF_ASSERT(0) in convert_target_pdev_id_to_host_pdev_id.
Return WMI_HOST_PDEV_ID_INVALID if convert_target_pdev_id_to_host_pdev_id
receives invalid pdev id.
Change-Id: Icb6a75c3f3664596fbba4532f5b29ed626ba28f2
CRs-Fixed: 2428787
The target advertises adaptive 11r service capability over
WMI_SERVICE_ADAPTIVE_11R_ROAM. Enable RSO for adaptive 11r
connection only if firmware advertises this service capability.
Change-Id: Iea78b63d19d1177fe092fc9916ddc5280d00de4b
CRs-Fixed: 2441975
With this feature, using appropriate commands, link layer, network layer,
transport layer and some of the application protocols can be tagged with
the user provided tag values for easier identification of protocols. The
supported protocols today are as follows.
ARP, DHCPv4, DHCPv6, DNS over TCP (v4), DNS over TCP (v6), DNS over UDP
(v4), DNS over UDP (v6), ICMPv4, ICMPv6, TCPv4, TCPv6, UDPv4,
UDPv6, IPv4, IPv6, EAP.
Receive packets are tagged by hardware. Tags are applied after the first
matching rule. Hence it is recommended that the rules are
programmed in such a way that tags are configured from application layer
to data link layer to get expected results.
Change-Id: Ibdc2bd2b78234f482074955e89fb93f05988eaca
Host driver sends pmk key over psk_msk buffer on the
wmi_roam_11r_offload_tlv_param fixed param.
For SHA 384 based FT AKMs, the xx_key length will be higher than
32 bytes. So new psk_msk_ext array is introduced at interface
to sent the remaining 16 bytes.
Fill the last 16 bytes of xx_key to psk_msk_ext for FT
sha384 based AKMs.
Also add support for FT-SAE, FT-SuiteB and FT-FILS firmware
service capability also. If the firmware doesn't advertise
support for FT-SAE or FT-SuiteB or FT-FILS, firmware roaming to
that AP will not be enabled.
Change-Id: Ibe64fb346a24962e59ca461c3099270d8766adc5
CRs-Fixed: 2400773
Add command support for NAV register update and
configuration of the threshold value.
Change-Id: Idbdb030f75dc98db652e6b53604a3ceaaff1106b
CRs-fixed: 2389803
The below ini values are added to enhance roaming in firmware:
1. "minimum_btm_candidate_score"
2. "roam_scan_inactivity_time"
3. "roam_inactive_data_packet_count"
4. "roam_scan_period_after_inactivity"
5. "btm_roam_score_delta"
6. "idle_roam_score_delta"
7. "btm_roam_trigger_min_rssi"
8. "idle_roam_trigger_min_rssi"
The values of "roam_scan_inactivity_time" ,
"roam_inactive_data_packet_count" and
"roam_scan_period_after_inactivity" will be sent over the
WMI_ROAM_SCAN_PERIOD wmi command.
"minimum_btm_candidate_score" value will be sent in the
WMI_ROAM_BTM_CONFIG_CMDID command.
The values of "btm_roam_score_delta", "idle_roam_score_delta"
"btm_roam_trigger_min_rssi" and "idle_roam_trigger_min_rssi"
will be sent over the WMI_AP_PROFILE command in new tlv.
Add WMI support to send the introduced ini values to
firmware.
Change-Id: I117ed7490d14730423654513f416115822230486
CRs-Fixed: 2435676
Send idle roam trigger monitor command to firmware based on
the SET SUSPEND mode command received from the user space.
The set suspend mode value sent will be used by firmware as
one of the parameters in determining if the device is in
idle state. When set suspend mode is 1, device is not in
idle state else the device is considered idle if idle state
data packet count, idle rssi, inactivity time criteria are met.
Add changes to send the idle trigger monitor value over the
wmi command WMI_IDLE_TRIGGER_MONITOR_CMDID.
Change-Id: I34632814a1e653fa87cfbab90c72ee1622dfd63c
CRs-Fixed: 2436222
Add wmi service bit: wmi_service_sta_plus_sta_support.
When this wmi service bit is set, firmware shall support simultaneous
connections on multiple STA interfaces.
If firmware doesn't set this service bit and if the host driver
doesn't check this bit before second STA connection, then firmware
shall reject connection by returning failure in VDEV_START_RESP_EVENTID.
Change-Id: I9e20911af5372b651586f25d9f13e4364c672435
CRs-Fixed: 2427202
Add support for new wmi command WMI_ROAM_DEAUTH_CONFIG_CMDID to
send disconnect roam trigger parameters and the new wmi command
WMI_ROAM_IDLE_CONFIG_CMDID is used to send the idle roam trigger
parameters.
Update the idle roam and disconnect roam parameters and send them
on the new wmi commands over wmi.
Change-Id: I57acb90266d506d37dcbb58d50ef23fadc439e46
CRs-Fixed: 2431502
Many of the fields in struct add_ts_param use camelCase which is
frowned upon by the Linux coding standard, so rename them to be
compliant.
Note that change I829ad0abb864f0a05047894bab9977d8529074dc
("qcacld-3.0: Align with the refined struct add_ts_param") is
interdependent with this change.
Change-Id: I421b670b86a7e1cecbe5a2686efefbbb6c455267
CRs-Fixed: 2433927
Add change to support sending AMPDU/AMSDU custom aggregation
size to FW using converged MLME and target_if framework.
Change-Id: Icf665e3bf30c5ef5903342264e89776611c7774a
CRs-Fixed: 2430278
Currently capability information and RX multicast broadcast
packet count of the connected peer is not getting
cached.
Add support to cache the capability info from assoc request and
RX multicast broadcast packets from FW.
Change-Id: I105e055b1e440852e8e6b508c25e45f79db2d062
CRs-Fixed: 2409521
Fix the typo for PROFILE_IDX and also add WMI macros
for short slot time update under MLME.
Change-Id: I3c09a7f01029af0f075086166be1c85bd1d7de34
CRs-Fixed: 2412160
If both INI and FW capability is set,
enable capability flag in twt enable command.
Change-Id: I1c070256c4b672b09a1323665fc5a2f166f951fb
CRs-Fixed: 2423718
Modify the comment to avoid the use of restricted words in the
wmi_unified_param and service_ready_param
Change-Id: I50f474bdeed6cfdfd05f0c4bff5bb0c0ed56127f
CRs-fixed: 2427333
'hecap_info_internal' has been added to indicate support for 11ax
proprietary PHY features: 400ns SGI support in 1X/2X LTF and 2X LTF
support in 160/80+80MHz modes. Added the corresponding peer assoc
and service ready parameter.
Change-Id: I34ead9278d8d84ecbc5525867f1584f8c8a4d7b8
CRs-fixed: 2414163
Add support to get the various Coex data from the debugfs.
This commit adds the support to get the various coex data:
* COEX STATE
* COEX DPWB STATE
* COEX TDM STATE
* COEX IDRX STATE
* COEX ANTENNA SHARING STATE
The specific state information can be read via the debugfs.
Example to read the COEX STATE logging:
sm6150:/ # echo "1" > /d/wlan/mws_coex_status_info
sm6150:/ # cat /d/wlan/mws_coex_status_info
Reading for command MWS_COEX_STATE.
vdev_id = 0
coex_scheme_bitmap = 0
active_conflict_count = 0
potential_conflict_count = 0
chavd_group0_bitmap = 0
chavd_group1_bitmap = 0
chavd_group2_bitmap = 0
chavd_group3_bitmap = 0
Change-Id: I92272ad7edf44df22730ac0fa992d876840ba632
CRs-Fixed: 2413955
Currently, whenever roaming is triggered after a successful roam scan
firmware sends a BTM query to current connected AP when it is 11v
capable. Driver completes roaming with candidates received as part of
BTM request from AP. STA respond to AP with BTM response after
successful initiation of roaming.
Now the requirement is driver could send "BTM query with a preferred
candidate list" after a successful roam scan for some roam scan reasons
like PER, LOW_RSSI, HIGH_RSSI, MAWC, DENSE etc. Preferred candidate list
is obtained as part of roam scan based on firmware bss scoring logic.
New ini "btm_query_bitmask" is introduced to configure the bitmask for
roam scan reasons which is sent to firmware as part of RSO start via
wmi btm config cmd. Fw sends "BTM query with preferred candidate
list" only for those roam scans which are enabled through this bitmask.
New INI: btm_query_bitmask
Min: 0
Max: 0xFFFFFFFF
Default: 0x8
Bitmask : 0x8 (LOW_RSSI) refer enum WMI_ROAM_TRIGGER_REASON_ID.
Add a new parameter "btm_query_bitmask" into wmi btm config
command in order to pass a value of btm_query_bitmask to fw while
BTM offload
Change-Id: I1b0a973bc5b2b50773aa82c7f8cc1dd080d66d86
CRs-Fixed: 2408112
Add the necessary support for peer_extd2 stats in the WMI layer. The
stats contain rx_bytes, rx_err and rx_mpdus
Change-Id: I9f787e28a8e128471489c8f47ac03fef77dae930
CRs-Fixed: 2395636
Convert pdev and vdev param conversion array to pointers
and allocate them only if conversion is required.Use run-time
NULL check of pdev and vdev param pointers for conversion
and remove CONFIG_MCL compiler flag.
CRs-Fixed: 2393422
Change-Id: Ica1c81f5f3c3a4b7e31dcb70c63471898c36933d
Add Diag log support for logging cold boot calibration
data sent by firmware via cold boot cal wmi event.
Change-Id: I932fd5f87667498b77ee13ca5b3ce08d6001cdf0
CRs-Fixed: 2413451
Add modules and API's to issue command WMI_NDP_CMDID. This
command, for now, can request Firmware to terminate all NDP's
associated with the given vdev. Add module that extracts
event information from event WMI_NDP_EVENTID. This event acts
as a response to command WMI_NDP_CMDID, and carries NDP
related status information for the host. Extract mac_id from
the updated TLV of NDP confirm and schedule update events.
Add modules and API's to support new NDP command and event.
Change-Id: Ibf6312cb3669b5e62ada3f4ad852be87f14ae09f
CRs-Fixed: 2384535
There are multiple issues with the Link Layer Stats Unified API:
- struct ll_stats_clear_params and struct ll_stats_get_params both
incorrectly use the identifier "sta_id" to refer to a vdev_id.
- struct ll_stats_set_params has an unused "sta_id" field.
- Functions wmi_unified_process_ll_stats_clear_cmd() and
wmi_unified_process_ll_stats_get_cmd() pass the MAC address as a
separate parameter rather than adhering to the commonly used
unified signature: func(handle, param).
- Not all of the functions and data structures are correctly protected
by the WLAN_FEATURE_LINK_LAYER_STATS feature flag.
Refine the Link Layer Stats Unified API to address these issues.
This is co-dependent with Ifd7c8de2358121dae4752525ff57021a32be85d3
("qcacld-3.0: Use the refined Link Layer Stats Unified API").
Change-Id: Ifdc1fada55a559f3b3d0837ec20cceb653c45c40
CRs-Fixed: 2409293
In struct roam_scan_filter_params the legacy identifier session_id is
currently used to identify the vdev of interest. To align with the
converged nomenclature rename this to vdev_id.
This is co-dependent with Ibeab45d4badbeda6baec6a53ab4ec561dd70ccd9
("qcacld-3.0: Use vdev_id in roam_scan_filter_params").
Change-Id: I16679abc7b3b61e6814fc1b0f13c6bc0e0fb7a39
CRs-Fixed: 2407402
The unified WMI struct used to support the STA keepalive feature has a
few flaws:
- It is poorly named. Struct sta_params is a very generic name for a
struct that has a very specific purpose.
- It is poorly designed. It utilizes pointers to the IPv4 and MAC
addresses rather than support having those addresses within the
struct itself. This prevents the struct from completely representing
the payload, which is required if we want to utilize this struct in
the converged UMAC.
To resolve these issues rename and redesign the struct.
This is co-dependent with I20cf9f54a7ec920a90575ffd73c51708414d46a0
("qcacld-3.0: Use the redesigned STA keepalive interface").
Change-Id: I2a401fa6934f05555cb3c30088af62cfbc9a3c59
CRs-Fixed: 2404895
In struct plm_req_params the legacy identifier session_id is currently
used to identify the vdev of interest. To align with the converged
nomenclature rename this to vdev_id.
This is co-dependent with I3c5192d31caa05c8fe7157382680318b6671257f
("qcacld-3.0: Use vdev_id in plm_req_params").
Change-Id: I1554febcfb641059a82349aad904c54b62250111
CRs-Fixed: 2405067
In struct roam_offload_scan_rssi_params the legacy identifier
session_id is currently used to identify the vdev of interest. To
align with the converged nomenclature rename this to vdev_id.
This is co-dependent with Ifb2282b8977ad1fb999e8460c0d276343793a0c6
("qcacld-3.0: Use vdev_id in roam_offload_scan_rssi_params").
Change-Id: Ifbbca30b9aca9688931ac0f4e4f703c28ad0ad32
CRs-Fixed: 2404094
In struct rssi_monitor_param the legacy identifier session_id is
currently used to identify the vdev of interest. To align with the
converged nomenclature rename this to vdev_id.
This is co-dependent with Icf5d5797eed143837c57a2b7d9a6c9b1b63387e9
("qcacld-3.0: Use vdev_id in rssi_monitor_param").
Change-Id: I6087c5018af98a84e7e784527000448ace7fac6e
CRs-Fixed: 2404081
In struct hidden_ssid_vdev_restart_params the legacy identifier
session_id is currently used to identify the vdev of interest. To
align with the converged nomenclature rename this to vdev_id.
This is co-dependent with Ie8c426aff1a8a1e7f75199c8cf7c761f1a893a05
("qcacld-3.0: Use vdev_id in hidden_ssid_vdev_restart_params").
Change-Id: Iea0bf0a3dcae9186cce4eb176b974515fd0d7624
CRs-Fixed: 2403934
Enhance target_if/mlme/vdev_mgr by addressing
review comments and update response handling
APIs to handler timers and response bit maps
as expected
Change-Id: I8a5bf3f2931f0c36a367dfebfc898ed2621f3516
CRs-Fixed: 2397184
In struct gateway_update_req_param the legacy identifier session_id is
currently used to identify the vdev of interest. To align with the
converged nomenclature rename this to vdev_id.
This is co-dependent with I2d24a54e80931a944580e968a841679d2da7b2a1
("qcacld-3.0: Use vdev_id in gateway_update_req_param").
Change-Id: I84b28aa734b570f0a7834fbac7d27e9c66b8b026
CRs-Fixed: 2404012
As part of the original TDLS componentization the legacy typedef
tTdlsPeerStateParams was replicated as qca-wifi-host-cmn struct
tdls_peer_state_params. Subsequently when the TDLS component was
relocated back to qcacld-3.0 this struct was replicated again as
struct tdls_peer_update_state in the qcacld-3.0 TDLS public structs.
Unfortunately this left the driver with three different data
structures which serve the same purpose. Not only is this pointless,
but due to the way in which these structures are used there is an
implicit requirement that they be exactly identical. Further
complicating matters is the fact that these three structures each have
embedded structs which are also replicated. This approach is very
fragile since any change to any of these structs must be replicated
across the entire set. To align with the converged software
architecture and to improve code maintainability exclusively use the
TDLS public structs.
Change-Id: Ifc976815fea57afae86cc91b91c6b48f70b2a9a7
CRs-Fixed: 2395340