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 > 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