Update Quagga 0.99.x patch to version 0.99.18
[olsrd.git] / lib / quagga / patches / quagga-0.99.18.diff
1 diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
2 index e7e7dba..fd9b877 100644
3 --- a/bgpd/bgp_vty.c
4 +++ b/bgpd/bgp_vty.c
5 @@ -8399,8 +8399,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 @@ -8412,21 +8418,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 @@ -8441,13 +8456,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 @@ -8466,13 +8484,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 @@ -8493,13 +8514,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 @@ -8523,13 +8547,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 @@ -8553,14 +8580,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 @@ -8576,7 +8606,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 @@ -8584,6 +8614,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 @@ -8602,7 +8635,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 @@ -8610,6 +8643,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 @@ -8628,7 +8664,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 @@ -8636,6 +8672,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 @@ -8657,7 +8696,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 @@ -8665,6 +8704,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 @@ -8673,13 +8715,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 @@ -8695,13 +8740,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 @@ -8720,13 +8768,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 @@ -8747,13 +8798,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 @@ -8777,13 +8831,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 @@ -8807,14 +8864,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 @@ -8830,7 +8890,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 @@ -8838,6 +8898,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 @@ -8856,7 +8919,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 @@ -8864,6 +8927,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 @@ -8882,7 +8948,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 @@ -8890,6 +8956,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 @@ -8911,7 +8980,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 @@ -8919,6 +8988,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 df6e13d..f8c3950 100644
412 --- a/lib/log.c
413 +++ b/lib/log.c
414 @@ -838,6 +838,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 3efaab4..4212051 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 46e7ffa..eb50c9a 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/rt_netlink.c b/zebra/rt_netlink.c
645 index 7652f80..5633e9f 100644
646 --- a/zebra/rt_netlink.c
647 +++ b/zebra/rt_netlink.c
648 @@ -1488,6 +1488,9 @@ netlink_route_multipath (int cmd, struct prefix *p, struct rib *rib,
649                          addattr_l (&req.n, sizeof req, RTA_PREFSRC,
650                                  &nexthop->src.ipv4, bytelen);
651  
652 +                     if (rib->type == ZEBRA_ROUTE_OLSR)
653 +                       req.r.rtm_scope = RT_SCOPE_LINK;
654 +
655                       if (IS_ZEBRA_DEBUG_KERNEL)
656                         zlog_debug("netlink_route_multipath() (single hop): "
657                                    "nexthop via if %u", nexthop->ifindex);
658 diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
659 index 12f3fa5..c192275 100644
660 --- a/zebra/zebra_rib.c
661 +++ b/zebra/zebra_rib.c
662 @@ -66,7 +66,10 @@ static const struct
663    {ZEBRA_ROUTE_OSPF,    110},
664    {ZEBRA_ROUTE_OSPF6,   110},
665    {ZEBRA_ROUTE_ISIS,    115},
666 -  {ZEBRA_ROUTE_BGP,      20  /* IBGP is 200. */}
667 +  {ZEBRA_ROUTE_BGP,      20  /* IBGP is 200. */},
668 +  {ZEBRA_ROUTE_HSLS,      0}, 
669 +  {ZEBRA_ROUTE_OLSR,      0}, 
670 +  {ZEBRA_ROUTE_BATMAN,    0}
671  };
672  \f
673  /* Vector for routing table.  */
674 @@ -374,6 +377,18 @@ nexthop_active_ipv4 (struct rib *rib, struct nexthop *nexthop, int set,
675               
676               return 1;
677             }
678 +         else if (match->type == ZEBRA_ROUTE_OLSR)
679 +           {
680 +             for (newhop = match->nexthop; newhop; newhop = newhop->next)
681 +               if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB)
682 +                   && newhop->type == NEXTHOP_TYPE_IFINDEX)
683 +                 {
684 +                   if (nexthop->type == NEXTHOP_TYPE_IPV4)
685 +                     nexthop->ifindex = newhop->ifindex;
686 +                   return 1;
687 +                 }
688 +             return 0;
689 +           }
690           else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
691             {
692               for (newhop = match->nexthop; newhop; newhop = newhop->next)
693 @@ -476,6 +491,18 @@ nexthop_active_ipv6 (struct rib *rib, struct nexthop *nexthop, int set,
694               
695               return 1;
696             }
697 +         else if (match->type == ZEBRA_ROUTE_OLSR)
698 +           {
699 +             for (newhop = match->nexthop; newhop; newhop = newhop->next)
700 +               if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB)
701 +                   && newhop->type == NEXTHOP_TYPE_IFINDEX)
702 +                 {
703 +                   if (nexthop->type == NEXTHOP_TYPE_IPV6)
704 +                     nexthop->ifindex = newhop->ifindex;
705 +                   return 1;
706 +                 }
707 +             return 0;
708 +           }
709           else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
710             {
711               for (newhop = match->nexthop; newhop; newhop = newhop->next)
712 @@ -1229,6 +1256,8 @@ static const u_char meta_queue_map[ZEBRA_ROUTE_MAX] = {
713    [ZEBRA_ROUTE_ISIS]    = 2,
714    [ZEBRA_ROUTE_BGP]     = 3,
715    [ZEBRA_ROUTE_HSLS]    = 4,
716 +  [ZEBRA_ROUTE_OLSR]    = 4,
717 +  [ZEBRA_ROUTE_BATMAN]  = 4,
718  };
719  
720  /* Look into the RN and queue it into one or more priority queues,
721 diff --git a/zebra/zebra_snmp.c b/zebra/zebra_snmp.c
722 index 0fde4bb..23222f4 100644
723 --- a/zebra/zebra_snmp.c
724 +++ b/zebra/zebra_snmp.c
725 @@ -251,6 +251,12 @@ proto_trans(int type)
726        return 1; /* shouldn't happen */
727      case ZEBRA_ROUTE_BGP:
728        return 14; /* bgp */
729 +    case ZEBRA_ROUTE_HSLS:
730 +      return 1; /* other */
731 +    case ZEBRA_ROUTE_OLSR:
732 +      return 1; /* other */
733 +    case ZEBRA_ROUTE_BATMAN:
734 +      return 1; /* other */
735      default:
736        return 1; /* other */
737      }
738 diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c
739 index ecb5d10..98834d2 100644
740 --- a/zebra/zebra_vty.c
741 +++ b/zebra/zebra_vty.c
742 @@ -557,7 +557,10 @@ vty_show_ip_route_detail (struct vty *vty, struct route_node *rn)
743        if (rib->type == ZEBRA_ROUTE_RIP
744           || rib->type == ZEBRA_ROUTE_OSPF
745           || rib->type == ZEBRA_ROUTE_ISIS
746 -         || rib->type == ZEBRA_ROUTE_BGP)
747 +         || rib->type == ZEBRA_ROUTE_BGP
748 +         || rib->type == ZEBRA_ROUTE_HSLS
749 +         || rib->type == ZEBRA_ROUTE_OLSR
750 +         || rib->type == ZEBRA_ROUTE_BATMAN)
751         {
752           time_t uptime;
753           struct tm *tm;
754 @@ -775,7 +778,10 @@ vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib)
755        if (rib->type == ZEBRA_ROUTE_RIP
756           || rib->type == ZEBRA_ROUTE_OSPF
757           || rib->type == ZEBRA_ROUTE_ISIS
758 -         || rib->type == ZEBRA_ROUTE_BGP)
759 +         || rib->type == ZEBRA_ROUTE_BGP
760 +         || rib->type == ZEBRA_ROUTE_HSLS
761 +         || rib->type == ZEBRA_ROUTE_OLSR
762 +         || rib->type == ZEBRA_ROUTE_BATMAN)
763         {
764           time_t uptime;
765           struct tm *tm;
766 @@ -803,8 +809,8 @@ vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib)
767  }
768  
769  #define SHOW_ROUTE_V4_HEADER "Codes: K - kernel route, C - connected, " \
770 -  "S - static, R - RIP, O - OSPF,%s       I - ISIS, B - BGP, " \
771 -  "> - selected route, * - FIB route%s%s"
772 +  "S - static, R - RIP, O - OSPF,%s       I - ISIS, B - BGP, H - HSLS, " \
773 +  "o - OLSR, b - BATMAN,%s       > - selected route, * - FIB route%s%s"
774  
775  DEFUN (show_ip_route,
776         show_ip_route_cmd,
777 @@ -829,7 +835,7 @@ DEFUN (show_ip_route,
778         if (first)
779           {
780             vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE, VTY_NEWLINE,
781 -                    VTY_NEWLINE);
782 +                    VTY_NEWLINE, VTY_NEWLINE);
783             first = 0;
784           }
785         vty_show_ip_route (vty, rn, rib);
786 @@ -872,7 +878,7 @@ DEFUN (show_ip_route_prefix_longer,
787           if (first)
788             {
789               vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE,
790 -                      VTY_NEWLINE, VTY_NEWLINE);
791 +                      VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
792               first = 0;
793             }
794           vty_show_ip_route (vty, rn, rib);
795 @@ -911,7 +917,7 @@ DEFUN (show_ip_route_supernets,
796             if (first)
797               {
798                 vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE,
799 -                        VTY_NEWLINE, VTY_NEWLINE);
800 +                        VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
801                 first = 0;
802               }
803             vty_show_ip_route (vty, rn, rib);
804 @@ -922,7 +928,7 @@ DEFUN (show_ip_route_supernets,
805  
806  DEFUN (show_ip_route_protocol,
807         show_ip_route_protocol_cmd,
808 -       "show ip route (bgp|connected|isis|kernel|ospf|rip|static)",
809 +       "show ip route (bgp|connected|isis|kernel|ospf|rip|static|hsls|olsr|batman)",
810         SHOW_STR
811         IP_STR
812         "IP routing table\n"
813 @@ -940,13 +946,13 @@ DEFUN (show_ip_route_protocol,
814    struct rib *rib;
815    int first = 1;
816  
817 -  if (strncmp (argv[0], "b", 1) == 0)
818 +  if (strncmp (argv[0], "bg", 2) == 0)
819      type = ZEBRA_ROUTE_BGP;
820    else if (strncmp (argv[0], "c", 1) == 0)
821      type = ZEBRA_ROUTE_CONNECT;
822    else if (strncmp (argv[0], "k", 1) ==0)
823      type = ZEBRA_ROUTE_KERNEL;
824 -  else if (strncmp (argv[0], "o", 1) == 0)
825 +  else if (strncmp (argv[0], "os", 2) == 0)
826      type = ZEBRA_ROUTE_OSPF;
827    else if (strncmp (argv[0], "i", 1) == 0)
828      type = ZEBRA_ROUTE_ISIS;
829 @@ -954,6 +960,12 @@ DEFUN (show_ip_route_protocol,
830      type = ZEBRA_ROUTE_RIP;
831    else if (strncmp (argv[0], "s", 1) == 0)
832      type = ZEBRA_ROUTE_STATIC;
833 +  else if (strncmp (argv[0], "h", 1) == 0)
834 +    type = ZEBRA_ROUTE_HSLS;
835 +  else if (strncmp (argv[0], "ol", 2) == 0)
836 +    type = ZEBRA_ROUTE_OLSR;
837 +  else if (strncmp (argv[0], "ba", 2) == 0)
838 +    type = ZEBRA_ROUTE_BATMAN;
839    else 
840      {
841        vty_out (vty, "Unknown route type%s", VTY_NEWLINE);
842 @@ -971,7 +983,7 @@ DEFUN (show_ip_route_protocol,
843         {
844           if (first)
845             {
846 -             vty_out (vty, SHOW_ROUTE_V4_HEADER,
847 +             vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE,
848                        VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
849               first = 0;
850             }
851 @@ -1560,7 +1572,10 @@ vty_show_ipv6_route_detail (struct vty *vty, struct route_node *rn)
852        if (rib->type == ZEBRA_ROUTE_RIPNG
853           || rib->type == ZEBRA_ROUTE_OSPF6
854           || rib->type == ZEBRA_ROUTE_ISIS
855 -         || rib->type == ZEBRA_ROUTE_BGP)
856 +         || rib->type == ZEBRA_ROUTE_BGP
857 +         || rib->type == ZEBRA_ROUTE_HSLS
858 +         || rib->type == ZEBRA_ROUTE_OLSR
859 +         || rib->type == ZEBRA_ROUTE_BATMAN)
860         {
861           time_t uptime;
862           struct tm *tm;
863 @@ -1739,7 +1754,10 @@ vty_show_ipv6_route (struct vty *vty, struct route_node *rn,
864        if (rib->type == ZEBRA_ROUTE_RIPNG
865           || rib->type == ZEBRA_ROUTE_OSPF6
866           || rib->type == ZEBRA_ROUTE_ISIS
867 -         || rib->type == ZEBRA_ROUTE_BGP)
868 +         || rib->type == ZEBRA_ROUTE_BGP
869 +         || rib->type == ZEBRA_ROUTE_HSLS
870 +         || rib->type == ZEBRA_ROUTE_OLSR
871 +         || rib->type == ZEBRA_ROUTE_BATMAN)
872         {
873           time_t uptime;
874           struct tm *tm;
875 @@ -1766,7 +1784,7 @@ vty_show_ipv6_route (struct vty *vty, struct route_node *rn,
876      }
877  }
878  
879 -#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"
880 +#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"
881  
882  DEFUN (show_ipv6_route,
883         show_ipv6_route_cmd,
884 @@ -1842,7 +1860,7 @@ DEFUN (show_ipv6_route_prefix_longer,
885  
886  DEFUN (show_ipv6_route_protocol,
887         show_ipv6_route_protocol_cmd,
888 -       "show ipv6 route (bgp|connected|isis|kernel|ospf6|ripng|static)",
889 +       "show ipv6 route (bgp|connected|isis|kernel|ospf6|ripng|static|hsls|olsr|batman)",
890         SHOW_STR
891         IP_STR
892         "IP routing table\n"
893 @@ -1860,13 +1878,13 @@ DEFUN (show_ipv6_route_protocol,
894    struct rib *rib;
895    int first = 1;
896  
897 -  if (strncmp (argv[0], "b", 1) == 0)
898 +  if (strncmp (argv[0], "bg", 2) == 0)
899      type = ZEBRA_ROUTE_BGP;
900    else if (strncmp (argv[0], "c", 1) == 0)
901      type = ZEBRA_ROUTE_CONNECT;
902    else if (strncmp (argv[0], "k", 1) ==0)
903      type = ZEBRA_ROUTE_KERNEL;
904 -  else if (strncmp (argv[0], "o", 1) == 0)
905 +  else if (strncmp (argv[0], "os", 2) == 0)
906      type = ZEBRA_ROUTE_OSPF6;
907    else if (strncmp (argv[0], "i", 1) == 0)
908      type = ZEBRA_ROUTE_ISIS;
909 @@ -1874,6 +1892,12 @@ DEFUN (show_ipv6_route_protocol,
910      type = ZEBRA_ROUTE_RIPNG;
911    else if (strncmp (argv[0], "s", 1) == 0)
912      type = ZEBRA_ROUTE_STATIC;
913 +  else if (strncmp (argv[0], "h", 1) == 0)
914 +    type = ZEBRA_ROUTE_HSLS;
915 +  else if (strncmp (argv[0], "ol", 2) == 0)
916 +    type = ZEBRA_ROUTE_OLSR;
917 +  else if (strncmp (argv[0], "ba", 2) == 0)
918 +    type = ZEBRA_ROUTE_BATMAN;
919    else 
920      {
921        vty_out (vty, "Unknown route type%s", VTY_NEWLINE);