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
Currently there is no support to update tx stats for
non-qos frame. Update tx stats for non-qos data frames
Change-Id: Ib61dd6e3b0c676b5af806c4b1e5cca22ea6ffaa5
CRs-Fixed: 2421925
When polling mode is enabled, send completions for a
CE(host->target, ULpipe) for a particular service(WMI/HTC/HTT) are handled
only when recv happens in CE(target->host, DLpipe) for the same service.
Since for services like WMI there are multiple ULpipes(Eg. CE3 for
WMI<WMAC1> and CE7 for WMI<WMAC2>) and single DLpipe(CE2). Receive on a
DLpipe is the right time to poll for send completions on all ULpipes for
that service.
Change-Id: Ie2ac30d3db1bc85c888d714b782a894539e399ff
Memory optimize for QCS403 platform, 1x1 chip. Reduce CE1 htt data
dest ring buffer from 512 to 256, reduce CE2 wmi dest ring buffer from
128 to 64, reduce CE9 & CE10 desg ring buffer from 512 to 64, disable
CE11 pktlog. Note: this change only affect specific WLAN build config for
extremely saving memory, for debug purose, there is another build
selecting default WLAN config for reference HW.
Change-Id: I868e74b09cdb11df3dccaa3f9e051da55724983d
CRs-Fixed: 2432632
FW assigns the pdev_id to lmac_id mapping for each platform(HK, CYP, etc).
This information is passed on to host via WMI_MAC_PHY_CAPABILITIES tlv.
Instead of hard-coding the mapping again in host, use the info sent by FW.
Change-Id: I01ad81e97a1b4aa1f0fea3951f6e8285a0f0c039
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
Currently we are upadting sojourn stats for all tid.
but rate stats maintains stats for only data tids 0-7.
updating stats for tid value exceeding 7 is leading it to
assert.
Update correct tx rate, rx rate and sojourn stats.
Change-Id: Ib2f5791aa7b8e85aac6283c46f58ce7e821a559b
CRs-Fixed: 2428648 2429575 2429575
Refactor the code to move the serialization of
rx reorder queue setup wmi command to target-if
layer.
CRs-Fixed: 2431099
Change-Id: I6b383f5e875fec55c3586dfee576894f6eb35f73
qca6018 support max 80MHz.
Skipping the check to return success for 160 and 80_80.
So, these values can be updated from fw capabilities.
Change-Id: I3c846a343b74251521b978c4569204ad2f4aadcc
After NOL timeout, if ETSI PreCAC is supported, add the HT20 Channel
to ETSI PreCAC Required List. Also, move NOL detach after ETSI PreCAC
detach to avoid channels being added to ETSI PreCAC Required List when
NOL expiry happens after ETSI PreCAC detach.
Change-Id: I9cdb359eb6905f4f4cfb9d1c784865af0bf39119
CRs-Fixed: 2403489
Add command support for NAV register update and
configuration of the threshold value.
Change-Id: Idbdb030f75dc98db652e6b53604a3ceaaff1106b
CRs-fixed: 2389803
Presently even when the ready event legacy callback fails in
creation of the pdev, the error is not propagated correctly. This
can result in accessing the invalid memory.
Check the legacy cb return status and update wmi ready status to
false in case pdev creation fails.
Change-Id: Ia4f94154357debedc94b4b20e789bff80a4047f7
CRs-Fixed: 2426611
Support WDI 3.0 SW path intra-bss forwarding. Major
difference for WDI 3.0 is the metadata info passed
from ipa driver in skb->cb[].
Previously intra-bss fwd decision is done by FW and
it passes fw_desc to IPA where IPA driver passes onto
WLAN driver. Now for WDI 3.0, FW is not involved in RX
path and SW path intra-bss fwd decision has to be done
in wlan driver.
Change-Id: Ibc2246620490905fd992a2df31cc6f241cc63592
CRs-Fixed: 2432831
Currently when an RRM scan is issued for beacon report request from the
connected AP, we use the current scan country code to get the op class
table for the country.
However, the AP can specify which table to use in the country IE's 3rd
byte of the country field which is not parsed and stored in the scan
country code.
For RRM Scan for beacon report request, use the 3rd byte to get the table
number from the connected AP's beacon and if no table number is present,
then use the op class table based on the country code.
Change-Id: I0911ac908d1c71676f7c1450ab260eaa732ddcb9
CRs-Fixed: 2432662
Currently vdev deletion happens as a part of last
peer's unma and vdev creation happens in a different context invoked
by the upper layer in dp_vdev_attach_wifi3.
In a scenario when the old vdev is being deleted and a new one is being
created, with the same vdev id (e.g. P2p -> SAP transition), its
possible that the old and new vdevs co-exist in the pdev->vdev_list
at the same time. In such a case, the API (get_vdev_from_vdev_id) can
return the old stale vdev, even when a new vdev has been created. This
is not the expected behaviour.
Check for "delete.pending" flag before returning the vdev. If the flag
is set, skip that vdev.
Change some logging to dp_ logging functions.
CRs-Fixed: 2432430
Change-Id: Icadd84059dfbab12910678e5b24007010c15b6a8
Print OFDMA tx and rx rate stats received
from firmware as part of txrx_stats 9.
Change-Id: I081016480bdb0d161e33be7ee789497c43ad6cc0
CRs-Fixed: 2415731
The serialization active command removal can happen in two ways
1. Its through wlan_serialization_remove_cmd API
2. Command times out and command timeout handler is called.
In case, cmd times out and handler is called in scheduler
context and as part of the active cmd removal,
the active cmd is removed, and release cmd cb is called
which could delete the vdev(post last reference release).
Then as part of moving cmd from pending to active,
the vdev queues are null, and we see a panic.
We take a vdev reference, when timer for active cmd is started.
For active cmd removal through wlan_serialization_remove_cmd,
we release the reference when the timer is stopped.
To avoid vdev destroy, in case command times out,
and until the command timeout handling is completed,
we hold vdev reference from when timer is started,
until timer handler completes.
Change-Id: I16b6864f75e8bf354da6f8b16c3aaa6cf39d7ac7
CRs-Fixed: 2422422
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
1. Currently, mapping multiple rings to same interrupt
context is misleading as we cannot identify the
interrupt source. Assign umac reo and wbm release ring
processing under different interrupt masks.
2. Map error rings processing under one interrupt context
as they are not frequent.
Change-Id: Ia2c4de29b99d1e25af7e2ce3068132f5995a9a95
CRs-Fixed: 2434741
Add vdev id into vdev_set_param structure for sending
WLAN_MLME_CFG_MIN_IDLE_INACTIVE_TIME
WLAN_MLME_CFG_MAX_IDLE_INACTIVE_TIME
WLAN_MLME_CFG_MAX_UNRESPONSIVE_INACTIVE_TIME
timeout values to FW during vdev create complete
Change-Id: I891a683ee270f057a9d02c47019e2297c43596f5
CRs-Fixed: 2419117
Currently, in case of SAP/GO present active dwell time of scan req
on STA iface is restricted. This can result in less scan time but
STA can miss some AP's. So, decrease dwell time only if some client
is connected to SAP or GO.
Change-Id: I46fb76792941b7c79f541b8b358d02bb944f0086
CRs-Fixed: 2436910
Qdf alloc api print the log in case of alloc failure and thus
the caller doesn't need to print the error again.
Remove the repetitive logs from wlan_scan_process_bcn_probe_rx_sync
and tgt_scan_bcn_probe_rx_callback. And fix check patch errors.
Change-Id: Ia340b71b5b476339d2ffe68b287b894ff6b532e8
CRs-Fixed: 2435932
To identify the reason for recovery, add parameter
"reason" for qdf_trigger_self_recovery.
And revise comment for qdf_hang_reason, replace "CDS"
with "QDF".
Change-Id: I8b388b5e83dbbdf29246c264ada56290f0dd3bfc
CRs-Fixed: 2431282
Compiler threw error -
implicit declaration of function 'qdf_dp_trace_apply_tput_policy'
when CONFIG_DP_TRACE not enabled.
Change-Id: Ia4e6fdf129b7fdc31c901b6fa78ce2cb0935b369
CRs-Fixed: 2433430
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
On low memory system, skb allocation failures are observed in
dp_rx_buffers_replenish during driver loading phase within
dp_rx_pdev_attach code path. Per kernel memory team analysis,
failures are caused by large amount of atomic allocations.
Currently when replenishing RX buffers, srng spinlock is first
grabbed and then skb buffers are being requested, which makes
skb allocation happen in atomic context.
Fix is to create a new API for refilling rx buffers when
loading driver. In the API, skbs are allocated into a
pool without srng lock grabbed. Srng lock is grabbed only
when refilling already allocated skb to rxdma ring.
Change-Id: I9d45a42c9f2b0af7bf1d8031adb474d66ff9db59
CRs-Fixed: 2425798
qdf_tracker generically implements all of the logic necessary to
implement the qdf_nbuf map tracking. Rather than using the current
custom tracking solution for qdf_nbuf map tracking, use qdf_tracker
instead.
Change-Id: Id33138a9035653b45c66b712bd11e54873266a17
CRs-Fixed: 2425623
Any obj ref can be taken by modules. In the case the obj is logically
deleted but not deleted physically due to some pending reference not
released, it leads to memory curruption issues in unexpected places.
Debugging these issues becomes difficult as there is no indication where
the ref leak has happened. Especially when the curruption occurs before
stop_modules is called (where there is check for ref leaks)
To ease the process of debugging such issues, add a print to show the
modules holding the refs after logical deletion. Also, assert in
case any objs are in logically deleted state for longer than 10 secs.
Change-Id: I8fa55693c89f146d859cc9ec3355f5eb1e2c3853
CRs-Fixed: 2419733
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
The datatype of average and round up tx rate was uint32_t which truncates
the upper byte of the average and round up tx rate value.
changing the datatype of average and round up tx rate from uint32_t to
uint64_t.
Change-Id: I3809ba7cfc73ec0b4609981e70d57112ac958f33
CRs-Fixed: 2409751
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
ce_send_entries_done_nolock_srng() source ring Tx completion processing
callback function making the redundant update of previous HP. Further
when actual Tx updates the HP results in 2nd HP update.
Because of race in hardware HP update detection, second write is lost.
Avoid this scenario by not updating HP in Tx completion processing.
Also remove unused ce_send_entries_done and ce_recv_entries_done APIs.
Change-Id: I1eb288cd7fb0ff418d4cec4f8d127cff8fc9822d
CRs-Fixed: 2407394
Add an API to add scan entry without posting it to scheduler thread.
This will be used to update the beacon/probe during roaming to new AP.
Change-Id: Ia53ba194032eb953c5b102b0cc406db12e58f42d
CRs-Fixed: 2435404
Hostapd requests igtk keys with keyix 4,5.
Adding support to wlan_crypto_getkey to send the igtk keys
for keyix 4,5. In absence of the patch, hostapd getkey
call for igtk keys will fail.
Change-Id: I32cd6b417aae92cf3b3ac17bb72e19b581d21bd6
In the current implementation, we print the ser history
from index 0 to the current index of the ciruclar buffer,
so when buffer overflows we print only few recent items.
Instead, we should print all the elements in the circular buffer
starting from current index to entire length of the circular buffer.
This will print all the elements in the circular buffer
when it overflows and also takes care of printing
required items when buffer is not overflown.
Change-Id: I6c54cb34de7a1ba24ee0204004cc9a203173c66b
CRs-Fixed: 2430483
Add a CDP function which processes the peer delete response
and deletes the static ast entry for the peer
Change-Id: Id646979ed07bd82609ca08e7ef3201382d07b1de
CRs-fixed: 2385115
In dp_peer_add_ast() call the CP callback inside ast lock
to ensure the ast add and delete commands are called in a
sequence
Change-Id: If76bf8dca34555e56074e74792f3283b6b5a28d3
CRs-fixed: 2424637