Tested-by: Billy O'Mahony <billy.o.mah...@intel.com> Acked-by: Billy O'Mahony <billy.o.mah...@intel.com>
> -----Original Message----- > From: ovs-dev-boun...@openvswitch.org [mailto:ovs-dev- > boun...@openvswitch.org] On Behalf Of Ilya Maximets > Sent: Friday, May 19, 2017 2:38 PM > To: d...@openvswitch.org; Daniele Di Proietto <diproiet...@ovn.org>; > Darrell Ball <db...@vmware.com> > Cc: Ilya Maximets <i.maxim...@samsung.com>; Heetae Ahn > <heetae82....@samsung.com> > Subject: [ovs-dev] [PATCH v4 1/3] netdev-dpdk: Fix double attaching of > virtual devices. > > 'devargs' for virtual devices contains not only name but also a list of > arguments like this: > > 'net_pcap0,rx_pcap=file_rx.pcap,tx_pcap=file_tx.pcap' > or > 'eth_af_packet0,iface=eth0' > > We must cut off the arguments from this string before calling > 'rte_eth_dev_get_port_by_name()' to avoid double attaching of the same > device. > > CC: Ciara Loftus <ciara.lof...@intel.com> > Fixes: 69876ed78611 ("netdev-dpdk: Add support for virtual DPDK PMDs > (vdevs)") > Signed-off-by: Ilya Maximets <i.maxim...@samsung.com> > --- > lib/netdev-dpdk.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 9941f88..1586e41 > 100644 > --- a/lib/netdev-dpdk.c > +++ b/lib/netdev-dpdk.c > @@ -1115,10 +1115,12 @@ netdev_dpdk_lookup_by_port_id(int port_id) > static int netdev_dpdk_process_devargs(const char *devargs, char **errp) > { > + /* Get the name up to the first comma. */ > + char *name = xmemdup0(devargs, strcspn(devargs, ",")); > uint8_t new_port_id = UINT8_MAX; > > if (!rte_eth_dev_count() > - || rte_eth_dev_get_port_by_name(devargs, &new_port_id) > + || rte_eth_dev_get_port_by_name(name, &new_port_id) > || !rte_eth_dev_is_valid_port(new_port_id)) { > /* Device not found in DPDK, attempt to attach it */ > if (!rte_eth_dev_attach(devargs, &new_port_id)) { @@ -1128,10 > +1130,11 @@ netdev_dpdk_process_devargs(const char *devargs, char > **errp) > /* Attach unsuccessful */ > VLOG_WARN_BUF(errp, "Error attaching device '%s' to DPDK", > devargs); > - return -1; > + new_port_id = UINT8_MAX; > } > } > > + free(name); > return new_port_id; > } > > -- > 2.7.4 > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev