xref: /OK3568_Linux_fs/kernel/drivers/infiniband/hw/bnxt_re/hw_counters.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Broadcom NetXtreme-E RoCE driver.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * Copyright (c) 2016 - 2017, Broadcom. All rights reserved.  The term
5*4882a593Smuzhiyun  * Broadcom refers to Broadcom Limited and/or its subsidiaries.
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * This software is available to you under a choice of one of two
8*4882a593Smuzhiyun  * licenses.  You may choose to be licensed under the terms of the GNU
9*4882a593Smuzhiyun  * General Public License (GPL) Version 2, available from the file
10*4882a593Smuzhiyun  * COPYING in the main directory of this source tree, or the
11*4882a593Smuzhiyun  * BSD license below:
12*4882a593Smuzhiyun  *
13*4882a593Smuzhiyun  * Redistribution and use in source and binary forms, with or without
14*4882a593Smuzhiyun  * modification, are permitted provided that the following conditions
15*4882a593Smuzhiyun  * are met:
16*4882a593Smuzhiyun  *
17*4882a593Smuzhiyun  * 1. Redistributions of source code must retain the above copyright
18*4882a593Smuzhiyun  *    notice, this list of conditions and the following disclaimer.
19*4882a593Smuzhiyun  * 2. Redistributions in binary form must reproduce the above copyright
20*4882a593Smuzhiyun  *    notice, this list of conditions and the following disclaimer in
21*4882a593Smuzhiyun  *    the documentation and/or other materials provided with the
22*4882a593Smuzhiyun  *    distribution.
23*4882a593Smuzhiyun  *
24*4882a593Smuzhiyun  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
25*4882a593Smuzhiyun  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
26*4882a593Smuzhiyun  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
27*4882a593Smuzhiyun  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
28*4882a593Smuzhiyun  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29*4882a593Smuzhiyun  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30*4882a593Smuzhiyun  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
31*4882a593Smuzhiyun  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
32*4882a593Smuzhiyun  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
33*4882a593Smuzhiyun  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
34*4882a593Smuzhiyun  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35*4882a593Smuzhiyun  *
36*4882a593Smuzhiyun  * Description: Statistics (header)
37*4882a593Smuzhiyun  *
38*4882a593Smuzhiyun  */
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun #ifndef __BNXT_RE_HW_STATS_H__
41*4882a593Smuzhiyun #define __BNXT_RE_HW_STATS_H__
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun enum bnxt_re_hw_stats {
44*4882a593Smuzhiyun 	BNXT_RE_ACTIVE_QP,
45*4882a593Smuzhiyun 	BNXT_RE_ACTIVE_SRQ,
46*4882a593Smuzhiyun 	BNXT_RE_ACTIVE_CQ,
47*4882a593Smuzhiyun 	BNXT_RE_ACTIVE_MR,
48*4882a593Smuzhiyun 	BNXT_RE_ACTIVE_MW,
49*4882a593Smuzhiyun 	BNXT_RE_RX_PKTS,
50*4882a593Smuzhiyun 	BNXT_RE_RX_BYTES,
51*4882a593Smuzhiyun 	BNXT_RE_TX_PKTS,
52*4882a593Smuzhiyun 	BNXT_RE_TX_BYTES,
53*4882a593Smuzhiyun 	BNXT_RE_RECOVERABLE_ERRORS,
54*4882a593Smuzhiyun 	BNXT_RE_RX_DROPS,
55*4882a593Smuzhiyun 	BNXT_RE_RX_DISCARDS,
56*4882a593Smuzhiyun 	BNXT_RE_TO_RETRANSMITS,
57*4882a593Smuzhiyun 	BNXT_RE_SEQ_ERR_NAKS_RCVD,
58*4882a593Smuzhiyun 	BNXT_RE_MAX_RETRY_EXCEEDED,
59*4882a593Smuzhiyun 	BNXT_RE_RNR_NAKS_RCVD,
60*4882a593Smuzhiyun 	BNXT_RE_MISSING_RESP,
61*4882a593Smuzhiyun 	BNXT_RE_UNRECOVERABLE_ERR,
62*4882a593Smuzhiyun 	BNXT_RE_BAD_RESP_ERR,
63*4882a593Smuzhiyun 	BNXT_RE_LOCAL_QP_OP_ERR,
64*4882a593Smuzhiyun 	BNXT_RE_LOCAL_PROTECTION_ERR,
65*4882a593Smuzhiyun 	BNXT_RE_MEM_MGMT_OP_ERR,
66*4882a593Smuzhiyun 	BNXT_RE_REMOTE_INVALID_REQ_ERR,
67*4882a593Smuzhiyun 	BNXT_RE_REMOTE_ACCESS_ERR,
68*4882a593Smuzhiyun 	BNXT_RE_REMOTE_OP_ERR,
69*4882a593Smuzhiyun 	BNXT_RE_DUP_REQ,
70*4882a593Smuzhiyun 	BNXT_RE_RES_EXCEED_MAX,
71*4882a593Smuzhiyun 	BNXT_RE_RES_LENGTH_MISMATCH,
72*4882a593Smuzhiyun 	BNXT_RE_RES_EXCEEDS_WQE,
73*4882a593Smuzhiyun 	BNXT_RE_RES_OPCODE_ERR,
74*4882a593Smuzhiyun 	BNXT_RE_RES_RX_INVALID_RKEY,
75*4882a593Smuzhiyun 	BNXT_RE_RES_RX_DOMAIN_ERR,
76*4882a593Smuzhiyun 	BNXT_RE_RES_RX_NO_PERM,
77*4882a593Smuzhiyun 	BNXT_RE_RES_RX_RANGE_ERR,
78*4882a593Smuzhiyun 	BNXT_RE_RES_TX_INVALID_RKEY,
79*4882a593Smuzhiyun 	BNXT_RE_RES_TX_DOMAIN_ERR,
80*4882a593Smuzhiyun 	BNXT_RE_RES_TX_NO_PERM,
81*4882a593Smuzhiyun 	BNXT_RE_RES_TX_RANGE_ERR,
82*4882a593Smuzhiyun 	BNXT_RE_RES_IRRQ_OFLOW,
83*4882a593Smuzhiyun 	BNXT_RE_RES_UNSUP_OPCODE,
84*4882a593Smuzhiyun 	BNXT_RE_RES_UNALIGNED_ATOMIC,
85*4882a593Smuzhiyun 	BNXT_RE_RES_REM_INV_ERR,
86*4882a593Smuzhiyun 	BNXT_RE_RES_MEM_ERROR,
87*4882a593Smuzhiyun 	BNXT_RE_RES_SRQ_ERR,
88*4882a593Smuzhiyun 	BNXT_RE_RES_CMP_ERR,
89*4882a593Smuzhiyun 	BNXT_RE_RES_INVALID_DUP_RKEY,
90*4882a593Smuzhiyun 	BNXT_RE_RES_WQE_FORMAT_ERR,
91*4882a593Smuzhiyun 	BNXT_RE_RES_CQ_LOAD_ERR,
92*4882a593Smuzhiyun 	BNXT_RE_RES_SRQ_LOAD_ERR,
93*4882a593Smuzhiyun 	BNXT_RE_RES_TX_PCI_ERR,
94*4882a593Smuzhiyun 	BNXT_RE_RES_RX_PCI_ERR,
95*4882a593Smuzhiyun 	BNXT_RE_OUT_OF_SEQ_ERR,
96*4882a593Smuzhiyun 	BNXT_RE_NUM_COUNTERS
97*4882a593Smuzhiyun };
98*4882a593Smuzhiyun 
99*4882a593Smuzhiyun struct rdma_hw_stats *bnxt_re_ib_alloc_hw_stats(struct ib_device *ibdev,
100*4882a593Smuzhiyun 						u8 port_num);
101*4882a593Smuzhiyun int bnxt_re_ib_get_hw_stats(struct ib_device *ibdev,
102*4882a593Smuzhiyun 			    struct rdma_hw_stats *stats,
103*4882a593Smuzhiyun 			    u8 port, int index);
104*4882a593Smuzhiyun #endif /* __BNXT_RE_HW_STATS_H__ */
105