18 #ifndef included_ethernet_arp_packet_h    19 #define included_ethernet_arp_packet_h    24 #define foreach_ethernet_arp_hardware_type      \    27   _ (2, experimental_ethernet)                  \    29   _ (4, proteon_pronet_token_ring)              \    43   _ (18, fibre_channel)                         \    47   _ (22, mil_std_188_220)                       \    56   _ (31, ipsec_tunnel)                          \    64 #define foreach_ethernet_arp_opcode             \    85   _ (mars_grouplist_request)                    \    86   _ (mars_grouplist_reply)                      \    87   _ (mars_redirect_map)                         \    94 #define _(n,f) ETHERNET_ARP_HARDWARE_TYPE_##f = (n),   101 #define _(f) ETHERNET_ARP_OPCODE_##f,   127 }) ethernet_arp_ip4_over_ethernet_address_t;
   130 STATIC_ASSERT (
sizeof (ethernet_arp_ip4_over_ethernet_address_t) == 10,
   131                "Packet ethernet address and IP4 address too big");
   142     ethernet_arp_ip4_over_ethernet_address_t ip4_over_ethernet[2];
 
#define foreach_ethernet_arp_opcode
 
STATIC_ASSERT(sizeof(ethernet_arp_ip4_over_ethernet_address_t)==10, "Packet ethernet address and IP4 address too big")
 
#define foreach_ethernet_arp_hardware_type
 
u8 * format_ethernet_arp_hardware_type(u8 *s, va_list *va)
 
u8 * format_ethernet_arp_header(u8 *s, va_list *va)
 
ethernet_arp_hardware_type_t
 
typedef CLIB_PACKED(struct { mac_address_t mac;ip4_address_t ip4;}) ethernet_arp_ip4_over_ethernet_address_t
 
u8 * format_ethernet_arp_opcode(u8 *s, va_list *va)