Commit Graph

100 次程式碼提交

作者 SHA1 備註 提交日期
Ripan Deuri
85e7faff70 qcacmn: Add function to check WDS ext peer
Add function to check WDS ext peer.

Change-Id: Ic29cb04fc2830240854921fe3eeadd03e8171979
CRs-Fixed: 3340244
2022-11-21 00:03:45 -08:00
Jeff Johnson
ebfbc0d927 qcacmn: dp: Fix misspellings
Fix misspellings in dp/...

Change-Id: I6ef7a19ee03104ae38a8a77e229b90aa80329592
CRs-Fixed: 3304682
2022-10-07 22:42:22 -07:00
Sai Rupesh Chevuru
383edf35d0 qcacmn: Map and umap MLO DP peer to partner soc
Maping and unmaping of the MLO DP peer to the partner soc
will be initialized based on architecture.
dp_mlo_partner_chips_map
dp_mlo_partner_chips_unmap

Change-Id: I918f6d552acd9d64086abf4c38f913348e13c381
CRs-Fixed: 3267904
2022-08-22 11:30:40 -07:00
Pavankumar Nandeshwar
67de6bcbfd qcacmn: Handle Umac post reset at host
Handle Umac post reset and post reset complete
events from firmware.

Change-Id: I76ac1b96f01f026535d31edcbd245b3643ecf6ee
CRs-Fixed: 3267222
2022-08-21 00:37:46 -07:00
Chaithanya Garrepalli
baa9ecbd3c qcacmn: update peer state assert for MLO peer
Update the peer state check for MLO peer as per
MLO state transistion

Change-Id: Ia57ab5fd95f90226f505cba6363a343e5e0b44e1
CRs-Fixed: 3266005
2022-08-16 10:47:17 -07:00
Santosh Anbu
e852941cea qcacmn: Support to print AST entries of MLO peer
Add support to print AST entries of MLO peer.
MLO AST table is global across SOC and hence any print AST request
will print the MLO AST table

Change-Id: I07554606617f43a8806e1c7243ca69a0c8ce335e
CRs-Fixed: 3246520
2022-07-31 00:05:59 -07:00
Shwetha G K
690e9eba92 qcacmn: Add flexibility to flush MLO peers only
Add changes to support flushing of MLO peers only.
This is required to support the mode-1 behavior of target
recovery feature, where we delete MLO peers and retain
legacy peers across SOCs which are not crashed.

CRs-Fixed: 3243549
Change-Id: I5ae326bfffd1267768c83fd7f60fa1343ef305fe
2022-07-29 09:20:57 -07:00
Namita Nair
dc6a757028 qcacmn: Support same link/mld peer mac address
Currently, if mld and link peer has the same mac
address, the peer cannot distinguished with
just the mac address as the search argument.

Hence to support same mld/link peer mac address,
cdp_peer APIs that uses both link and mld peers,
are also given peer_type info. This helps
to perform the operations on the correct peer.

Change-Id: If646755facc8f9a4d9fed2f31c5cc6618fa9a952
CRs-Fixed: 3043428
2022-07-29 05:57:06 -07:00
Surabhi Vishnoi
ecaa0f1f6c qcacmn: Allow rx UDP packets during roaming before peer map is received
In VoIP cases, no or minimal packet drop is expected during
roaming. Currently, data packets are dropped in host if they
are received after roam sync indication from firmware and before
peer map indication is received due to invalid peer.
This change allows rx UDP data packets during roaming before
peer map indication is received from FW if peer's auth_status
received in roam_sync_indication from FW is authorised.

Change-Id: Ic518b7cd0aef48a2b0f8c923a2e20838b07f3d1f
CRs-Fixed: 3168603
2022-05-12 23:34:21 -07:00
Abishek Ganapathy
e79a7628e6 qcacmn: Find peer using mld_addr for MLO case
For MLO, try to find peer by comparing the MLD MAC
addresses.

Change-Id: Ib109da957d5c330385688a4e91e04cda91a51f30
CRs-Fixed: 3140866
2022-04-22 07:27:02 -07:00
Harsh Kumar Bijlani
c4f3ae13ee qcacmn: Define API to get the link peer_id using peer_id and lmac_id
Define API to get the link peer_id using peer_id and lmac_id.
This is required in Rx monitor path for stats updation as Rx
monitor provides MLD peer id, whereas stats updation is done
for link peer.

Change-Id: Ib1c9e2729ccaea2e28272b7d175b3ef7fba9fd7a
CRs-Fixed: 3133003
2022-02-28 10:19:49 -08:00
Ripan Deuri
b2340306e3 qcacmn: Add SAWF stats in dp_txrx_peer
- Add SAWF stats in dp_txrx_peer.
- Initialize stats per peer

Change-Id: I5fa35efe36dc8447703d4aa1d4d0c135031f9eee
CRs-Fixed: 3136210
2022-02-28 07:53:32 -08:00
Ripan Deuri
351c175a02 qcacmn: Define CDP ops and DP context for SAWF
- Add CDP ops for SAWF default queue mapping.
- Initialize DP context per peer.

Change-Id: Ic9c4e7d197aeeaa4ed19376ec4007711e86cbe5f
CRs-Fixed: 3128801
2022-02-22 00:57:27 -08:00
Santosh Anbu
83d13e1ffd qcacmn: Support multi AST delete WMI command
Add change to support multi ast entries deletion.

Change-Id: I74b9000c6949d7455da5eb54678e976ab1b9bb20
CRs-Fixed: 3124258
2022-02-11 22:30:17 -08:00
Harsh Kumar Bijlani
27e9e64532 qcacmn: Changes for delay and jitter stats
Delay and jitter stats are placed in struct dp_txrx_peer.
Make changes accordingly for allocation, fetching and clearing
operations of these stats.

Change-Id: Ic9b9e48467741072806000f4d1b3aa8e5c65d508
CRs-Fixed: 3092123
2022-02-09 11:54:23 -08:00
Pavankumar Nandeshwar
b9038e9d4e qcacmn: Move per packet stats params to txrx_peer
Move the stats parameters from the dp_peer which are used
in per packet path to txrx_peer

Change-Id: Ieb68b6950740791b37bbd2bfdc4815c3d7bc4834
CRs-Fixed: 3095637
2022-02-09 11:54:01 -08:00
Pavankumar Nandeshwar
9c6800383c qcacmn: Move per packet params to txrx_peer
Move the parameters from the dp_peer which are used
in per packet path to txrx_peer and params related
to monitor path to monitor peer.

Initialize txrx_peer and monitor peers.

Change-Id: I0449c67c1cd47deb76bc89b5ddc64174f6694eb0
CRs-Fixed: 3095637
2022-02-09 11:53:37 -08:00
Sumedh Baikady
e4d9b0c2d7 qcacmn: REO queue ref enhancement for Waikiki
In WIN BE chipsets, replace the REO tid
queue programming in FW via WMI with writing to a
Host managed table shared by HW and SW. REO HW will
pick the tid queue address from the table indexed by
peer id and tid number.

Change-Id: I8107ca5116425538329b11ae3519f02b32573bac
2022-02-02 12:06:29 -08:00
Pavankumar Nandeshwar
8f62ddf128 qcacmn: Fix QUIC Copyright Markings
Fix QUIC Copyright Markings

Change-Id: I396830ab402318cd2385a5bed8dc3af373b8148b
2022-01-14 11:53:34 -08:00
Harsh Kumar Bijlani
f4c7e777f0 qcacmn: Add APIs to get txrx peer, tgt peer and primary link peer
Add APIs to get txrx peer, tgt peer and primary link peer from peer
for both MLO enabled and disabled scenarios.

Change-Id: Ie48711972dd3eef35fdd7bf736e91bfce4cd41f3
CRs-Fixed: 3107160
2022-01-13 06:52:58 -08:00
Chaithanya Garrepalli
3d9c419f95 qcacmn: Fix ML peer refleaks reported in wifi down
Delete MLO peer from primary SOC while ML peer delete

Change-Id: Ideb78964718699397a1fb5da22c28ec787c5bd0c
2022-01-12 05:33:55 -08:00
Pavankumar Nandeshwar
d7908ff22a qcacmn: Add txrx_peer in dp peer
Add txrx_peer in dp peer which will be used in
per packet data path.

Change-Id: I91f10b1640430300f4c9f002ca54b3903c556d41
2022-01-06 07:55:43 -08:00
aloksing
3637ac16b0 qcacmn: Move monitor mode HTT parsing from mon_1_0 to common
Moving HTT parsing to common file dp_mon.c
Initialize function pointer to stats ind handler for BE

CRs-Fixed: 3071271
Change-Id: I08fb98f8dbed075c3b49baebca399771bfb5077c
2021-12-09 11:17:17 -08:00
Chaithanya Garrepalli
97a1c8bff1 qcacmn: Changes to caluclate soc max peer id
Changes to caluclate max peer id in case
of MLO

Change-Id: Ib52cfb4f92eafb88689774e8e6c406751d30372a
2021-12-02 06:06:47 -08:00
Chaithanya Garrepalli
bbe062b4b7 qcacmn: DP peer changes for multi-chip MLO
DP peer changes required for multi-chip MLO.
This change includes

1) Adding MLO peer to global peer hash at ML context
2) Add ML peer to all partner chips id to objtable

Change-Id: I230a6c1b14484c587b190a9a318fe9ffb1caea11
2021-11-23 19:28:15 -08:00
Chaithanya Garrepalli
0fb9dcb7eb qcacmn: ML peer authorize changes
Changes to set authorize bit on ML peer only
after all link peers are authorized by hostapd.

Change-Id: I4b103538533dd459e83ae688408703c4122f025e
2021-11-23 03:55:18 -08:00
Rakesh Pillai
2069fa6cdd qcacmn: Handle htt peer map/unmap v3
Add the handler for processing the htt
peer map/unamp v3 and MLO peer map/unmap msgs.

Change-Id: Ie2ab0b76e7aee566ca3b9637b83fd7a14718ab01
CRs-Fixed: 3039326
2021-10-15 13:13:22 -07:00
Jinwei Chen
5c85cfb5a0 qcacmn: cdp/dp peer change for MLO
cdp/dp peer change for MLO

Change-Id: I9b8eb741317a0dc7337aff7e773148892e531ba2
CRs-Fixed: 3031166
2021-10-15 13:13:12 -07:00
Pavankumar Nandeshwar
6b1d142d98 qcacmn: Enable wds changes in Beryllium
wds in Beryllium is managed by hardware.
Make use of hardware managedwds and disable
the corresponding wds handling done in host
for Beryllium.

Change-Id: I39f23cb40c6c5f85ada8ce59c92ff2855bb18da3
2021-09-30 15:15:25 -07:00
aloksing
e7cc727374 qcacmn: Move core monitor and monitor dependent feature func
PATCH[4/7]:
This patch consists following changes:
 - Move core monitor and monitor dependent feature functions
   to monitor file
 - Move enhanced stats functions from htt to monitor file
 - Move vdev set monitor mode rings function to monitor file
 - Create and initialize relevant funct ptrs
 - Initialize cdp monitor related ops.

Change-Id: Iac1ab43eb1c4b98bd21bbb8a5741ee53034da2f1
CRs-Fixed: 2984635
2021-07-30 21:51:12 -07:00
Pavankumar Nandeshwar
72bf8a6cb2 qcacmn: Avoid sending wds del wmi cmds in a burst
In case of aging out wds entries, avoid sending all
the wds delete wmi commands in a huge single burst.
Instead limit the maximum commands to half of the
wmi queue size. Inactivity will continue to be
marked every 120 secs but the inactive entries
will be flushed every 5 secs if there are pending
entries.

Change-Id: I6735704a0750ef466f1df798f0b354f4382098d6
CRs-Fixed: 2952682
2021-06-08 18:17:37 -07:00
Vevek Venkatesan
e5b0e7e3a0 qcacmn: add debug logs around peer AST cleanup
Currently there are no sufficient debug logs during
AST cleanup of peers, to conclude in which context
the AST got freed up, hence adding more debug logs.

Change-Id: I5603d856aed8cc3860a78d24d51cd8b5386d38bb
CRs-Fixed: 2956910
2021-06-08 03:16:42 -07:00
Karthik Kantamneni
26086e7971 qcacmn: Add history for REO queue descriptor events
Add history to log REO queue desc update and free events.

Change-Id: If2992ff1256fad49ea4ea6bd90b6dfe4a63d2bc4
CRs-Fixed: 2926919
2021-04-27 09:14:12 -07:00
Nisha Menon
5d7e26e27f qcacmn: Dump the rx reo queue descs in ddr
Add iwpriv option 34 to dump the reo rx h/w descs
in DDR for debugging. This cmd will first send cache
flush cmd to REO for all rx tids and invalidate the h/w
cache. Henceforth ensuring that the reo status tlvs and
the DDR values are in sync.
iwpriv wlan0 txrx_stats 34 0
Add fix to ensure bar frame with 2k jump err code is
processed correctly using the REO error code instead of the
REO push reason.

Change-Id: Ia05be668343f3a5d4b3262b8d6a367a50875add5
CRs-Fixed: 2895965
2021-04-13 14:50:51 -07:00
Nitin Shetty
71e3244d46 qcacmn: skip MEC ast entry creation in wlan fw
MEC ast entry will be created only in software
and adding MEC entry to wlan fw is skipped.

Change-Id: I6991f9f12ceb22a7c599cdf3cc2a13c996d93671
2021-02-09 15:35:27 -08:00
Shikha Bakshi
c1e00a21ba qcacmn: Modify logs for QDF_MODULE_ID_DP_PEER
Add macros dp_peer_info, dp_peer_info_low,
dp_peer_info_high, dp_peer_alert, dp_peer_err,
dp_tx_capture_debug to define logs.

Change-Id: Icf71595c10b1a4f0dca53f6953af4df19210e924
CRs-Fixed: 2832004
2020-12-22 06:40:31 -08:00
Chaithanya Garrepalli
650f0ffd7d qcacmn: avoid updating peer stats under SOC AST lock
In teardown API update logical delete state to peer
before deleting AST entries of peer. Also in delete
AST API use __dp_peer_get_ref_by_id to get the peer

Change-Id: I6db227a284cf3726cc241ebc98386230eca58fcf
2020-10-06 19:31:36 -07:00
Jeevan Kukkalli
60b1d03a3b qcacmn: Delete self ast entry during peer tear down
Delete self ast entry along with other ast entries
belonging to peer during peer tear down

Change-Id: I08373929b7e510d79cd677b12f3ee897c1c6790b
CRs-Fixed: 2776743
2020-10-01 16:58:16 -07:00
Chaithanya Garrepalli
3ac6dedea7 qcacmn: update peer reuse logic and add peer state lock
With new design, peer is deleted from hash table in
cdp_peer_delete. Hash table search in dp_peer_can_reuse
API at cdp_peer_create will always fail

Update the peer reuse logic to search from inactive list.

Insert peer to inactive list from cdp_peer_delete() and
in peer reuse case search in inactive list to get
peer.

Also add a new lock to protect peer state transition

Change-Id: I2e672fc4a9346c95d67716d437538dd0f96b2207
2020-09-11 13:55:42 -07:00
Chaithanya Garrepalli
354d64f366 qcacmn: fix MCL WHUNT compilation error
Remove comma from dp_alert to avoid compilation issue

Change-Id: Iea6bf230855d0e931fc306284db4f7a368406ba8
2020-09-01 18:14:58 -07:00
Chaithanya Garrepalli
21787e51de qcacmn: remove the assert for DP peer state
Remove the ASSERTs added for DP peer state tranistion

Change-Id: I3fdf355fc6a79642b5527a35015f96d04e4272c0
2020-08-31 03:32:42 -07:00
Yeshwanth Sriram Guntuka
4c12885407 qcacmn: Delete peer AST entries as part of peer unmap
In roam HO failure, peer unmap indication is processed
even before Host initiates the peer cleanup. In the cleanup,
as part of cdp_peer_teardown, AST entries are freed up without
removing it from the peer AST list since get_peer_by_ref_id
returns NULL peer pointer as peer is moved to inactive state.

Fix is to delete peer AST entries as part of peer unmap
indication so that the entries are removed from the AST list.

Change-Id: I1b04517e8cc392b33bb439501e61e3d5534d8307
CRs-Fixed: 2763825
2020-08-27 23:52:36 -07:00
Srinivas Girigowda
b100ced3c7 qcacmn: dp: Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF
Change %pM/QDF_MAC_ADDR_STR/ARRAY to QDF_MAC_ADDR_FMT/REF.

CRs-Fixed: 2760938
Change-Id: Ib7999b69f79a65a67e1d9f7e24a04b7a7da0aebf
2020-08-23 23:09:31 -07:00
Chaithanya Garrepalli
ddc9e59e8f qcacmn: Add VDEV refcount debug support
Add debug support for VDEV refcount to take
refcount by module id and decrement corresponding
refcount with same module id

Change-Id: I15c075816994ba70155fefbc0bce208b20fb9a59
2020-08-20 10:07:32 -07:00
Chaithanya Garrepalli
e2b00339f3 qcacmn: add APIs to iterate the peers at vdev level
Add new APIs to iterate through the vdev peer list
by taking the peer reference.

A call back has to be passed to these APIs which will
be called for every peer in the lisst

dp_vdev_iterate_peer() -> iterates through peer_list of vdev
dp_pdev_iterate_peer() -> iterates through peer_list of all
                          vdevs in pdev
dp_soc_iterate_peer() -> iterates through peer_lists of all vdevs
                         in soc

Additonal APIs are added to for itearations where the callback
will be called outside the vdev->peer_list_lock, as these APIs
have additional memory allocations suggested to use only in case
the iteration need to happen outside lock

dp_vdev_iterate_peer_lock_safe()
dp_pdev_iterate_peer_lock_safe()
dp_soc_iterate_peer_lock_safe

Change-Id: I24632fe611355cc3e93b7f16d90913d4b8686ca9
2020-08-15 01:26:23 -07:00
Chaithanya Garrepalli
1322dc7949 qcacmn: add state to data path peer
Add states to data path peer and appropriate
checks for transistion of states

Change-Id: Ieaadbf4b406351d48aece7fd3552abe42d61db1e
2020-08-15 01:26:20 -07:00
Chaithanya Garrepalli
f4701f13ec qcacmn: remove peer backpointer in DP ast entry
Remove the peer backpointer in ast entry and store
peer_id instead

Assign peer_id in AST entry in AST MAP event,
also add the ast entry to peers ast list

In AST map & AST unmap APIs use ast find by vdev_id

Change-Id: I74d9828dc309149d98f6f577b5c8304cb087fd76
2020-08-15 01:26:17 -07:00
Chaithanya Garrepalli
fdc6a808ae qcacmn: add module id for peer reference
Add support to get the peer reference with module id

To help debug the peer reference related issues

Change-Id: Ie20c7e710b9784b52f2e0f3d7488509282528a00
2020-08-15 01:26:14 -07:00
Chaithanya Garrepalli
113841906c qcacmn: increment refcount for peer find by id
Use unified version of dp_peer_find_by_id API
which will take peer reference

Also use unified peer ref release API dp_peer_unref_delete

Change-Id: Ibb516a933020a42a5584dbbbba59f8d9b72dcaa4
2020-08-15 01:26:10 -07:00
Chaithanya Garrepalli
e253cee043 qcacmn: Peer refcount FR update DB as per new design
Update peer DB as per new design

peer_hash_table: add at peer_create and delete at peer delete
peer_id_to_obj_map: add at peer map and delete at peer unmap
peer_list: vdev level peer list add at peer create delete at
	   peer delete

Call dp_peer_cleanup() at unmap event

dp_peer_cleanup -> dp_peer_tx_cleanup -> Tx capture cleanup
	|
	---------> dp_peer_rx_cleanup -> Cleanup Rx REO TID queues &
					 defrag queue free

Introduce ref_cnt variable per VAP which will be
incremented and decremented at peer alloc and free. This counter
will be used to delay the vdev free if there are any active
peers for vdev exist in system

Change-Id: Iec13bceed0db0db71655fdbf6f96df8795b5077b
2020-08-15 01:26:07 -07:00