Ospf6d merge from Zebra repository with added privs stuff and merged
zclient changes.
diff --git a/ospf6d/ospf6d.h b/ospf6d/ospf6d.h
index e867b1c..c08007f 100644
--- a/ospf6d/ospf6d.h
+++ b/ospf6d/ospf6d.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1999 Yasuhiro Ohara
+ * Copyright (C) 2003 Yasuhiro Ohara
*
* This file is part of GNU Zebra.
*
@@ -22,78 +22,11 @@
#ifndef OSPF6D_H
#define OSPF6D_H
-#include <zebra.h>
-#include "linklist.h"
-
-#ifndef HEADER_DEPENDENCY
-/* Include other stuffs */
-#include <lib/version.h>
-#include "log.h"
-#include "getopt.h"
-#include "thread.h"
-#include "command.h"
-#include "memory.h"
-#include "sockunion.h"
-#include "if.h"
-#include "prefix.h"
-#include "stream.h"
-#include "thread.h"
-#include "filter.h"
-#include "zclient.h"
-#include "table.h"
-#include "plist.h"
-
-/* OSPF stuffs */
-#include "ospf6_hook.h"
-#include "ospf6_types.h"
-#include "ospf6_prefix.h"
-#include "ospf6_lsa.h"
-#include "ospf6_lsdb.h"
-
-#include "ospf6_message.h"
-#include "ospf6_proto.h"
-#include "ospf6_spf.h"
-#include "ospf6_top.h"
-#include "ospf6_area.h"
-#include "ospf6_interface.h"
-#include "ospf6_neighbor.h"
-#include "ospf6_ism.h"
-#include "ospf6_nsm.h"
-#include "ospf6_route.h"
-#include "ospf6_dbex.h"
-#include "ospf6_network.h"
-#include "ospf6_zebra.h"
-#include "ospf6_dump.h"
-#include "ospf6_routemap.h"
-#include "ospf6_asbr.h"
-#include "ospf6_abr.h"
-#include "ospf6_intra.h"
-#endif /*HEADER_DEPENDENCY*/
-
-#define HASHVAL 64
-#define MAXIOVLIST 1024
-
-#define OSPF6_DAEMON_VERSION "0.9.6p"
-
-#define AF_LINKSTATE 0xff
+#define OSPF6_DAEMON_VERSION "0.9.7a"
/* global variables */
-extern char *progname;
extern int errno;
-extern int daemon_mode;
extern struct thread_master *master;
-extern list iflist;
-extern list nexthoplist;
-extern struct sockaddr_in6 allspfrouters6;
-extern struct sockaddr_in6 alldrouters6;
-extern int ospf6_sock;
-extern char *recent_reason;
-
-/* Default configuration file name for ospfd. */
-#define OSPF6_DEFAULT_CONFIG "ospf6d.conf"
-
-/* Default port values. */
-#define OSPF6_VTY_PORT 2606
#ifdef INRIA_IPV6
#ifndef IPV6_PKTINFO
@@ -101,7 +34,7 @@
#endif /* IPV6_PKTINFO */
#endif /* INRIA_IPV6 */
-/* Historycal for KAME. */
+/* Historical for KAME. */
#ifndef IPV6_JOIN_GROUP
#ifdef IPV6_ADD_MEMBERSHIP
#define IPV6_JOIN_GROUP IPV6_ADD_MEMBERSHIP
@@ -117,6 +50,53 @@
#endif /* IPV6_DROP_MEMBERSHIP */
#endif /* ! IPV6_LEAVE_GROUP */
+/* operation on timeval structure */
+#ifndef timerclear
+#define timerclear(a) (a)->tv_sec = (tvp)->tv_usec = 0
+#endif /*timerclear*/
+#ifndef timersub
+#define timersub(a, b, res) \
+ do { \
+ (res)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
+ (res)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
+ if ((res)->tv_usec < 0) \
+ { \
+ (res)->tv_sec--; \
+ (res)->tv_usec += 1000000; \
+ } \
+ } while (0)
+#endif /*timersub*/
+#define timerstring(tv, buf, size) \
+ do { \
+ if ((tv)->tv_sec / 60 / 60 / 24) \
+ snprintf (buf, size, "%ldd%02ld:%02ld:%02ld", \
+ (tv)->tv_sec / 60 / 60 / 24, \
+ (tv)->tv_sec / 60 / 60 % 24, \
+ (tv)->tv_sec / 60 % 60, \
+ (tv)->tv_sec % 60); \
+ else \
+ snprintf (buf, size, "%02ld:%02ld:%02ld", \
+ (tv)->tv_sec / 60 / 60 % 24, \
+ (tv)->tv_sec / 60 % 60, \
+ (tv)->tv_sec % 60); \
+ } while (0)
+#define timerstring_local(tv, buf, size) \
+ do { \
+ int ret; \
+ struct tm *tm; \
+ tm = localtime (&(tv)->tv_sec); \
+ ret = strftime (buf, size, "%Y/%m/%d %H:%M:%S", tm); \
+ if (ret == 0) \
+ zlog_warn ("strftime error"); \
+ } while (0)
+
+/* for commands */
+#define OSPF6_AREA_STR "Area information\n"
+#define OSPF6_AREA_ID_STR "Area ID (as an IPv4 notation)\n"
+#define OSPF6_SPF_STR "Shortest Path First tree information\n"
+#define OSPF6_ROUTER_ID_STR "Specify Router-ID\n"
+#define OSPF6_LS_ID_STR "Specify Link State ID\n"
+
#define OSPF6_CMD_CHECK_RUNNING() \
if (ospf6 == NULL) \
{ \
@@ -124,51 +104,13 @@
return CMD_SUCCESS; \
}
-#define OSPF6_LEVEL_NONE 0
-#define OSPF6_LEVEL_NEIGHBOR 1
-#define OSPF6_LEVEL_INTERFACE 2
-#define OSPF6_LEVEL_AREA 3
-#define OSPF6_LEVEL_TOP 4
-#define OSPF6_LEVEL_MAX 5
-
-#define OSPF6_PASSIVE_STR \
- "Suppress routing updates on an interface\n"
-#define OSPF6_PREFIX_LIST_STR \
- "Advertise I/F Address only match entries of prefix-list\n"
-
-#define OSPF6_AREA_STR "Area information\n"
-#define OSPF6_AREA_ID_STR "Area ID (as an IPv4 notation)\n"
-#define OSPF6_SPF_STR "Shortest Path First tree information\n"
-#define OSPF6_ROUTER_ID_STR "Specify Router-ID\n"
-#define OSPF6_LS_ID_STR "Specify Link State ID\n"
-
/* Function Prototypes */
-void
-ospf6_timeval_sub (const struct timeval *t1, const struct timeval *t2,
- struct timeval *result);
-void
-ospf6_timeval_div (const struct timeval *t1, u_int by,
- struct timeval *result);
-void
-ospf6_timeval_sub_equal (const struct timeval *t, struct timeval *result);
-void
-ospf6_timeval_decode (const struct timeval *t, long *dayp, long *hourp,
- long *minp, long *secp, long *msecp, long *usecp);
-void
-ospf6_timeval_string (struct timeval *tv, char *buf, int size);
-void
-ospf6_timeval_string_summary (struct timeval *tv, char *buf, int size);
+struct route_node *route_prev (struct route_node *node);
-void
-ospf6_count_state (void *arg, int val, void *obj);
-
+void ospf6_debug ();
void ospf6_init ();
-void ospf6_terminate ();
-
-void ospf6_maxage_remover ();
-
-void *ospf6_lsa_get_scope (u_int16_t type, struct ospf6_interface *o6i);
#endif /* OSPF6D_H */
+