X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fsfc%2Fbase%2Fefx_evb.c;h=17318b7e1136a7763aa01ca8b86e35154a50681b;hb=4868ae8322892ca916d71d5f8cf74cb2e5e0b5c4;hp=d48e1d77ea0140d3e11a3648f4846904bc69a4cd;hpb=ea94d14dbea0d58ab236060850556bfd73833e10;p=dpdk.git diff --git a/drivers/net/sfc/base/efx_evb.c b/drivers/net/sfc/base/efx_evb.c index d48e1d77ea..17318b7e11 100644 --- a/drivers/net/sfc/base/efx_evb.c +++ b/drivers/net/sfc/base/efx_evb.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause * - * Copyright (c) 2018-2019 Solarflare Communications Inc. - * All rights reserved. + * Copyright(c) 2019-2020 Xilinx, Inc. + * Copyright(c) 2018-2019 Solarflare Communications Inc. */ #include "efx.h" @@ -24,10 +24,11 @@ static const efx_evb_ops_t __efx_evb_dummy_ops = { NULL, /* eeo_vadaptor_free */ NULL, /* eeo_vport_assign */ NULL, /* eeo_vport_reconfigure */ + NULL, /* eeo_vport_stats */ }; #endif /* EFSYS_OPT_SIENA */ -#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD || EFSYS_OPT_MEDFORD2 +#if EFX_OPTS_EF10() static const efx_evb_ops_t __efx_evb_ef10_ops = { ef10_evb_init, /* eeo_init */ ef10_evb_fini, /* eeo_fini */ @@ -41,8 +42,9 @@ static const efx_evb_ops_t __efx_evb_ef10_ops = { ef10_evb_vadaptor_free, /* eeo_vadaptor_free */ ef10_evb_vport_assign, /* eeo_vport_assign */ ef10_evb_vport_reconfigure, /* eeo_vport_reconfigure */ + ef10_evb_vport_stats, /* eeo_vport_stats */ }; -#endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD || EFSYS_OPT_MEDFORD2 */ +#endif /* EFX_OPTS_EF10() */ __checkReturn efx_rc_t efx_evb_init( @@ -501,4 +503,42 @@ fail1: return (rc); } + __checkReturn efx_rc_t +efx_evb_vport_stats( + __in efx_nic_t *enp, + __in efx_vswitch_t *evp, + __in efx_vport_id_t vport_id, + __out efsys_mem_t *stats_bufferp) +{ + efx_rc_t rc; + const efx_evb_ops_t *eeop = enp->en_eeop; + + EFSYS_ASSERT(enp->en_mod_flags & EFX_MOD_EVB); + + if (eeop->eeo_vport_stats == NULL) { + rc = ENOTSUP; + goto fail1; + } + + if (stats_bufferp == NULL) { + rc = EINVAL; + goto fail2; + } + + rc = eeop->eeo_vport_stats(enp, evp->ev_vswitch_id, + vport_id, stats_bufferp); + if (rc != 0) + goto fail3; + + return (0); + +fail3: + EFSYS_PROBE(fail3); +fail2: + EFSYS_PROBE(fail2); +fail1: + EFSYS_PROBE1(fail1, efx_rc_t, rc); + return (rc); +} + #endif