]> git.proxmox.com Git - mirror_frr.git/commitdiff
* bgp_route.c: Make reannouncing prefixes with changed attributes
authorhasso <hasso>
Wed, 23 Feb 2005 14:27:24 +0000 (14:27 +0000)
committerhasso <hasso>
Wed, 23 Feb 2005 14:27:24 +0000 (14:27 +0000)
  work again.

bgpd/ChangeLog
bgpd/bgp_route.c

index 009f7f986033c253012b2f536bc034e95f87346f..29114c89cf4114f028b50bda47779bdff74d5e1d 100644 (file)
@@ -1,3 +1,8 @@
+2005-02-23 Hasso Tepper <hasso at quagga.net>
+
+       * bgp_route.c: Make reannouncing prefixes with changed attributes
+         work again.
+
 2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
 
        * bgp_vty.c: Deprecate "neighbor transparent-as" and "neighbor
index 156120b8458098af494031b00714b2581cc96196..8c8fa528f3f8a9fb42dcaf3f8858017439b47632 100644 (file)
@@ -1098,18 +1098,6 @@ bgp_best_selection (struct bgp *bgp, struct bgp_node *rn, struct bgp_info_pair *
        new_select = ri;
     }
 
-    if ( (! old_select) || old_select != new_select
-       || CHECK_FLAG (old_select->flags, BGP_INFO_ATTR_CHANGED))
-       {
-  if (old_select)
-    UNSET_FLAG (old_select->flags, BGP_INFO_SELECTED);
-  if (new_select)
-    {
-      SET_FLAG (new_select->flags, BGP_INFO_SELECTED);
-      UNSET_FLAG (new_select->flags, BGP_INFO_ATTR_CHANGED);
-    }
-      }
-
     result->old = old_select;
     result->new = new_select;
 
@@ -1188,6 +1176,14 @@ bgp_process_rsclient (struct bgp *bgp, struct peer *rsclient,
         if (old_select && old_select == new_select)
           if (! CHECK_FLAG (old_select->flags, BGP_INFO_ATTR_CHANGED))
             continue;
+  
+        if (old_select)
+          UNSET_FLAG (old_select->flags, BGP_INFO_SELECTED);
+        if (new_select)
+         {
+           SET_FLAG (new_select->flags, BGP_INFO_SELECTED);
+           UNSET_FLAG (new_select->flags, BGP_INFO_ATTR_CHANGED);
+         }
 
         bgp_process_announce_selected (rsclient, new_select, rn, &attr, 
               afi, safi);
@@ -1229,6 +1225,15 @@ bgp_process_main (struct bgp *bgp, struct bgp_node *rn, afi_t afi, safi_t safi)
        }
     }
 
+  if (old_select)
+    UNSET_FLAG (old_select->flags, BGP_INFO_SELECTED);
+  if (new_select)
+    {
+      SET_FLAG (new_select->flags, BGP_INFO_SELECTED);
+      UNSET_FLAG (new_select->flags, BGP_INFO_ATTR_CHANGED);
+    }
+
+
   /* Check each BGP peer. */
   LIST_LOOP (bgp->peer, peer, nn)
     {