For HNA routes search the correct routing table, i.e. the HNA routing
authorThomas Lopatic <thomas@lopatic.de>
Wed, 16 Nov 2005 23:55:54 +0000 (23:55 +0000)
committerThomas Lopatic <thomas@lopatic.de>
Wed, 16 Nov 2005 23:55:54 +0000 (23:55 +0000)
table, for duplicates.

src/lq_route.c
src/routing_table.c
src/routing_table.h

index 2660940..e6c2a6c 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: lq_route.c,v 1.38 2005/11/15 23:46:20 tlopatic Exp $
+ * $Id: lq_route.c,v 1.39 2005/11/16 23:55:54 tlopatic Exp $
  */
 
 #include "defs.h"
@@ -650,7 +650,7 @@ void olsr_calculate_lq_routing_table(void)
     {
       // we already have a route via a previous (better) node
 
-      if (olsr_lookup_routing_table(&hna->A_network_addr) != NULL)
+      if (olsr_lookup_hna_routing_table(&hna->A_network_addr) != NULL)
         continue;
 
       // create route for the HNA
index 7fddf88..598cfe0 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: routing_table.c,v 1.22 2005/05/29 12:47:45 br1 Exp $
+ * $Id: routing_table.c,v 1.23 2005/11/16 23:55:54 tlopatic Exp $
  */
 
 
@@ -133,8 +133,28 @@ olsr_lookup_routing_table(union olsr_ip_addr *dst)
   
 }
 
+/**
+ * Look up an entry in the HNA routing table.
+ *
+ * @param dst the address of the entry
+ *
+ * @return a pointer to a rt_entry struct 
+ * representing the route entry.
+ */
 
+struct rt_entry *
+olsr_lookup_hna_routing_table(union olsr_ip_addr *dst)
+{
+  struct rt_entry *walker;
+  olsr_u32_t hash = olsr_hashing(dst);
+
+  for (walker = hna_routes[hash].next; walker != &hna_routes[hash];
+       walker = walker->next)
+    if (COMP_IP(&walker->rt_dst, dst))
+      return walker;
 
+  return NULL;
+}
 
 /**
  *Delete all the entries in the routing table hash
index c485fa3..26a43f1 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: routing_table.h,v 1.16 2005/05/29 12:47:45 br1 Exp $
+ * $Id: routing_table.h,v 1.17 2005/11/16 23:55:54 tlopatic Exp $
  */
 
 #ifndef _OLSR_ROUTING_TABLE
@@ -112,6 +112,9 @@ olsr_insert_routing_table(union olsr_ip_addr *, union olsr_ip_addr *, struct int
 struct rt_entry *
 olsr_lookup_routing_table(union olsr_ip_addr *);
 
+struct rt_entry *
+olsr_lookup_hna_routing_table(union olsr_ip_addr *dst);
+
 void
 olsr_free_routing_table(struct rt_entry *);