diff options
author | Neale Ranns <nranns@cisco.com> | 2018-08-10 05:30:06 -0700 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2019-01-30 19:47:53 +0000 |
commit | 37029305c671f4e2d091d6f6c22142634e409043 (patch) | |
tree | f47257c77b860213fcd1901686874dee43ad1f73 /src/vnet/ethernet/arp_packet.h | |
parent | 13b2ba2ad5527c8185dce368993a3877e7daf7a2 (diff) |
Use IP and MAC API types for neighbors
use address_t and mac_address_t for IPv6 and ARP entries
and all other API calls in ip.api aprat from the route ones,
that will follow in a separate commit
Change-Id: I67161737c2184d3f8fc1e79ebd2b55121c5b0191
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/ethernet/arp_packet.h')
-rw-r--r-- | src/vnet/ethernet/arp_packet.h | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/src/vnet/ethernet/arp_packet.h b/src/vnet/ethernet/arp_packet.h index 206be4162d2..b4e021cce19 100644 --- a/src/vnet/ethernet/arp_packet.h +++ b/src/vnet/ethernet/arp_packet.h @@ -18,6 +18,8 @@ #ifndef included_ethernet_arp_packet_h #define included_ethernet_arp_packet_h +#include <vnet/ethernet/mac_address.h> + #define foreach_ethernet_arp_hardware_type \ _ (0, reserved) \ _ (1, ethernet) \ @@ -119,11 +121,14 @@ typedef enum /* *INDENT-OFF* */ typedef CLIB_PACKED (struct { - u8 ethernet[6]; + mac_address_t mac; ip4_address_t ip4; }) ethernet_arp_ip4_over_ethernet_address_t; /* *INDENT-ON* */ +STATIC_ASSERT (sizeof (ethernet_arp_ip4_over_ethernet_address_t) == 10, + "Packet ethernet address and IP4 address too big"); + typedef struct { u16 l2_type; @@ -140,34 +145,6 @@ typedef struct }; } ethernet_arp_header_t; -typedef enum ethernet_arp_entry_flags_t_ -{ - ETHERNET_ARP_IP4_ENTRY_FLAG_STATIC = (1 << 0), - ETHERNET_ARP_IP4_ENTRY_FLAG_DYNAMIC = (1 << 1), - ETHERNET_ARP_IP4_ENTRY_FLAG_NO_FIB_ENTRY = (1 << 2), -} __attribute__ ((packed)) ethernet_arp_entry_flags_t; - -typedef struct -{ - u32 sw_if_index; - ip4_address_t ip4_address; - - u8 ethernet_address[6]; - - ethernet_arp_entry_flags_t flags; - - f64 time_last_updated; - - /** - * The index of the adj-fib entry created - */ - fib_node_index_t fib_entry_index; -} ethernet_arp_ip4_entry_t; - -ethernet_arp_ip4_entry_t *ip4_neighbors_pool (void); -ethernet_arp_ip4_entry_t *ip4_neighbor_entries (u32 sw_if_index); -u8 *format_ethernet_arp_ip4_entry (u8 * s, va_list * va); - void send_ip4_garp (vlib_main_t * vm, u32 sw_if_index); void send_ip4_garp_w_addr (vlib_main_t * vm, const ip4_address_t * ip4_addr, u32 sw_if_index); |