]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zserv.h
Merge commit 'remotes/jocke/delete_ghost_route'
[mirror_frr.git] / zebra / zserv.h
index 620e24dda7cec364a02e88d39c7f22db5dac6012..87a33a4550efb422d295130f20853b800b1955a2 100644 (file)
 #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. */
@@ -41,10 +42,16 @@ struct zserv
   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;
 
@@ -70,34 +77,36 @@ struct zebra_t
 
   /* 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 */