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

Reply via email to