hs-test: cache docker build in local filesystem
[vpp.git] / src / vnet / ethernet / arp_packet.h
index d740b84..9a9df68 100644 (file)
@@ -18,6 +18,9 @@
 #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     \
   _ (0, reserved)                              \
   _ (1, ethernet)                              \
@@ -107,22 +110,13 @@ typedef enum
   IP4_ARP_N_NEXT,
 } ip4_arp_next_t;
 
-typedef enum
-{
-  IP4_ARP_ERROR_DROP,
-  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
 {
@@ -140,41 +134,12 @@ 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;
-
-  u64 cpu_time_last_updated;
+#define ARP_SENDER 0
+#define ARP_TARGET 1
 
-  /**
-   * 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);
-
-/* Node index for send_garp_na_process */
-extern u32 send_garp_na_process_node_index;
-
-/* Even type for send_garp_na_process */
-enum
-{
-  SEND_GARP_NA = 1,
-} dpdk_send_garp_na_process_event_t;
+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 */