[dpdk-dev] [RFC PATCH] vhost: Add VHOST PMD

Loftus, Ciara ciara.loftus at intel.com
Thu Sep 17 15:56:13 CEST 2015


> 
> On 2015/09/16 1:27, Loftus, Ciara wrote:
> >> +
> >> +static int
> >> +rte_pmd_vhost_devinit(const char *name, const char *params)
> >> +{
> >> +	struct rte_kvargs *kvlist = NULL;
> >> +	int ret = 0;
> >> +	int index;
> >> +	char *iface_name;
> >> +
> >> +	RTE_LOG(INFO, PMD, "Initializing pmd_vhost for %s\n", name);
> >> +
> >> +	kvlist = rte_kvargs_parse(params, valid_arguments);
> >> +	if (kvlist == NULL)
> >> +		return -1;
> >> +
> >> +	if (strlen(name) < strlen("eth_vhost"))
> >> +		return -1;
> >> +
> >> +	index = strtol(name + strlen("eth_vhost"), NULL, 0);
> >> +	if (errno == ERANGE)
> >> +		return -1;
> >> +
> >> +	if (rte_kvargs_count(kvlist, ETH_VHOST_IFACE_ARG) == 1) {
> >> +		ret = rte_kvargs_process(kvlist, ETH_VHOST_IFACE_ARG,
> >> +				&open_iface, &iface_name);
> >> +		if (ret < 0)
> >> +			goto out_free;
> >> +
> >> +		eth_dev_vhost_create(name, index, iface_name,
> >> rte_socket_id());
> >> +	}
> >> +
> >> +out_free:
> >> +	rte_kvargs_free(kvlist);
> >> +	return ret;
> >> +}
> >> +
> > This suggests to me that vHost ports will only be available/created if one
> supplies the " --vdev 'eth_vhost0,iface=...' " options when launching the
> application. There seems to be no option available to add vHost ports on-the-
> fly after the init process. One would have to restart the application with
> different parameters in order to modify the vHost port configuration. Is this
> correct?
> 
> Hi Ciara,
> 
> Thanks for your checking and description.
> We can attach and detach a port created by vhost PMD using Port Hotplug
> functionality.
> 
> example)
> ./testpmd -c f -n 4 -- -i
> testpmd> port attach eth_vhost0,iface=/tmp/aaa
> 
> Does this fit your case?
> 
> Thanks,
> Tetsuya

Hi,

Thanks for your reply. I wasn't aware of the hotplug functionality but this should work for this use case. Thanks!
I will continue to review the remainder of the patch and reply if I have any further feedback.

Ciara

> 
> > If so, this pmd implementation will not work with Open vSwitch. OVS relies
> on the ability to call the rte_vhost_driver_register function at any point in the
> lifetime of the application, in order to create new vHost ports and
> subsequently register/create the sockets. Being bound to the selection
> chosen on the command line when launching the application is not suitable
> for OVS.
> >
> > Thanks,
> > Ciara



More information about the dev mailing list