[dpdk-dev] [v8, 4/4] net/cnxk: add telemetry endpoing to ethdev
Jerin Jacob
jerinjacobk at gmail.com
Tue Sep 21 13:27:52 CEST 2021
On Tue, Sep 21, 2021 at 4:23 PM Gowrishankar Muthukrishnan
<gmuthukrishn at marvell.com> wrote:
>
> Add telemetry endpoint to ethdev.
>
> Signed-off-by: Gowrishankar Muthukrishnan <gmuthukrishn at marvell.com>
> ---
> drivers/net/cnxk/cnxk_ethdev_telemetry.c | 129 +++++++++++++++++++++++
> drivers/net/cnxk/meson.build | 1 +
> 2 files changed, 130 insertions(+)
> create mode 100644 drivers/net/cnxk/cnxk_ethdev_telemetry.c
>
> diff --git a/drivers/net/cnxk/cnxk_ethdev_telemetry.c b/drivers/net/cnxk/cnxk_ethdev_telemetry.c
> new file mode 100644
> index 0000000000..de8c468670
> --- /dev/null
> +++ b/drivers/net/cnxk/cnxk_ethdev_telemetry.c
> @@ -0,0 +1,129 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(C) 2021 Marvell International Ltd.
> + */
> +
> +#include <rte_telemetry.h>
> +
> +#include "cnxk_ethdev.h"
> +
> +/* Macro to count no of words in eth_info_s size */
> +#define ETH_INFO_SZ \
> + (RTE_ALIGN_CEIL(sizeof(struct eth_info_s), sizeof(uint64_t)) / \
> + sizeof(uint64_t))
> +#define MACADDR_LEN 18
> +
> +static int
> +ethdev_tel_handle_info(const char *cmd __rte_unused,
> + const char *params __rte_unused, struct rte_tel_data *d)
> +{
> + struct rte_eth_dev *eth_dev;
> + struct rte_tel_data *i_data;
> + struct cnxk_eth_dev *dev;
> + union eth_info_u {
> + struct eth_info_s {
> + /** PF/VF information */
> + uint16_t pf_func;
> + /** No of rx queues */
> + uint16_t rx_queues;
> + /** No of tx queues */
> + uint16_t tx_queues;
> + /** Port ID */
> + uint16_t port_id;
> + /** MAC entries */
> + char mac_addr[MACADDR_LEN];
> + uint8_t max_mac_entries;
> + bool dmac_filter_ena;
> + uint8_t dmac_filter_count;
> + uint16_t flags;
> + uint8_t ptype_disable;
> + bool scalar_ena;
> + bool ptp_ena;
> + /* Offload capabilities */
> + uint64_t rx_offload_capa;
> + uint64_t tx_offload_capa;
> + uint32_t speed_capa;
> + /* Configured offloads */
> + uint64_t rx_offloads;
> + uint64_t tx_offloads;
> + /* Platform specific offload flags */
> + uint16_t rx_offload_flags;
> + uint16_t tx_offload_flags;
> + /* ETHDEV RSS HF bitmask */
> + uint64_t ethdev_rss_hf;
+ Ethdev, , mempool and telemetry maintainers
All of the above data except[1] is generic data that can be derived
from ethdev APIs or ethdev data from lib/ethdev itself,
IMO, We should avoid duplicating this in driver and make useful for
other driver/application by adding generic endpoint in ethdev.
Same comment for "[2/4] mempool/cnxk: add telemetry end points" for
mempool subsystem.
Thoughts from Maintainers?
[1]
uint8_t ptype_disable;
bool scalar_ena;
bool ptp_ena;
uint16_t flags;
More information about the dev
mailing list