diff options
Diffstat (limited to 'src/vnet/ethernet/mac_address.h')
-rw-r--r-- | src/vnet/ethernet/mac_address.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/vnet/ethernet/mac_address.h b/src/vnet/ethernet/mac_address.h index 7b4390dfb48..a249cb58e7c 100644 --- a/src/vnet/ethernet/mac_address.h +++ b/src/vnet/ethernet/mac_address.h @@ -37,6 +37,13 @@ mac_address_from_bytes (mac_address_t * mac, const u8 * bytes) clib_memcpy (mac->bytes, bytes, 6); } +static_always_inline void +mac_address_to_bytes (const mac_address_t * mac, u8 * bytes) +{ + /* zero out the last 2 bytes, then copy over only 6 */ + clib_memcpy (bytes, mac->bytes, 6); +} + static_always_inline int mac_address_is_zero (const mac_address_t * mac) { @@ -57,6 +64,12 @@ mac_address_from_u64 (u64 u, mac_address_t * mac) mac->bytes[5] = 0; } +static_always_inline void +mac_address_copy (mac_address_t * dst, const mac_address_t * src) +{ + mac_address_from_bytes (dst, src->bytes); +} + extern uword unformat_mac_address_t (unformat_input_t * input, va_list * args); extern u8 *format_mac_address_t (u8 * s, va_list * args); |