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