diff options
Diffstat (limited to 'src/vnet/ethernet/arp.c')
-rw-r--r-- | src/vnet/ethernet/arp.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/vnet/ethernet/arp.c b/src/vnet/ethernet/arp.c index 0d692cc1070..8df96f6a0f1 100644 --- a/src/vnet/ethernet/arp.c +++ b/src/vnet/ethernet/arp.c @@ -269,7 +269,7 @@ format_ethernet_arp_ip4_entry (u8 * s, va_list * va) flags = format (flags, "N"); s = format (s, "%=12U%=16U%=6s%=20U%U", - format_vlib_cpu_time, vnm->vlib_main, e->cpu_time_last_updated, + format_vlib_time, vnm->vlib_main, e->time_last_updated, format_ip4_address, &e->ip4_address, flags ? (char *) flags : "", format_ethernet_address, e->ethernet_address, @@ -616,14 +616,17 @@ vnet_arp_set_ip4_over_ethernet_internal (vnet_main_t * vnm, */ if (0 == memcmp (e->ethernet_address, a->ethernet, sizeof (e->ethernet_address))) - goto check_customers; + { + e->time_last_updated = vlib_time_now (vm); + goto check_customers; + } /* Update time stamp and ethernet address. */ clib_memcpy (e->ethernet_address, a->ethernet, sizeof (e->ethernet_address)); } - e->cpu_time_last_updated = clib_cpu_time_now (); + e->time_last_updated = vlib_time_now (vm); if (is_static) e->flags |= ETHERNET_ARP_IP4_ENTRY_FLAG_STATIC; else @@ -1300,6 +1303,13 @@ ip4_arp_entry_sort (void *a1, void *a2) } ethernet_arp_ip4_entry_t * +ip4_neighbors_pool (void) +{ + ethernet_arp_main_t *am = ðernet_arp_main; + return am->ip4_entry_pool; +} + +ethernet_arp_ip4_entry_t * ip4_neighbor_entries (u32 sw_if_index) { ethernet_arp_main_t *am = ðernet_arp_main; |