Add, delete and update AST DP
functions print logs at TRACE
level
Reduce the log level from TRACE
to DEBUG to avoid ML Framework
from interpreting these logs
CRs-Fixed: 2385978
Change-Id: Ifd5c24a95e7e9f69297afff5d7a3235cfa27aaf5
WDS aging timer is dependent on a flag which is set in soc_cmn_setup,
but in current implementation wds_timer_attach is done from soc attach
and soc_cmn_setup is involed from pdev_attach. Fix this race condition
by moving wds_attach to soc_cmn_setup
Change-Id: Ia88201c627b434b85e56daadd0c7ab20e6ce0b3f
CRs-Fixed: 2373127
Change the CDP abstraction APIs for ast entry find, add and delete
to avoid external references for ast entry in upper layers
Process the HTT v2 peer map messages which will be enabled for
nexthop ast entries and use these messages instead of WMI event
for HKv1 WAR where we have to wait for delete confirmation from
target event which is processed in control path
Change-Id: Ifa91a259c0762344deb8ab89e868fc5554d75543
CRs-fixed: 2354951
dp_reo_desc_free function can be executed in SIRQ context, so it
should not be expected that INFO printing which might cause locks
holding too long.
CRs-Fixed: 2367454
Change-Id: Ic77126fa62329547494ec6b672111c6183fadac2
Check if the ast_entry peer is same as the peer received
in MEC event before removing the wds entry. This check is
required for wds repeater scenarios. When a multicast packet
goes from station to the rootap via the repeater, a mec event
will be received in host but the entry should not be replaced.
Change-Id: Ia6fae9f08b411b481fc6d7c3f829bd127f92caec
Initialize the PN to the value which is given by upper layer
and plumb it to HW.
Change-Id: If6b14d2b9b92e4571a85cb20dc445608d5f56961
CRs-Fixed: 2350954
HKV1 does not have support to maintain per pdev AST table.
Hence workaround is required to ensure that AST entry is deleted before
adding an entry with same MAC. This syncronization needs to done across
pdev. This workaround in required on for HKV1, add changes to enable
workaround only for HKV1 and disabled for other platforms.
Change-Id: I9aa43ea51fdff2f02cdcc8ff7e906c7305446317
CRs-Fixed: 2344921
For HKv2, BA window size can be configured on per tid
basis as opposed to per peer basis on Hkv1. This per
peer per tid configuration on Hkv2 is for Tid 0 to 7.
Change-Id: Ic4afee92792af829a9ad8fdfc211625743b9d052
Removet the host ast_entry after sending delete ast_entry
to the firmware. This will handle the situation where we
might receive an add request for the same ast_entry,
while we are waiting for delete response from the firmware.
Change-Id: I105504a9c6a1e8e53bef9f3d011c10f846fd098e
CRs-Fixed: 2347989
Add reference for peer before adding ast entry
Reference is taken to avoid any synchronization
issue wrt to peer when adding ast entry.
Change-Id: Id3116daed84ad15eba515fedddb1146845542742
CRs-Fixed: 2335943
there is a use after free case observed with the
recent changes to wait for a WMI WDS delete response
Basically the peer got deleted by the time we got
response for WDS delete and we are trying to access this
peer when trying to delete the AST entry from host.
Change-Id: I78215345ccd12d5bdd801fccf8d9f5cd196466de
Add debug logs for AST add, delete
and update functions under debug
level trace for debugging purpose
Change-Id: I2a1728fc97cdd00dd9bdabab5a6055e9f8464e65
1. While saving ast_entry of type DA, use bss_peer.
2. Display the correct peer_mac_addr in ast_entry of type DA
Change-Id: Ic6150d6e3fc0b1c1274844ea6685df6b66afd811
CRs-Fixed: 2332417
Ageout MEC entry after two minutes of inactivity and changes
included to modify existing WDS entry of a peer to MEC on promption
Change-Id: I0ad89671a053250413cbadad2d495f5abff89ac2
CRs-Fixed: 2316368
There will not be any AST entry
for HMWDS Seconday
Hence add check for the same in
del_peer_del_ast to avoid deletion
for such entries
Change-Id: Ia96856d93531200e27e0d0a97b80ed6ec1baa42b
Add a flag for AST entry to indicate if AST entry is
mapped to AST table and use this flag while dereferncing
ast table with ast_index in ast_entry
Change-Id: I8c90f3c40116e24303aac8a7bd53e8f5b67e22bf
To avoid race conditions where BA window size can change, always
flush entire REO descriptor from HW cache irrespective of current
BA window size.
Change-Id: I608996722e7dc2dc6acfd145b8c190b58ce09822
CRs-Fixed: 2251811
In STA roaming scenarios it is possible that an
AST entry for a given MAC address already exist
on the other radio
Delete the existing WDS AST entry on other radio
if present before adding the new wds entry on the
current radio as part of WDS source port learning
Change-Id: I15ef79be0441f3b27fd55e728f5bb27b073c6469
CRs-Fixed: 2334625
Change Ia75f88c03c4d0eba0edbebf8e8f40d41396543d5 initialized the
ast_idx to 0xFFFF, and when deleting ast for self BSS of STA mode,
this index will be used to access ast_table whose size is less than
0xFFFF, and OOB may occur.
For AST of STA's self BSS, do not clear the related ast_table.
Change-Id: I3ceffd216061950024a524b25f1d38c43e1ee0e4
CRs-Fixed: 2334039
ensure we setup tid queues only if default route is set
Also we no longer set default route or tid queue setup
for BSS Peer.
Change-Id: Id240b9b8ddd67136ff85e1098840938928857fc4
1. Address out of bounds array access while
populating mcs rates.
2. Use cdp_sec_type enum inplace of htt_sec_type
for common code.
Change-Id: I0ae1e0acaf7422e73dc26befc9f066f3f424ec6b
CRs-Fixed: 2327153
With HKv1 WAR to handle DBDC backhaul SON cases a AST
entry for same mac can exist on different radio added
CDP APIs to support the same
Change-Id: I374b8af3fe5e34f62eeb5b09819e331fdeda602a
We are adding AST entry to ast_table from
dp_rx_mcast_echo_check in STA mode as in STA mode
we will not get the peer map event.
Find AST entry from the peer ast list to get ast entry
added in host for that particular peer. As in QWRAP
mode there can exist multiple peers with same mac address
and corresponding AST entries will be added
Change-Id: Ia75f88c03c4d0eba0edbebf8e8f40d41396543d5
CRs-fixed: 2307540
Because of a HW issue we have added a WAR where we do
learning even on destination MAC address. This will ensure
da_is_valid even for forwarding traffic and HW will cache
this entry for subsequent pkts there by we achieve better
throughput in UL.
Change-Id: Ib61693e9ce52b3a1cdcd4c34eabb3d8368b1ef13
Reset the self_ast_entry in peer to NULL when self_ast_entry is deleted
to avoid use after free or double free conditions
Change-Id: Ic1779e35cbd98ddc0333808152e4c388449a45af
CRs-fixed: 2321768
Currently peer reference is used with out taking any ref count.
In parallel context execution on different core peer reference may
be cleaned up in peer unmap event. So take ref count while using
the peer reference and decrement after done with it.
Change-Id: I02ca172cbdc4309fabd3bbbad00940826662bbd3
CRs-Fixed: 2301963
Changes to find the AST entry based on pdev_id as
AST entry per pdev can exist in HKv2
Change-Id: I27e66f4671fe2c5eca4c496d6220e94f087f2c18
CRs-fixed: 2317790
When a BSS peer gets associated with vap configured in sta mode,
the ast type associated with that entry should be different from
that of regular static entries, The reason being bridge on root AP
can pick up the mac address of AP VAP.
Change-Id: Ie322a015d883e2712f41623f71ccbc255b99baf3
While freeing the AST table traverse through table and
free any AST entries present in the table
Change-Id: I87382da2425380938d91ee1980a9c356c0f647ef
CRs-fixed: 2275212
WDS entry should be removed before adding peer with same mac address.
iIn DBDC mode, this can be ensured only by waiting for response for WDS
delete from FW before creating peer. Add logic to defer AUTH until WDS
is removed from FW.
Change-Id: Ie76d08c4817f953504913ae6cc49fc5388169e4a
CRs-Fixed: 2270592
Host changes to enable HTT version 2 messaging for
PEER map and unmap in FW and changes to handle these
messages in host
Change-Id: Ifbe478212bbbc9c9ea1c1e4791c7a78407c376cc
Add support to send ast hash during peer create.
This value will be used for packet enqueue to transmit block.
Change-Id: Iea188a4b60f96d7770037265d12e534ee2b55bba
In HKv1 HW there is a buffersize setting per peer, hence
once we set buffersize we have to stick to this for all
subsequent requests for all tids. If buffersize in Addba
request is more than first session's buffersize, we restrict
buffersize to old value, else we send respond with new size
and send delba to previous sessions not compatible with new
buffersize
Change-Id: Ia71d994ee06ca7b37d93273f5fa69547f816dd20
Crs-fixed: 2247816
1) This reverts commit
I7025fdd7540f47bb4d3f95ef6d9f2ef92af5f1f1
2) Reverted changes have been taken care through:
Idd7617782e71ee187eef7fcb3523c05b49f82094
CRs-Fixed: 2300055
Change-Id: Icc47ded9a585e356b7eae1ad53ffea6668510308
Reduce the log level for TX/RX path stats
as excessive logging is causing timeouts.
Change-Id: I3c7ef1f75373bfd319b02aab98f5bef099086bac
CRs-Fixed: 2298368
Set 'need_status' while sending REO queue update command
for deleting REO queues to get status from HW, which will
trigger callback to cleanup and free the queues.
Also fix issue in initializing REO command descriptor, causing
command number to be cleared.
Change-Id: Ie30fc80f76d835e239dd0b3d3e78c7f32bfa09a4
Currently host is taking long time to process the peer unmap
event from FW which is executed in softirq context. Reason is
as part of unref delete spin lock is taken and error level logs
are logged and error level logs take more time to process when
some other printks are already in progress to write to console.
This is leading to change interface failure from SAP to STA as
due to longer time processing of peer unmap event.
Reduce the severity of log level such that logs are directed to
wifi logger logs instead to console.
Change-Id: I543619036aa06c9ac4d97d18e44465b3c9b71806
CRs-Fixed: 2271260
Add support for DP RX Threads as a part of the FR. Multiple RX
threads can be enabled from the ini. The code is added in a new DP
module outside of the cmn project.
Change-Id: Id966c46c2799d23c2a4fa1c884610955afed3565
CRs-Fixed: 2256470
Upon receiving 2k jump exception, send delba
and track delba tx status and retries.
Change-Id: Ida35256233869dfa390c40030c9296b9c48481ce
Crs-fixed: 2239856
In current code, DBDC WAR for AST applies only for repeater mode.
Add support to enable this even in AP modex, for use in SON usecases
Change-Id: I82791fbae0cc86ac6d951c4d85b709c755334273
Clean up datapath component prints by correcting trace levels for
regularly occurring prints and removing newlines from converged
print APIs since qdf_trace_msh appends them by default.
Change-Id: Ie8fe319fcb737720f7400a165e134b6a18bd15b5
CRs-Fixed: 2243843
ba_window_size_valid and ba_window size support is missing
while sending wmi_peer_reorder_queue_setup. This is needed
for handing 256 BA which is not FW default.
Change-Id: I3218921c48c0f82225b7992076e73ac0acf7bd11
CRs-fixed: 2285423
Add new ast_get_type API for DBDC repeater feature.
Add other changes required in WDS and MEC handling
required for DBDC repeater feature to function properly.
Apply sta kickout logic to handle roaming cases
only within same radio. For roaming across radios, DP should
rely on control path.
Change-Id: If9b35720082dd87de40827843a14238e818bc454
Move the state to in_progress when we process addba
request and upon tx comletion of addba response, move
the state to active. Any addba request received during
in_progress is ignored and reo queue is updated with
window size 1 and set to inactive.
Change-Id: I69cfbc162d873f9e6842ca3e7971146dafba2695
Crs-fixed: 2188927
Return NULL peer in case an invalid peer->local_id is passed to the
peer_find_by_local_id API. In case this peer is already deleted,
the local_id may be invalid, hence simply return a NULL value.
Change-Id: I0cbae4138daa643dfa07b88caf6f32d3948d6d42
CRs-Fixed: 2280399