11// SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
22/*
3- * Copyright 2018-2024 Amazon.com, Inc. or its affiliates. All rights reserved.
3+ * Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved.
44 */
55
66#include "efa_com.h"
@@ -769,6 +769,11 @@ int efa_com_get_stats(struct efa_com_dev *edev,
769769 struct efa_com_admin_queue * aq = & edev -> aq ;
770770 struct efa_admin_aq_get_stats_cmd cmd = {};
771771 struct efa_admin_acq_get_stats_resp resp ;
772+ struct efa_admin_rdma_write_stats * rws ;
773+ struct efa_admin_rdma_read_stats * rrs ;
774+ struct efa_admin_messages_stats * ms ;
775+ struct efa_admin_network_stats * ns ;
776+ struct efa_admin_basic_stats * bs ;
772777 int err ;
773778
774779 cmd .aq_common_descriptor .opcode = EFA_ADMIN_GET_STATS ;
@@ -791,29 +796,41 @@ int efa_com_get_stats(struct efa_com_dev *edev,
791796
792797 switch (cmd .type ) {
793798 case EFA_ADMIN_GET_STATS_TYPE_BASIC :
794- result -> basic_stats .tx_bytes = resp .u .basic_stats .tx_bytes ;
795- result -> basic_stats .tx_pkts = resp .u .basic_stats .tx_pkts ;
796- result -> basic_stats .rx_bytes = resp .u .basic_stats .rx_bytes ;
797- result -> basic_stats .rx_pkts = resp .u .basic_stats .rx_pkts ;
798- result -> basic_stats .rx_drops = resp .u .basic_stats .rx_drops ;
799+ bs = & resp .u .basic_stats ;
800+ result -> basic_stats .tx_bytes = bs -> tx_bytes ;
801+ result -> basic_stats .tx_pkts = bs -> tx_pkts ;
802+ result -> basic_stats .rx_bytes = bs -> rx_bytes ;
803+ result -> basic_stats .rx_pkts = bs -> rx_pkts ;
804+ result -> basic_stats .rx_drops = bs -> rx_drops ;
799805 break ;
800806 case EFA_ADMIN_GET_STATS_TYPE_MESSAGES :
801- result -> messages_stats .send_bytes = resp .u .messages_stats .send_bytes ;
802- result -> messages_stats .send_wrs = resp .u .messages_stats .send_wrs ;
803- result -> messages_stats .recv_bytes = resp .u .messages_stats .recv_bytes ;
804- result -> messages_stats .recv_wrs = resp .u .messages_stats .recv_wrs ;
807+ ms = & resp .u .messages_stats ;
808+ result -> messages_stats .send_bytes = ms -> send_bytes ;
809+ result -> messages_stats .send_wrs = ms -> send_wrs ;
810+ result -> messages_stats .recv_bytes = ms -> recv_bytes ;
811+ result -> messages_stats .recv_wrs = ms -> recv_wrs ;
805812 break ;
806813 case EFA_ADMIN_GET_STATS_TYPE_RDMA_READ :
807- result -> rdma_read_stats .read_wrs = resp .u .rdma_read_stats .read_wrs ;
808- result -> rdma_read_stats .read_bytes = resp .u .rdma_read_stats .read_bytes ;
809- result -> rdma_read_stats .read_wr_err = resp .u .rdma_read_stats .read_wr_err ;
810- result -> rdma_read_stats .read_resp_bytes = resp .u .rdma_read_stats .read_resp_bytes ;
814+ rrs = & resp .u .rdma_read_stats ;
815+ result -> rdma_read_stats .read_wrs = rrs -> read_wrs ;
816+ result -> rdma_read_stats .read_bytes = rrs -> read_bytes ;
817+ result -> rdma_read_stats .read_wr_err = rrs -> read_wr_err ;
818+ result -> rdma_read_stats .read_resp_bytes = rrs -> read_resp_bytes ;
811819 break ;
812820 case EFA_ADMIN_GET_STATS_TYPE_RDMA_WRITE :
813- result -> rdma_write_stats .write_wrs = resp .u .rdma_write_stats .write_wrs ;
814- result -> rdma_write_stats .write_bytes = resp .u .rdma_write_stats .write_bytes ;
815- result -> rdma_write_stats .write_wr_err = resp .u .rdma_write_stats .write_wr_err ;
816- result -> rdma_write_stats .write_recv_bytes = resp .u .rdma_write_stats .write_recv_bytes ;
821+ rws = & resp .u .rdma_write_stats ;
822+ result -> rdma_write_stats .write_wrs = rws -> write_wrs ;
823+ result -> rdma_write_stats .write_bytes = rws -> write_bytes ;
824+ result -> rdma_write_stats .write_wr_err = rws -> write_wr_err ;
825+ result -> rdma_write_stats .write_recv_bytes = rws -> write_recv_bytes ;
826+ break ;
827+ case EFA_ADMIN_GET_STATS_TYPE_NETWORK :
828+ ns = & resp .u .network_stats ;
829+ result -> network_stats .retrans_bytes = ns -> retrans_bytes ;
830+ result -> network_stats .retrans_pkts = ns -> retrans_pkts ;
831+ result -> network_stats .retrans_timeout_events = ns -> retrans_timeout_events ;
832+ result -> network_stats .unresponsive_remote_events = ns -> unresponsive_remote_events ;
833+ result -> network_stats .impaired_remote_conn_events = ns -> impaired_remote_conn_events ;
817834 break ;
818835 }
819836
0 commit comments