[dpdk-dev,v7,3/7] ether: new API to format eth_addr in string
Commit Message
Signed-off-by: Cunming Liang <cunming.liang@intel.com>
---
lib/librte_ether/rte_ether.h | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
@@ -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.