Annotation of embedaddon/quagga/zebra/zserv.h, revision 1.1
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);
! 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>