diff options
author | qingli <qingli@FreeBSD.org> | 2009-05-20 21:07:15 +0000 |
---|---|---|
committer | qingli <qingli@FreeBSD.org> | 2009-05-20 21:07:15 +0000 |
commit | e6b86b7c8fc96c72c1f5df5a94c60e96783ecaac (patch) | |
tree | 3c5f22922fbf16f4da56611f23479ce79b4deb12 /sys/net/if_llatbl.h | |
parent | 803ffe40e141533bd4dd2d51a0c7bd977f855ee7 (diff) | |
download | FreeBSD-src-e6b86b7c8fc96c72c1f5df5a94c60e96783ecaac.zip FreeBSD-src-e6b86b7c8fc96c72c1f5df5a94c60e96783ecaac.tar.gz |
When an interface address is removed and the last prefix
route is also being deleted, the link-layer address table
(arp or nd6) will flush those L2 llinfo entries that match
the removed prefix.
Reviewed by: kmacy
Diffstat (limited to 'sys/net/if_llatbl.h')
-rw-r--r-- | sys/net/if_llatbl.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/net/if_llatbl.h b/sys/net/if_llatbl.h index 3b3086f..4d721ef 100644 --- a/sys/net/if_llatbl.h +++ b/sys/net/if_llatbl.h @@ -147,6 +147,9 @@ struct lltable { struct llentry * (*llt_new)(const struct sockaddr *, u_int); void (*llt_free)(struct lltable *, struct llentry *); + void (*llt_prefix_free)(struct lltable *, + const struct sockaddr *prefix, + const struct sockaddr *mask); struct llentry * (*llt_lookup)(struct lltable *, u_int flags, const struct sockaddr *l3addr); int (*llt_rtcheck)(struct ifnet *, @@ -174,6 +177,8 @@ MALLOC_DECLARE(M_LLTABLE); struct lltable *lltable_init(struct ifnet *, int); void lltable_free(struct lltable *); +void lltable_prefix_free(int, struct sockaddr *, + struct sockaddr *); void lltable_drain(int); int lltable_sysctl_dumparp(int, struct sysctl_req *); |