summaryrefslogtreecommitdiffstats
path: root/sys/netinet/if_ether.c
diff options
context:
space:
mode:
authornp <np@FreeBSD.org>2009-09-08 21:17:17 +0000
committernp <np@FreeBSD.org>2009-09-08 21:17:17 +0000
commitba75578c03f4d837ac7cb26c0b6a82ab8dc93ed5 (patch)
tree68b22d660fca65bc870288614e3d6480e233e7bb /sys/netinet/if_ether.c
parente645b495eda0a345c1b9caa5f932817c25234633 (diff)
downloadFreeBSD-src-ba75578c03f4d837ac7cb26c0b6a82ab8dc93ed5.zip
FreeBSD-src-ba75578c03f4d837ac7cb26c0b6a82ab8dc93ed5.tar.gz
Add arp_update_event. This replaces route_arp_update_event, which
has not worked since the arp-v2 rewrite. The event handler will be called with the llentry write-locked and can examine la_flags to determine whether the entry is being added or removed. Reviewed by: gnn, kmacy Approved by: gnn (mentor) MFC after: 1 month
Diffstat (limited to 'sys/netinet/if_ether.c')
-rw-r--r--sys/netinet/if_ether.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index c170c7a..941a93b 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -684,6 +684,8 @@ match:
(void)memcpy(&la->ll_addr, ar_sha(ah), ifp->if_addrlen);
la->la_flags |= LLE_VALID;
+ EVENTHANDLER_INVOKE(arp_update_event, la);
+
if (!(la->la_flags & LLE_STATIC)) {
la->la_expire = time_uptime + V_arpt_keep;
callout_reset(&la->la_timer, hz * V_arpt_keep,
OpenPOWER on IntegriCloud