blob: 543dd5c89635a7caf822046adcea9d3572f357c7 [file] [log] [blame]
Googler298baf22022-08-01 19:58:45 -07001/*
2 **************************************************************************
3 * Copyright (c) 2016-2017, 2019-2020, The Linux Foundation. All rights reserved.
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 copies.
7 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
13 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14 **************************************************************************
15 */
16
17/*
18 * nss_drv_stats.h
19 * NSS driver stats header file.
20 */
21
22#ifndef __NSS_DRV_STATS_H
23#define __NSS_DRV_STATS_H
24
25#include <linux/debugfs.h>
26
27/*
28 * HLOS driver statistics
29 *
30 * WARNING: There is a 1:1 mapping between values below and corresponding
31 * stats string array in nss_stats.c.
32 */
33enum NSS_DRV_STATS {
34 NSS_DRV_STATS_NBUF_ALLOC_FAILS = 0, /* NBUF allocation errors */
35 NSS_DRV_STATS_PAGED_BUF_ALLOC_FAILS, /* Paged buf allocation errors */
36 NSS_DRV_STATS_TX_QUEUE_FULL_0, /* Tx queue full for Core 0*/
37 NSS_DRV_STATS_TX_QUEUE_FULL_1, /* Tx queue full for Core 1*/
38 NSS_DRV_STATS_TX_EMPTY, /* H2N Empty buffers */
39 NSS_DRV_STATS_PAGED_TX_EMPTY, /* H2N Paged Empty buffers */
40 NSS_DRV_STATS_TX_PACKET, /* H2N Data packets */
41 NSS_DRV_STATS_TX_CMD_REQ, /* H2N Control packets */
42 NSS_DRV_STATS_TX_CRYPTO_REQ, /* H2N Crypto requests */
43 NSS_DRV_STATS_TX_BUFFER_REUSE, /* H2N Reuse buffer count */
44 NSS_DRV_STATS_RX_EMPTY, /* N2H Empty buffers */
45 NSS_DRV_STATS_RX_PACKET, /* N2H Data packets */
46 NSS_DRV_STATS_RX_EXT_PACKET, /* N2H EXT type packets */
47 NSS_DRV_STATS_RX_CMD_RESP, /* N2H Command responses */
48 NSS_DRV_STATS_RX_STATUS, /* N2H Status packets */
49 NSS_DRV_STATS_RX_CRYPTO_RESP, /* N2H Crypto responses */
50 NSS_DRV_STATS_RX_VIRTUAL, /* N2H Virtual packets */
51 NSS_DRV_STATS_TX_SIMPLE, /* H2N Simple SKB Packets */
52 NSS_DRV_STATS_TX_NR_FRAGS, /* H2N NR Frags SKB Packets */
53 NSS_DRV_STATS_TX_FRAGLIST, /* H2N Fraglist SKB Packets */
54 NSS_DRV_STATS_RX_SIMPLE, /* N2H Simple SKB Packets */
55 NSS_DRV_STATS_RX_NR_FRAGS, /* N2H NR Frags SKB Packets */
56 NSS_DRV_STATS_RX_SKB_FRAGLIST, /* N2H Fraglist SKB Packets */
57 NSS_DRV_STATS_RX_BAD_DESCRIPTOR, /* N2H Bad descriptor reads */
58 NSS_DRV_STATS_RX_INVALID_INTERFACE, /* N2H Received descriptor for invalid interface */
59 NSS_DRV_STATS_RX_INVALID_CORE_ID, /* N2H Received packet for invalid core_id */
60 NSS_DRV_STATS_RX_INVALID_BUFFER_TYPE, /* N2H Received packet for invalid buffer type */
61 NSS_DRV_STATS_NSS_SKB_COUNT, /* NSS SKB Pool Count */
62 NSS_DRV_STATS_CHAIN_SEG_PROCESSED, /* N2H SKB Chain Processed Count */
63 NSS_DRV_STATS_FRAG_SEG_PROCESSED, /* N2H Frag Processed Count */
64 NSS_DRV_STATS_TX_CMD_QUEUE_FULL, /* Tx H2N Control packets fail due to queue full */
65#ifdef NSS_MULTI_H2N_DATA_RING_SUPPORT
66 NSS_DRV_STATS_TX_PACKET_QUEUE_0, /* H2N Data packets on queue0 */
67 NSS_DRV_STATS_TX_PACKET_QUEUE_1, /* H2N Data packets on queue1 */
68 NSS_DRV_STATS_TX_PACKET_QUEUE_2, /* H2N Data packets on queue2 */
69 NSS_DRV_STATS_TX_PACKET_QUEUE_3, /* H2N Data packets on queue3 */
70 NSS_DRV_STATS_TX_PACKET_QUEUE_4, /* H2N Data packets on queue4 */
71 NSS_DRV_STATS_TX_PACKET_QUEUE_5, /* H2N Data packets on queue5 */
72 NSS_DRV_STATS_TX_PACKET_QUEUE_6, /* H2N Data packets on queue6 */
73 NSS_DRV_STATS_TX_PACKET_QUEUE_7, /* H2N Data packets on queue7 */
74#endif
75 NSS_DRV_STATS_MAX,
76};
77
78extern void nss_drv_stats_dentry_create(void);
79extern ssize_t nss_wt_stats_read(struct file *fp, char __user *ubuf, size_t sz, loff_t *ppos);
80#endif /* __NSS_DRV_STATS_H */