net: add rte prefix to ether structures
[dpdk.git] / lib / librte_ethdev / rte_class_eth.c
index 16b47c3..e554668 100644 (file)
@@ -44,7 +44,7 @@ eth_mac_cmp(const char *key __rte_unused,
                const char *value, void *opaque)
 {
        int ret;
-       struct ether_addr mac;
+       struct rte_ether_addr mac;
        const struct rte_eth_dev_data *data = opaque;
        struct rte_eth_dev_info dev_info;
        uint32_t index;
@@ -106,14 +106,12 @@ eth_dev_match(const struct rte_eth_dev *edev,
        int ret;
        const struct eth_dev_match_arg *arg = _arg;
        const struct rte_kvargs *kvlist = arg->kvlist;
+       unsigned int pair;
 
        if (edev->state == RTE_ETH_DEV_UNUSED)
                return -1;
        if (arg->device != NULL && arg->device != edev->device)
                return -1;
-       if (kvlist == NULL)
-               /* Empty string matches everything. */
-               return 0;
 
        ret = rte_kvargs_process(kvlist,
                        eth_params_keys[RTE_ETH_PARAM_MAC],
@@ -126,6 +124,17 @@ eth_dev_match(const struct rte_eth_dev *edev,
                        eth_representor_cmp, edev->data);
        if (ret != 0)
                return -1;
+       /* search for representor key */
+       for (pair = 0; pair < kvlist->count; pair++) {
+               ret = strcmp(kvlist->pairs[pair].key,
+                               eth_params_keys[RTE_ETH_PARAM_REPRESENTOR]);
+               if (ret == 0)
+                       break; /* there is a representor key */
+       }
+       /* if no representor key, default is to not match representor ports */
+       if (ret != 0)
+               if ((edev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR) != 0)
+                       return -1; /* do not match any representor */
 
        return 0;
 }
@@ -157,7 +166,7 @@ eth_dev_iterate(const void *start,
        return edev;
 }
 
-struct rte_class rte_class_eth = {
+static struct rte_class rte_class_eth = {
        .dev_iterate = eth_dev_iterate,
 };