[dpdk-dev] [PATCH v1 1/4] net/iavf: stop the PCI probe in DCF mode
Ye Xiaolong
xiaolong.ye at intel.com
Tue Mar 10 04:37:49 CET 2020
On 03/10, Wang, Haiyue wrote:
>> -----Original Message-----
>> From: Ye, Xiaolong <xiaolong.ye at intel.com>
>> Sent: Monday, March 9, 2020 23:38
>> To: Wang, Haiyue <haiyue.wang at intel.com>
>> Cc: dev at dpdk.org; Zhang, Qi Z <qi.z.zhang at intel.com>; Yang, Qiming <qiming.yang at intel.com>; Xing,
>> Beilei <beilei.xing at intel.com>; Zhao1, Wei <wei.zhao1 at intel.com>
>> Subject: Re: [PATCH v1 1/4] net/iavf: stop the PCI probe in DCF mode
>>
>> On 03/09, Haiyue Wang wrote:
>> >A new DCF PMD will be introduced, which runs on Intel VF hardware, and
>> >it is a pure software design to control the advance functionality (such
>> >as switch, ACL) for rest of the VFs.
>> >
>> >So if the DCF (Device Config Function) mode is specified by the devarg
>> >'cap=dcf', then it will stop the PCI probe in the iavf PMD.
>> >
>> >Signed-off-by: Haiyue Wang <haiyue.wang at intel.com>
>> >---
>> > drivers/net/iavf/iavf_ethdev.c | 41 ++++++++++++++++++++++++++++++++++
>> > 1 file changed, 41 insertions(+)
>> >
>> >diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
>> >index 34913f9c4..8ff26c0e7 100644
>> >--- a/drivers/net/iavf/iavf_ethdev.c
>> >+++ b/drivers/net/iavf/iavf_ethdev.c
>> >@@ -1416,9 +1416,49 @@ iavf_dev_uninit(struct rte_eth_dev *dev)
>> > return 0;
>> > }
>> >
>> >+static int
>> >+handle_dcf_arg(__rte_unused const char *key, const char *value,
>> >+ __rte_unused void *arg)
>> >+{
>> >+ bool *dcf = arg;
>> >+
>> >+ if (arg == NULL || value == NULL)
>> >+ return -EINVAL;
>> >+
>> >+ if (strcmp(value, "dcf") == 0)
>> >+ *dcf = true;
>> >+ else
>> >+ *dcf = false;
>> >+
>> >+ return 0;
>> >+}
>> >+
>> >+static bool
>> >+check_cap_dcf_enable(struct rte_devargs *devargs)
>> >+{
>> >+ struct rte_kvargs *kvlist;
>> >+ bool enable = false;
>> >+
>> >+ if (devargs == NULL)
>> >+ return false;
>> >+
>> >+ kvlist = rte_kvargs_parse(devargs->args, NULL);
>> >+ if (kvlist == NULL)
>> >+ return false;
>> >+
>> >+ rte_kvargs_process(kvlist, "cap", handle_dcf_arg, &enable);
>>
>> Need error handling for failure case.
>>
>
>We just need the 'cap=dcf' to check whether it is true, by default
>'enable=false' can handle all the cases. ;-)
>
Yes, from function point of view, this could work. But it is still good practice
to check the return value of the function.
Thanks,
Xiaolong
More information about the dev
mailing list