2005-09-12 Paul Jakma <paul.jakma@sun.com>
* (general) RTM_CHANGE and implicit withdraw on RTM_NEWADDR
support.
* connected.c: (connected_withdraw) new function. withdraw a
connected subnet address set from zebra, and pass information
along to clients.
(connected_announce) similar, but to announce a new connected
subnet address set.
(connected_check_ipv4) renamed to connected_check, as its
AFI independent.
(connected_add_ipv{4,6}) Remove the connected address announce
stuff, use connected_announce instead.
If connected_check indicates address is already present,
treat it as an implicit withdraw of the existing address, ie
remove the old address details and replace with the new
details.
(connected_delete_ipv{4,6}) Use connected_withdraw.
(connected_check_ipv6) deleted in favour of connected_check.
* connected.h: Rename connected_check_ipv4 to connected_check.
delete connected_check_ipv6.
* interface.c: Use connected_check rather than the AFI specific
symbols.
* kernel_socket.c: (rtm_read) RTM_CHANGE support. Create a
rib delete event for the existing route, before adding route
again.
(kernel_read) we can handle RTM_CHANGE now.
diff --git a/zebra/connected.h b/zebra/connected.h
index 726092a..73166eb 100644
--- a/zebra/connected.h
+++ b/zebra/connected.h
@@ -24,7 +24,7 @@
#define _ZEBRA_CONNECTED_H
extern struct connected *
-connected_check_ipv4 (struct interface *ifp, struct prefix *p);
+connected_check (struct interface *ifp, struct prefix *p);
extern void
connected_add_ipv4 (struct interface *ifp, int flags, struct in_addr *addr,
@@ -38,9 +38,6 @@
extern void connected_down_ipv4 (struct interface *, struct connected *);
#ifdef HAVE_IPV6
-extern struct connected *
-connected_check_ipv6 (struct interface *ifp, struct prefix *p);
-
extern void
connected_add_ipv6 (struct interface *ifp, struct in6_addr *address,
u_char prefixlen, struct in6_addr *broad);