Update Quagga 0.99.x patch to version 0.99.16
[olsrd.git] / lib / quagga / patches / quagga-0.99.16.diff
1 diff -Naur quagga-0.99.16/bgpd/bgp_vty.c quagga-0.99.16.patched/bgpd/bgp_vty.c
2 --- quagga-0.99.16/bgpd/bgp_vty.c       2009-12-14 15:41:13.000000000 +0200
3 +++ quagga-0.99.16.patched/bgpd/bgp_vty.c       2010-03-12 18:12:28.000000000 +0200
4 @@ -8228,8 +8228,14 @@
5         return ZEBRA_ROUTE_STATIC;
6        else if (strncmp (str, "r", 1) == 0)
7         return ZEBRA_ROUTE_RIP;
8 -      else if (strncmp (str, "o", 1) == 0)
9 +      else if (strncmp (str, "os", 2) == 0)
10         return ZEBRA_ROUTE_OSPF;
11 +      else if (strncmp (str, "h", 1) == 0)
12 +       return ZEBRA_ROUTE_HSLS;
13 +      else if (strncmp (str, "ol", 2) == 0)
14 +       return ZEBRA_ROUTE_OLSR;
15 +      else if (strncmp (str, "b", 1) == 0)
16 +       return ZEBRA_ROUTE_BATMAN;
17      }
18    if (afi == AFI_IP6)
19      {
20 @@ -8241,21 +8247,30 @@
21         return ZEBRA_ROUTE_STATIC;
22        else if (strncmp (str, "r", 1) == 0)
23         return ZEBRA_ROUTE_RIPNG;
24 -      else if (strncmp (str, "o", 1) == 0)
25 +      else if (strncmp (str, "os", 2) == 0)
26         return ZEBRA_ROUTE_OSPF6;
27 +      else if (strncmp (str, "h", 1) == 0)
28 +       return ZEBRA_ROUTE_HSLS;
29 +      else if (strncmp (str, "ol", 2) == 0)
30 +       return ZEBRA_ROUTE_OLSR;
31 +      else if (strncmp (str, "b", 1) == 0)
32 +       return ZEBRA_ROUTE_BATMAN;
33      }
34    return 0;
35  }
36  
37  DEFUN (bgp_redistribute_ipv4,
38         bgp_redistribute_ipv4_cmd,
39 -       "redistribute (connected|kernel|ospf|rip|static)",
40 +       "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman)",
41         "Redistribute information from another routing protocol\n"
42         "Connected\n"
43         "Kernel routes\n"
44         "Open Shurtest Path First (OSPF)\n"
45         "Routing Information Protocol (RIP)\n"
46 -       "Static routes\n")
47 +       "Static routes\n"
48 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
49 +       "Optimized Link State Routing (OLSR)\n"
50 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
51  {
52    int type;
53  
54 @@ -8270,13 +8285,16 @@
55  
56  DEFUN (bgp_redistribute_ipv4_rmap,
57         bgp_redistribute_ipv4_rmap_cmd,
58 -       "redistribute (connected|kernel|ospf|rip|static) route-map WORD",
59 +       "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD",
60         "Redistribute information from another routing protocol\n"
61         "Connected\n"
62         "Kernel routes\n"
63         "Open Shurtest Path First (OSPF)\n"
64         "Routing Information Protocol (RIP)\n"
65         "Static routes\n"
66 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
67 +       "Optimized Link State Routing (OLSR)\n"
68 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
69         "Route map reference\n"
70         "Pointer to route-map entries\n")
71  {
72 @@ -8295,13 +8313,16 @@
73  
74  DEFUN (bgp_redistribute_ipv4_metric,
75         bgp_redistribute_ipv4_metric_cmd,
76 -       "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>",
77 +       "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295>",
78         "Redistribute information from another routing protocol\n"
79         "Connected\n"
80         "Kernel routes\n"
81         "Open Shurtest Path First (OSPF)\n"
82         "Routing Information Protocol (RIP)\n"
83         "Static routes\n"
84 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
85 +       "Optimized Link State Routing (OLSR)\n"
86 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
87         "Metric for redistributed routes\n"
88         "Default metric\n")
89  {
90 @@ -8322,13 +8343,16 @@
91  
92  DEFUN (bgp_redistribute_ipv4_rmap_metric,
93         bgp_redistribute_ipv4_rmap_metric_cmd,
94 -       "redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>",
95 +       "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
96         "Redistribute information from another routing protocol\n"
97         "Connected\n"
98         "Kernel routes\n"
99         "Open Shurtest Path First (OSPF)\n"
100         "Routing Information Protocol (RIP)\n"
101         "Static routes\n"
102 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
103 +       "Optimized Link State Routing (OLSR)\n"
104 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
105         "Route map reference\n"
106         "Pointer to route-map entries\n"
107         "Metric for redistributed routes\n"
108 @@ -8352,13 +8376,16 @@
109  
110  DEFUN (bgp_redistribute_ipv4_metric_rmap,
111         bgp_redistribute_ipv4_metric_rmap_cmd,
112 -       "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD",
113 +       "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
114         "Redistribute information from another routing protocol\n"
115         "Connected\n"
116         "Kernel routes\n"
117         "Open Shurtest Path First (OSPF)\n"
118         "Routing Information Protocol (RIP)\n"
119         "Static routes\n"
120 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
121 +       "Optimized Link State Routing (OLSR)\n"
122 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
123         "Metric for redistributed routes\n"
124         "Default metric\n"
125         "Route map reference\n"
126 @@ -8382,14 +8409,17 @@
127  
128  DEFUN (no_bgp_redistribute_ipv4,
129         no_bgp_redistribute_ipv4_cmd,
130 -       "no redistribute (connected|kernel|ospf|rip|static)",
131 +       "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman)",
132         NO_STR
133         "Redistribute information from another routing protocol\n"
134         "Connected\n"
135         "Kernel routes\n"
136         "Open Shurtest Path First (OSPF)\n"
137         "Routing Information Protocol (RIP)\n"
138 -       "Static routes\n")
139 +       "Static routes\n"
140 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
141 +       "Optimized Link State Routing (OLSR)\n"
142 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
143  {
144    int type;
145  
146 @@ -8405,7 +8435,7 @@
147  
148  DEFUN (no_bgp_redistribute_ipv4_rmap,
149         no_bgp_redistribute_ipv4_rmap_cmd,
150 -       "no redistribute (connected|kernel|ospf|rip|static) route-map WORD",
151 +       "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD",
152         NO_STR
153         "Redistribute information from another routing protocol\n"
154         "Connected\n"
155 @@ -8413,6 +8443,9 @@
156         "Open Shurtest Path First (OSPF)\n"
157         "Routing Information Protocol (RIP)\n"
158         "Static routes\n"
159 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
160 +       "Optimized Link State Routing (OLSR)\n"
161 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
162         "Route map reference\n"
163         "Pointer to route-map entries\n")
164  {
165 @@ -8431,7 +8464,7 @@
166  
167  DEFUN (no_bgp_redistribute_ipv4_metric,
168         no_bgp_redistribute_ipv4_metric_cmd,
169 -       "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>",
170 +       "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295>",
171         NO_STR
172         "Redistribute information from another routing protocol\n"
173         "Connected\n"
174 @@ -8439,6 +8472,9 @@
175         "Open Shurtest Path First (OSPF)\n"
176         "Routing Information Protocol (RIP)\n"
177         "Static routes\n"
178 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
179 +       "Optimized Link State Routing (OLSR)\n"
180 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
181         "Metric for redistributed routes\n"
182         "Default metric\n")
183  {
184 @@ -8457,7 +8493,7 @@
185  
186  DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
187         no_bgp_redistribute_ipv4_rmap_metric_cmd,
188 -       "no redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>",
189 +       "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
190         NO_STR
191         "Redistribute information from another routing protocol\n"
192         "Connected\n"
193 @@ -8465,6 +8501,9 @@
194         "Open Shurtest Path First (OSPF)\n"
195         "Routing Information Protocol (RIP)\n"
196         "Static routes\n"
197 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
198 +       "Optimized Link State Routing (OLSR)\n"
199 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
200         "Route map reference\n"
201         "Pointer to route-map entries\n"
202         "Metric for redistributed routes\n"
203 @@ -8486,7 +8525,7 @@
204  
205  ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
206         no_bgp_redistribute_ipv4_metric_rmap_cmd,
207 -       "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD",
208 +       "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
209         NO_STR
210         "Redistribute information from another routing protocol\n"
211         "Connected\n"
212 @@ -8494,6 +8533,9 @@
213         "Open Shurtest Path First (OSPF)\n"
214         "Routing Information Protocol (RIP)\n"
215         "Static routes\n"
216 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
217 +       "Optimized Link State Routing (OLSR)\n"
218 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
219         "Metric for redistributed routes\n"
220         "Default metric\n"
221         "Route map reference\n"
222 @@ -8502,13 +8544,16 @@
223  #ifdef HAVE_IPV6
224  DEFUN (bgp_redistribute_ipv6,
225         bgp_redistribute_ipv6_cmd,
226 -       "redistribute (connected|kernel|ospf6|ripng|static)",
227 +       "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman)",
228         "Redistribute information from another routing protocol\n"
229         "Connected\n"
230         "Kernel routes\n"
231         "Open Shurtest Path First (OSPFv3)\n"
232         "Routing Information Protocol (RIPng)\n"
233 -       "Static routes\n")
234 +       "Static routes\n"
235 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
236 +       "Optimized Link State Routing (OLSR)\n"
237 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
238  {
239    int type;
240  
241 @@ -8524,13 +8569,16 @@
242  
243  DEFUN (bgp_redistribute_ipv6_rmap,
244         bgp_redistribute_ipv6_rmap_cmd,
245 -       "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD",
246 +       "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD",
247         "Redistribute information from another routing protocol\n"
248         "Connected\n"
249         "Kernel routes\n"
250         "Open Shurtest Path First (OSPFv3)\n"
251         "Routing Information Protocol (RIPng)\n"
252         "Static routes\n"
253 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
254 +       "Optimized Link State Routing (OLSR)\n"
255 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
256         "Route map reference\n"
257         "Pointer to route-map entries\n")
258  {
259 @@ -8549,13 +8597,16 @@
260  
261  DEFUN (bgp_redistribute_ipv6_metric,
262         bgp_redistribute_ipv6_metric_cmd,
263 -       "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>",
264 +       "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295>",
265         "Redistribute information from another routing protocol\n"
266         "Connected\n"
267         "Kernel routes\n"
268         "Open Shurtest Path First (OSPFv3)\n"
269         "Routing Information Protocol (RIPng)\n"
270         "Static routes\n"
271 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
272 +       "Optimized Link State Routing (OLSR)\n"
273 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
274         "Metric for redistributed routes\n"
275         "Default metric\n")
276  {
277 @@ -8576,13 +8627,16 @@
278  
279  DEFUN (bgp_redistribute_ipv6_rmap_metric,
280         bgp_redistribute_ipv6_rmap_metric_cmd,
281 -       "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>",
282 +       "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
283         "Redistribute information from another routing protocol\n"
284         "Connected\n"
285         "Kernel routes\n"
286         "Open Shurtest Path First (OSPFv3)\n"
287         "Routing Information Protocol (RIPng)\n"
288         "Static routes\n"
289 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
290 +       "Optimized Link State Routing (OLSR)\n"
291 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
292         "Route map reference\n"
293         "Pointer to route-map entries\n"
294         "Metric for redistributed routes\n"
295 @@ -8606,13 +8660,16 @@
296  
297  DEFUN (bgp_redistribute_ipv6_metric_rmap,
298         bgp_redistribute_ipv6_metric_rmap_cmd,
299 -       "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD",
300 +       "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
301         "Redistribute information from another routing protocol\n"
302         "Connected\n"
303         "Kernel routes\n"
304         "Open Shurtest Path First (OSPFv3)\n"
305         "Routing Information Protocol (RIPng)\n"
306         "Static routes\n"
307 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
308 +       "Optimized Link State Routing (OLSR)\n"
309 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
310         "Metric for redistributed routes\n"
311         "Default metric\n"
312         "Route map reference\n"
313 @@ -8636,14 +8693,17 @@
314  
315  DEFUN (no_bgp_redistribute_ipv6,
316         no_bgp_redistribute_ipv6_cmd,
317 -       "no redistribute (connected|kernel|ospf6|ripng|static)",
318 +       "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman)",
319         NO_STR
320         "Redistribute information from another routing protocol\n"
321         "Connected\n"
322         "Kernel routes\n"
323         "Open Shurtest Path First (OSPFv3)\n"
324         "Routing Information Protocol (RIPng)\n"
325 -       "Static routes\n")
326 +       "Static routes\n"
327 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
328 +       "Optimized Link State Routing (OLSR)\n"
329 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
330  {
331    int type;
332  
333 @@ -8659,7 +8719,7 @@
334  
335  DEFUN (no_bgp_redistribute_ipv6_rmap,
336         no_bgp_redistribute_ipv6_rmap_cmd,
337 -       "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD",
338 +       "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD",
339         NO_STR
340         "Redistribute information from another routing protocol\n"
341         "Connected\n"
342 @@ -8667,6 +8727,9 @@
343         "Open Shurtest Path First (OSPFv3)\n"
344         "Routing Information Protocol (RIPng)\n"
345         "Static routes\n"
346 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
347 +       "Optimized Link State Routing (OLSR)\n"
348 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
349         "Route map reference\n"
350         "Pointer to route-map entries\n")
351  {
352 @@ -8685,7 +8748,7 @@
353  
354  DEFUN (no_bgp_redistribute_ipv6_metric,
355         no_bgp_redistribute_ipv6_metric_cmd,
356 -       "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>",
357 +       "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295>",
358         NO_STR
359         "Redistribute information from another routing protocol\n"
360         "Connected\n"
361 @@ -8693,6 +8756,9 @@
362         "Open Shurtest Path First (OSPFv3)\n"
363         "Routing Information Protocol (RIPng)\n"
364         "Static routes\n"
365 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
366 +       "Optimized Link State Routing (OLSR)\n"
367 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
368         "Metric for redistributed routes\n"
369         "Default metric\n")
370  {
371 @@ -8711,7 +8777,7 @@
372  
373  DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
374         no_bgp_redistribute_ipv6_rmap_metric_cmd,
375 -       "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>",
376 +       "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
377         NO_STR
378         "Redistribute information from another routing protocol\n"
379         "Connected\n"
380 @@ -8719,6 +8785,9 @@
381         "Open Shurtest Path First (OSPFv3)\n"
382         "Routing Information Protocol (RIPng)\n"
383         "Static routes\n"
384 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
385 +       "Optimized Link State Routing (OLSR)\n"
386 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
387         "Route map reference\n"
388         "Pointer to route-map entries\n"
389         "Metric for redistributed routes\n"
390 @@ -8740,7 +8809,7 @@
391  
392  ALIAS (no_bgp_redistribute_ipv6_rmap_metric,
393         no_bgp_redistribute_ipv6_metric_rmap_cmd,
394 -       "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD",
395 +       "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
396         NO_STR
397         "Redistribute information from another routing protocol\n"
398         "Connected\n"
399 @@ -8748,6 +8817,9 @@
400         "Open Shurtest Path First (OSPFv3)\n"
401         "Routing Information Protocol (RIPng)\n"
402         "Static routes\n"
403 +       "Hazy-Sighted Link State Protocol (HSLS)\n"
404 +       "Optimized Link State Routing (OLSR)\n"
405 +       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
406         "Metric for redistributed routes\n"
407         "Default metric\n"
408         "Route map reference\n"
409 diff -Naur quagga-0.99.16/lib/log.c quagga-0.99.16.patched/lib/log.c
410 --- quagga-0.99.16/lib/log.c    2009-12-09 14:37:12.000000000 +0200
411 +++ quagga-0.99.16.patched/lib/log.c    2010-03-12 18:12:28.000000000 +0200
412 @@ -835,6 +835,8 @@
413    DESC_ENTRY   (ZEBRA_ROUTE_ISIS,      "isis",         'I' ),
414    DESC_ENTRY   (ZEBRA_ROUTE_BGP,       "bgp",          'B' ),
415    DESC_ENTRY   (ZEBRA_ROUTE_HSLS,      "hsls",         'H' ),
416 +  DESC_ENTRY   (ZEBRA_ROUTE_OLSR,      "olsr",         'o' ),
417 +  DESC_ENTRY   (ZEBRA_ROUTE_BATMAN,    "batman",       'b' ),
418  };
419  #undef DESC_ENTRY
420  
421 diff -Naur quagga-0.99.16/lib/route_types.txt quagga-0.99.16.patched/lib/route_types.txt
422 --- quagga-0.99.16/lib/route_types.txt  2009-12-09 14:37:12.000000000 +0200
423 +++ quagga-0.99.16.patched/lib/route_types.txt  2010-03-12 18:12:28.000000000 +0200
424 @@ -51,13 +51,9 @@
425  ZEBRA_ROUTE_OSPF6,      ospf6,     ospf6d, 'O', 0, 1, "OSPF"
426  ZEBRA_ROUTE_ISIS,       isis,      isisd,  'I', 1, 1, "IS-IS"
427  ZEBRA_ROUTE_BGP,        bgp,       bgpd,   'B', 1, 1, "BGP"
428 -# HSLS and OLSR both are AFI independent (so: 1, 1), however
429 -# we want to disable for them for general Quagga distribution.
430 -# This at least makes it trivial for users of these protocols
431 -# to 'switch on' redist support (direct numeric entry remaining
432 -# possible).
433 -ZEBRA_ROUTE_HSLS,       hsls,      hslsd,  'H', 0, 0, "HSLS"
434 -ZEBRA_ROUTE_OLSR,       olsr,      oslrd,  'o', 0, 0, "OLSR"
435 +ZEBRA_ROUTE_HSLS,       hsls,      hslsd,  'H', 1, 1, "HSLS"
436 +ZEBRA_ROUTE_OLSR,       olsr,      olsrd,  'o', 1, 1, "OLSR"
437 +ZEBRA_ROUTE_BATMAN,     batman,    batmand,'b', 1, 1, "BATMAN"
438  
439  ## help strings
440  ZEBRA_ROUTE_SYSTEM, "Reserved route type, for internal use only"
441 @@ -71,4 +67,5 @@
442  ZEBRA_ROUTE_ISIS,   "Intermediate System to Intermediate System (IS-IS)"
443  ZEBRA_ROUTE_BGP,    "Border Gateway Protocol (BGP)"
444  ZEBRA_ROUTE_HSLS,   "Hazy-Sighted Link State Protocol (HSLS)"
445 -ZEBRA_ROUTE_OLSR,   "Optimised Link State Routing (OLSR)"
446 +ZEBRA_ROUTE_OLSR,   "Optimized Link State Routing (OLSR)"
447 +ZEBRA_ROUTE_BATMAN, "Better Approach to Mobile Ad-Hoc Networking (BATMAN)"
448 diff -Naur quagga-0.99.16/lib/zebra.h quagga-0.99.16.patched/lib/zebra.h
449 --- quagga-0.99.16/lib/zebra.h  2009-12-09 14:37:12.000000000 +0200
450 +++ quagga-0.99.16.patched/lib/zebra.h  2010-03-12 18:12:28.000000000 +0200
451 @@ -441,7 +441,9 @@
452  #define ZEBRA_ROUTE_ISIS                 8
453  #define ZEBRA_ROUTE_BGP                  9
454  #define ZEBRA_ROUTE_HSLS                10
455 -#define ZEBRA_ROUTE_MAX                  11
456 +#define ZEBRA_ROUTE_OLSR                11
457 +#define ZEBRA_ROUTE_BATMAN              12
458 +#define ZEBRA_ROUTE_MAX                  13
459  
460  /* Note: whenever a new route-type or zserv-command is added the
461   * corresponding {command,route}_types[] table in lib/log.c MUST be
462 diff -Naur quagga-0.99.16/ospf6d/ospf6_asbr.c quagga-0.99.16.patched/ospf6d/ospf6_asbr.c
463 --- quagga-0.99.16/ospf6d/ospf6_asbr.c  2009-12-09 14:37:12.000000000 +0200
464 +++ quagga-0.99.16.patched/ospf6d/ospf6_asbr.c  2010-03-12 18:12:28.000000000 +0200
465 @@ -616,13 +616,16 @@
466  
467  DEFUN (ospf6_redistribute,
468         ospf6_redistribute_cmd,
469 -       "redistribute (static|kernel|connected|ripng|bgp)",
470 +       "redistribute (static|kernel|connected|ripng|bgp|hsls|olsr|batman)",
471         "Redistribute\n"
472         "Static route\n"
473         "Kernel route\n"
474         "Connected route\n"
475         "RIPng route\n"
476         "BGP route\n"
477 +       "HSLS route\n"
478 +       "OLSR route\n"
479 +       "BATMAN route\n"
480        )
481  {
482    int type = 0;
483 @@ -637,6 +640,12 @@
484      type = ZEBRA_ROUTE_RIPNG;
485    else if (strncmp (argv[0], "bgp", 3) == 0)
486      type = ZEBRA_ROUTE_BGP;
487 +  else if (strncmp (argv[0], "h", 1) == 0)
488 +    type = ZEBRA_ROUTE_HSLS;
489 +  else if (strncmp (argv[0], "o", 1) == 0)
490 +    type = ZEBRA_ROUTE_OLSR;
491 +  else if (strncmp (argv[0], "ba", 2) == 0)
492 +    type = ZEBRA_ROUTE_BATMAN;
493  
494    ospf6_asbr_redistribute_unset (type);
495    ospf6_asbr_routemap_unset (type);
496 @@ -646,13 +655,16 @@
497  
498  DEFUN (ospf6_redistribute_routemap,
499         ospf6_redistribute_routemap_cmd,
500 -       "redistribute (static|kernel|connected|ripng|bgp) route-map WORD",
501 +       "redistribute (static|kernel|connected|ripng|bgp|hsls|olsr|batman) route-map WORD",
502         "Redistribute\n"
503         "Static routes\n"
504         "Kernel route\n"
505         "Connected route\n"
506         "RIPng route\n"
507         "BGP route\n"
508 +       "HSLS route\n"
509 +       "OLSR route\n"
510 +       "BATMAN route\n"
511         "Route map reference\n"
512         "Route map name\n"
513        )
514 @@ -669,6 +681,12 @@
515      type = ZEBRA_ROUTE_RIPNG;
516    else if (strncmp (argv[0], "bgp", 3) == 0)
517      type = ZEBRA_ROUTE_BGP;
518 +  else if (strncmp (argv[0], "h", 1) == 0)
519 +    type = ZEBRA_ROUTE_HSLS;
520 +  else if (strncmp (argv[0], "o", 1) == 0)
521 +    type = ZEBRA_ROUTE_OLSR;
522 +  else if (strncmp (argv[0], "ba", 2) == 0)
523 +    type = ZEBRA_ROUTE_BATMAN;
524  
525    ospf6_asbr_redistribute_unset (type);
526    ospf6_asbr_routemap_set (type, argv[1]);
527 @@ -678,7 +696,7 @@
528  
529  DEFUN (no_ospf6_redistribute,
530         no_ospf6_redistribute_cmd,
531 -       "no redistribute (static|kernel|connected|ripng|bgp)",
532 +       "no redistribute (static|kernel|connected|ripng|bgp|hsls|olsr|batman)",
533         NO_STR
534         "Redistribute\n"
535         "Static route\n"
536 @@ -686,6 +704,9 @@
537         "Connected route\n"
538         "RIPng route\n"
539         "BGP route\n"
540 +       "HSLS route\n"
541 +       "OLSR route\n"
542 +       "BATMAN route\n"
543        )
544  {
545    int type = 0;
546 @@ -700,6 +721,12 @@
547      type = ZEBRA_ROUTE_RIPNG;
548    else if (strncmp (argv[0], "bgp", 3) == 0)
549      type = ZEBRA_ROUTE_BGP;
550 +  else if (strncmp (argv[0], "h", 1) == 0)
551 +    type = ZEBRA_ROUTE_HSLS;
552 +  else if (strncmp (argv[0], "o", 1) == 0)
553 +    type = ZEBRA_ROUTE_OLSR;
554 +  else if (strncmp (argv[0], "ba", 2) == 0)
555 +    type = ZEBRA_ROUTE_BATMAN;
556  
557    ospf6_asbr_redistribute_unset (type);
558    ospf6_asbr_routemap_unset (type);
559 diff -Naur quagga-0.99.16/ospfd/ospf_vty.c quagga-0.99.16.patched/ospfd/ospf_vty.c
560 --- quagga-0.99.16/ospfd/ospf_vty.c     2009-12-09 14:37:12.000000000 +0200
561 +++ quagga-0.99.16.patched/ospfd/ospf_vty.c     2010-03-12 18:12:28.000000000 +0200
562 @@ -107,8 +107,14 @@
563      *source = ZEBRA_ROUTE_STATIC;
564    else if (strncmp (str, "r", 1) == 0)
565      *source = ZEBRA_ROUTE_RIP;
566 -  else if (strncmp (str, "b", 1) == 0)
567 +  else if (strncmp (str, "bg", 2) == 0)
568      *source = ZEBRA_ROUTE_BGP;
569 +  else if (strncmp (str, "h", 1) == 0)
570 +    *source = ZEBRA_ROUTE_HSLS;
571 +  else if (strncmp (str, "o", 1) == 0)
572 +    *source = ZEBRA_ROUTE_OLSR;
573 +  else if (strncmp (str, "ba", 2) == 0)
574 +    *source = ZEBRA_ROUTE_BATMAN;
575    else
576      return 0;
577  
578 diff -Naur quagga-0.99.16/ripd/rip_zebra.c quagga-0.99.16.patched/ripd/rip_zebra.c
579 --- quagga-0.99.16/ripd/rip_zebra.c     2009-12-10 18:14:39.000000000 +0200
580 +++ quagga-0.99.16.patched/ripd/rip_zebra.c     2010-03-12 18:12:28.000000000 +0200
581 @@ -204,8 +204,11 @@
582    {ZEBRA_ROUTE_KERNEL,  1, "kernel"},
583    {ZEBRA_ROUTE_CONNECT, 1, "connected"},
584    {ZEBRA_ROUTE_STATIC,  1, "static"},
585 -  {ZEBRA_ROUTE_OSPF,    1, "ospf"},
586 -  {ZEBRA_ROUTE_BGP,     1, "bgp"},
587 +  {ZEBRA_ROUTE_OSPF,    2, "ospf"},
588 +  {ZEBRA_ROUTE_BGP,     2, "bgp"},
589 +  {ZEBRA_ROUTE_HSLS,    1, "hsls"},
590 +  {ZEBRA_ROUTE_OLSR,    2, "olsr"},
591 +  {ZEBRA_ROUTE_BATMAN,  2, "batman"},
592    {0, 0, NULL}
593  };
594  
595 diff -Naur quagga-0.99.16/ripngd/ripng_zebra.c quagga-0.99.16.patched/ripngd/ripng_zebra.c
596 --- quagga-0.99.16/ripngd/ripng_zebra.c 2009-12-09 14:37:12.000000000 +0200
597 +++ quagga-0.99.16.patched/ripngd/ripng_zebra.c 2010-03-12 18:12:28.000000000 +0200
598 @@ -214,8 +214,11 @@
599    {ZEBRA_ROUTE_KERNEL,  1, "kernel"},
600    {ZEBRA_ROUTE_CONNECT, 1, "connected"},
601    {ZEBRA_ROUTE_STATIC,  1, "static"},
602 -  {ZEBRA_ROUTE_OSPF6,   1, "ospf6"},
603 -  {ZEBRA_ROUTE_BGP,     1, "bgp"},
604 +  {ZEBRA_ROUTE_OSPF6,   2, "ospf6"},
605 +  {ZEBRA_ROUTE_BGP,     2, "bgp"},
606 +  {ZEBRA_ROUTE_HSLS,    1, "hsls"},
607 +  {ZEBRA_ROUTE_OLSR,    2, "olsr"},
608 +  {ZEBRA_ROUTE_BATMAN,  2, "batman"},
609    {0, 0, NULL}
610  };
611  
612 diff -Naur quagga-0.99.16/zebra/redistribute.c quagga-0.99.16.patched/zebra/redistribute.c
613 --- quagga-0.99.16/zebra/redistribute.c 2009-12-09 14:37:12.000000000 +0200
614 +++ quagga-0.99.16.patched/zebra/redistribute.c 2010-03-12 18:12:28.000000000 +0200
615 @@ -255,6 +255,9 @@
616      case ZEBRA_ROUTE_OSPF:
617      case ZEBRA_ROUTE_OSPF6:
618      case ZEBRA_ROUTE_BGP:
619 +    case ZEBRA_ROUTE_HSLS:
620 +    case ZEBRA_ROUTE_OLSR:
621 +    case ZEBRA_ROUTE_BATMAN:
622        if (! client->redist[type])
623         {
624           client->redist[type] = 1;
625 @@ -283,6 +286,9 @@
626      case ZEBRA_ROUTE_OSPF:
627      case ZEBRA_ROUTE_OSPF6:
628      case ZEBRA_ROUTE_BGP:
629 +    case ZEBRA_ROUTE_HSLS:
630 +    case ZEBRA_ROUTE_OLSR:
631 +    case ZEBRA_ROUTE_BATMAN:
632        client->redist[type] = 0;
633        break;
634      default:
635 diff -Naur quagga-0.99.16/zebra/zebra_rib.c quagga-0.99.16.patched/zebra/zebra_rib.c
636 --- quagga-0.99.16/zebra/zebra_rib.c    2009-12-21 12:40:24.000000000 +0200
637 +++ quagga-0.99.16.patched/zebra/zebra_rib.c    2010-03-12 18:12:28.000000000 +0200
638 @@ -66,7 +66,10 @@
639    {ZEBRA_ROUTE_OSPF,    110},
640    {ZEBRA_ROUTE_OSPF6,   110},
641    {ZEBRA_ROUTE_ISIS,    115},
642 -  {ZEBRA_ROUTE_BGP,      20  /* IBGP is 200. */}
643 +  {ZEBRA_ROUTE_BGP,      20  /* IBGP is 200. */},
644 +  {ZEBRA_ROUTE_HSLS,      0}, 
645 +  {ZEBRA_ROUTE_OLSR,      0}, 
646 +  {ZEBRA_ROUTE_BATMAN,    0}
647  };
648  \f
649  /* Vector for routing table.  */
650 @@ -1229,6 +1232,8 @@
651    [ZEBRA_ROUTE_ISIS]    = 2,
652    [ZEBRA_ROUTE_BGP]     = 3,
653    [ZEBRA_ROUTE_HSLS]    = 4,
654 +  [ZEBRA_ROUTE_OLSR]    = 4,
655 +  [ZEBRA_ROUTE_BATMAN]  = 4,
656  };
657  
658  /* Look into the RN and queue it into one or more priority queues,
659 diff -Naur quagga-0.99.16/zebra/zebra_snmp.c quagga-0.99.16.patched/zebra/zebra_snmp.c
660 --- quagga-0.99.16/zebra/zebra_snmp.c   2009-12-09 14:37:12.000000000 +0200
661 +++ quagga-0.99.16.patched/zebra/zebra_snmp.c   2010-03-12 18:12:28.000000000 +0200
662 @@ -251,6 +251,12 @@
663        return 1; /* shouldn't happen */
664      case ZEBRA_ROUTE_BGP:
665        return 14; /* bgp */
666 +    case ZEBRA_ROUTE_HSLS:
667 +      return 1; /* other */
668 +    case ZEBRA_ROUTE_OLSR:
669 +      return 1; /* other */
670 +    case ZEBRA_ROUTE_BATMAN:
671 +      return 1; /* other */
672      default:
673        return 1; /* other */
674      }
675 diff -Naur quagga-0.99.16/zebra/zebra_vty.c quagga-0.99.16.patched/zebra/zebra_vty.c
676 --- quagga-0.99.16/zebra/zebra_vty.c    2009-12-09 14:37:12.000000000 +0200
677 +++ quagga-0.99.16.patched/zebra/zebra_vty.c    2010-03-12 18:12:28.000000000 +0200
678 @@ -557,7 +557,10 @@
679        if (rib->type == ZEBRA_ROUTE_RIP
680           || rib->type == ZEBRA_ROUTE_OSPF
681           || rib->type == ZEBRA_ROUTE_ISIS
682 -         || rib->type == ZEBRA_ROUTE_BGP)
683 +         || rib->type == ZEBRA_ROUTE_BGP
684 +         || rib->type == ZEBRA_ROUTE_HSLS
685 +         || rib->type == ZEBRA_ROUTE_OLSR
686 +         || rib->type == ZEBRA_ROUTE_BATMAN)
687         {
688           time_t uptime;
689           struct tm *tm;
690 @@ -775,7 +778,10 @@
691        if (rib->type == ZEBRA_ROUTE_RIP
692           || rib->type == ZEBRA_ROUTE_OSPF
693           || rib->type == ZEBRA_ROUTE_ISIS
694 -         || rib->type == ZEBRA_ROUTE_BGP)
695 +         || rib->type == ZEBRA_ROUTE_BGP
696 +         || rib->type == ZEBRA_ROUTE_HSLS
697 +         || rib->type == ZEBRA_ROUTE_OLSR
698 +         || rib->type == ZEBRA_ROUTE_BATMAN)
699         {
700           time_t uptime;
701           struct tm *tm;
702 @@ -803,8 +809,8 @@
703  }
704  
705  #define SHOW_ROUTE_V4_HEADER "Codes: K - kernel route, C - connected, " \
706 -  "S - static, R - RIP, O - OSPF,%s       I - ISIS, B - BGP, " \
707 -  "> - selected route, * - FIB route%s%s"
708 +  "S - static, R - RIP, O - OSPF,%s       I - ISIS, B - BGP, H - HSLS, " \
709 +  "o - OLSR, b - BATMAN,%s       > - selected route, * - FIB route%s%s"
710  
711  DEFUN (show_ip_route,
712         show_ip_route_cmd,
713 @@ -922,7 +928,7 @@
714  
715  DEFUN (show_ip_route_protocol,
716         show_ip_route_protocol_cmd,
717 -       "show ip route (bgp|connected|isis|kernel|ospf|rip|static)",
718 +       "show ip route (bgp|connected|isis|kernel|ospf|rip|static|hsls|olsr|batman)",
719         SHOW_STR
720         IP_STR
721         "IP routing table\n"
722 @@ -940,13 +946,13 @@
723    struct rib *rib;
724    int first = 1;
725  
726 -  if (strncmp (argv[0], "b", 1) == 0)
727 +  if (strncmp (argv[0], "bg", 2) == 0)
728      type = ZEBRA_ROUTE_BGP;
729    else if (strncmp (argv[0], "c", 1) == 0)
730      type = ZEBRA_ROUTE_CONNECT;
731    else if (strncmp (argv[0], "k", 1) ==0)
732      type = ZEBRA_ROUTE_KERNEL;
733 -  else if (strncmp (argv[0], "o", 1) == 0)
734 +  else if (strncmp (argv[0], "os", 2) == 0)
735      type = ZEBRA_ROUTE_OSPF;
736    else if (strncmp (argv[0], "i", 1) == 0)
737      type = ZEBRA_ROUTE_ISIS;
738 @@ -954,6 +960,12 @@
739      type = ZEBRA_ROUTE_RIP;
740    else if (strncmp (argv[0], "s", 1) == 0)
741      type = ZEBRA_ROUTE_STATIC;
742 +  else if (strncmp (argv[0], "h", 1) == 0)
743 +    type = ZEBRA_ROUTE_HSLS;
744 +  else if (strncmp (argv[0], "ol", 2) == 0)
745 +    type = ZEBRA_ROUTE_OLSR;
746 +  else if (strncmp (argv[0], "ba", 2) == 0)
747 +    type = ZEBRA_ROUTE_BATMAN;
748    else 
749      {
750        vty_out (vty, "Unknown route type%s", VTY_NEWLINE);
751 @@ -1560,7 +1572,10 @@
752        if (rib->type == ZEBRA_ROUTE_RIPNG
753           || rib->type == ZEBRA_ROUTE_OSPF6
754           || rib->type == ZEBRA_ROUTE_ISIS
755 -         || rib->type == ZEBRA_ROUTE_BGP)
756 +         || rib->type == ZEBRA_ROUTE_BGP
757 +         || rib->type == ZEBRA_ROUTE_HSLS
758 +         || rib->type == ZEBRA_ROUTE_OLSR
759 +         || rib->type == ZEBRA_ROUTE_BATMAN)
760         {
761           time_t uptime;
762           struct tm *tm;
763 @@ -1739,7 +1754,10 @@
764        if (rib->type == ZEBRA_ROUTE_RIPNG
765           || rib->type == ZEBRA_ROUTE_OSPF6
766           || rib->type == ZEBRA_ROUTE_ISIS
767 -         || rib->type == ZEBRA_ROUTE_BGP)
768 +         || rib->type == ZEBRA_ROUTE_BGP
769 +         || rib->type == ZEBRA_ROUTE_HSLS
770 +         || rib->type == ZEBRA_ROUTE_OLSR
771 +         || rib->type == ZEBRA_ROUTE_BATMAN)
772         {
773           time_t uptime;
774           struct tm *tm;
775 @@ -1766,7 +1784,7 @@
776      }
777  }
778  
779 -#define SHOW_ROUTE_V6_HEADER "Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,%s       I - ISIS, B - BGP, * - FIB route.%s%s"
780 +#define SHOW_ROUTE_V6_HEADER "Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,%s       I - ISIS, B - BGP, H - HSLS, o - OLSR, b - BATMAN, * - FIB route.%s%s"
781  
782  DEFUN (show_ipv6_route,
783         show_ipv6_route_cmd,
784 @@ -1842,7 +1860,7 @@
785  
786  DEFUN (show_ipv6_route_protocol,
787         show_ipv6_route_protocol_cmd,
788 -       "show ipv6 route (bgp|connected|isis|kernel|ospf6|ripng|static)",
789 +       "show ipv6 route (bgp|connected|isis|kernel|ospf6|ripng|static|hsls|olsr|batman)",
790         SHOW_STR
791         IP_STR
792         "IP routing table\n"
793 @@ -1860,13 +1878,13 @@
794    struct rib *rib;
795    int first = 1;
796  
797 -  if (strncmp (argv[0], "b", 1) == 0)
798 +  if (strncmp (argv[0], "bg", 2) == 0)
799      type = ZEBRA_ROUTE_BGP;
800    else if (strncmp (argv[0], "c", 1) == 0)
801      type = ZEBRA_ROUTE_CONNECT;
802    else if (strncmp (argv[0], "k", 1) ==0)
803      type = ZEBRA_ROUTE_KERNEL;
804 -  else if (strncmp (argv[0], "o", 1) == 0)
805 +  else if (strncmp (argv[0], "os", 2) == 0)
806      type = ZEBRA_ROUTE_OSPF6;
807    else if (strncmp (argv[0], "i", 1) == 0)
808      type = ZEBRA_ROUTE_ISIS;
809 @@ -1874,6 +1892,12 @@
810      type = ZEBRA_ROUTE_RIPNG;
811    else if (strncmp (argv[0], "s", 1) == 0)
812      type = ZEBRA_ROUTE_STATIC;
813 +  else if (strncmp (argv[0], "h", 1) == 0)
814 +    type = ZEBRA_ROUTE_HSLS;
815 +  else if (strncmp (argv[0], "ol", 2) == 0)
816 +    type = ZEBRA_ROUTE_OLSR;
817 +  else if (strncmp (argv[0], "ba", 2) == 0)
818 +    type = ZEBRA_ROUTE_BATMAN;
819    else 
820      {
821        vty_out (vty, "Unknown route type%s", VTY_NEWLINE);