#define _ZEBRA_ZSERV_H
#include "rib.h"
+#include "if.h"
+#include "workqueue.h"
/* Default port information. */
-#define ZEBRA_PORT 2600
#define ZEBRA_VTY_PORT 2601
/* Default configuration filename. */
struct stream *ibuf;
struct stream *obuf;
+ /* Buffer of data waiting to be written to client. */
+ struct buffer *wb;
+
/* Threads for read/write. */
struct thread *t_read;
struct thread *t_write;
+ /* Thread for delayed close. */
+ struct thread *t_suicide;
+
/* default routing table this client munges */
int rtm_table;
/* default table */
int rtm_table_default;
-
+
+ /* rib work queue */
+ struct work_queue *ribq;
+ struct meta_queue *mq;
};
/* Count prefix size from mask length */
#define PSIZE(a) (((a) + 7) / (8))
/* Prototypes. */
-void zebra_init ();
-void zebra_if_init ();
-void hostinfo_get ();
-void rib_init ();
-void interface_list ();
-void kernel_init ();
-void route_read ();
-void rtadv_init ();
-void zebra_snmp_init ();
-
-int zsend_interface_add (struct zserv *, struct interface *);
-#if (defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK))
-int zsend_interface_delete (struct zserv *, struct interface *);
-#endif
-int zsend_interface_address (int, struct zserv *, struct interface *,
- struct connected *);
-int zsend_interface_update (int, struct zserv *, struct interface *);
-int zsend_route_multipath (int, struct zserv *, struct prefix *, struct rib *);
-int zsend_router_id_update(struct zserv *, struct prefix *);
+extern void zebra_init (void);
+extern void zebra_if_init (void);
+extern void hostinfo_get (void);
+extern void rib_init (void);
+extern void interface_list (void);
+extern void kernel_init (void);
+extern void route_read (void);
+extern void zebra_route_map_init (void);
+extern void zebra_snmp_init (void);
+extern void zebra_vty_init (void);
+
+extern int zsend_interface_add (struct zserv *, struct interface *);
+extern int zsend_interface_delete (struct zserv *, struct interface *);
+extern int zsend_interface_address (int, struct zserv *, struct interface *,
+ struct connected *);
+extern int zsend_interface_update (int, struct zserv *, struct interface *);
+extern int zsend_route_multipath (int, struct zserv *, struct prefix *,
+ struct rib *);
+extern int zsend_router_id_update(struct zserv *, struct prefix *);
extern pid_t pid;
-extern pid_t old_pid;
#endif /* _ZEBRA_ZEBRA_H */