xref: /wlan-dirver/qca-wifi-host-cmn/utils/pktlog/include/pktlog_ac_i.h (revision 1f55ed1a9f5050d8da228aa8dd3fff7c0242aa71)
1 /*
2  * Copyright (c) 2012-2018 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          (10 * 1024 * 1024) /* 10MB */
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 	uint32_t type_specific_data;
49 	char *buf;
50 };
51 
52 void pktlog_getbuf_intsafe(struct ath_pktlog_arg *plarg);
53 char *pktlog_getbuf(struct pktlog_dev_t *pl_dev,
54 		    struct ath_pktlog_info *pl_info,
55 		    size_t log_size, struct ath_pktlog_hdr *pl_hdr);
56 
57 A_STATUS process_tx_info(struct cdp_pdev *pdev, void *data);
58 A_STATUS process_rx_info(void *pdev, void *data);
59 A_STATUS process_rx_info_remote(void *pdev, void *data);
60 A_STATUS process_rate_find(void *pdev, void *data);
61 A_STATUS process_rate_update(void *pdev, void *data);
62 A_STATUS process_sw_event(void *pdev, void *data);
63 int process_pktlog_lite(void *context, void *log_data, uint16_t log_type);
64 int process_rx_desc_remote(void *pdev, void *data);
65 A_STATUS process_offload_pktlog(struct cdp_pdev *pdev, void *data);
66 #endif /* REMOVE_PKT_LOG */
67 #endif
68