File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / zebra / zserv.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:26:11 2012 UTC (12 years, 4 months ago) by misho
Branches: quagga, MAIN
CVS tags: v0_99_20_1, v0_99_20, HEAD
quagga

    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);
   92: extern void zebra_zserv_socket_init (void);
   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>