diff options
author | np <np@FreeBSD.org> | 2009-09-08 21:17:17 +0000 |
---|---|---|
committer | np <np@FreeBSD.org> | 2009-09-08 21:17:17 +0000 |
commit | ba75578c03f4d837ac7cb26c0b6a82ab8dc93ed5 (patch) | |
tree | 68b22d660fca65bc870288614e3d6480e233e7bb /sys/netinet/if_ether.c | |
parent | e645b495eda0a345c1b9caa5f932817c25234633 (diff) | |
download | FreeBSD-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.c | 2 |
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, |