[dpdk-dev] [RFC v2] ethdev: add IF-MIB attributes implementation

Stephen Hemminger stephen at networkplumber.org
Fri Jul 14 02:07:57 CEST 2017


On Thu, 13 Jul 2017 17:24:27 +0100
Reshma Pattan <reshma.pattan at intel.com> wrote:

> diff --git a/lib/librte_ether/rte_ethdev_pci.h b/lib/librte_ether/rte_ethdev_pci.h
> index 69aab03..f829407 100644
> --- a/lib/librte_ether/rte_ethdev_pci.h
> +++ b/lib/librte_ether/rte_ethdev_pci.h
> @@ -37,6 +37,7 @@
>  #include <rte_malloc.h>
>  #include <rte_pci.h>
>  #include <rte_ethdev.h>
> +#include <rte_cycles.h>
>  
>  /**
>   * Copy pci device info to the Ethernet device data.
> @@ -157,6 +158,9 @@ rte_eth_dev_pci_generic_probe(struct rte_pci_device *pci_dev,
>  
>  	RTE_FUNC_PTR_OR_ERR_RET(*dev_init, -EINVAL);
>  	ret = dev_init(eth_dev);
> +	eth_dev->data->sys_up_time_start = rte_rdtsc();
> +	eth_dev->data->if_counter_discontinuity_time = 0;
> +	eth_dev->data->if_last_change = 0;

Shouldn't this be in base eth_dev layer rather than the  PCI specific code.

If you look in rte_eth_dev_data_alloc, the dev_data is already zeroed.

Also, DPDK in general does BSD style structure names (ie always putting prefix
on structure tags). In BSD, this is a leftover from ancient V6 UNIX where
compiler did no real checking of structure tags. My preference is that
variables and structure names be as short as possible.

The TSC counter is not a good value to use on this anyway. You don't care
about sub-microsecond accuracy and it wraps around. Better to figure out
a better clock source. Is there a DPDK wrapper of clock_gettime(CLOCK_MONOTONIC)?



More information about the dev mailing list