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