18 #ifndef included_ethernet_arp_packet_h 19 #define included_ethernet_arp_packet_h 23 #define foreach_ethernet_arp_hardware_type \ 26 _ (2, experimental_ethernet) \ 28 _ (4, proteon_pronet_token_ring) \ 42 _ (18, fibre_channel) \ 46 _ (22, mil_std_188_220) \ 55 _ (31, ipsec_tunnel) \ 63 #define foreach_ethernet_arp_opcode \ 84 _ (mars_grouplist_request) \ 85 _ (mars_grouplist_reply) \ 86 _ (mars_redirect_map) \ 93 #define _(n,f) ETHERNET_ARP_HARDWARE_TYPE_##f = (n), 100 #define _(f) ETHERNET_ARP_OPCODE_##f, 126 }) ethernet_arp_ip4_over_ethernet_address_t;
129 STATIC_ASSERT (
sizeof (ethernet_arp_ip4_over_ethernet_address_t) == 10,
130 "Packet ethernet address and IP4 address too big");
141 ethernet_arp_ip4_over_ethernet_address_t ip4_over_ethernet[2];
STATIC_ASSERT(sizeof(ethernet_arp_ip4_over_ethernet_address_t)==10, "Packet ethernet address and IP4 address too big")
void send_ip4_garp(vlib_main_t *vm, u32 sw_if_index)
vl_api_interface_index_t sw_if_index
ethernet_arp_hardware_type_t
#define foreach_ethernet_arp_opcode
void send_ip4_garp_w_addr(vlib_main_t *vm, const ip4_address_t *ip4_addr, u32 sw_if_index)
#define foreach_ethernet_arp_hardware_type
typedef CLIB_PACKED(struct { mac_address_t mac;ip4_address_t ip4;}) ethernet_arp_ip4_over_ethernet_address_t