Commit Graph

129 Commits

Author SHA1 Message Date
nobelj
3b78c64a1c qca-wifi: Fix tx capture mpdu tried less than acked mpdu
tx capture does not capture mpdu, which missed due to
block ack failure. with subsequent retries it recieve block ack for
all the previous transmitted mpdu in a ppdu was handled.

Change-Id: I23d1bfd7ba05edaec934379fbc036b164a45ceb6
2020-09-28 12:11:08 -07:00
Linux Build Service Account
c54ea45ed5 Merge "qca-wifi: SKB Frag changes for TX Capture" 2020-09-25 06:02:05 -07:00
nobelj
61e1b5c9b1 qca-wifi: Add fix for user after free
user field is updated before allocated memory is free.

Change-Id: I120cb4abab1a010b38dddc8aedc710b77671ac58
2020-09-24 22:28:50 -07:00
Shivani Soni
ce4d8e5daa qca-wifi: SKB Frag changes for TX Capture
Update frag related changes for TX Capture feature

Change-Id: I897e53c923256f2148fde214918bb7b069b8fc2b
CRs-Fixed: 2770668
2020-09-24 16:45:31 +05:30
Linux Build Service Account
92cf74cb43 Merge "qca-wifi: init peer tid at tx monitor on" 2020-09-22 05:06:14 -07:00
nobelj
0c906ba7ca qca-wifi: init peer tid at tx monitor on
peer tid queue init is initialized only when tx monitor
feature turned on.

Change-Id: Idba2d0e7004eed5322c24c921044f66c98b33f61
2020-09-18 22:26:14 -07:00
Linux Build Service Account
529e160dec Merge "qcawifi: Use timer to schedule work queue for stats process" 2020-09-18 17:36:03 -07:00
Kai Chen
78c7be2508 qcawifi: Use timer to schedule work queue for stats process
Use timer to schedule work queue for tx capture stats
process to fix the deauth missing issue in tx capture
when AP is down.

Change-Id: Ie1d1e3fa9f576cd6034fe6035ef933b1e78df99b
2020-09-03 11:39:40 -07:00
nobelj
cde48bdd58 qca-wifi: tx capture memory leak fix
Added memory leak fix and added assert in few more
places to capture other corner case issues.

Change-Id: I5c728f73aafa20b7d65f74e866e652fd8c73de83
2020-09-01 11:38:25 -07:00
Linux Build Service Account
30d7518fef Merge "qca-wifi: Use atomic operation in peer tid queue init" 2020-08-31 03:05:49 -07:00
Manoj Ekbote
2de00c0bd2 qca-wifi: Use atomic operation in peer tid queue init
tid queue init can be called from peer MAP event handler and peer
setup functions. Since they can run at same time because of the
sequencing, make init_done an atomic variable and set it before
allocating the retry ppdu. Otherwise, it can result in double
allocation and memory leak.

Change-Id: I354bf2763b8ddedcf83f04eccccaafc329eac66d
2020-08-28 09:59:58 -07:00
Linux Build Service Account
80a72a98a5 Merge "qca-wifi: Use module_id while getting vdev reference" 2020-08-20 15:37:30 -07:00
Linux Build Service Account
4f44beeb31 Merge "qca-wifi: call dp_vdev_get_ref_by_id API to get vdev object" 2020-08-20 15:37:30 -07:00
nobelj
1dd7beec9c qca-wifi: Add fix to disable ppdu desc debugfs
disable ppdu desc logging in tx capture is not
disabling the debugfs feature.

Change-Id: Ie40b60409b185cc79913da47baea28f81a43a87f
2020-08-15 18:12:22 -07:00
Chaithanya Garrepalli
d9597f02cc qca-wifi: Use module_id while getting vdev reference
Pass module_id as argument to dp vdev get reference
and release reference APIs

Change-Id: I878443620b5ff7c5325edabcda9735220f85b47b
2020-08-11 03:35:47 -07:00
Chaithanya Garrepalli
81a724a970 qca-wifi: call dp_vdev_get_ref_by_id API to get vdev object
Use dp_vdev_get_ref_by_id() to get vdev object from vdev id
array also call dp_vdev_unref_delete() API to release
reference held by dp_vdev_get_ref_by_id

Change-Id: Icd8fac503d46dc0a010c6911116d9243effee777
2020-08-11 03:35:33 -07:00
Chaithanya Garrepalli
fe5cbcd4ab qca-wifi: use the generic peer iterate API
Use the peer iterate APIs to iterate through peers
in vdev list at vdev, pdev, soc level

Change-Id: I983d825a780d76370ecb652e5151029df0334a26
2020-08-11 03:35:15 -07:00
Chaithanya Garrepalli
1052e4d52b qca-wifi: remove DP peer back pointer in DP AST entry
Remove peer pointer in AST entry and store peer_id instead
to avoid access of peer memory without taking reference

Change-Id: I1e9c2a6880b3582866b821bf56a8400e056665f2
2020-08-11 16:04:23 +05:30
Chaithanya Garrepalli
243000f513 qca-wifi: add module id for dp peer reference
Use appropriate module id while taking peer
reference

Change-Id: Ifd4c80ff304f599700192a340e60c7f65214f2b7
2020-08-06 12:02:22 +05:30
Chaithanya Garrepalli
78363d7d9c qca-wifi: use dp_peer_find_by_id API to get the peer
Use common dp_peer_find_by_id API as it is taking
peer refcount now

Change-Id: Ib2604f1f7d9acc9ffcc33969fc8900089cd245d2
2020-08-06 10:52:55 +05:30
Chaithanya Garrepalli
ccf15df948 qca-wifi: use peer_list_lock instead of peer_ref_mutex
Iterate vdev->peer_list under vdev->peer_list_lock

Change-Id: If69016109cf47681a9616adde59c5d73aaba5217
2020-08-06 10:42:59 +05:30
nobelj
f1dd0b06ed qca-wifi: add fix to send ppdu in sequential
add support to send ppdu info in sequential ordered

Change-Id: I5ca9a7e8d8ca9d18712bce811676cbb1fb485a1e
2020-07-28 19:42:51 -07:00
Linux Build Service Account
d8fbb4ff60 Merge "qca-wifi: Avoid processing of PPDU USER multiple times in Tx capture" 2020-07-28 14:37:33 -07:00
Linux Build Service Account
fba80373cc Merge "qca-wifi: Fix tx capture tid init issues" 2020-07-27 13:37:05 -07:00
Linux Build Service Account
c4aaaef829 Merge "qca-wifi: Memory optimization for PPDU stats" 2020-07-26 23:49:36 -07:00
Manoj Ekbote
2d96374ca3 qca-wifi: Memory optimization for PPDU stats
Currently, per-user information in Tx PPDU completion is allocated for
37 users though FW may send information for fewer number of users. In
new scheme, FW provides number of users in USERS_INFO TLV and host can
allocate the per-user struct based on this number. This can save memory
while processing each completion message.
Make related changes in tx capture files to use pointer instead of fixed
size member.

CRs-Fixed: 2730933
Change-Id: I8709665a481d64dc4ab086ce9b27e8837c38b53f
2020-07-23 23:21:21 -07:00
nobelj
36e778c0f8 qca-wifi: Add support to store and display ppdu desc
Debugfs is added to store the last 30 ppdu desc and display
as readable format to user. Feature of storing ppdu desc is
enabled through debugfs and it is not enabled by default.

Change-Id: I85ff52760462abd9a6e33d082db45d8179e67c0d
2020-07-23 03:15:57 -07:00
Srinivas Pitla
aa3e76eb38 qca-wifi: Avoid processing of PPDU USER multiple times in Tx capture
Currently, same user can be processed multiple times, which leads to
release ref count wrongly, with this, some of the users in PPDU
desc are never processed and can possibly cause memory leak.

Added a flag in PPDU user to indicate that the user is already
processed.

CRs-Fixed: 2718150
Change-Id: Ia00e0ad12999578157e9f8a6df0ad4763f828c88
2020-07-22 10:28:59 -07:00
Srinivas Pitla
d0e7ec087c qca-wifi: Fix tx capture tid init issues
For some peers, tx capture tid init is not invoked,
It is resulting in ppdu_desc leak.

Invoking tid init on tid peer update, if tid is not
initialized.

Change-Id: Ia49c7e6d093a42e57e8d9239a60ad0b8dabfcc5b
CRs-Fixed: 2718150
2020-07-21 11:29:38 -07:00
Linux Build Service Account
e5977a6360 Merge "qca-wifi: Mark Action Frames as Non Self_Gen" 2020-07-14 09:40:49 -07:00
Christopher Chopp
79c6331413 qca-wifi: Mark Action Frames as Non Self_Gen
Add check for action frames in tx capture feature and
manually mark selfgen as false.

Change-Id: I37e25f323ebd65240810dbb2b6ddb8fec3e1c66c
2020-07-09 11:19:05 -07:00
Linux Build Service Account
a05a705913 Merge "qca-wifi: Fix user index for rts, cts frame" 2020-07-07 14:09:18 -07:00
Linux Build Service Account
3a90a2e495 Merge "qca-wifi: tx capture modify config lock with user mode flag" 2020-07-07 10:37:37 -07:00
nobelj
1c7273d13c qca-wifi: tx capture modify config lock with user mode flag
user mode flag is added instead of config lock.

Change-Id: Ie83823d1bfff9b50fe3e87faa929882cfeb8b5c7
2020-06-30 12:44:18 -07:00
nobelj
390f02100d qca-wifi: Fix user index for rts, cts frame
for MU frame, rts and cts are transmitted only for first user.
fix other place to use index from caller instead of 0.

Change-Id: I672d91c3df2fac358942304ad6613ee32313e442
2020-06-11 12:11:40 -07:00
nobelj
c01e229231 qca-wifi: fix deauth in tx capture on peer filter
deauth frames are treated as speacial frame where peer id
point to bss peer id but payload RA points to station
mac address. Peer filter is done based on payload.

Change-Id: I4238a108a62accbf3a53f74332a10377675870b8
CRs-Fixed: 2692363
2020-06-05 01:37:42 -07:00
Chaithanya Garrepalli
887962ea4b qca-wifi: use peer_id instead of peer_ids array from dp_peer
use peer_id instead of peer_ids array from dp_peer

Change-Id: I7a3692b0260be5fdbc5d7670ead27f6ff8336c00
2020-05-21 21:47:28 +05:30
Christopher Chopp
cf092b85d9 qca-wifi: Add sched_cmdid check for tx cap retry queue
Before adding a ppdu to the retry queue, check if the
sched_cmdid matches that of the first ppdu in the queue.
If it does not, then the retry queue should be freed as
the received ppdu is not a retry of the ppdu in the queue.

Change-Id: I96a097f57d86539c8395af28f6fd57c13f4cad49
2020-05-15 14:06:31 -07:00
Ruben Columbus
f344193a21 qca-wifi: data rate set incorrectly due to corrupted mcs
delete redefinition of mcs from rx_user_status and keep mcs
derived from preamble which came from rts.

Change-Id: I5323d7944abd474a82d34b812caac1290168ea94
2020-05-07 11:39:26 -07:00
Linux Build Service Account
9c5f909e52 Merge "qca-wifi: Drop msdu on queue exceed threshold" 2020-05-05 10:39:34 -07:00
nobelj
221302d6bc qca-wifi: Drop msdu on queue exceed threshold
Add support
a. Drop msdu on queue exceed threshold of 4096
b. Add support to print consolidated peer tid queue.

Change-Id: I2b91b151531c839657716ac52987cf5e4a62e7cc
2020-05-04 23:25:52 -07:00
Linux Build Service Account
0451a91d78 Merge "qca-wifi: initialize preamble value for radiotap use" 2020-05-04 19:10:56 -07:00
Linux Build Service Account
82edce8b0c Merge "qca-wifi: set frame control for BRP frame" 2020-05-04 12:13:04 -07:00
Ruben Columbus
4fa7c6ad46 qca-wifi: initialize preamble value for radiotap use
preamble value for mubar case is stored in phy_mode variable. this needs
to get carried over to preamble variable in mpdu_info so its used
correctly in radiotap setup.

Change-Id: If149f7b58a3d8b788bab706f8943d66f95e8517c
2020-05-04 12:01:03 -07:00
Srinivas Pitla
501f31af2d qca-wifi: set frame control for BRP frame
For BRP frame ppdu, frame control is not valid in all user
completion tlv, which is causing to drop ppdu as wrong ctrl mgmt
queue checked for payload.

To fix this, updated frame control based on ppdu frame type

Change-Id: Ia5eb67da14647cccfe2ade7c0626a97171454446
CRs-Fixed: 2677252
2020-04-30 16:22:31 -07:00
Ruben Columbus
14818961ef qca-wifi: filter by peer for prob_resp and disasoc
all probe responses and disassoc from bss peer will be accepted and
later filtered by
mac. Additionally retry queue is having a treshold for this new
mechanism to be able to flush queue in case it gets filled up.
this is meant to work for every control frame that has reached such a
state in its retry q.

Change-Id: Ie49d00d9b9422f02f5d9512a891ceb546cdd432d
2020-04-28 22:00:45 -07:00
nobelj
0d28ccb9e9 qca-wifi: Support MU in tx capture mode
Support tx capture for OFDMA and MIMO packet

Change-Id: I24ed22168f5aec30c6c2281028257037f860f3c6
CRs-Fixed: 2621791
2020-04-26 01:40:05 -07:00
nobelj
9bd45e8e5b qca-wifi: Drop ppdu descriptor in pending ppdu queue and other fix
a. ppdu desc in pending ppdu queue is dropped on queue length exceeds
threshold which is 32.
b. configuring ring map for soc only once.

Change-Id: I7398a478ce9e4d974d9ecc2a06d30821f151a1b5
2020-04-24 13:15:18 -07:00
Linux Build Service Account
587c236f05 Merge "qca-wifi: Add frame types to TX Capture" 2020-04-23 15:47:39 -07:00
Linux Build Service Account
2e3dd6f8e4 Merge "qca-wifi: adjust data by pulling extra HTT header from nbuf" 2020-04-22 02:23:13 -07:00