When parsing a device argument, try to parse new global device syntax
firstly, fallback to legacy syntax parsing on error.

Example of new global device syntax:
 -a bus=pci,addr=82:00.0/class=eth/driver=mlx5,dv_flow_en=1

Signed-off-by: Xueming Li <xuemi...@nvidia.com>
---
 lib/librte_eal/common/eal_common_devargs.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/librte_eal/common/eal_common_devargs.c 
b/lib/librte_eal/common/eal_common_devargs.c
index 27af4cc0e3..53ec8ad822 100644
--- a/lib/librte_eal/common/eal_common_devargs.c
+++ b/lib/librte_eal/common/eal_common_devargs.c
@@ -201,6 +201,12 @@ rte_devargs_parse(struct rte_devargs *da, const char *dev)
        if (da == NULL)
                return -EINVAL;
 
+       /* First parse according new global syntax */
+       if (rte_devargs_layers_parse(da, dev) == 0 && da->bus && da->cls)
+               return 0;
+
+       /* Legacy syntax check: */
+
        /* Retrieve eventual bus info */
        do {
                devname = dev;
-- 
2.25.1

Reply via email to