[zebra] Add test rig code, for testing the zebra RIB

2006-07-27 Paul Jakma <paul.jakma@sun.com>

	* {ioctl,kernel}_null.c: Dummy/Null kernel method implementations,
	  useful for testing zebra code that calls such methods.
	* {redistribute,misc}_null.c: Dummy/Null methods, as above. But
	  for zclient, and for various misc functions.
	* test_main.c: Test harness for zebra, currently just to test the
	  RIB.
	* Makefile.am: Build testzebra using above.
	* zebra_rib.c: Add a global for the workqueue hold time, useful
	  for testing.
diff --git a/zebra/ioctl_null.c b/zebra/ioctl_null.c
new file mode 100644
index 0000000..d1f3db0
--- /dev/null
+++ b/zebra/ioctl_null.c
@@ -0,0 +1,34 @@
+#include <zebra.h>
+
+#include "zebra/rib.h"
+#include "zebra/rt.h"
+#include "zebra/ioctl.h"
+
+void ifreq_set_name (struct ifreq *a, struct interface *b) { return; }
+
+int if_set_prefix (struct interface *a, struct connected *b) { return 0; }
+#pragma weak if_unset_prefix = if_set_prefix
+#pragma weak if_prefix_add_ipv6 = if_set_prefix
+#pragma weak if_prefix_delete_ipv6 = if_set_prefix
+
+int if_ioctl (u_long a, caddr_t b) { return 0; }
+
+int if_set_flags (struct interface *a, uint64_t b) { return 0; }
+#pragma weak if_unset_flags = if_set_flags
+
+void if_get_flags (struct interface *a) { return; }
+#pragma weak if_get_metric = if_get_flags
+#pragma weak if_get_mtu = if_get_flags
+
+#ifdef SOLARIS_IPV6
+#pragma weak if_ioctl_ipv6 = if_ioctl
+struct connected *if_lookup_linklocal(struct interface *a) { return 0; }
+
+#define AF_IOCTL(af, request, buffer) \
+        ((af) == AF_INET? if_ioctl(request, buffer) : \
+                          if_ioctl_ipv6(request, buffer))
+#else /* SOLARIS_IPV6 */
+
+#define AF_IOCTL(af, request, buffer)  if_ioctl(request, buffer)
+
+#endif /* SOLARIS_IPV6 */