[RFC,3/4] ethdev: use eth_unformat_addr
Checks
Commit Message
Use 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>
---
lib/librte_ethdev/rte_class_eth.c | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
Comments
On Thu, May 16, 2019 at 12:20 AM Stephen Hemminger <
stephen@networkplumber.org> wrote:
> Use 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>
> ---
> lib/librte_ethdev/rte_class_eth.c | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/lib/librte_ethdev/rte_class_eth.c
> b/lib/librte_ethdev/rte_class_eth.c
> index cb99c92ece93..40ca936230c6 100644
> --- a/lib/librte_ethdev/rte_class_eth.c
> +++ b/lib/librte_ethdev/rte_class_eth.c
> @@ -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 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 (ether_unformat_addr(value, &mac) < 0)
>
I had a look at cmdline_parse_etheraddr.
I can see it supports a different format, like "XXXX:XXXX:XXXX" for a mac
address.
So here, we might be breaking some existing users assumptions.
return -1; /* invalid devargs value */
>
> /* Return 0 if devargs MAC is matching one of the device MACs. */
> --
> 2.20.1
>
>
On Wed, May 15, 2019 at 03:19:51PM -0700, Stephen Hemminger wrote:
> Use 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>
> ---
> lib/librte_ethdev/rte_class_eth.c | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
I think this patch should also modify the make and meson.build files to
remove that dependency then.
/Bruce
@@ -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 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 (ether_unformat_addr(value, &mac) < 0)
return -1; /* invalid devargs value */
/* Return 0 if devargs MAC is matching one of the device MACs. */