xref: /wlan-dirver/qca-wifi-host-cmn/utils/pktlog/include/pktlog_ac_i.h (revision 4865edfd190c086bbe2c69aae12a8226f877b91e)
1 /*
2  * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 #ifndef _PKTLOG_AC_I_
20 #define _PKTLOG_AC_I_
21 
22 #ifndef REMOVE_PKT_LOG
23 
24 #include <ol_txrx_internal.h>
25 #include <pktlog_ac.h>
26 
27 
28 #define PKTLOG_DEFAULT_BUFSIZE          (1 * 1024 * 1024) /* 1MB */
29 #define PKTLOG_DEFAULT_SACK_THR         3
30 #define PKTLOG_DEFAULT_TAIL_LENGTH      100
31 #define PKTLOG_DEFAULT_THRUPUT_THRESH   (64 * 1024)
32 #define PKTLOG_DEFAULT_PER_THRESH       30
33 #define PKTLOG_DEFAULT_PHYERR_THRESH    300
34 #define PKTLOG_DEFAULT_TRIGGER_INTERVAL 500
35 
36 struct ath_pktlog_arg {
37 	struct ath_pktlog_info *pl_info;
38 	uint32_t flags;
39 	uint16_t missed_cnt;
40 #ifdef HELIUMPLUS
41 	uint8_t log_type;
42 	uint8_t macId;
43 #else
44 	uint16_t log_type;
45 #endif
46 	size_t log_size;
47 	uint16_t timestamp;
48 #ifdef HELIUMPLUS
49 	uint32_t type_specific_data;
50 #endif
51 	char *buf;
52 };
53 
54 void pktlog_getbuf_intsafe(struct ath_pktlog_arg *plarg);
55 char *pktlog_getbuf(struct pktlog_dev_t *pl_dev,
56 		    struct ath_pktlog_info *pl_info,
57 		    size_t log_size, struct ath_pktlog_hdr *pl_hdr);
58 
59 A_STATUS process_tx_info(struct cdp_pdev *pdev, void *data);
60 A_STATUS process_rx_info(void *pdev, void *data);
61 A_STATUS process_rx_info_remote(void *pdev, void *data);
62 A_STATUS process_rate_find(void *pdev, void *data);
63 A_STATUS process_rate_update(void *pdev, void *data);
64 A_STATUS process_sw_event(void *pdev, void *data);
65 int process_pktlog_lite(void *context, void *log_data, uint16_t log_type);
66 int process_rx_desc_remote(void *pdev, void *data);
67 #endif /* REMOVE_PKT_LOG */
68 #endif
69