X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fethernet%2Farp_packet.h;h=a35adf17c852e06103212a874f26e262cd765c83;hb=cbe25aab3be72154f2c706c39eeba6a77f34450f;hp=e762ffa4018e21d6b158af5ada8e822e749a9b0e;hpb=7cd468a3d7dee7d6c92f69a0bb7061ae208ec727;p=vpp.git diff --git a/src/vnet/ethernet/arp_packet.h b/src/vnet/ethernet/arp_packet.h index e762ffa4018..a35adf17c85 100644 --- a/src/vnet/ethernet/arp_packet.h +++ b/src/vnet/ethernet/arp_packet.h @@ -18,6 +18,9 @@ #ifndef included_ethernet_arp_packet_h #define included_ethernet_arp_packet_h +#include +#include + #define foreach_ethernet_arp_hardware_type \ _ (0, reserved) \ _ (1, ethernet) \ @@ -109,21 +112,24 @@ typedef enum typedef enum { - IP4_ARP_ERROR_DROP, + IP4_ARP_ERROR_THROTTLED, + IP4_ARP_ERROR_RESOLVED, + IP4_ARP_ERROR_NO_BUFFERS, IP4_ARP_ERROR_REQUEST_SENT, IP4_ARP_ERROR_NON_ARP_ADJ, - IP4_ARP_ERROR_REPLICATE_DROP, - IP4_ARP_ERROR_REPLICATE_FAIL, IP4_ARP_ERROR_NO_SOURCE_ADDRESS, } ip4_arp_error_t; /* *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,27 +146,9 @@ typedef struct }; } ethernet_arp_header_t; -typedef struct -{ - u32 sw_if_index; - ip4_address_t ip4_address; - - u8 ethernet_address[6]; - - u16 flags; -#define ETHERNET_ARP_IP4_ENTRY_FLAG_STATIC (1 << 0) -#define ETHERNET_ARP_IP4_ENTRY_FLAG_DYNAMIC (1 << 1) - - u64 cpu_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_neighbor_entries (u32 sw_if_index); -u8 *format_ethernet_arp_ip4_entry (u8 * s, va_list * va); +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); #endif /* included_ethernet_arp_packet_h */