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

Mats Liljegren liljegren.mats2 at gmail.com
Thu Jan 9 09:44:05 CET 2014


On Thu, Jan 9, 2014 at 7:30 AM, Stephen Hemminger
<stephen at networkplumber.org> wrote:
> 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

You're right. I'm too used to int and -1...

I'll prepare new patches.


More information about the dev mailing list