New configfile parser and configuration scheme integrated
[olsrd.git] / src / generate_msg.c
1 /*
2  * OLSR ad-hoc routing table management protocol
3  * Copyright (C) 2003 Andreas T√łnnesen (andreto@ifi.uio.no)
4  *
5  * This file is part of the olsr.org OLSR daemon.
6  *
7  * olsr.org is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * olsr.org is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with olsr.org; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20  * 
21  * 
22  * $Id: generate_msg.c,v 1.9 2004/10/18 13:13:36 kattemat Exp $
23  *
24  */
25
26 #include "generate_msg.h"
27 #include "defs.h"
28 #include "build_msg.h"
29 #include "packet.h"
30
31 /*
32  * Infomation repositiries
33  */
34 #include "hna_set.h"
35 #include "mid_set.h"
36 #include "tc_set.h"
37 #include "mpr_selector_set.h"
38 #include "duplicate_set.h"
39 #include "neighbor_table.h"
40
41
42 void
43 generate_hello(void *p)
44 {
45   struct hello_message hellopacket;
46   struct interface *ifn = (struct interface *)p;
47
48   olsr_build_hello_packet(&hellopacket, ifn);
49   hello_build(&hellopacket, ifn);
50       
51   if(net_output_pending(ifn))
52     net_output(ifn);
53 }
54
55 void
56 generate_tc(void *p)
57 {
58   struct tc_message tcpacket;
59   struct interface *ifn = (struct interface *)p;
60
61   olsr_build_tc_packet(&tcpacket);
62   tc_build(&tcpacket, ifn);
63
64   if(net_output_pending(ifn) && TIMED_OUT(&fwdtimer[ifn->if_nr]))
65     {
66       set_buffer_timer(ifn);
67     }
68 }
69
70
71 void
72 generate_mid(void *p)
73 {
74   struct interface *ifn = (struct interface *)p;
75   mid_build(ifn);
76   
77   if(net_output_pending(ifn) && TIMED_OUT(&fwdtimer[ifn->if_nr]))
78     {
79       set_buffer_timer(ifn);
80     }
81
82 }
83
84
85
86 void
87 generate_hna(void *p)
88 {
89   struct interface *ifn = (struct interface *)p;
90   hna_build(ifn);
91   
92   if(net_output_pending(ifn) && TIMED_OUT(&fwdtimer[ifn->if_nr]))
93     {
94       set_buffer_timer(ifn);
95     }
96 }
97
98
99 /**
100  *Displays various tables depending on debuglevel
101  */
102 void
103 generate_tabledisplay(void *foo)
104 {
105   if(olsr_cnf->debug_level > 0) 
106     {
107       olsr_print_neighbor_table();
108       
109       if(olsr_cnf->debug_level > 1)
110         {
111           olsr_print_tc_table();
112           if(olsr_cnf->debug_level > 2) 
113             {
114               olsr_print_mprs_set();
115               olsr_print_mid_set();
116               olsr_print_duplicate_table();
117             }
118         }
119     }
120 }