2004-02-19 Sowmini Varadhan <sowmini.varadhan@sun.com>

        * ospf_abr.c: (ospf_abr_update_aggregate) UNH 3.12b,c, address range
          should be configured with the highest cost path within the range,
          not lowest.
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 6c8955a..3ec877f 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,9 @@
+2004-02-19 Sowmini Varadhan <sowmini.varadhan@sun.com>
+
+	* ospf_abr.c: (ospf_abr_update_aggregate) UNH 3.12b,c, address range
+	  should be configured with the highest cost path within the range,
+	  not lowest.
+	  
 2004-02-17 Paul Jakma <paul@dishone.st>
 
 	* ospf_zebra.c: (ospf_interface_delete) Do not delete the interface
diff --git a/ospfd/ospf_abr.c b/ospfd/ospf_abr.c
index 46fb7aa..bacae91 100644
--- a/ospfd/ospf_abr.c
+++ b/ospfd/ospf_abr.c
@@ -562,7 +562,7 @@
 
 void
 ospf_abr_update_aggregate (struct ospf_area_range *range,
-			   struct ospf_route *or)
+                           struct ospf_route *or)
 {
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("ospf_abr_update_aggregate(): Start");
@@ -570,23 +570,23 @@
   if (range->cost_config != -1)
     {
       if (IS_DEBUG_OSPF_EVENT)
-	zlog_info ("ospf_abr_update_aggregate(): use configured cost %d",
-		   range->cost_config);
+        zlog_info ("ospf_abr_update_aggregate(): use configured cost %d",
+                   range->cost_config);
 
       range->cost = range->cost_config;
     }
   else
     {
       if (range->specifics == 0)
-	range->cost = or->cost; /* 1st time get 1st cost */
+        range->cost = or->cost; /* 1st time get 1st cost */
 
-      if (or->cost < range->cost)
-	{
-	  if (IS_DEBUG_OSPF_EVENT)
-	    zlog_info ("ospf_abr_update_aggregate(): lowest cost, update");
+      if (or->cost > range->cost)
+        {
+          if (IS_DEBUG_OSPF_EVENT)
+            zlog_info ("ospf_abr_update_aggregate(): lowest cost, update");
 
-	  range->cost = or->cost;
-	}
+          range->cost = or->cost;
+        }
     }
 
   range->specifics++;