summaryrefslogtreecommitdiffstats
path: root/sys/net/if_llatbl.c
diff options
context:
space:
mode:
authorqingli <qingli@FreeBSD.org>2011-05-20 19:12:20 +0000
committerqingli <qingli@FreeBSD.org>2011-05-20 19:12:20 +0000
commita1bf1a258207345435ea10acd5842a3edd836a66 (patch)
tree25e7bd536a80b8bf826cad648267e4078b9e4f2e /sys/net/if_llatbl.c
parent8b344f95a5795eba597f19d5c6b1516c99bb2fa9 (diff)
downloadFreeBSD-src-a1bf1a258207345435ea10acd5842a3edd836a66.zip
FreeBSD-src-a1bf1a258207345435ea10acd5842a3edd836a66.tar.gz
The statically configured (permanent) ARP entries are removed when an
interface is brought down, even though the interface address is still valid. This patch maintains the permanent ARP entries as long as the interface address (having the same prefix as that of the ARP entries) is valid. Reviewed by: delphij MFC after: 5 days
Diffstat (limited to 'sys/net/if_llatbl.c')
-rw-r--r--sys/net/if_llatbl.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/net/if_llatbl.c b/sys/net/if_llatbl.c
index 910d366..b19a0a4 100644
--- a/sys/net/if_llatbl.c
+++ b/sys/net/if_llatbl.c
@@ -228,7 +228,8 @@ lltable_drain(int af)
#endif
void
-lltable_prefix_free(int af, struct sockaddr *prefix, struct sockaddr *mask)
+lltable_prefix_free(int af, struct sockaddr *prefix, struct sockaddr *mask,
+ u_int flags)
{
struct lltable *llt;
@@ -237,7 +238,7 @@ lltable_prefix_free(int af, struct sockaddr *prefix, struct sockaddr *mask)
if (llt->llt_af != af)
continue;
- llt->llt_prefix_free(llt, prefix, mask);
+ llt->llt_prefix_free(llt, prefix, mask, flags);
}
LLTABLE_RUNLOCK();
}
OpenPOWER on IntegriCloud