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