[zebra] Bug #351: Don't redistribute routes to ipv4 link-local prefixes

2007-04-07 Paul Jakma <paul.jakma@sun.com>

	* lib/prefix.h: Add define to match IPv4 Link-Local addresses
	* zebra/redistribute.c: (zebra_check_addr) Don't redistribute routes
	  to IPv4 link-local prefixes, fixes bug #351.
	* zebra/redistribute.h: Export zebra_check_addr.
	* zebra/router-id.c: (router_id_bad_address) re-use zebra_check_addr
	  rather than implementing similar logic.
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 99b82b1..c58fef2 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,7 @@
+2007-04-07 Paul Jakma <paul.jakma@sun.com>
+
+	* prefix.h: Add define to match IPv4 Link-Local addresses
+
 2007-03-20 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* log.c: (mes_lookup) Make the function more robust: check for
diff --git a/lib/prefix.h b/lib/prefix.h
index f2a2adf..9cfc155 100644
--- a/lib/prefix.h
+++ b/lib/prefix.h
@@ -111,6 +111,7 @@
 
 #define IPV4_NET0(a)    ((((u_int32_t) (a)) & 0xff000000) == 0x00000000)
 #define IPV4_NET127(a)  ((((u_int32_t) (a)) & 0xff000000) == 0x7f000000)
+#define IPV4_LINKLOCAL(a) ((((u_int32_t) (a)) & 0xffff0000) == 0xa9fe0000)
 
 /* Max bit/byte length of IPv6 address. */
 #define IPV6_MAX_BYTELEN    16