#ifndef included_ethernet_arp_packet_h
#define included_ethernet_arp_packet_h
+#include <vnet/ip/ip4_packet.h>
#include <vnet/ethernet/mac_address.h>
#define foreach_ethernet_arp_hardware_type \
IP4_ARP_N_NEXT,
} ip4_arp_next_t;
-typedef enum
-{
- 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_NO_SOURCE_ADDRESS,
-} ip4_arp_error_t;
-
-/* *INDENT-OFF* */
typedef CLIB_PACKED (struct {
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");
};
} ethernet_arp_header_t;
-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);
+#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);
#endif /* included_ethernet_arp_packet_h */