Regards,
Keith

> On Oct 11, 2016, at 7:28 AM, Yigit, Ferruh <ferruh.yigit at intel.com> wrote:
> 
> On 10/4/2016 3:45 PM, Keith Wiles wrote:
>> +/*
>> + * Open a TAP interface device.
>> + */
>> +static int
>> +rte_pmd_tap_devinit(const char *name, const char *params)
>> +{
>> +    int ret = 0;
>> +    struct rte_kvargs *kvlist;
>> +    struct tap_info tap_info;
>> +
>> +    /* Setup default values */
>> +    memset(&tap_info, 0, sizeof(tap_info));
>> +
>> +    tap_info.speed = ETH_SPEED_NUM_10G;
>> +    snprintf(tap_info.name, sizeof(tap_info.name), "dtap%d", tap_unit++);
>> +
>> +    if ((params == NULL) || (params[0] == '\0')) {
>> +            RTE_LOG(INFO, PMD, "Initializing pmd_tap for %s\n", name);
>> +
>> +            ret = eth_dev_tap_create(name, &tap_info);
>> +            goto leave;
>> +    }
>> +
>> +    RTE_LOG(INFO, PMD, "Initialize %s with params (%s)\n", name, params);
>> +
>> +    kvlist = rte_kvargs_parse(params, valid_arguments);
>> +    if (!kvlist) {
>> +            ret = eth_dev_tap_create(name, &tap_info);
>> +            goto leave;
>> +    }
>> +
>> +    if (rte_kvargs_count(kvlist, ETH_TAP_SPEED_ARG) == 1) {
>> +            ret = rte_kvargs_process(kvlist, ETH_TAP_SPEED_ARG,
>> +                                     &set_interface_speed, &tap_info);
>> +            if (ret < 0)
>> +                    goto leave;
>> +    } else
>> +            set_interface_speed(NULL, NULL, &tap_info);
>> +
>> +    if (rte_kvargs_count(kvlist, ETH_TAP_IFACE_ARG) == 1) {
>> +            ret = rte_kvargs_process(kvlist, ETH_TAP_IFACE_ARG,
>> +                                     &set_interface_name, &tap_info);
>> +            if (ret < 0)
>> +                    goto leave;
>> +    } else
>> +            set_interface_name(NULL, NULL, (void *)&tap_info);
> 
> Also there must be a eth_dev_tap_create() call after this point to use
> tap_info struct with custom values, right?
> "--vdev eth_tap0,iface=foo0" parameter shouldn't be working with this
> code, right?

Removed the extra code.

> 
>> +
>> +    rte_kvargs_free(kvlist);
>> +
>> +leave:
>> +    if (ret == -1)
>> +            RTE_LOG(INFO, PMD, "Failed to create pmd_tap for %s\n", name);
>> +
>> +    return ret;
>> +}
> 

Reply via email to