Annotation of embedaddon/quagga/zebra/zserv.h, revision 1.1.1.2

1.1       misho       1: /* Zebra daemon server header.
                      2:  * Copyright (C) 1997, 98 Kunihiro Ishiguro
                      3:  *
                      4:  * This file is part of GNU Zebra.
                      5:  *
                      6:  * GNU Zebra is free software; you can redistribute it and/or modify it
                      7:  * under the terms of the GNU General Public License as published by the
                      8:  * Free Software Foundation; either version 2, or (at your option) any
                      9:  * later version.
                     10:  *
                     11:  * GNU Zebra is distributed in the hope that it will be useful, but
                     12:  * WITHOUT ANY WARRANTY; without even the implied warranty of
                     13:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
                     14:  * General Public License for more details.
                     15:  *
                     16:  * You should have received a copy of the GNU General Public License
                     17:  * along with GNU Zebra; see the file COPYING.  If not, write to the Free
                     18:  * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
                     19:  * 02111-1307, USA.  
                     20:  */
                     21: 
                     22: #ifndef _ZEBRA_ZSERV_H
                     23: #define _ZEBRA_ZSERV_H
                     24: 
                     25: #include "rib.h"
                     26: #include "if.h"
                     27: #include "workqueue.h"
                     28: 
                     29: /* Default port information. */
                     30: #define ZEBRA_VTY_PORT                2601
                     31: 
                     32: /* Default configuration filename. */
                     33: #define DEFAULT_CONFIG_FILE "zebra.conf"
                     34: 
                     35: /* Client structure. */
                     36: struct zserv
                     37: {
                     38:   /* Client file descriptor. */
                     39:   int sock;
                     40: 
                     41:   /* Input/output buffer to the client. */
                     42:   struct stream *ibuf;
                     43:   struct stream *obuf;
                     44: 
                     45:   /* Buffer of data waiting to be written to client. */
                     46:   struct buffer *wb;
                     47: 
                     48:   /* Threads for read/write. */
                     49:   struct thread *t_read;
                     50:   struct thread *t_write;
                     51: 
                     52:   /* Thread for delayed close. */
                     53:   struct thread *t_suicide;
                     54: 
                     55:   /* default routing table this client munges */
                     56:   int rtm_table;
                     57: 
                     58:   /* This client's redistribute flag. */
                     59:   u_char redist[ZEBRA_ROUTE_MAX];
                     60: 
                     61:   /* Redistribute default route flag. */
                     62:   u_char redist_default;
                     63: 
                     64:   /* Interface information. */
                     65:   u_char ifinfo;
                     66: 
                     67:   /* Router-id information. */
                     68:   u_char ridinfo;
                     69: };
                     70: 
                     71: /* Zebra instance */
                     72: struct zebra_t
                     73: {
                     74:   /* Thread master */
                     75:   struct thread_master *master;
                     76:   struct list *client_list;
                     77: 
                     78:   /* default table */
                     79:   int rtm_table_default;
                     80: 
                     81:   /* rib work queue */
                     82:   struct work_queue *ribq;
                     83:   struct meta_queue *mq;
                     84: };
                     85: 
                     86: /* Count prefix size from mask length */
                     87: #define PSIZE(a) (((a) + 7) / (8))
                     88: 
                     89: /* Prototypes. */
                     90: extern void zebra_init (void);
                     91: extern void zebra_if_init (void);
1.1.1.2 ! misho      92: extern void zebra_zserv_socket_init (char *path);
1.1       misho      93: extern void hostinfo_get (void);
                     94: extern void rib_init (void);
                     95: extern void interface_list (void);
                     96: extern void kernel_init (void);
                     97: extern void route_read (void);
                     98: extern void zebra_route_map_init (void);
                     99: extern void zebra_snmp_init (void);
                    100: extern void zebra_vty_init (void);
                    101: 
                    102: extern int zsend_interface_add (struct zserv *, struct interface *);
                    103: extern int zsend_interface_delete (struct zserv *, struct interface *);
                    104: extern int zsend_interface_address (int, struct zserv *, struct interface *,
                    105:                                     struct connected *);
                    106: extern int zsend_interface_update (int, struct zserv *, struct interface *);
                    107: extern int zsend_route_multipath (int, struct zserv *, struct prefix *, 
                    108:                                   struct rib *);
                    109: extern int zsend_router_id_update(struct zserv *, struct prefix *);
                    110: 
                    111: extern pid_t pid;
                    112: 
                    113: #endif /* _ZEBRA_ZEBRA_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>