The eth device class can now parse a field name,
matching the eth_dev name with one passed as

   "class=eth,name=xxxxxx"

Signed-off-by: Gaetan Rivet <gaetan.ri...@6wind.com>
---
 lib/librte_ether/rte_class_eth.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/lib/librte_ether/rte_class_eth.c b/lib/librte_ether/rte_class_eth.c
index 32c736d32..d8d8e8845 100644
--- a/lib/librte_ether/rte_class_eth.c
+++ b/lib/librte_ether/rte_class_eth.c
@@ -15,10 +15,12 @@
 #include "eth_private.h"
 
 enum eth_params {
+       RTE_ETH_PARAMS_NAME,
        RTE_ETH_PARAMS_MAX,
 };
 
 static const char * const eth_params_keys[] = {
+       [RTE_ETH_PARAMS_NAME] = "name",
        [RTE_ETH_PARAMS_MAX] = NULL,
 };
 
@@ -39,6 +41,7 @@ eth_dev_match(const struct rte_eth_dev *edev,
 {
        const struct eth_dev_match_arg *arg = _arg;
        const struct rte_kvargs *kvlist = arg->kvlist;
+       struct rte_eth_dev_data *data;
 
        if (edev->state == RTE_ETH_DEV_UNUSED)
                return -1;
@@ -47,6 +50,10 @@ eth_dev_match(const struct rte_eth_dev *edev,
        if (kvlist == NULL)
                /* Empty string matches everything. */
                return 0;
+       data = edev->data;
+       if (rte_kvargs_process(kvlist, "name",
+                       rte_kvargs_strcmp, data->name))
+               return -1;
        return 0;
 }
 
-- 
2.11.0

Reply via email to