Remove old routes before adding new routes on any OS but Linux. Always
authorThomas Lopatic <thomas@lopatic.de>
Fri, 3 Dec 2004 18:43:34 +0000 (18:43 +0000)
committerThomas Lopatic <thomas@lopatic.de>
Fri, 3 Dec 2004 18:43:34 +0000 (18:43 +0000)
use 1 as ETX value when adding routes on any OS but Linux.

src/lq_route.c
src/process_routes.c

index 20f19da..7498e5d 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: lq_route.c,v 1.14 2004/12/03 18:10:23 tlopatic Exp $
+ * $Id: lq_route.c,v 1.15 2004/12/03 18:43:34 tlopatic Exp $
  */
 
 #if defined USE_LINK_QUALITY
  */
 
 #if defined USE_LINK_QUALITY
@@ -434,10 +434,26 @@ void olsr_calculate_lq_routing_table(void)
       continue;
     }
 
       continue;
     }
 
+#if defined linux
+    /*
+     * on Linux we can add a new route for a destination before removing
+     * the old route, so frequent route updates are not a problem, as
+     * we never have a time window in which there isn't any route
+     */
+
     int_etx = (int)vert->path_etx;
 
     if (int_etx > 100)
       int_etx = 100;
     int_etx = (int)vert->path_etx;
 
     if (int_etx > 100)
       int_etx = 100;
+#else
+    /*
+     * on other OSes we do it the other way around - first remove, then
+     * add -, so we do not want to trigger route updates too often; we
+     * make sure that metric changes never trigger route changes
+     */
+
+    int_etx = 1;
+#endif
 
     // add a route to the main address of the destination node
 
 
     // add a route to the main address of the destination node
 
index e004158..91cad13 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: process_routes.c,v 1.14 2004/11/21 11:28:56 kattemat Exp $
+ * $Id: process_routes.c,v 1.15 2004/12/03 18:43:34 tlopatic Exp $
  */
 
 
  */
 
 
@@ -216,8 +216,13 @@ olsr_update_kernel_routes()
   delete_kernel_list = olsr_build_update_list(old_routes, routingtable);
   add_kernel_list = olsr_build_update_list(routingtable, old_routes);
   //#warning deletion and addition of routes swapped in 0.4.7 - TEST!
   delete_kernel_list = olsr_build_update_list(old_routes, routingtable);
   add_kernel_list = olsr_build_update_list(routingtable, old_routes);
   //#warning deletion and addition of routes swapped in 0.4.7 - TEST!
+#if !defined linux
+  olsr_delete_routes_from_kernel(delete_kernel_list);
+  olsr_add_routes_in_kernel(add_kernel_list);
+#else
   olsr_add_routes_in_kernel(add_kernel_list);
   olsr_delete_routes_from_kernel(delete_kernel_list);
   olsr_add_routes_in_kernel(add_kernel_list);
   olsr_delete_routes_from_kernel(delete_kernel_list);
+#endif
 }
 
 
 }