ethdev: use new ethernet parsing function

Use rte_eth_unformat_addr, so that ethdev can be built and work
without the cmdline library. The dependency on cmdline was
an arrangement of convenience anyway.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Stephen Hemminger 2019-07-05 10:16:18 -07:00 committed by Ferruh Yigit
parent 596d31092d
commit 22d2103dfe
4 changed files with 3 additions and 11 deletions

View File

@ -25,7 +25,6 @@ DIRS-$(CONFIG_RTE_LIBRTE_ETHER) += librte_ethdev
DEPDIRS-librte_ethdev := librte_net librte_eal librte_mempool librte_ring
DEPDIRS-librte_ethdev += librte_mbuf
DEPDIRS-librte_ethdev += librte_kvargs
DEPDIRS-librte_ethdev += librte_cmdline
DEPDIRS-librte_ethdev += librte_meter
DIRS-$(CONFIG_RTE_LIBRTE_BBDEV) += librte_bbdev
DEPDIRS-librte_bbdev := librte_eal librte_mempool librte_mbuf

View File

@ -12,7 +12,7 @@ CFLAGS += -DALLOW_EXPERIMENTAL_API
CFLAGS += -O3
CFLAGS += $(WERROR_FLAGS)
LDLIBS += -lrte_net -lrte_eal -lrte_mempool -lrte_ring
LDLIBS += -lrte_mbuf -lrte_kvargs -lrte_cmdline -lrte_meter
LDLIBS += -lrte_mbuf -lrte_kvargs -lrte_meter
EXPORT_MAP := rte_ethdev_version.map

View File

@ -26,4 +26,4 @@ headers = files('rte_ethdev.h',
'rte_tm.h',
'rte_tm_driver.h')
deps += ['net', 'kvargs', 'cmdline', 'meter']
deps += ['net', 'kvargs', 'meter']

View File

@ -4,7 +4,6 @@
#include <string.h>
#include <cmdline_parse_etheraddr.h>
#include <rte_class.h>
#include <rte_compat.h>
#include <rte_errno.h>
@ -43,19 +42,13 @@ static int
eth_mac_cmp(const char *key __rte_unused,
const char *value, void *opaque)
{
int ret;
struct rte_ether_addr mac;
const struct rte_eth_dev_data *data = opaque;
struct rte_eth_dev_info dev_info;
uint32_t index;
/* Parse devargs MAC address. */
/*
* cannot use ether_aton_r(value, &mac)
* because of include conflict with rte_ether.h
*/
ret = cmdline_parse_etheraddr(NULL, value, &mac, sizeof(mac));
if (ret < 0)
if (rte_ether_unformat_addr(value, &mac) < 0)
return -1; /* invalid devargs value */
/* Return 0 if devargs MAC is matching one of the device MACs. */