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 11 enum 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 48 enum 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 57 struct rdma_hw_stats *mana_ib_alloc_hw_port_stats(struct ib_device *ibdev, 58 u32 port_num); 59 struct rdma_hw_stats *mana_ib_alloc_hw_device_stats(struct ib_device *ibdev); 60 int 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