Offload TX data packets such as ARP response, EAPOL during roaming are
sent by firmware through HTT msg if packet capture mode is enabled.
Whenever any such packet is received via HTT msg, host inspects the
ether type of the packet and matches with the TX filter set by user
via vendor command. If the ether type matches with the TX filter set
by user, then host forwards that packet to packet capture mode interface
otherwise, drops it.
To inspect the ether type of any packet, host uses generic API which
expects packet to be in SKB format. Currently, whenever any offload
TX data packet is received in HTT msg, host wrongly passes the buffer
received in HTT msg instead of SKB to APIs expecting SKB buffer.
This leads to undefined behavior.
So, to fix above issue, whenever any offload TX data packet received,
first allocate the SKB, copy the payload buf of HTT msg which is TX
packet to SKB data and then pass that SKB to the generic APIs to get
the ether type.
Additionally, this change fixes the minor logging error.
Change-Id: If09d49d8a1dcc04ca81454fc262bb5789a0f56be
CRs-Fixed: 3613594
User can set following combination of configs in vendor command for
packet capture mode:
1. PKT_CAPTURE_MGMT_CONNECT_NO_BEACON: to receive all mgmt frames but
no beacons
2. PKT_CAPTURE_MGMT_CONNECT_NO_BEACON + PKT_CAPTURE_MGMT_CONNECT_BEACON +
connected_beacon_interval : to receive all other mgmt frames and only
connected SSID beacons at particular intervals
3. PKT_CAPTURE_MGMT_CONNECT_NO_BEACON +
PKT_CAPTURE_MGMT_CONNECT_SCAN_BEACON: to receive all other mgmt
frames and beacons only during scan.
But with current condition connected SSID or scan beacons config will
not be sent to FW as host checks for PKT_CAPTURE_MGMT_CONNECT_NO_BEACON
config only. Also, on reception of any beacon, host checks for only
PKT_CAPTURE_MGMT_CONNECT_NO_BEACON and if it is set, host drops the
beacon which is wrong.
So, enhance the conditions to send config to FW as well as
remove the condition on reception of any beacon so that connected SSID or
scan beacons are forwarded to packet capture interface when connected
beacon interval config or PKT_CAPTURE_MGMT_CONNECT_BEACON or
PKT_CAPTURE_MGMT_CONNECT_SCAN_BEACON is set by user in vendor command
along with PKT_CAPTURE_MGMT_CONNECT_NO_BEACON config.
Change-Id: I246b175f1c88ed45214527880ba14cdc17bf8206
CRs-Fixed: 3604708
Currently driver uses iface name to get netdev when it processes
ndp responder request. There is a possibility that framework does
not know the iface name when it sends the error response.
if driver does not receive iface name it fails to get the netdev
and fails to perform the dsc operation, because of which driver
drops the ndp responder request command.
To address this issue, use wdev to get netdev instead of iface name.
Change-Id: Ie230f19dbd895f81a4730160cbc9a2de3cc3179d
CRs-Fixed: 3136089
AP advertises TPE IE Tx power as 8-bit unsigned int. STA
needs to convert it into an 8-bit 2s complement signed
integer in the range –64 dBm to 63 dBm with a 0.5 dB step.
Thus, halve the tx power received from AP's TPE IE.
Change-Id: Ibd3227a2f11f230b164af3c65a65f5e61879e25d
CRs-Fixed: 3313617
Currently, wakelock with timeout is acquired when psoc idle timer is
started to prevent suspend but it is not released when psoc idle timer
is stopped. So, in scenarios where wlan is turned off/on frequently,
psoc idle timer will be started and wakelock with timeout will be
acquired as part of wlan off but after wlan is turned on suspend will
not be allowed until wakelock timeout occurs as wakelock is not released
when psoc idle timer is stopped.
To allow suspend after wlan is turned on, release wakelock which was
acquired as part of wlan off in psoc idle timer start.
Change-Id: I85ad9ce4ae9618a88601295d2194b4033be88c2d
CRs-Fixed: 3578872
Whenever packet capture mode is enabled, all packets are forwarded
to host from firmware which causes frequent wakeups if WOW suspend is
allowed. This leads to flooding of WMI transactions due to WOW
suspend/wakeup and other WMI events due to packet capture mode over CE.
So, to reduce number of WMI transactions due to frequent suspend and
then wakeup due to enablement of packet capture mode, acquire a
wakelock and prevent runtime suspend whenever packet capture mode is
enabled.
Change-Id: I71b73e7327e14890dc8509b81b22e8b5611cbac6
CRs-Fixed: 3603566
Currently SET_DISABLE_CHANNEL_LIST command is used to disable
legacy channels only.
Update this command to accept 6 GHz channel input as frequency
along with legacy channels.
Change-Id: Id55493acfa115da059404af1cd3901e877e46632
CRs-Fixed: 3601196
As part of regulatory cleanup,
reg_cache_channel_state is removed.
So,use reg_cache_channel_freq_state to cache
regulatory channel list instead on
reg_cache_channel_state
Also, replaced Channel Number with Channel freq
in hdd_cache_channel_info()
Change-Id: I5625b8ef4e5173d8f0d03a189ec06144a60bad6a
CRs-Fixed: 2908014
In some scenario, it is required to receive every ARP/NS packet even
it is not to solicit address itself. So add this vendor attribute
configuration to enable/disable ARP/NS offload on fly.
On some platform, if target suspend to WoW mode, APF filter will drop
such ARP/NS packet in the front, so prevent runtime suspend happen
if disable ARP/NS offload. System suspend still allow in consideration
of potential power impact.
It only support on STA/P2P-Client mode device, and this configure is
optional, while default behavior is ARP/NS offload enable. It will
restore to default behavior if interface being closed.
Change-Id: Icd49e230024bc1ce51519cd9fafee9bc9f79f382
CRs-Fixed: 2974176
SAP is allowed to come up on SCC with a STA operating
in 6 GHz only if the STA is on a PSC channel in VLP mode.
Therefore, filter out all 6 GHz channels from the PCL if
the STA operates on any non-VLP mode. Also, in case of
VLP mode, filter out non-PSC channels.
Change-Id: I37d9a510db3647fc07858af99eb614ebe824cc78
CRs-Fixed: 3206471
If user configure to not use 40 MHz in 2.4 GHz, then avoid setting
40 MHz capability and use cb mode as
WNI_CFG_CHANNEL_BONDING_MODE_DISABLE for 2.4 GHz.
Change-Id: I4e9153e211e02f6b959e16dad4573c2b490cb215
CRs-Fixed: 3584510
When send assoc req frame, if the length for extended capabilities
IE is zero, but present field is non-zero, it will cause assoc req
frame malformed issue.
Fix is to set present field value to zero when the length for
extended capabilities IE is zero.
Change-Id: Ie8826e6cfb1fc3a44ee52115ad4482e040f2c38a
CRs-Fixed: 3085943
The 6GHz HE capability macros were backported from kernel version 5.8
into 5.4, so change the check for kernel version to simply check for
the macro definition itself.
Change-Id: I86a9dfa964356ba65bd21ffef802042d442356bc
CRs-fixed: 2960286
New checks have been added in userspace to verify the 6GHz HE
capabilities before allowing the connection. These capabilities
are not currently being shared by host. Add logic to send the
6GHz HE capabilities to userspace.
Also, add APIs to get capabilities from MLME component.
Change-Id: I3d2bbe0d87be6094b6fc74ce01d0e418873cbc6f
CRs-fixed: 2931130
User may set the ini param g_sta_sap_scc_on_lte_coex_chan=1 if SAP
is allowed to come up on unsafe channels. Currently, this doesn't
cover the below case,
1. SAP is enabled on a 5 GHz channel in a non-DBS platform
2. Concurrent STA enabled and connected it to an AP that's in
unsafe channel.
3. SAP doesn't move to the STA channel though the ini to enable
force SCC(gWlanMccToSccSwitchMode) is set and it's a non-DBS
platform as the target channel(STA channel) is unsafe channel.
Allow SAP to move to unsafe STA channel if the ini
g_sta_sap_scc_on_lte_coex_chan is set to true.
Change-Id: I3e2b8ae57e843a938e4799f473da87664dbabb85
CRs-Fixed: 3609503
Add sanity check for index with NUM_CHANNELS and pcl_sz
when add 2.4 GHz channel list.
Change-Id: I04ac1bcdb6720a4740be7c2f5e08f76b3c34d8c4
CRs-Fixed: 3025000
Skip the FISA aggregation and drop the frame if the reo destination
indication is zero in the packet TLVs.
Change-Id: I9bd02652bf321202f6b59e6da98fc6959ab93413
CRs-Fixed: 3426355
In populate_dot_11_f_ext_chann_switch_ann API, will read current country
code from mac context which is not have the updated country code.
So, read the current country code directly from regulatory API,
wlan_reg_read_current_country.
Remove unused variables mac->scan.countryCodeCurrent,
mac_ptr->scan.countryCodeDefault and tagCsr11dinfo->countryCode.
Change-Id: Ice64ef1be5b775125ff3bcacfcab7684c6833cad
CRs-Fixed: 3529808
For STA+SAP/GO concurrency support from GUI, In case if
START/STOP AP/GO request comes just before the SAE
authentication completion on STA, SAE AUTH REQ waits for
START/STOP AP RSP and START/STOP AP RSP waits to complete
SAE AUTH REQ.
Driver completes START/STOP AP RSP only upon SAE AUTH REQ
timeout(5 sec) as start/stop ap will be in serialization
pending queue, and SAE auth sequence cannot complete as
hostap thread is blocked in start/stop ap cfg80211 ops.
To avoid above deadlock until SAE timeout, abort the SAE
connection immediately and complete START/STOP AP/GO asap
so that the upper layer can trigger a fresh connection
after START/STOP AP/GO completion.
Change-Id: I96de1bb27dfc669ccf920a90cf86a3cb54e68354
CRs-Fixed: 3452943
The AP adds OMN IE in the assoc response, and changes
its operating channel width during association. The
STA must move to this new channel width and update it
to the firmware during peer assoc. Since, the STA
doesn't update the channel width properly, it leads
to retries in the higher bandwidth where the AP is
not currently operating.
The VHT channel width calculation in the host driver
is not equipped to handle the new VHT OP IE definition.
Differentiate the VHT operating channel width field in
the VHTOP IE based on the ccf1.
Change-Id: Ibc3dc91ecc091a307244e3e1359dfe9e4520f277
CRs-Fixed: 3205020
Due to limitation uCode always filling SGI as long in
rx_msdu_start_tlv.
This change is to update SGI for VHT Rx data packet which is
extracted from WMI_VDEV_SMART_MONITOR_EVENTID.
Change-Id: I5fcdc463ea2a6d83253e39cc377a2471aeb4e133
CRs-Fixed: 3459106
Currently for QCA_NL80211_VENDOR_SUBCMD_USABLE_CHANNELS vendor
command STA interface should be UP and running. During STA/SAP
concurrency when STA is disabled SAP cannot get the usable channels
from driver since STA iface is brought down by Wifi HAL.
These changes remove interface running dependency for get usable
channels vendor command.
Change-Id: I3760adda2ce258f428f2b803112ab25503e97b60
CRs-Fixed: 3517894
Currently, data rate for management tx packets is filled only as
1 or 6 Mbps which is wrong.
Sniffer expect data rate multiple of 2. Hence fill the data rate with
multiple of 2 for tx management packets which received from firmware
and converting into mbps.
Change-Id: I5dd6515804cd3751925af0992a30a7441ebf9bbb
CRs-Fixed: 3444177
When roaming has started and connect request from userspace
is received, disconnect is initiated as part of the connect
request and RSO stop->RSO Deinit is sent to firmware. But
before receiving the RSO stop, firmware posted the Roam Synch
indication to the host driver. While droping the roam
synch indication, the driver does abort roaming and as part of
that RSO state is changed to RSO enabled in connecting state.
Change the RSO state to RSO enabled only if roaming or roam synch
indication processing is in progress.
Change-Id: I7869d1a559884480708b9d1a493296a443364f0b
CRs-Fixed: 3089165
Hw mode change in progress is set after the set_hw_mode
command is queued in serialization. Its not reset in below
cases:
Active command timeout case, serialization command
cancelled case.
Before connect request is queued, if hw mode change is in
progress, there is 6 secs wait and if there is no hw mode
change response, connection failure. This causes subsequent
connection failures and there is no recovery.
Reset the wait for hw mode change event in serialization
command failure cases.
Change-Id: I716982f06198e9c3495685ddb158044778c4b1ff
CRs-Fixed: 3256424
In SAP due to intrabss forwarding, Tx ring update is going through
when WOW enable command has been sent to FW. This results in crash.
To fix this, set is_tx_pause flag when suspend sequence starts,
which will pause Tx ring HP update.
Change-Id: I81f25b8bfca917c95180c460fd932c0f75094c10
CRs-Fixed: 3295428
Currently, there is a race condition where packet gets
enqueued when WOW handshake is being done in parallel during
bus suspend resulting in assert in FW as Tx is aborted when
WOW command is received in FW.
To fix this, hdd_wlan_suspend_in_progress flag is set to drop
packets in SAP mode when APSS suspend is in progress.
Change-Id: I38a6a6bdf9858f627205f75f75f351f7debbb7f7
CRs-Fixed: 3227752