[dpdk-dev] [PATCH 1/6] net/tap: use correct tap name

Wiles, Keith keith.wiles at intel.com
Tue Jan 31 16:19:36 CET 2017


> On Jan 31, 2017, at 9:14 AM, Yigit, Ferruh <ferruh.yigit at intel.com> wrote:
> 
> On 1/31/2017 2:52 PM, Wiles, Keith wrote:
>> 
>>> On Jan 31, 2017, at 3:42 AM, Pascal Mazon <pascal.mazon at 6wind.com> wrote:
>>> 
>>> dev->data->name contains "net_tap", the device driver name.
>>> dev->data->dev_private->name contains the actual iface name,
>>> e.g. "dtap0".
>>> 
>>> In tun_alloc() especially, we want to use the latter. Otherwise the
>>> netdevice would be wrongly named "net_tap". Furthermore, creating
>>> several tap vdev would point to the same netdevice.
>>> 
>>> In any case, it must to be consistent with the tun_alloc() call in
>>> eth_dev_tap_create().
>>> 
>>> Signed-off-by: Pascal Mazon <pascal.mazon at 6wind.com>
>>> ---
>>> drivers/net/tap/rte_eth_tap.c | 12 ++++++------
>>> 1 file changed, 6 insertions(+), 6 deletions(-)
>>> 
>>> diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
>>> index 91f63f5468b2..8faf08551b9e 100644
>>> --- a/drivers/net/tap/rte_eth_tap.c
>>> +++ b/drivers/net/tap/rte_eth_tap.c
>>> @@ -410,6 +410,7 @@ tap_setup_queue(struct rte_eth_dev *dev,
>>> 		struct pmd_internals *internals,
>>> 		uint16_t qid)
>>> {
>>> +	struct pmd_internals *pmd = dev->data->dev_private;
>>> 	struct rx_queue *rx = &internals->rxq[qid];
>>> 	struct tx_queue *tx = &internals->txq[qid];
>>> 	int fd;
>>> @@ -419,11 +420,10 @@ tap_setup_queue(struct rte_eth_dev *dev,
>>> 		fd = tx->fd;
>>> 		if (fd < 0) {
>>> 			RTE_LOG(INFO, PMD, "Add queue to TAP %s for qid %d\n",
>>> -				dev->data->name, qid);
>>> -			fd = tun_alloc(dev->data->name);
>>> +				pmd->name, qid);
>>> +			fd = tun_alloc(pmd->name);
>>> 			if (fd < 0) {
>>> -				RTE_LOG(ERR, PMD, "tun_alloc(%s) failed\n",
>>> -					dev->data->name);
>>> +				RTE_LOG(ERR, PMD, "tun_alloc(%s) failed\n", pmd->name);
>>> 				return -1;
>>> 			}
>>> 		}
>>> @@ -493,7 +493,7 @@ tap_rx_queue_setup(struct rte_eth_dev *dev,
>>> 
>>> 	internals->fds[rx_queue_id] = fd;
>>> 	RTE_LOG(INFO, PMD, "RX TAP device name %s, qid %d on fd %d\n",
>>> -		dev->data->name, rx_queue_id, internals->rxq[rx_queue_id].fd);
>>> +		internals->name, rx_queue_id, internals->rxq[rx_queue_id].fd);
>>> 
>>> 	return 0;
>>> }
>>> @@ -516,7 +516,7 @@ tap_tx_queue_setup(struct rte_eth_dev *dev,
>>> 		return -1;
>>> 
>>> 	RTE_LOG(INFO, PMD, "TX TAP device name %s, qid %d on fd %d\n",
>>> -		dev->data->name, tx_queue_id, internals->txq[tx_queue_id].fd);
>>> +		internals->name, tx_queue_id, internals->txq[tx_queue_id].fd);
>>> 
>>> 	return 0;
>>> }
>>> -- 
>>> 2.8.0.rc0
>> 
>> I have not looked at the code completely yet, but it seems reasonable. The only problem is I did have a cleanup patch for the TAP PMD, but Ferruh suggested it was way too many changes at this time for RC2. Are we still under that restriction or when would you suggest this be applied?
> 
> RC2 is out now, I was aiming that tap PMD works with testpmd with RC2.
> Now there is some time for RC3 and some fixes can go in, no new features
> but fixes.

OK, I see. Let me integrate the changes suggested and see how they work with my changes. I may send a patch with a combination of the changes and see what everyone thinks.

> 
>> 
>>> 
>> 
>> Regards,
>> Keith

Regards,
Keith



More information about the dev mailing list