+typedef struct ip_neighbor_watcher_t_
+{
+ u32 ipw_pid;
+ u32 ipw_client;
+} ip_neighbor_watcher_t;
+
+extern u8 *format_ip_neighbor_watcher (u8 * s, va_list * args);
+
+typedef struct ip_neighbor_key_t_
+{
+ ip46_address_t ipnk_ip;
+ ip46_type_t ipnk_type;
+ u32 ipnk_sw_if_index;
+} ip_neighbor_key_t;
+
+/**
+ * A representation of an IP neighbour/peer
+ */
+typedef struct ip_neighbor_t_
+{
+ /**
+ * The idempotent key
+ */
+ ip_neighbor_key_t *ipn_key;
+
+ /**
+ * The learned MAC address of the neighbour
+ */
+ mac_address_t ipn_mac;
+
+ /**
+ * Falgs for this object
+ */
+ ip_neighbor_flags_t ipn_flags;
+
+ /**
+ * Aging related data
+ * - last time the neighbour was probed
+ * - number of probes - 3 and it's dead
+ */
+ f64 ipn_time_last_updated;
+ u8 ipn_n_probes;
+ index_t ipn_elt;
+
+ /**
+ * The index of the adj fib created for this neighbour
+ */
+ fib_node_index_t ipn_fib_entry_index;
+} ip_neighbor_t;
+