1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (c) 2024 Microsoft Corporation. All rights reserved.
4 */
5
6#ifndef _COUNTERS_H_
7#define _COUNTERS_H_
8
9#include "mana_ib.h"
10
11enum mana_ib_port_counters {
12 MANA_IB_REQUESTER_TIMEOUT,
13 MANA_IB_REQUESTER_OOS_NAK,
14 MANA_IB_REQUESTER_RNR_NAK,
15 MANA_IB_RESPONDER_RNR_NAK,
16 MANA_IB_RESPONDER_OOS,
17 MANA_IB_RESPONDER_DUP_REQUEST,
18 MANA_IB_REQUESTER_IMPLICIT_NAK,
19 MANA_IB_REQUESTER_READRESP_PSN_MISMATCH,
20 MANA_IB_NAK_INV_REQ,
21 MANA_IB_NAK_ACCESS_ERR,
22 MANA_IB_NAK_OPP_ERR,
23 MANA_IB_NAK_INV_READ,
24 MANA_IB_RESPONDER_LOCAL_LEN_ERR,
25 MANA_IB_REQUESTOR_LOCAL_PROT_ERR,
26 MANA_IB_RESPONDER_REM_ACCESS_ERR,
27 MANA_IB_RESPONDER_LOCAL_QP_ERR,
28 MANA_IB_RESPONDER_MALFORMED_WQE,
29 MANA_IB_GENERAL_HW_ERR,
30 MANA_IB_REQUESTER_RNR_NAK_RETRIES_EXCEEDED,
31 MANA_IB_REQUESTER_RETRIES_EXCEEDED,
32 MANA_IB_TOTAL_FATAL_ERR,
33 MANA_IB_RECEIVED_CNPS,
34 MANA_IB_NUM_QPS_CONGESTED,
35 MANA_IB_RATE_INC_EVENTS,
36 MANA_IB_NUM_QPS_RECOVERED,
37 MANA_IB_CURRENT_RATE,
38 MANA_IB_DUP_RX_REQ,
39 MANA_IB_TX_BYTES,
40 MANA_IB_RX_BYTES,
41 MANA_IB_RX_SEND_REQ,
42 MANA_IB_RX_WRITE_REQ,
43 MANA_IB_RX_READ_REQ,
44 MANA_IB_TX_PKT,
45 MANA_IB_RX_PKT,
46};
47
48enum mana_ib_device_counters {
49 MANA_IB_SENT_CNPS,
50 MANA_IB_RECEIVED_ECNS,
51 MANA_IB_RECEIVED_CNP_COUNT,
52 MANA_IB_QP_CONGESTED_EVENTS,
53 MANA_IB_QP_RECOVERED_EVENTS,
54 MANA_IB_DEV_RATE_INC_EVENTS,
55};
56
57struct rdma_hw_stats *mana_ib_alloc_hw_port_stats(struct ib_device *ibdev,
58 u32 port_num);
59struct rdma_hw_stats *mana_ib_alloc_hw_device_stats(struct ib_device *ibdev);
60int mana_ib_get_hw_stats(struct ib_device *ibdev, struct rdma_hw_stats *stats,
61 u32 port_num, int index);
62#endif /* _COUNTERS_H_ */
63

source code of linux/drivers/infiniband/hw/mana/counters.h