ether: new function to format mac address

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
This commit is contained in:
Cunming Liang 2014-11-12 14:24:32 +08:00 committed by Thomas Monjalon
parent 90924caf08
commit ec3d82db2d
12 changed files with 57 additions and 85 deletions

View File

@ -99,13 +99,9 @@
static void
print_ethaddr(const char *name, struct ether_addr *eth_addr)
{
printf("%s%02X:%02X:%02X:%02X:%02X:%02X", name,
(unsigned int)eth_addr->addr_bytes[0],
(unsigned int)eth_addr->addr_bytes[1],
(unsigned int)eth_addr->addr_bytes[2],
(unsigned int)eth_addr->addr_bytes[3],
(unsigned int)eth_addr->addr_bytes[4],
(unsigned int)eth_addr->addr_bytes[5]);
char buf[ETHER_ADDR_FMT_SIZE];
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
printf("%s%s", name, buf);
}
void

View File

@ -235,18 +235,6 @@ ip_proto_name(uint8_t ip_proto)
return "UNASSIGNED";
}
static void
ether_addr_to_hexa(const struct ether_addr *ea, char *buf)
{
sprintf(buf, "%02x:%02x:%02x:%02x:%02x:%02x",
ea->addr_bytes[0],
ea->addr_bytes[1],
ea->addr_bytes[2],
ea->addr_bytes[3],
ea->addr_bytes[4],
ea->addr_bytes[5]);
}
static void
ipv4_addr_to_dot(uint32_t be_ipv4_addr, char *buf)
{
@ -261,9 +249,9 @@ ipv4_addr_to_dot(uint32_t be_ipv4_addr, char *buf)
static void
ether_addr_dump(const char *what, const struct ether_addr *ea)
{
char buf[18];
char buf[ETHER_ADDR_FMT_SIZE];
ether_addr_to_hexa(ea, buf);
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, ea);
if (what)
printf("%s", what);
printf("%s", buf);

View File

@ -94,14 +94,9 @@ static const char *pkt_rx_flag_names[MAX_PKT_RX_FLAGS] = {
static inline void
print_ether_addr(const char *what, struct ether_addr *eth_addr)
{
printf("%s%02X:%02X:%02X:%02X:%02X:%02X",
what,
eth_addr->addr_bytes[0],
eth_addr->addr_bytes[1],
eth_addr->addr_bytes[2],
eth_addr->addr_bytes[3],
eth_addr->addr_bytes[4],
eth_addr->addr_bytes[5]);
char buf[ETHER_ADDR_FMT_SIZE];
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
printf("%s%s", what, buf);
}
/*

View File

@ -592,13 +592,9 @@ parse_args(int argc, char **argv)
static void
print_ethaddr(const char *name, const struct ether_addr *eth_addr)
{
printf ("%s%02X:%02X:%02X:%02X:%02X:%02X", name,
eth_addr->addr_bytes[0],
eth_addr->addr_bytes[1],
eth_addr->addr_bytes[2],
eth_addr->addr_bytes[3],
eth_addr->addr_bytes[4],
eth_addr->addr_bytes[5]);
char buf[ETHER_ADDR_FMT_SIZE];
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
printf("%s%s", name, buf);
}
static int

View File

@ -600,13 +600,9 @@ parse_args(int argc, char **argv)
static void
print_ethaddr(const char *name, struct ether_addr *eth_addr)
{
printf("%s%02X:%02X:%02X:%02X:%02X:%02X", name,
eth_addr->addr_bytes[0],
eth_addr->addr_bytes[1],
eth_addr->addr_bytes[2],
eth_addr->addr_bytes[3],
eth_addr->addr_bytes[4],
eth_addr->addr_bytes[5]);
char buf[ETHER_ADDR_FMT_SIZE];
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
printf("%s%s", name, buf);
}
/* Check the link status of all ports in up to 9s, and print them finally */

View File

@ -729,13 +729,9 @@ parse_args(int argc, char **argv)
static void
print_ethaddr(const char *name, const struct ether_addr *eth_addr)
{
printf ("%s%02X:%02X:%02X:%02X:%02X:%02X", name,
eth_addr->addr_bytes[0],
eth_addr->addr_bytes[1],
eth_addr->addr_bytes[2],
eth_addr->addr_bytes[3],
eth_addr->addr_bytes[4],
eth_addr->addr_bytes[5]);
char buf[ETHER_ADDR_FMT_SIZE];
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
printf("%s%s", name, buf);
}
/* Check the link status of all ports in up to 9s, and print them finally */

View File

@ -586,13 +586,9 @@ parse_args(int argc, char **argv)
static void
print_ethaddr(const char *name, struct ether_addr *eth_addr)
{
printf("%s%02X:%02X:%02X:%02X:%02X:%02X", name,
eth_addr->addr_bytes[0],
eth_addr->addr_bytes[1],
eth_addr->addr_bytes[2],
eth_addr->addr_bytes[3],
eth_addr->addr_bytes[4],
eth_addr->addr_bytes[5]);
char buf[ETHER_ADDR_FMT_SIZE];
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
printf("%s%s", name, buf);
}
static int

View File

@ -1820,13 +1820,9 @@ parse_args(int argc, char **argv)
static void
print_ethaddr(const char *name, const struct ether_addr *eth_addr)
{
printf("%s%02X:%02X:%02X:%02X:%02X:%02X", name,
eth_addr->addr_bytes[0],
eth_addr->addr_bytes[1],
eth_addr->addr_bytes[2],
eth_addr->addr_bytes[3],
eth_addr->addr_bytes[4],
eth_addr->addr_bytes[5]);
char buf[ETHER_ADDR_FMT_SIZE];
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
printf("%s%s", name, buf);
}
static int

View File

@ -1240,13 +1240,9 @@ parse_args(int argc, char **argv)
static void
print_ethaddr(const char *name, const struct ether_addr *eth_addr)
{
printf ("%s%02X:%02X:%02X:%02X:%02X:%02X", name,
eth_addr->addr_bytes[0],
eth_addr->addr_bytes[1],
eth_addr->addr_bytes[2],
eth_addr->addr_bytes[3],
eth_addr->addr_bytes[4],
eth_addr->addr_bytes[5]);
char buf[ETHER_ADDR_FMT_SIZE];
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
printf("%s%s", name, buf);
}
#if (APP_LOOKUP_METHOD == APP_LOOKUP_EXACT_MATCH)

View File

@ -826,13 +826,9 @@ parse_args(int argc, char **argv)
static void
print_ethaddr(const char *name, const struct ether_addr *eth_addr)
{
printf ("%s%02X:%02X:%02X:%02X:%02X:%02X", name,
eth_addr->addr_bytes[0],
eth_addr->addr_bytes[1],
eth_addr->addr_bytes[2],
eth_addr->addr_bytes[3],
eth_addr->addr_bytes[4],
eth_addr->addr_bytes[5]);
char buf[ETHER_ADDR_FMT_SIZE];
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
printf("%s%s", name, buf);
}
#if (APP_LOOKUP_METHOD == APP_LOOKUP_EXACT_MATCH)

View File

@ -1976,13 +1976,9 @@ parse_args(int argc, char **argv)
static void
print_ethaddr(const char *name, const struct ether_addr *eth_addr)
{
printf ("%s%02X:%02X:%02X:%02X:%02X:%02X", name,
eth_addr->addr_bytes[0],
eth_addr->addr_bytes[1],
eth_addr->addr_bytes[2],
eth_addr->addr_bytes[3],
eth_addr->addr_bytes[4],
eth_addr->addr_bytes[5]);
char buf[ETHER_ADDR_FMT_SIZE];
ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr);
printf("%s%s", name, buf);
}
#if (APP_LOOKUP_METHOD == APP_LOOKUP_EXACT_MATCH)

View File

@ -45,6 +45,7 @@ extern "C" {
#endif
#include <stdint.h>
#include <stdio.h>
#include <rte_memcpy.h>
#include <rte_random.h>
@ -266,6 +267,30 @@ static inline void ether_addr_copy(const struct ether_addr *ea_from,
#endif
}
#define ETHER_ADDR_FMT_SIZE 18
/**
* Format 48bits Ethernet address in pattern xx:xx:xx:xx:xx:xx.
*
* @param buf
* A pointer to buffer contains the formatted MAC address.
* @param size
* The format buffer size.
* @param ea_to
* A pointer to a ether_addr structure.
*/
static inline void
ether_format_addr(char *buf, uint16_t size,
const struct ether_addr *eth_addr)
{
snprintf(buf, size, "%02X:%02X:%02X:%02X:%02X:%02X",
eth_addr->addr_bytes[0],
eth_addr->addr_bytes[1],
eth_addr->addr_bytes[2],
eth_addr->addr_bytes[3],
eth_addr->addr_bytes[4],
eth_addr->addr_bytes[5]);
}
/**
* Ethernet header: Contains the destination address, source address
* and frame type.