[quagga] Update to v0.99.22
[feed/routing.git] / patches / 120-quagga_manet.patch
index c32af31f33a56a343e79f73ddfa327ffa58f9a78..684a27d162b8828d99225896a0397da14b6c4214 100644 (file)
---- a/bgpd/bgp_vty.c
-+++ b/bgpd/bgp_vty.c
-@@ -8228,8 +8228,14 @@ bgp_str2route_type (int afi, const char
+--- a/lib/log.c
++++ b/lib/log.c
+@@ -925,13 +925,19 @@ proto_redistnum(int afi, const char *s)
        return ZEBRA_ROUTE_STATIC;
-       else if (strncmp (str, "r", 1) == 0)
+       else if (strncmp (s, "r", 1) == 0)
        return ZEBRA_ROUTE_RIP;
--      else if (strncmp (str, "o", 1) == 0)
-+      else if (strncmp (str, "os", 2) == 0)
+-      else if (strncmp (s, "o", 1) == 0)
++      else if (strncmp (s, "os", 2) == 0)
        return ZEBRA_ROUTE_OSPF;
-+      else if (strncmp (str, "h", 1) == 0)
+       else if (strncmp (s, "i", 1) == 0)
+       return ZEBRA_ROUTE_ISIS;
+       else if (strncmp (s, "bg", 2) == 0)
+       return ZEBRA_ROUTE_BGP;
+-      else if (strncmp (s, "ba", 2) == 0)
++      else if (strncmp (s, "h", 1) == 0)
 +      return ZEBRA_ROUTE_HSLS;
-+      else if (strncmp (str, "ol", 2) == 0)
++      else if (strncmp (s, "ol", 2) == 0)
 +      return ZEBRA_ROUTE_OLSR;
-+      else if (strncmp (str, "b", 1) == 0)
++      else if (strncmp (s, "bat", 3) == 0)
 +      return ZEBRA_ROUTE_BATMAN;
++      else if (strncmp (s, "bab", 3) == 0)
+       return ZEBRA_ROUTE_BABEL;
      }
    if (afi == AFI_IP6)
-     {
-@@ -8241,21 +8247,30 @@ bgp_str2route_type (int afi, const char
+@@ -944,13 +950,19 @@ proto_redistnum(int afi, const char *s)
        return ZEBRA_ROUTE_STATIC;
-       else if (strncmp (str, "r", 1) == 0)
+       else if (strncmp (s, "r", 1) == 0)
        return ZEBRA_ROUTE_RIPNG;
--      else if (strncmp (str, "o", 1) == 0)
-+      else if (strncmp (str, "os", 2) == 0)
+-      else if (strncmp (s, "o", 1) == 0)
++      else if (strncmp (s, "os", 2) == 0)
        return ZEBRA_ROUTE_OSPF6;
-+      else if (strncmp (str, "h", 1) == 0)
+       else if (strncmp (s, "i", 1) == 0)
+       return ZEBRA_ROUTE_ISIS;
+       else if (strncmp (s, "bg", 2) == 0)
+       return ZEBRA_ROUTE_BGP;
+-      else if (strncmp (s, "ba", 2) == 0)
++      else if (strncmp (s, "h", 1) == 0)
 +      return ZEBRA_ROUTE_HSLS;
-+      else if (strncmp (str, "ol", 2) == 0)
++      else if (strncmp (s, "ol", 2) == 0)
 +      return ZEBRA_ROUTE_OLSR;
-+      else if (strncmp (str, "b", 1) == 0)
++      else if (strncmp (s, "bat", 3) == 0)
 +      return ZEBRA_ROUTE_BATMAN;
++      else if (strncmp (s, "bab", 3) == 0)
+       return ZEBRA_ROUTE_BABEL;
      }
-   return 0;
- }
- DEFUN (bgp_redistribute_ipv4,
-        bgp_redistribute_ipv4_cmd,
--       "redistribute (connected|kernel|ospf|rip|static)",
-+       "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman)",
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPF)\n"
-        "Routing Information Protocol (RIP)\n"
--       "Static routes\n")
-+       "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
- {
-   int type;
-@@ -8270,13 +8285,16 @@ DEFUN (bgp_redistribute_ipv4,
- DEFUN (bgp_redistribute_ipv4_rmap,
-        bgp_redistribute_ipv4_rmap_cmd,
--       "redistribute (connected|kernel|ospf|rip|static) route-map WORD",
-+       "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD",
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPF)\n"
-        "Routing Information Protocol (RIP)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Route map reference\n"
-        "Pointer to route-map entries\n")
- {
-@@ -8295,13 +8313,16 @@ DEFUN (bgp_redistribute_ipv4_rmap,
- DEFUN (bgp_redistribute_ipv4_metric,
-        bgp_redistribute_ipv4_metric_cmd,
--       "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>",
-+       "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295>",
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPF)\n"
-        "Routing Information Protocol (RIP)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Metric for redistributed routes\n"
-        "Default metric\n")
- {
-@@ -8322,13 +8343,16 @@ DEFUN (bgp_redistribute_ipv4_metric,
- DEFUN (bgp_redistribute_ipv4_rmap_metric,
-        bgp_redistribute_ipv4_rmap_metric_cmd,
--       "redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>",
-+       "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPF)\n"
-        "Routing Information Protocol (RIP)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Route map reference\n"
-        "Pointer to route-map entries\n"
-        "Metric for redistributed routes\n"
-@@ -8352,13 +8376,16 @@ DEFUN (bgp_redistribute_ipv4_rmap_metric
- DEFUN (bgp_redistribute_ipv4_metric_rmap,
-        bgp_redistribute_ipv4_metric_rmap_cmd,
--       "redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD",
-+       "redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPF)\n"
-        "Routing Information Protocol (RIP)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Metric for redistributed routes\n"
-        "Default metric\n"
-        "Route map reference\n"
-@@ -8382,14 +8409,17 @@ DEFUN (bgp_redistribute_ipv4_metric_rmap
- DEFUN (no_bgp_redistribute_ipv4,
-        no_bgp_redistribute_ipv4_cmd,
--       "no redistribute (connected|kernel|ospf|rip|static)",
-+       "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman)",
-        NO_STR
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPF)\n"
-        "Routing Information Protocol (RIP)\n"
--       "Static routes\n")
-+       "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
- {
-   int type;
-@@ -8405,7 +8435,7 @@ DEFUN (no_bgp_redistribute_ipv4,
- DEFUN (no_bgp_redistribute_ipv4_rmap,
-        no_bgp_redistribute_ipv4_rmap_cmd,
--       "no redistribute (connected|kernel|ospf|rip|static) route-map WORD",
-+       "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD",
-        NO_STR
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-@@ -8413,6 +8443,9 @@ DEFUN (no_bgp_redistribute_ipv4_rmap,
-        "Open Shurtest Path First (OSPF)\n"
-        "Routing Information Protocol (RIP)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Route map reference\n"
-        "Pointer to route-map entries\n")
- {
-@@ -8431,7 +8464,7 @@ DEFUN (no_bgp_redistribute_ipv4_rmap,
- DEFUN (no_bgp_redistribute_ipv4_metric,
-        no_bgp_redistribute_ipv4_metric_cmd,
--       "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295>",
-+       "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295>",
-        NO_STR
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-@@ -8439,6 +8472,9 @@ DEFUN (no_bgp_redistribute_ipv4_metric,
-        "Open Shurtest Path First (OSPF)\n"
-        "Routing Information Protocol (RIP)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Metric for redistributed routes\n"
-        "Default metric\n")
- {
-@@ -8457,7 +8493,7 @@ DEFUN (no_bgp_redistribute_ipv4_metric,
- DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
-        no_bgp_redistribute_ipv4_rmap_metric_cmd,
--       "no redistribute (connected|kernel|ospf|rip|static) route-map WORD metric <0-4294967295>",
-+       "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
-        NO_STR
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-@@ -8465,6 +8501,9 @@ DEFUN (no_bgp_redistribute_ipv4_rmap_met
-        "Open Shurtest Path First (OSPF)\n"
-        "Routing Information Protocol (RIP)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Route map reference\n"
-        "Pointer to route-map entries\n"
-        "Metric for redistributed routes\n"
-@@ -8486,7 +8525,7 @@ DEFUN (no_bgp_redistribute_ipv4_rmap_met
- ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
-        no_bgp_redistribute_ipv4_metric_rmap_cmd,
--       "no redistribute (connected|kernel|ospf|rip|static) metric <0-4294967295> route-map WORD",
-+       "no redistribute (connected|kernel|ospf|rip|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
-        NO_STR
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-@@ -8494,6 +8533,9 @@ ALIAS (no_bgp_redistribute_ipv4_rmap_met
-        "Open Shurtest Path First (OSPF)\n"
-        "Routing Information Protocol (RIP)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Metric for redistributed routes\n"
-        "Default metric\n"
-        "Route map reference\n"
-@@ -8502,13 +8544,16 @@ ALIAS (no_bgp_redistribute_ipv4_rmap_met
- #ifdef HAVE_IPV6
- DEFUN (bgp_redistribute_ipv6,
-        bgp_redistribute_ipv6_cmd,
--       "redistribute (connected|kernel|ospf6|ripng|static)",
-+       "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman)",
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPFv3)\n"
-        "Routing Information Protocol (RIPng)\n"
--       "Static routes\n")
-+       "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
- {
-   int type;
-@@ -8524,13 +8569,16 @@ DEFUN (bgp_redistribute_ipv6,
- DEFUN (bgp_redistribute_ipv6_rmap,
-        bgp_redistribute_ipv6_rmap_cmd,
--       "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD",
-+       "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD",
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPFv3)\n"
-        "Routing Information Protocol (RIPng)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Route map reference\n"
-        "Pointer to route-map entries\n")
- {
-@@ -8549,13 +8597,16 @@ DEFUN (bgp_redistribute_ipv6_rmap,
- DEFUN (bgp_redistribute_ipv6_metric,
-        bgp_redistribute_ipv6_metric_cmd,
--       "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>",
-+       "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295>",
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPFv3)\n"
-        "Routing Information Protocol (RIPng)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Metric for redistributed routes\n"
-        "Default metric\n")
- {
-@@ -8576,13 +8627,16 @@ DEFUN (bgp_redistribute_ipv6_metric,
- DEFUN (bgp_redistribute_ipv6_rmap_metric,
-        bgp_redistribute_ipv6_rmap_metric_cmd,
--       "redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>",
-+       "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPFv3)\n"
-        "Routing Information Protocol (RIPng)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Route map reference\n"
-        "Pointer to route-map entries\n"
-        "Metric for redistributed routes\n"
-@@ -8606,13 +8660,16 @@ DEFUN (bgp_redistribute_ipv6_rmap_metric
- DEFUN (bgp_redistribute_ipv6_metric_rmap,
-        bgp_redistribute_ipv6_metric_rmap_cmd,
--       "redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD",
-+       "redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPFv3)\n"
-        "Routing Information Protocol (RIPng)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Metric for redistributed routes\n"
-        "Default metric\n"
-        "Route map reference\n"
-@@ -8636,14 +8693,17 @@ DEFUN (bgp_redistribute_ipv6_metric_rmap
- DEFUN (no_bgp_redistribute_ipv6,
-        no_bgp_redistribute_ipv6_cmd,
--       "no redistribute (connected|kernel|ospf6|ripng|static)",
-+       "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman)",
-        NO_STR
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-        "Kernel routes\n"
-        "Open Shurtest Path First (OSPFv3)\n"
-        "Routing Information Protocol (RIPng)\n"
--       "Static routes\n")
-+       "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n")
- {
-   int type;
-@@ -8659,7 +8719,7 @@ DEFUN (no_bgp_redistribute_ipv6,
- DEFUN (no_bgp_redistribute_ipv6_rmap,
-        no_bgp_redistribute_ipv6_rmap_cmd,
--       "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD",
-+       "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD",
-        NO_STR
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-@@ -8667,6 +8727,9 @@ DEFUN (no_bgp_redistribute_ipv6_rmap,
-        "Open Shurtest Path First (OSPFv3)\n"
-        "Routing Information Protocol (RIPng)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Route map reference\n"
-        "Pointer to route-map entries\n")
- {
-@@ -8685,7 +8748,7 @@ DEFUN (no_bgp_redistribute_ipv6_rmap,
- DEFUN (no_bgp_redistribute_ipv6_metric,
-        no_bgp_redistribute_ipv6_metric_cmd,
--       "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295>",
-+       "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295>",
-        NO_STR
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-@@ -8693,6 +8756,9 @@ DEFUN (no_bgp_redistribute_ipv6_metric,
-        "Open Shurtest Path First (OSPFv3)\n"
-        "Routing Information Protocol (RIPng)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Metric for redistributed routes\n"
-        "Default metric\n")
- {
-@@ -8711,7 +8777,7 @@ DEFUN (no_bgp_redistribute_ipv6_metric,
- DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
-        no_bgp_redistribute_ipv6_rmap_metric_cmd,
--       "no redistribute (connected|kernel|ospf6|ripng|static) route-map WORD metric <0-4294967295>",
-+       "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) route-map WORD metric <0-4294967295>",
-        NO_STR
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-@@ -8719,6 +8785,9 @@ DEFUN (no_bgp_redistribute_ipv6_rmap_met
-        "Open Shurtest Path First (OSPFv3)\n"
-        "Routing Information Protocol (RIPng)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Route map reference\n"
-        "Pointer to route-map entries\n"
-        "Metric for redistributed routes\n"
-@@ -8740,7 +8809,7 @@ DEFUN (no_bgp_redistribute_ipv6_rmap_met
- ALIAS (no_bgp_redistribute_ipv6_rmap_metric,
-        no_bgp_redistribute_ipv6_metric_rmap_cmd,
--       "no redistribute (connected|kernel|ospf6|ripng|static) metric <0-4294967295> route-map WORD",
-+       "no redistribute (connected|kernel|ospf6|ripng|static|hsls|olsr|batman) metric <0-4294967295> route-map WORD",
-        NO_STR
-        "Redistribute information from another routing protocol\n"
-        "Connected\n"
-@@ -8748,6 +8817,9 @@ ALIAS (no_bgp_redistribute_ipv6_rmap_met
-        "Open Shurtest Path First (OSPFv3)\n"
-        "Routing Information Protocol (RIPng)\n"
-        "Static routes\n"
-+       "Hazy-Sighted Link State Protocol (HSLS)\n"
-+       "Optimized Link State Routing (OLSR)\n"
-+       "Better Approach to Mobile Ad-Hoc Networking (BATMAN)\n"
-        "Metric for redistributed routes\n"
-        "Default metric\n"
-        "Route map reference\n"
---- a/lib/log.c
-+++ b/lib/log.c
-@@ -838,6 +838,8 @@ static const struct zebra_desc_table rou
-   DESC_ENTRY  (ZEBRA_ROUTE_ISIS,      "isis",         'I' ),
-   DESC_ENTRY  (ZEBRA_ROUTE_BGP,       "bgp",          'B' ),
-   DESC_ENTRY  (ZEBRA_ROUTE_HSLS,      "hsls",         'H' ),
-+  DESC_ENTRY  (ZEBRA_ROUTE_OLSR,      "olsr",         'o' ),
-+  DESC_ENTRY  (ZEBRA_ROUTE_BATMAN,    "batman",       'b' ),
- };
- #undef DESC_ENTRY
+   return -1;
 --- a/lib/route_types.txt
 +++ b/lib/route_types.txt
 @@ -51,13 +51,9 @@ ZEBRA_ROUTE_OSPF,       ospf,      ospfd
- ZEBRA_ROUTE_OSPF6,      ospf6,     ospf6d, 'O', 0, 1, "OSPF"
+ ZEBRA_ROUTE_OSPF6,      ospf6,     ospf6d, 'O', 0, 1, "OSPFv6"
  ZEBRA_ROUTE_ISIS,       isis,      isisd,  'I', 1, 1, "IS-IS"
  ZEBRA_ROUTE_BGP,        bgp,       bgpd,   'B', 1, 1, "BGP"
 -# HSLS and OLSR both are AFI independent (so: 1, 1), however
 -# to 'switch on' redist support (direct numeric entry remaining
 -# possible).
 -ZEBRA_ROUTE_HSLS,       hsls,      hslsd,  'H', 0, 0, "HSLS"
--ZEBRA_ROUTE_OLSR,       olsr,      oslrd,  'o', 0, 0, "OLSR"
+-ZEBRA_ROUTE_OLSR,       olsr,      olsrd,  'o', 0, 0, "OLSR"
 +ZEBRA_ROUTE_HSLS,       hsls,      hslsd,  'H', 1, 1, "HSLS"
 +ZEBRA_ROUTE_OLSR,       olsr,      olsrd,  'o', 1, 1, "OLSR"
 +ZEBRA_ROUTE_BATMAN,     batman,    batmand,'b', 1, 1, "BATMAN"
+ ZEBRA_ROUTE_BABEL,      babel,     babeld, 'A', 1, 1, "Babel"
  
  ## help strings
- ZEBRA_ROUTE_SYSTEM, "Reserved route type, for internal use only"
-@@ -71,4 +67,5 @@ ZEBRA_ROUTE_OSPF6,  "Open Shortest Path
+@@ -72,5 +68,6 @@ ZEBRA_ROUTE_OSPF6,  "Open Shortest Path
  ZEBRA_ROUTE_ISIS,   "Intermediate System to Intermediate System (IS-IS)"
  ZEBRA_ROUTE_BGP,    "Border Gateway Protocol (BGP)"
  ZEBRA_ROUTE_HSLS,   "Hazy-Sighted Link State Protocol (HSLS)"
 -ZEBRA_ROUTE_OLSR,   "Optimised Link State Routing (OLSR)"
 +ZEBRA_ROUTE_OLSR,   "Optimized Link State Routing (OLSR)"
 +ZEBRA_ROUTE_BATMAN, "Better Approach to Mobile Ad-Hoc Networking (BATMAN)"
---- a/lib/zebra.h
-+++ b/lib/zebra.h
-@@ -441,7 +441,9 @@ struct in_pktinfo
- #define ZEBRA_ROUTE_ISIS                 8
- #define ZEBRA_ROUTE_BGP                  9
- #define ZEBRA_ROUTE_HSLS               10
--#define ZEBRA_ROUTE_MAX                  11
-+#define ZEBRA_ROUTE_OLSR               11
-+#define ZEBRA_ROUTE_BATMAN             12
-+#define ZEBRA_ROUTE_MAX                  13
- /* Note: whenever a new route-type or zserv-command is added the
-  * corresponding {command,route}_types[] table in lib/log.c MUST be
---- a/ospf6d/ospf6_asbr.c
-+++ b/ospf6d/ospf6_asbr.c
-@@ -616,13 +616,16 @@ ospf6_asbr_redistribute_remove (int type
- DEFUN (ospf6_redistribute,
-        ospf6_redistribute_cmd,
--       "redistribute (static|kernel|connected|ripng|bgp)",
-+       "redistribute (static|kernel|connected|ripng|bgp|hsls|olsr|batman)",
-        "Redistribute\n"
-        "Static route\n"
-        "Kernel route\n"
-        "Connected route\n"
-        "RIPng route\n"
-        "BGP route\n"
-+       "HSLS route\n"
-+       "OLSR route\n"
-+       "BATMAN route\n"
-       )
- {
-   int type = 0;
-@@ -637,6 +640,12 @@ DEFUN (ospf6_redistribute,
-     type = ZEBRA_ROUTE_RIPNG;
-   else if (strncmp (argv[0], "bgp", 3) == 0)
-     type = ZEBRA_ROUTE_BGP;
-+  else if (strncmp (argv[0], "h", 1) == 0)
-+    type = ZEBRA_ROUTE_HSLS;
-+  else if (strncmp (argv[0], "o", 1) == 0)
-+    type = ZEBRA_ROUTE_OLSR;
-+  else if (strncmp (argv[0], "ba", 2) == 0)
-+    type = ZEBRA_ROUTE_BATMAN;
-   ospf6_asbr_redistribute_unset (type);
-   ospf6_asbr_routemap_unset (type);
-@@ -646,13 +655,16 @@ DEFUN (ospf6_redistribute,
- DEFUN (ospf6_redistribute_routemap,
-        ospf6_redistribute_routemap_cmd,
--       "redistribute (static|kernel|connected|ripng|bgp) route-map WORD",
-+       "redistribute (static|kernel|connected|ripng|bgp|hsls|olsr|batman) route-map WORD",
-        "Redistribute\n"
-        "Static routes\n"
-        "Kernel route\n"
-        "Connected route\n"
-        "RIPng route\n"
-        "BGP route\n"
-+       "HSLS route\n"
-+       "OLSR route\n"
-+       "BATMAN route\n"
-        "Route map reference\n"
-        "Route map name\n"
-       )
-@@ -669,6 +681,12 @@ DEFUN (ospf6_redistribute_routemap,
-     type = ZEBRA_ROUTE_RIPNG;
-   else if (strncmp (argv[0], "bgp", 3) == 0)
-     type = ZEBRA_ROUTE_BGP;
-+  else if (strncmp (argv[0], "h", 1) == 0)
-+    type = ZEBRA_ROUTE_HSLS;
-+  else if (strncmp (argv[0], "o", 1) == 0)
-+    type = ZEBRA_ROUTE_OLSR;
-+  else if (strncmp (argv[0], "ba", 2) == 0)
-+    type = ZEBRA_ROUTE_BATMAN;
-   ospf6_asbr_redistribute_unset (type);
-   ospf6_asbr_routemap_set (type, argv[1]);
-@@ -678,7 +696,7 @@ DEFUN (ospf6_redistribute_routemap,
- DEFUN (no_ospf6_redistribute,
-        no_ospf6_redistribute_cmd,
--       "no redistribute (static|kernel|connected|ripng|bgp)",
-+       "no redistribute (static|kernel|connected|ripng|bgp|hsls|olsr|batman)",
-        NO_STR
-        "Redistribute\n"
-        "Static route\n"
-@@ -686,6 +704,9 @@ DEFUN (no_ospf6_redistribute,
-        "Connected route\n"
-        "RIPng route\n"
-        "BGP route\n"
-+       "HSLS route\n"
-+       "OLSR route\n"
-+       "BATMAN route\n"
-       )
- {
-   int type = 0;
-@@ -700,6 +721,12 @@ DEFUN (no_ospf6_redistribute,
-     type = ZEBRA_ROUTE_RIPNG;
-   else if (strncmp (argv[0], "bgp", 3) == 0)
-     type = ZEBRA_ROUTE_BGP;
-+  else if (strncmp (argv[0], "h", 1) == 0)
-+    type = ZEBRA_ROUTE_HSLS;
-+  else if (strncmp (argv[0], "o", 1) == 0)
-+    type = ZEBRA_ROUTE_OLSR;
-+  else if (strncmp (argv[0], "ba", 2) == 0)
-+    type = ZEBRA_ROUTE_BATMAN;
-   ospf6_asbr_redistribute_unset (type);
-   ospf6_asbr_routemap_unset (type);
---- a/ospfd/ospf_vty.c
-+++ b/ospfd/ospf_vty.c
-@@ -107,8 +107,14 @@ str2distribute_source (const char *str,
-     *source = ZEBRA_ROUTE_STATIC;
-   else if (strncmp (str, "r", 1) == 0)
-     *source = ZEBRA_ROUTE_RIP;
--  else if (strncmp (str, "b", 1) == 0)
-+  else if (strncmp (str, "bg", 2) == 0)
-     *source = ZEBRA_ROUTE_BGP;
-+  else if (strncmp (str, "h", 1) == 0)
-+    *source = ZEBRA_ROUTE_HSLS;
-+  else if (strncmp (str, "o", 1) == 0)
-+    *source = ZEBRA_ROUTE_OLSR;
-+  else if (strncmp (str, "ba", 2) == 0)
-+    *source = ZEBRA_ROUTE_BATMAN;
-   else
-     return 0;
+ ZEBRA_ROUTE_BABEL,  "Babel routing protocol (Babel)"
 --- a/ripd/rip_zebra.c
 +++ b/ripd/rip_zebra.c
-@@ -204,8 +204,11 @@ static struct {
+@@ -206,9 +206,12 @@ static struct {
    {ZEBRA_ROUTE_KERNEL,  1, "kernel"},
    {ZEBRA_ROUTE_CONNECT, 1, "connected"},
    {ZEBRA_ROUTE_STATIC,  1, "static"},
 -  {ZEBRA_ROUTE_OSPF,    1, "ospf"},
--  {ZEBRA_ROUTE_BGP,     1, "bgp"},
 +  {ZEBRA_ROUTE_OSPF,    2, "ospf"},
-+  {ZEBRA_ROUTE_BGP,     2, "bgp"},
+   {ZEBRA_ROUTE_BGP,     2, "bgp"},
+-  {ZEBRA_ROUTE_BABEL,   2, "babel"},
 +  {ZEBRA_ROUTE_HSLS,    1, "hsls"},
 +  {ZEBRA_ROUTE_OLSR,    2, "olsr"},
-+  {ZEBRA_ROUTE_BATMAN,  2, "batman"},
++  {ZEBRA_ROUTE_BATMAN,  3, "batman"},
++  {ZEBRA_ROUTE_BABEL,   3, "babel"},
    {0, 0, NULL}
  };
  
 --- a/ripngd/ripng_zebra.c
 +++ b/ripngd/ripng_zebra.c
-@@ -214,8 +214,11 @@ static struct {
+@@ -216,9 +216,12 @@ static struct {
    {ZEBRA_ROUTE_KERNEL,  1, "kernel"},
    {ZEBRA_ROUTE_CONNECT, 1, "connected"},
    {ZEBRA_ROUTE_STATIC,  1, "static"},
 -  {ZEBRA_ROUTE_OSPF6,   1, "ospf6"},
--  {ZEBRA_ROUTE_BGP,     1, "bgp"},
 +  {ZEBRA_ROUTE_OSPF6,   2, "ospf6"},
-+  {ZEBRA_ROUTE_BGP,     2, "bgp"},
+   {ZEBRA_ROUTE_BGP,     2, "bgp"},
+-  {ZEBRA_ROUTE_BABEL,   2, "babel"},
 +  {ZEBRA_ROUTE_HSLS,    1, "hsls"},
 +  {ZEBRA_ROUTE_OLSR,    2, "olsr"},
-+  {ZEBRA_ROUTE_BATMAN,  2, "batman"},
++  {ZEBRA_ROUTE_BATMAN,  3, "batman"},
++  {ZEBRA_ROUTE_BABEL,   3, "babel"},
    {0, 0, NULL}
  };
  
---- a/zebra/redistribute.c
-+++ b/zebra/redistribute.c
-@@ -255,6 +255,9 @@ zebra_redistribute_add (int command, str
-     case ZEBRA_ROUTE_OSPF:
-     case ZEBRA_ROUTE_OSPF6:
-     case ZEBRA_ROUTE_BGP:
-+    case ZEBRA_ROUTE_HSLS:
-+    case ZEBRA_ROUTE_OLSR:
-+    case ZEBRA_ROUTE_BATMAN:
-       if (! client->redist[type])
-       {
-         client->redist[type] = 1;
-@@ -283,6 +286,9 @@ zebra_redistribute_delete (int command,
-     case ZEBRA_ROUTE_OSPF:
-     case ZEBRA_ROUTE_OSPF6:
-     case ZEBRA_ROUTE_BGP:
-+    case ZEBRA_ROUTE_HSLS:
-+    case ZEBRA_ROUTE_OLSR:
-+    case ZEBRA_ROUTE_BATMAN:
-       client->redist[type] = 0;
-       break;
-     default:
+--- a/zebra/rt_netlink.c
++++ b/zebra/rt_netlink.c
+@@ -1609,6 +1609,9 @@ netlink_route_multipath (int cmd, struct
+                         addattr_l (&req.n, sizeof req, RTA_PREFSRC,
+                                &nexthop->src.ipv4, bytelen);
++                    if (rib->type == ZEBRA_ROUTE_OLSR)
++                      req.r.rtm_scope = RT_SCOPE_LINK;
++
+                     if (IS_ZEBRA_DEBUG_KERNEL)
+                       zlog_debug("netlink_route_multipath() (single hop): "
+                                  "nexthop via if %u", nexthop->ifindex);
 --- a/zebra/zebra_rib.c
 +++ b/zebra/zebra_rib.c
-@@ -66,7 +66,10 @@ static const struct
-   {ZEBRA_ROUTE_OSPF,    110},
-   {ZEBRA_ROUTE_OSPF6,   110},
-   {ZEBRA_ROUTE_ISIS,    115},
--  {ZEBRA_ROUTE_BGP,      20  /* IBGP is 200. */}
-+  {ZEBRA_ROUTE_BGP,      20  /* IBGP is 200. */},
-+  {ZEBRA_ROUTE_HSLS,      0}, 
-+  {ZEBRA_ROUTE_OLSR,      0}, 
-+  {ZEBRA_ROUTE_BATMAN,    0}
+@@ -68,6 +68,9 @@ static const struct
+   [ZEBRA_ROUTE_OSPF6]   = {ZEBRA_ROUTE_OSPF6,   110},
+   [ZEBRA_ROUTE_ISIS]    = {ZEBRA_ROUTE_ISIS,    115},
+   [ZEBRA_ROUTE_BGP]     = {ZEBRA_ROUTE_BGP,      20  /* IBGP is 200. */},
++  [ZEBRA_ROUTE_HSLS]    = {ZEBRA_ROUTE_HSLS,      0},
++  [ZEBRA_ROUTE_OLSR]    = {ZEBRA_ROUTE_OLSR,      0},
++  [ZEBRA_ROUTE_BATMAN]  = {ZEBRA_ROUTE_BATMAN,    0},
+   [ZEBRA_ROUTE_BABEL]   = {ZEBRA_ROUTE_BABEL,    95},
+   /* no entry/default: 150 */
  };
\f
- /* Vector for routing table.  */
-@@ -1229,6 +1232,8 @@ static const u_char meta_queue_map[ZEBRA
+@@ -456,6 +459,18 @@ nexthop_active_ipv4 (struct rib *rib, st
+                 }
+             return 0;
+           }
++        else if (match->type == ZEBRA_ROUTE_OLSR)
++          {
++            for (newhop = match->nexthop; newhop; newhop = newhop->next)
++              if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB)
++                  && newhop->type == NEXTHOP_TYPE_IFINDEX)
++                {
++                  if (nexthop->type == NEXTHOP_TYPE_IPV4)
++                    nexthop->ifindex = newhop->ifindex;
++                  return 1;
++                }
++            return 0;
++          }
+         else
+           {
+             return 0;
+@@ -560,6 +575,18 @@ nexthop_active_ipv6 (struct rib *rib, st
+                 }
+             return 0;
+           }
++        else if (match->type == ZEBRA_ROUTE_OLSR)
++          {
++            for (newhop = match->nexthop; newhop; newhop = newhop->next)
++              if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB)
++                  && newhop->type == NEXTHOP_TYPE_IFINDEX)
++                {
++                  if (nexthop->type == NEXTHOP_TYPE_IPV6)
++                    nexthop->ifindex = newhop->ifindex;
++                  return 1;
++                }
++            return 0;
++          }
+         else
+           {
+             return 0;
+@@ -1376,6 +1403,8 @@ static const u_char meta_queue_map[ZEBRA
    [ZEBRA_ROUTE_ISIS]    = 2,
    [ZEBRA_ROUTE_BGP]     = 3,
    [ZEBRA_ROUTE_HSLS]    = 4,
 +  [ZEBRA_ROUTE_OLSR]    = 4,
 +  [ZEBRA_ROUTE_BATMAN]  = 4,
+   [ZEBRA_ROUTE_BABEL]   = 2,
  };
  
- /* Look into the RN and queue it into one or more priority queues,
 --- a/zebra/zebra_snmp.c
 +++ b/zebra/zebra_snmp.c
-@@ -251,6 +251,12 @@ proto_trans(int type)
+@@ -245,6 +245,12 @@ proto_trans(int type)
        return 1; /* shouldn't happen */
      case ZEBRA_ROUTE_BGP:
        return 14; /* bgp */
      }
 --- a/zebra/zebra_vty.c
 +++ b/zebra/zebra_vty.c
-@@ -557,7 +557,10 @@ vty_show_ip_route_detail (struct vty *vt
-       if (rib->type == ZEBRA_ROUTE_RIP
+@@ -558,7 +558,10 @@ vty_show_ip_route_detail (struct vty *vt
          || rib->type == ZEBRA_ROUTE_OSPF
+         || rib->type == ZEBRA_ROUTE_BABEL
          || rib->type == ZEBRA_ROUTE_ISIS
 -        || rib->type == ZEBRA_ROUTE_BGP)
 +        || rib->type == ZEBRA_ROUTE_BGP
        {
          time_t uptime;
          struct tm *tm;
-@@ -775,7 +778,10 @@ vty_show_ip_route (struct vty *vty, stru
-       if (rib->type == ZEBRA_ROUTE_RIP
+@@ -777,7 +780,10 @@ vty_show_ip_route (struct vty *vty, stru
          || rib->type == ZEBRA_ROUTE_OSPF
+         || rib->type == ZEBRA_ROUTE_BABEL
          || rib->type == ZEBRA_ROUTE_ISIS
 -        || rib->type == ZEBRA_ROUTE_BGP)
 +        || rib->type == ZEBRA_ROUTE_BGP
        {
          time_t uptime;
          struct tm *tm;
-@@ -803,8 +809,8 @@ vty_show_ip_route (struct vty *vty, stru
- }
- #define SHOW_ROUTE_V4_HEADER "Codes: K - kernel route, C - connected, " \
--  "S - static, R - RIP, O - OSPF,%s       I - ISIS, B - BGP, " \
--  "> - selected route, * - FIB route%s%s"
-+  "S - static, R - RIP, O - OSPF,%s       I - ISIS, B - BGP, H - HSLS, " \
-+  "o - OLSR, b - BATMAN,%s       > - selected route, * - FIB route%s%s"
- DEFUN (show_ip_route,
-        show_ip_route_cmd,
-@@ -829,7 +835,7 @@ DEFUN (show_ip_route,
-       if (first)
-         {
-           vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE, VTY_NEWLINE,
--                   VTY_NEWLINE);
-+                   VTY_NEWLINE, VTY_NEWLINE);
-           first = 0;
-         }
-       vty_show_ip_route (vty, rn, rib);
-@@ -872,7 +878,7 @@ DEFUN (show_ip_route_prefix_longer,
-         if (first)
-           {
-             vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE,
--                     VTY_NEWLINE, VTY_NEWLINE);
-+                     VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
-             first = 0;
-           }
-         vty_show_ip_route (vty, rn, rib);
-@@ -911,7 +917,7 @@ DEFUN (show_ip_route_supernets,
-           if (first)
-             {
-               vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE,
--                       VTY_NEWLINE, VTY_NEWLINE);
-+                       VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
-               first = 0;
-             }
-           vty_show_ip_route (vty, rn, rib);
-@@ -922,7 +928,7 @@ DEFUN (show_ip_route_supernets,
- DEFUN (show_ip_route_protocol,
-        show_ip_route_protocol_cmd,
--       "show ip route (bgp|connected|isis|kernel|ospf|rip|static)",
-+       "show ip route (bgp|connected|isis|kernel|ospf|rip|static|hsls|olsr|batman)",
-        SHOW_STR
-        IP_STR
-        "IP routing table\n"
-@@ -940,13 +946,13 @@ DEFUN (show_ip_route_protocol,
-   struct rib *rib;
-   int first = 1;
--  if (strncmp (argv[0], "b", 1) == 0)
-+  if (strncmp (argv[0], "bg", 2) == 0)
-     type = ZEBRA_ROUTE_BGP;
-   else if (strncmp (argv[0], "c", 1) == 0)
-     type = ZEBRA_ROUTE_CONNECT;
-   else if (strncmp (argv[0], "k", 1) ==0)
-     type = ZEBRA_ROUTE_KERNEL;
--  else if (strncmp (argv[0], "o", 1) == 0)
-+  else if (strncmp (argv[0], "os", 2) == 0)
-     type = ZEBRA_ROUTE_OSPF;
-   else if (strncmp (argv[0], "i", 1) == 0)
-     type = ZEBRA_ROUTE_ISIS;
-@@ -954,6 +960,12 @@ DEFUN (show_ip_route_protocol,
-     type = ZEBRA_ROUTE_RIP;
-   else if (strncmp (argv[0], "s", 1) == 0)
-     type = ZEBRA_ROUTE_STATIC;
-+  else if (strncmp (argv[0], "h", 1) == 0)
-+    type = ZEBRA_ROUTE_HSLS;
-+  else if (strncmp (argv[0], "ol", 2) == 0)
-+    type = ZEBRA_ROUTE_OLSR;
-+  else if (strncmp (argv[0], "ba", 2) == 0)
-+    type = ZEBRA_ROUTE_BATMAN;
-   else 
-     {
-       vty_out (vty, "Unknown route type%s", VTY_NEWLINE);
-@@ -971,7 +983,7 @@ DEFUN (show_ip_route_protocol,
-       {
-         if (first)
-           {
--            vty_out (vty, SHOW_ROUTE_V4_HEADER,
-+            vty_out (vty, SHOW_ROUTE_V4_HEADER, VTY_NEWLINE,
-                      VTY_NEWLINE, VTY_NEWLINE, VTY_NEWLINE);
-             first = 0;
-           }
-@@ -1560,7 +1572,10 @@ vty_show_ipv6_route_detail (struct vty *
-       if (rib->type == ZEBRA_ROUTE_RIPNG
+@@ -1570,7 +1576,10 @@ vty_show_ipv6_route_detail (struct vty *
          || rib->type == ZEBRA_ROUTE_OSPF6
+         || rib->type == ZEBRA_ROUTE_BABEL
          || rib->type == ZEBRA_ROUTE_ISIS
 -        || rib->type == ZEBRA_ROUTE_BGP)
 +        || rib->type == ZEBRA_ROUTE_BGP
        {
          time_t uptime;
          struct tm *tm;
-@@ -1739,7 +1754,10 @@ vty_show_ipv6_route (struct vty *vty, st
-       if (rib->type == ZEBRA_ROUTE_RIPNG
+@@ -1750,7 +1759,10 @@ vty_show_ipv6_route (struct vty *vty, st
          || rib->type == ZEBRA_ROUTE_OSPF6
+         || rib->type == ZEBRA_ROUTE_BABEL
          || rib->type == ZEBRA_ROUTE_ISIS
 -        || rib->type == ZEBRA_ROUTE_BGP)
 +        || rib->type == ZEBRA_ROUTE_BGP
        {
          time_t uptime;
          struct tm *tm;
-@@ -1766,7 +1784,7 @@ vty_show_ipv6_route (struct vty *vty, st
-     }
- }
--#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"
-+#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"
- DEFUN (show_ipv6_route,
-        show_ipv6_route_cmd,
-@@ -1842,7 +1860,7 @@ DEFUN (show_ipv6_route_prefix_longer,
- DEFUN (show_ipv6_route_protocol,
-        show_ipv6_route_protocol_cmd,
--       "show ipv6 route (bgp|connected|isis|kernel|ospf6|ripng|static)",
-+       "show ipv6 route (bgp|connected|isis|kernel|ospf6|ripng|static|hsls|olsr|batman)",
-        SHOW_STR
-        IP_STR
-        "IP routing table\n"
-@@ -1860,13 +1878,13 @@ DEFUN (show_ipv6_route_protocol,
-   struct rib *rib;
-   int first = 1;
--  if (strncmp (argv[0], "b", 1) == 0)
-+  if (strncmp (argv[0], "bg", 2) == 0)
-     type = ZEBRA_ROUTE_BGP;
-   else if (strncmp (argv[0], "c", 1) == 0)
-     type = ZEBRA_ROUTE_CONNECT;
-   else if (strncmp (argv[0], "k", 1) ==0)
-     type = ZEBRA_ROUTE_KERNEL;
--  else if (strncmp (argv[0], "o", 1) == 0)
-+  else if (strncmp (argv[0], "os", 2) == 0)
-     type = ZEBRA_ROUTE_OSPF6;
-   else if (strncmp (argv[0], "i", 1) == 0)
-     type = ZEBRA_ROUTE_ISIS;
-@@ -1874,6 +1892,12 @@ DEFUN (show_ipv6_route_protocol,
-     type = ZEBRA_ROUTE_RIPNG;
-   else if (strncmp (argv[0], "s", 1) == 0)
-     type = ZEBRA_ROUTE_STATIC;
-+  else if (strncmp (argv[0], "h", 1) == 0)
-+    type = ZEBRA_ROUTE_HSLS;
-+  else if (strncmp (argv[0], "ol", 2) == 0)
-+    type = ZEBRA_ROUTE_OLSR;
-+  else if (strncmp (argv[0], "ba", 2) == 0)
-+    type = ZEBRA_ROUTE_BATMAN;
-   else 
-     {
-       vty_out (vty, "Unknown route type%s", VTY_NEWLINE);