8f95ce29aca8fd4cf02016b1ab387989b5aa1740
[olsrd.git] / lib / quagga / src / quagga.h
1
2 /***************************************************************************
3  projekt              : olsrd-quagga
4  file                 : quagga.h
5  usage                : header for quagga.c
6  copyright            : (C) 2006 by Immo 'FaUl' Wehrenberg
7  e-mail               : immo@chaostreff-dortmund.de
8  ***************************************************************************/
9
10 /***************************************************************************
11  *                                                                         *
12  *   This program is free software; you can redistribute it and/or modify  *
13  *   it under the terms of the GNU General Public License version 2 as     *
14  *   published by the Free Software Foundation.                            *
15  *                                                                         *
16  ***************************************************************************/
17
18 #include "routing_table.h"
19
20 #include <stdint.h>
21 #include <stdlib.h>
22
23 #define HAVE_SOCKLEN_T
24
25 #ifndef ZEBRA_PORT
26 #define ZEBRA_PORT 2600
27 #endif
28
29 #ifndef ZEBRA_HEADER_MARKER
30 #define ZEBRA_HEADER_MARKER 255
31 #endif
32
33 #ifndef ZSERV_VERSION
34 #define ZSERV_VERSION 1
35 #endif
36
37 struct ipv4_route {
38   uint8_t type;
39   uint8_t flags;
40   uint8_t message;
41   uint8_t prefixlen;
42   uint32_t prefix;
43   uint8_t nh_count;
44   struct {
45     uint8_t type;
46     union {
47       uint32_t v4;
48     } payload;
49   } *nexthops;
50   uint8_t ind_num;
51   uint32_t *index;
52   uint32_t metric;
53   uint8_t distance;
54   struct ipv4_route *next;
55 };
56
57 void init_zebra(void);
58 void zebra_cleanup(void);
59 unsigned char zebra_send_command(unsigned char, unsigned char *, int);
60 int zebra_add_v4_route(const struct ipv4_route r);
61 int zebra_delete_v4_route(const struct ipv4_route r);
62 void zebra_check(void *);
63 int zebra_parse_packet(unsigned char *, ssize_t);
64 int zebra_redistribute(unsigned char);
65 int zebra_disable_redistribute(unsigned char);
66 int add_hna4_route(struct ipv4_route);
67 int delete_hna4_route(struct ipv4_route);
68 void *my_realloc(void *, size_t, const char *);
69 int zebra_add_olsr_v4_route(const struct rt_entry *);
70 int zebra_del_olsr_v4_route(const struct rt_entry *);
71 void zebra_olsr_localpref(void);
72 void zebra_olsr_distance(unsigned char);
73 void zebra_export_routes(unsigned char);
74
75 /*
76  * Local Variables:
77  * c-basic-offset: 2
78  * indent-tabs-mode: nil
79  * End:
80  */