Update Quagga 0.99.x patch to version 0.99.18
authorVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
Wed, 13 Jul 2011 18:17:20 +0000 (21:17 +0300)
committerVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>
Wed, 13 Jul 2011 18:17:20 +0000 (21:17 +0300)
lib/quagga/patches/quagga-0.99.18.diff [moved from lib/quagga/patches/quagga-0.99.16.diff with 89% similarity]

similarity index 89%
rename from lib/quagga/patches/quagga-0.99.16.diff
rename to lib/quagga/patches/quagga-0.99.18.diff
index b9cbf68..694698d 100644 (file)
@@ -1,8 +1,8 @@
 diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
-index 88be52e..2028c9a 100644
+index e7e7dba..fd9b877 100644
 --- a/bgpd/bgp_vty.c
 +++ b/bgpd/bgp_vty.c
-@@ -8228,8 +8228,14 @@ bgp_str2route_type (int afi, const char *str)
+@@ -8399,8 +8399,14 @@ bgp_str2route_type (int afi, const char *str)
        return ZEBRA_ROUTE_STATIC;
        else if (strncmp (str, "r", 1) == 0)
        return ZEBRA_ROUTE_RIP;
@@ -18,7 +18,7 @@ index 88be52e..2028c9a 100644
      }
    if (afi == AFI_IP6)
      {
-@@ -8241,21 +8247,30 @@ bgp_str2route_type (int afi, const char *str)
+@@ -8412,21 +8418,30 @@ bgp_str2route_type (int afi, const char *str)
        return ZEBRA_ROUTE_STATIC;
        else if (strncmp (str, "r", 1) == 0)
        return ZEBRA_ROUTE_RIPNG;
@@ -52,7 +52,7 @@ index 88be52e..2028c9a 100644
  {
    int type;
  
-@@ -8270,13 +8285,16 @@ DEFUN (bgp_redistribute_ipv4,
+@@ -8441,13 +8456,16 @@ DEFUN (bgp_redistribute_ipv4,
  
  DEFUN (bgp_redistribute_ipv4_rmap,
         bgp_redistribute_ipv4_rmap_cmd,
@@ -70,7 +70,7 @@ index 88be52e..2028c9a 100644
         "Route map reference\n"
         "Pointer to route-map entries\n")
  {
-@@ -8295,13 +8313,16 @@ DEFUN (bgp_redistribute_ipv4_rmap,
+@@ -8466,13 +8484,16 @@ DEFUN (bgp_redistribute_ipv4_rmap,
  
  DEFUN (bgp_redistribute_ipv4_metric,
         bgp_redistribute_ipv4_metric_cmd,
@@ -88,7 +88,7 @@ index 88be52e..2028c9a 100644
         "Metric for redistributed routes\n"
         "Default metric\n")
  {
-@@ -8322,13 +8343,16 @@ DEFUN (bgp_redistribute_ipv4_metric,
+@@ -8493,13 +8514,16 @@ DEFUN (bgp_redistribute_ipv4_metric,
  
  DEFUN (bgp_redistribute_ipv4_rmap_metric,
         bgp_redistribute_ipv4_rmap_metric_cmd,
@@ -106,7 +106,7 @@ index 88be52e..2028c9a 100644
         "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,
+@@ -8523,13 +8547,16 @@ DEFUN (bgp_redistribute_ipv4_rmap_metric,
  
  DEFUN (bgp_redistribute_ipv4_metric_rmap,
         bgp_redistribute_ipv4_metric_rmap_cmd,
@@ -124,7 +124,7 @@ index 88be52e..2028c9a 100644
         "Metric for redistributed routes\n"
         "Default metric\n"
         "Route map reference\n"
-@@ -8382,14 +8409,17 @@ DEFUN (bgp_redistribute_ipv4_metric_rmap,
+@@ -8553,14 +8580,17 @@ DEFUN (bgp_redistribute_ipv4_metric_rmap,
  
  DEFUN (no_bgp_redistribute_ipv4,
         no_bgp_redistribute_ipv4_cmd,
@@ -144,7 +144,7 @@ index 88be52e..2028c9a 100644
  {
    int type;
  
-@@ -8405,7 +8435,7 @@ DEFUN (no_bgp_redistribute_ipv4,
+@@ -8576,7 +8606,7 @@ DEFUN (no_bgp_redistribute_ipv4,
  
  DEFUN (no_bgp_redistribute_ipv4_rmap,
         no_bgp_redistribute_ipv4_rmap_cmd,
@@ -153,7 +153,7 @@ index 88be52e..2028c9a 100644
         NO_STR
         "Redistribute information from another routing protocol\n"
         "Connected\n"
-@@ -8413,6 +8443,9 @@ DEFUN (no_bgp_redistribute_ipv4_rmap,
+@@ -8584,6 +8614,9 @@ DEFUN (no_bgp_redistribute_ipv4_rmap,
         "Open Shurtest Path First (OSPF)\n"
         "Routing Information Protocol (RIP)\n"
         "Static routes\n"
@@ -163,7 +163,7 @@ index 88be52e..2028c9a 100644
         "Route map reference\n"
         "Pointer to route-map entries\n")
  {
-@@ -8431,7 +8464,7 @@ DEFUN (no_bgp_redistribute_ipv4_rmap,
+@@ -8602,7 +8635,7 @@ DEFUN (no_bgp_redistribute_ipv4_rmap,
  
  DEFUN (no_bgp_redistribute_ipv4_metric,
         no_bgp_redistribute_ipv4_metric_cmd,
@@ -172,7 +172,7 @@ index 88be52e..2028c9a 100644
         NO_STR
         "Redistribute information from another routing protocol\n"
         "Connected\n"
-@@ -8439,6 +8472,9 @@ DEFUN (no_bgp_redistribute_ipv4_metric,
+@@ -8610,6 +8643,9 @@ DEFUN (no_bgp_redistribute_ipv4_metric,
         "Open Shurtest Path First (OSPF)\n"
         "Routing Information Protocol (RIP)\n"
         "Static routes\n"
@@ -182,7 +182,7 @@ index 88be52e..2028c9a 100644
         "Metric for redistributed routes\n"
         "Default metric\n")
  {
-@@ -8457,7 +8493,7 @@ DEFUN (no_bgp_redistribute_ipv4_metric,
+@@ -8628,7 +8664,7 @@ DEFUN (no_bgp_redistribute_ipv4_metric,
  
  DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
         no_bgp_redistribute_ipv4_rmap_metric_cmd,
@@ -191,7 +191,7 @@ index 88be52e..2028c9a 100644
         NO_STR
         "Redistribute information from another routing protocol\n"
         "Connected\n"
-@@ -8465,6 +8501,9 @@ DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
+@@ -8636,6 +8672,9 @@ DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
         "Open Shurtest Path First (OSPF)\n"
         "Routing Information Protocol (RIP)\n"
         "Static routes\n"
@@ -201,7 +201,7 @@ index 88be52e..2028c9a 100644
         "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_metric,
+@@ -8657,7 +8696,7 @@ DEFUN (no_bgp_redistribute_ipv4_rmap_metric,
  
  ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
         no_bgp_redistribute_ipv4_metric_rmap_cmd,
@@ -210,7 +210,7 @@ index 88be52e..2028c9a 100644
         NO_STR
         "Redistribute information from another routing protocol\n"
         "Connected\n"
-@@ -8494,6 +8533,9 @@ ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
+@@ -8665,6 +8704,9 @@ ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
         "Open Shurtest Path First (OSPF)\n"
         "Routing Information Protocol (RIP)\n"
         "Static routes\n"
@@ -220,7 +220,7 @@ index 88be52e..2028c9a 100644
         "Metric for redistributed routes\n"
         "Default metric\n"
         "Route map reference\n"
-@@ -8502,13 +8544,16 @@ ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
+@@ -8673,13 +8715,16 @@ ALIAS (no_bgp_redistribute_ipv4_rmap_metric,
  #ifdef HAVE_IPV6
  DEFUN (bgp_redistribute_ipv6,
         bgp_redistribute_ipv6_cmd,
@@ -239,7 +239,7 @@ index 88be52e..2028c9a 100644
  {
    int type;
  
-@@ -8524,13 +8569,16 @@ DEFUN (bgp_redistribute_ipv6,
+@@ -8695,13 +8740,16 @@ DEFUN (bgp_redistribute_ipv6,
  
  DEFUN (bgp_redistribute_ipv6_rmap,
         bgp_redistribute_ipv6_rmap_cmd,
@@ -257,7 +257,7 @@ index 88be52e..2028c9a 100644
         "Route map reference\n"
         "Pointer to route-map entries\n")
  {
-@@ -8549,13 +8597,16 @@ DEFUN (bgp_redistribute_ipv6_rmap,
+@@ -8720,13 +8768,16 @@ DEFUN (bgp_redistribute_ipv6_rmap,
  
  DEFUN (bgp_redistribute_ipv6_metric,
         bgp_redistribute_ipv6_metric_cmd,
@@ -275,7 +275,7 @@ index 88be52e..2028c9a 100644
         "Metric for redistributed routes\n"
         "Default metric\n")
  {
-@@ -8576,13 +8627,16 @@ DEFUN (bgp_redistribute_ipv6_metric,
+@@ -8747,13 +8798,16 @@ DEFUN (bgp_redistribute_ipv6_metric,
  
  DEFUN (bgp_redistribute_ipv6_rmap_metric,
         bgp_redistribute_ipv6_rmap_metric_cmd,
@@ -293,7 +293,7 @@ index 88be52e..2028c9a 100644
         "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,
+@@ -8777,13 +8831,16 @@ DEFUN (bgp_redistribute_ipv6_rmap_metric,
  
  DEFUN (bgp_redistribute_ipv6_metric_rmap,
         bgp_redistribute_ipv6_metric_rmap_cmd,
@@ -311,7 +311,7 @@ index 88be52e..2028c9a 100644
         "Metric for redistributed routes\n"
         "Default metric\n"
         "Route map reference\n"
-@@ -8636,14 +8693,17 @@ DEFUN (bgp_redistribute_ipv6_metric_rmap,
+@@ -8807,14 +8864,17 @@ DEFUN (bgp_redistribute_ipv6_metric_rmap,
  
  DEFUN (no_bgp_redistribute_ipv6,
         no_bgp_redistribute_ipv6_cmd,
@@ -331,7 +331,7 @@ index 88be52e..2028c9a 100644
  {
    int type;
  
-@@ -8659,7 +8719,7 @@ DEFUN (no_bgp_redistribute_ipv6,
+@@ -8830,7 +8890,7 @@ DEFUN (no_bgp_redistribute_ipv6,
  
  DEFUN (no_bgp_redistribute_ipv6_rmap,
         no_bgp_redistribute_ipv6_rmap_cmd,
@@ -340,7 +340,7 @@ index 88be52e..2028c9a 100644
         NO_STR
         "Redistribute information from another routing protocol\n"
         "Connected\n"
-@@ -8667,6 +8727,9 @@ DEFUN (no_bgp_redistribute_ipv6_rmap,
+@@ -8838,6 +8898,9 @@ DEFUN (no_bgp_redistribute_ipv6_rmap,
         "Open Shurtest Path First (OSPFv3)\n"
         "Routing Information Protocol (RIPng)\n"
         "Static routes\n"
@@ -350,7 +350,7 @@ index 88be52e..2028c9a 100644
         "Route map reference\n"
         "Pointer to route-map entries\n")
  {
-@@ -8685,7 +8748,7 @@ DEFUN (no_bgp_redistribute_ipv6_rmap,
+@@ -8856,7 +8919,7 @@ DEFUN (no_bgp_redistribute_ipv6_rmap,
  
  DEFUN (no_bgp_redistribute_ipv6_metric,
         no_bgp_redistribute_ipv6_metric_cmd,
@@ -359,7 +359,7 @@ index 88be52e..2028c9a 100644
         NO_STR
         "Redistribute information from another routing protocol\n"
         "Connected\n"
-@@ -8693,6 +8756,9 @@ DEFUN (no_bgp_redistribute_ipv6_metric,
+@@ -8864,6 +8927,9 @@ DEFUN (no_bgp_redistribute_ipv6_metric,
         "Open Shurtest Path First (OSPFv3)\n"
         "Routing Information Protocol (RIPng)\n"
         "Static routes\n"
@@ -369,7 +369,7 @@ index 88be52e..2028c9a 100644
         "Metric for redistributed routes\n"
         "Default metric\n")
  {
-@@ -8711,7 +8777,7 @@ DEFUN (no_bgp_redistribute_ipv6_metric,
+@@ -8882,7 +8948,7 @@ DEFUN (no_bgp_redistribute_ipv6_metric,
  
  DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
         no_bgp_redistribute_ipv6_rmap_metric_cmd,
@@ -378,7 +378,7 @@ index 88be52e..2028c9a 100644
         NO_STR
         "Redistribute information from another routing protocol\n"
         "Connected\n"
-@@ -8719,6 +8785,9 @@ DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
+@@ -8890,6 +8956,9 @@ DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
         "Open Shurtest Path First (OSPFv3)\n"
         "Routing Information Protocol (RIPng)\n"
         "Static routes\n"
@@ -388,7 +388,7 @@ index 88be52e..2028c9a 100644
         "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_metric,
+@@ -8911,7 +8980,7 @@ DEFUN (no_bgp_redistribute_ipv6_rmap_metric,
  
  ALIAS (no_bgp_redistribute_ipv6_rmap_metric,
         no_bgp_redistribute_ipv6_metric_rmap_cmd,
@@ -397,7 +397,7 @@ index 88be52e..2028c9a 100644
         NO_STR
         "Redistribute information from another routing protocol\n"
         "Connected\n"
-@@ -8748,6 +8817,9 @@ ALIAS (no_bgp_redistribute_ipv6_rmap_metric,
+@@ -8919,6 +8988,9 @@ ALIAS (no_bgp_redistribute_ipv6_rmap_metric,
         "Open Shurtest Path First (OSPFv3)\n"
         "Routing Information Protocol (RIPng)\n"
         "Static routes\n"
@@ -408,10 +408,10 @@ index 88be52e..2028c9a 100644
         "Default metric\n"
         "Route map reference\n"
 diff --git a/lib/log.c b/lib/log.c
-index 0c2f655..7004d7b 100644
+index df6e13d..f8c3950 100644
 --- a/lib/log.c
 +++ b/lib/log.c
-@@ -835,6 +835,8 @@ static const struct zebra_desc_table route_types[] = {
+@@ -838,6 +838,8 @@ static const struct zebra_desc_table route_types[] = {
    DESC_ENTRY  (ZEBRA_ROUTE_ISIS,      "isis",         'I' ),
    DESC_ENTRY  (ZEBRA_ROUTE_BGP,       "bgp",          'B' ),
    DESC_ENTRY  (ZEBRA_ROUTE_HSLS,      "hsls",         'H' ),
@@ -464,7 +464,7 @@ index 2dc8451..9846b6f 100644
  /* Note: whenever a new route-type or zserv-command is added the
   * corresponding {command,route}_types[] table in lib/log.c MUST be
 diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
-index 685b147..24b301a 100644
+index 3efaab4..4212051 100644
 --- a/ospf6d/ospf6_asbr.c
 +++ b/ospf6d/ospf6_asbr.c
 @@ -616,13 +616,16 @@ ospf6_asbr_redistribute_remove (int type, int ifindex, struct prefix *prefix)
@@ -562,7 +562,7 @@ index 685b147..24b301a 100644
    ospf6_asbr_redistribute_unset (type);
    ospf6_asbr_routemap_unset (type);
 diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
-index adc822a..a71ebd1 100644
+index 46e7ffa..eb50c9a 100644
 --- a/ospfd/ospf_vty.c
 +++ b/ospfd/ospf_vty.c
 @@ -107,8 +107,14 @@ str2distribute_source (const char *str, int *source)
@@ -641,8 +641,22 @@ index a8107ae..ec1e278 100644
        client->redist[type] = 0;
        break;
      default:
+diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
+index 7652f80..5633e9f 100644
+--- a/zebra/rt_netlink.c
++++ b/zebra/rt_netlink.c
+@@ -1488,6 +1488,9 @@ netlink_route_multipath (int cmd, struct prefix *p, struct rib *rib,
+                         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);
 diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
-index 12f3fa5..3f0aa58 100644
+index 12f3fa5..c192275 100644
 --- a/zebra/zebra_rib.c
 +++ b/zebra/zebra_rib.c
 @@ -66,7 +66,10 @@ static const struct
@@ -657,7 +671,45 @@ index 12f3fa5..3f0aa58 100644
  };
  \f
  /* Vector for routing table.  */
-@@ -1229,6 +1232,8 @@ static const u_char meta_queue_map[ZEBRA_ROUTE_MAX] = {
+@@ -374,6 +377,18 @@ nexthop_active_ipv4 (struct rib *rib, struct nexthop *nexthop, int set,
+             
+             return 1;
+           }
++        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 if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
+           {
+             for (newhop = match->nexthop; newhop; newhop = newhop->next)
+@@ -476,6 +491,18 @@ nexthop_active_ipv6 (struct rib *rib, struct nexthop *nexthop, int set,
+             
+             return 1;
+           }
++        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 if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
+           {
+             for (newhop = match->nexthop; newhop; newhop = newhop->next)
+@@ -1229,6 +1256,8 @@ static const u_char meta_queue_map[ZEBRA_ROUTE_MAX] = {
    [ZEBRA_ROUTE_ISIS]    = 2,
    [ZEBRA_ROUTE_BGP]     = 3,
    [ZEBRA_ROUTE_HSLS]    = 4,