From e98d71b07eac32e07597e0a3c3c5f7ccd4c27ba9 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Mon, 24 Feb 2020 12:45:53 +0000 Subject: ethernet: trivial additions Type: improvement - macros to identify SENDER and TARGET in ARP header - count the number of bits set in a mac_address Signed-off-by: Neale Ranns Change-Id: Id31e27a4f5f01a8cfb70d3798416bb2519981654 --- src/vnet/ethernet/arp_packet.h | 3 +++ src/vnet/ethernet/mac_address.h | 6 ++++++ 2 files changed, 9 insertions(+) (limited to 'src/vnet/ethernet') diff --git a/src/vnet/ethernet/arp_packet.h b/src/vnet/ethernet/arp_packet.h index a35adf17c85..6b4dfa6ab3d 100644 --- a/src/vnet/ethernet/arp_packet.h +++ b/src/vnet/ethernet/arp_packet.h @@ -146,6 +146,9 @@ typedef struct }; } ethernet_arp_header_t; +#define ARP_SENDER 0 +#define ARP_TARGET 1 + extern u8 *format_ethernet_arp_header (u8 * s, va_list * va); extern u8 *format_ethernet_arp_opcode (u8 * s, va_list * va); extern u8 *format_ethernet_arp_hardware_type (u8 * s, va_list * va); diff --git a/src/vnet/ethernet/mac_address.h b/src/vnet/ethernet/mac_address.h index aa773c5c449..68feb3977f0 100644 --- a/src/vnet/ethernet/mac_address.h +++ b/src/vnet/ethernet/mac_address.h @@ -149,6 +149,12 @@ mac_address_set_zero (mac_address_t * mac) mac->u.last_2 = 0; } +static_always_inline int +mac_address_n_bits_set (const mac_address_t * a) +{ + return (count_set_bits (mac_address_as_u64 (a))); +} + extern void mac_address_increment (mac_address_t * mac); extern uword unformat_mac_address_t (unformat_input_t * input, va_list * args); -- cgit 1.2.3-korg