[dpdk-dev] [PATCH 1/2] Introduce if_index field to struct rte_eth_dev_info

Stephen Hemminger stephen at networkplumber.org
Thu Jan 9 07:30:12 CET 2014


Technically in Linux ifindex is unsigned 32 bit value. And 0 is
reserved as a marker.
Therefore why not use that semantic.

On Wed, Jan 8, 2014 at 1:46 AM, Mats Liljegren
<liljegren.mats2 at gmail.com> wrote:
> This field is intended for pcap to describe the name of the interface
> as known to Linux. It is an interface index, but can be translated into
> an interface name using if_indextoname() function.
>
> When using pcap, interrupt affinity becomes important, and this field
> gives the application a chance to ensure that interrupt affinity is set
> to the lcore handling the device.
>
> Signed-off-by: Mats Liljegren <mats.liljegren at enea.com>
> ---
>  lib/librte_ether/rte_ethdev.c | 1 +
>  lib/librte_ether/rte_ethdev.h | 1 +
>  2 files changed, 2 insertions(+)
>
> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
> index 859ec92..38c1ea1 100644
> --- a/lib/librte_ether/rte_ethdev.c
> +++ b/lib/librte_ether/rte_ethdev.c
> @@ -1037,6 +1037,7 @@ rte_eth_dev_info_get(uint8_t port_id, struct
> rte_eth_dev_info *dev_info)
>         /* Default device offload capabilities to zero */
>         dev_info->rx_offload_capa = 0;
>         dev_info->tx_offload_capa = 0;
> +       dev_info->if_index = -1;
>         FUNC_PTR_OR_RET(*dev->dev_ops->dev_infos_get);
>         (*dev->dev_ops->dev_infos_get)(dev, dev_info);
>         dev_info->pci_dev = dev->pci_dev;
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index 302d378..5b80e5d 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -787,6 +787,7 @@ struct rte_eth_conf {
>  struct rte_eth_dev_info {
>         struct rte_pci_device *pci_dev; /**< Device PCI information. */
>         const char *driver_name; /**< Device Driver name. */
> +       int if_index; /**< Index to bounded host interface, or -1 if
> none. Use if_indextoname() to translate into an interface name. */
>         uint32_t min_rx_bufsize; /**< Minimum size of RX buffer. */
>         uint32_t max_rx_pktlen; /**< Maximum configurable length of RX pkt. */
>         uint16_t max_rx_queues; /**< Maximum number of RX queues. */
> --
> 1.8.3.2


More information about the dev mailing list