Commit Graph

194 Commits

Author SHA1 Message Date
Jeevan Kukkalli
2ddb03c7cb qca-wifi: Send HMWDS ast add status WDI event
Function to notify HMWDS ast add status to upper layers via
newly added WDI event WDI_EVENT_HMWDS_AST_ADD_STATUS

Change-Id: Ib6fad7a48425ce7de16d94bb401af0c428c8e556
CRs-Fixed: 2745460
2020-07-31 18:53:39 +05:30
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
Linux Build Service Account
6e35159528 Merge "qca-wifi: Add srng history for monitor mode" 2020-07-01 09:06:46 -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
Linux Build Service Account
2e7ea6f5d0 Merge "qca-wifi: Assert if HAL srng is NULL or not initilized" 2020-06-29 22:40:02 -07:00
Linux Build Service Account
c31c165fa3 Merge "qca-wifi: Remove double validation of Tx Stats" 2020-06-26 14:40:27 -07:00
phadiman
a8a1a96806 qca-wifi: Remove double validation of Tx Stats
Remove double validation of ppdu_user tx_ratekbps
and ppdu_user rate index while updating per peer 
Tx statistics

Change-Id: I9d4b65556928b21ee6caa10fb15193c8705ad2af
2020-06-24 13:08:42 +05:30
Linux Build Service Account
d0fcd6b5d3 Merge "qca-wifi: fix deauth in tx capture on peer filter" 2020-06-23 16:12:33 -07:00
Amir
05bd05a954 qca-wifi: Add srng history for monitor mode
Add srng history for monitor mode

Change-Id: I3103a48cc96fa17ad4b35772c352d4597721e27b
CRs-Fixed: 2690176
2020-06-14 23:50:35 +05:30
Amir
0f916220bf qca-wifi: Assert if HAL srng is NULL or not initilized
Assert if HAL srng is NULL or not initilized

Change-Id: I7af824f4c691ad9bc5c5c7537ba3513067a55eff
CRs-Fixed: 2709532
2020-06-13 02:51:59 +05:30
Linux Build Service Account
0d19542bc1 Merge "qca-wifi: Fix ppdu_id mismatch issue" 2020-06-12 09:39:36 -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
Amir
ee09492ea5 qca-wifi: Fix ppdu_id mismatch issue
For full monitor, it is observed destination ppdu_id
and status ppdu_id mismatches.

a. If status ring ppdu_id is leading compared to destiantion ring
ppdu_id, drop destination ring ppdus
b. If status ring ppdu_id is lagging compared to destiantion ring
ppdu_id, drop status ring ppdus
c. Handle warp around scenarios

CRs-Fixed: 2686747
Change-Id: Ie059c891347d4ff59b230881d5a9049d8acf279e
2020-06-10 21:27:11 +05:30
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
syed touqeer pasha
199387e145 qca-wifi: Qcn9000 changes for rx flow identification
Qcn9000 changes to handle offset changes
with respect to rx flow search entry.

Validation Details: Unit testing Rx FSE feature and MIG run

CRs-Fixed: 2595489
Change-Id: Ib470dadf9d3dcad4203e7e9af7e5af69a3628a7a
2020-06-03 11:50:30 +05:30
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
Linux Build Service Account
2fe87301eb Merge "qca-wifi: data rate set incorrectly due to corrupted mcs" 2020-05-13 13:39:57 -07:00
Linux Build Service Account
051a4a29e0 Merge "qca-wifi: Fix monitor mode ppdu id mismatch issue for qcn9000" 2020-05-07 11:40:34 -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
Amir
902435af2a qca-wifi: Fix monitor mode ppdu id mismatch issue for qcn9000
If status ring and destination ring ppdu id mismatches,
a.	If If status ring ppdu > destination ring ppdu,
  drop destiantion ring ppdu untill it matches status ring.
a.	If If status ring ppdu < destination ring ppdu,
  drop status ring ppdu untill it matches status ring

CRs-Fixed: 2677655
Change-Id: I80638245a09c3ed5846c0e71c8ad94e1c22c9014
2020-05-04 13:31:52 +05:30
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
Linux Build Service Account
11369c0bec Merge "qca-wifi: Support MU in tx capture mode" 2020-04-28 04:46: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
Amir
dcfa3f37ed qca-wifi: Change monitor ring reap sequence for qcn9000
For qcn9000 in case of monitor mode, reap monitor destination
ring first and status ring later to avoid backpressure
on monitor destination ring

Change-Id: If107d40471a4d01ce8d42054ed844b98217e60cf
CRs-Fixed: 2670656
2020-04-25 19:50:44 +05:30
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
Srinivas Pitla
381441b56b qca-wifi: adjust data by pulling extra HTT header from nbuf
For packets from exception ring will have extra HTT header, that
is adjusted to avoid wrong LLC header

Change-Id: I36adaa6ab0c3ba96a5eec9bf05747576e3938028
CRs-Fixed: 2661034
2020-04-20 13:16:14 -07:00
Linux Build Service Account
51120720e7 Merge "qca-wifi: filter by mac check" 2020-04-20 12:46:45 -07:00
Linux Build Service Account
d035dfef20 Merge "qca-wifi: ignore ack with 0 mac addr" 2020-04-14 17:59:18 -07:00
Christopher Chopp
cf78ddd987 qca-wifi: Add frame types to TX Capture
The current implementation of the TX Capture
feature assumes a non QoS 3 address frame for
each frame. If a frame is a QoS frame, the extra
fields are manually added, but if the frame is a
4 address frame, there is no handling. Add QoS,
4 address and 4 address QoS frame types to the
TX Capture feature and update accordingly.

Change-Id: Idd7f8f55a5543718f52bc38be396d671b87b54bd
CRs-Fixed: 2636684
2020-04-14 16:38:53 -07:00
Ruben Columbus
f73266f87c qca-wifi: filter by mac check
filter pass seems to not be working for control frames
so we are using mac check address comparison for non-bss freames
when tx_monitor is set

Change-Id: I3a003636381f73191081e821dbe8cf00a67cb042
2020-04-13 17:33:22 -07:00
Srinivas Pitla
3e6eb3562a qca-wifi: Free nbuf on bpr disabled case only
If tx capture, sniffer are not enabled, mgmt nbuf is freed.
It is causing use-after-free in bpr enabled case

Added change to free only when bpr is disabled

CRs-Fixed: 2662214
Change-Id: I0d889f371cf47047200f70563b589fac99733c49
2020-04-13 11:32:37 -07:00
Pavankumar Nandeshwar
1514da0ceb qca-wifi: Hold the ast lock while using ast table
Hold the ast lock while fetching and using the ast
entry from ast table without unlocking in between
to make sure that the ast entry is not freed
in between.

Change-Id: I887b94441e7c19d6ce0bf7175f61a1dc9055a0fc
2020-04-01 23:11:11 -07:00
Srinivas Pitla
c1fbfdd72c qca-wifi: fix TSF wrap around case in tx capture
Handle wrap around correctly during TSF delta calculation.

Change-Id: I1303053dbf33175e9f3c7beec0988a4aef03eb7f
CRs-Fixed: 2651294
2020-03-27 10:26:16 -07:00
Srinivas Pitla
e13d2f6375 qca-wifi: Fix RTS and CTS duration in tx capture
This change updates correct timestamp for self gen RTS/CTS frames

Change-Id: I934de171f7d78288a91b57581c9cdb0ff48b9067
CRs-Fixed: 2632369
2020-03-27 10:26:00 -07:00
Ruben Columbus
490a45106d qca-wifi: ignore ack with 0 mac addr
use mac addr compare function with dummy mac addr set to all 0 and dest
mac addr. if they are similar then just ignore frame.

Change-Id: I8c892d0ca4a210865720b94b580b6e24dad0382b
2020-03-26 16:07:28 -07:00
Linux Build Service Account
ae3a9acfa3 Merge "qca-wifi: Add full moniotor mode processing" 2020-03-25 05:41:41 -07:00
Amir
86628c52f7 qca-wifi: Add full moniotor mode processing
a. Add attach and detach for full monitor resources
	b. Read 'sw_monitor_ring' descriptor and pop MPDU
	c. Replenish buffers and link descriptors back to HW
	d. Form a MPDU queue per-ppdu and all MPDUs per-PPDU to upper layer

Change-Id: I5abff75354dd3686491d4fee3c3c4612a3ca3e15
2020-03-24 11:52:18 +05:30
Srinivas Pitla
58a1539c08 qca-wifi: Mark beacon frames as selfgen
Beacon frames are FW generated frames, FW indicated them as DATA_SU,
with this, frame is not marked as self gen. It gets added to retry_q.

Check ppdu frame type and subtype to mark frame as selfgen if it beacon

Change-Id: If0bfd9bf2cc321afe207a4db7529e24baebfd376
CRs-Fixed: 2643848
2020-03-19 16:14:40 -07:00
Srinivas Pitla
298c78568e qca-wifi: cleanup buffers for incomplete amsdu
if last_msdu is not received  then allocated
mpdu_nbuf and mpdu_q is not freed,

This change frees the buffers in last_msdu not seen case.

Change-Id: Icaaa6e227f3ea1d314c6d15a9f76c2f622d5d93f
CRs-Fixed: 2643848
2020-03-19 16:14:27 -07:00
Srinivas Pitla
d11868e2c3 qca-wifi: Drop mgmt nbuf in tx_capture disabled case
If tx_capture is disabled, the frames notified to tx_capture
module needs to be freed.

This change frees mgmt frames in tx capture module, in case feature
is disabled

Change-Id: I71f102ba2f25f23bdcef63dddb525d5f7b0a692a
CRs-Fixed: 2643848
2020-03-19 16:13:31 -07:00