Use real (bi-directional) ETX.
authorThomas Lopatic <thomas@lopatic.de>
Sun, 28 Nov 2004 13:43:59 +0000 (13:43 +0000)
committerThomas Lopatic <thomas@lopatic.de>
Sun, 28 Nov 2004 13:43:59 +0000 (13:43 +0000)
src/link_set.c
src/lq_mpr.c
src/lq_packet.c
src/lq_route.c
src/lq_route.h
src/neighbor_table.c
src/process_package.c
src/tc_set.c
src/two_hop_neighbor_table.c
src/two_hop_neighbor_table.h

index 0d48286..4a6f103 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: link_set.c,v 1.33 2004/11/25 02:02:49 tlopatic Exp $
+ * $Id: link_set.c,v 1.34 2004/11/28 13:43:59 tlopatic Exp $
  */
 
 
@@ -50,8 +50,8 @@
 #include "mpr.h"
 #include "olsr.h"
 #include "scheduler.h"
-
 #include "link_layer.h"
+#include "lq_route.h"
 
 /* Begin:
  * Prototypes for internal functions 
@@ -312,15 +312,15 @@ get_interface_link_set(union olsr_ip_addr *remote)
   union olsr_ip_addr *remote_addr;
   struct interface *if_to_use, *tmp_if, *backup_if;
 #if defined USE_LINK_QUALITY
-  float link_quality, backup_link_quality;
+  float link_quality, backup_link_quality, curr;
 #endif
 
   if_to_use = NULL;
   backup_if = NULL;
 
 #if defined USE_LINK_QUALITY
-  link_quality = 0.0;
-  backup_link_quality = 0.0;
+  link_quality = -1.0;
+  backup_link_quality = -1.0;
 #endif
 
   if(remote == NULL || link_set == NULL)
@@ -350,48 +350,55 @@ get_interface_link_set(union olsr_ip_addr *remote)
          if(!TIMED_OUT(&tmp_link_set->SYM_time))
            {
 #if defined USE_LINK_QUALITY
-        if (olsr_cnf->lq_level == 0)
-          {
+              if (olsr_cnf->lq_level == 0)
+                {
 #endif
-            if (if_to_use == NULL || if_to_use->int_metric > tmp_if->int_metric)
-              if_to_use = tmp_if;
+                  if (if_to_use == NULL ||
+                      if_to_use->int_metric > tmp_if->int_metric)
+                    if_to_use = tmp_if;
 #if defined USE_LINK_QUALITY
-          }
-
-        else if (if_to_use == NULL ||
-                 tmp_link_set->neigh_link_quality *
-                 tmp_link_set->loss_link_quality > link_quality)
-          {
-            if_to_use = tmp_if;
-            link_quality = tmp_link_set->neigh_link_quality *
-              tmp_link_set->loss_link_quality;
-          }
+                }
+
+              else
+                {
+                  curr = tmp_link_set->loss_link_quality *
+                    tmp_link_set->neigh_link_quality;
+
+                  if (curr > link_quality)
+                    {
+                      if_to_use = tmp_if;
+                      link_quality = curr;
+                    }
+                }
 #endif
            }
          /* Backup solution in case the links have timed out */
          else
            {
 #if defined USE_LINK_QUALITY
-        if (olsr_cnf->lq_level == 0)
-          {
+              if (olsr_cnf->lq_level == 0)
+                {
 #endif
-            if (if_to_use == NULL &&
-                (backup_if == NULL || backup_if->int_metric > tmp_if->int_metric))
-              backup_if = tmp_if;
+                  if (if_to_use == NULL &&
+                      (backup_if == NULL ||
+                       backup_if->int_metric > tmp_if->int_metric))
+                    backup_if = tmp_if;
 #if defined USE_LINK_QUALITY
-          }
-
-        else if (if_to_use == NULL &&
-                 (backup_if == NULL ||
-                  tmp_link_set->neigh_link_quality *
-                  tmp_link_set->loss_link_quality > backup_link_quality))
-          {
-            backup_if = tmp_if;
-            backup_link_quality = tmp_link_set->neigh_link_quality *
-              tmp_link_set->loss_link_quality;
-          }
+                }
+
+              else 
+                {
+                  curr = tmp_link_set->loss_link_quality *
+                    tmp_link_set->neigh_link_quality;
+
+                  if (if_to_use == NULL && curr > backup_link_quality)
+                    {
+                      backup_if = tmp_if;
+                      backup_link_quality = curr;
+                    }
 #endif
-           }
+                }
+            }
        }
       
       tmp_link_set = tmp_link_set->next;
@@ -928,6 +935,7 @@ void olsr_print_link_set(void)
 {
   struct link_entry *walker;
   char *fstr;
+  float etx;
 
   olsr_printf(1, "\n--- %02d:%02d:%02d.%02d ---------------------------------------------------- LINKS\n\n",
               nowtm->tm_hour,
@@ -937,22 +945,30 @@ void olsr_print_link_set(void)
 
   if (olsr_cnf->ip_version == AF_INET)
   {
-    olsr_printf(1, "IP address       hyst   LQ     lost   total  NLQ\n");
-    fstr = "%-15s  %5.3f  %5.3f  %-3d    %-3d    %5.3f\n";
+    olsr_printf(1, "IP address       hyst   LQ     lost   total  NLQ    ETX\n");
+    fstr = "%-15s  %5.3f  %5.3f  %-3d    %-3d    %5.3f  %.2f\n";
   }
 
   else
   {
-    olsr_printf(1, "IP address                               hyst   LQ     lost   total  NLQ\n");
-    fstr = "%-39s  %5.3f  %5.3f  %-3d    %-3d    %5.3f\n";
+    olsr_printf(1, "IP address                               hyst   LQ     lost   total  NLQ    ETX\n");
+    fstr = "%-39s  %5.3f  %5.3f  %-3d    %-3d    %5.3f  %.2f\n";
   }
 
   for (walker = link_set; walker != NULL; walker = walker->next)
+  {
+    if (walker->loss_link_quality < MIN_LINK_QUALITY ||
+        walker->neigh_link_quality < MIN_LINK_QUALITY)
+      etx = 0.0;
+
+    else
+      etx = 1.0 / (walker->loss_link_quality * walker->neigh_link_quality);
+
     olsr_printf(1, fstr, olsr_ip_to_string(&walker->neighbor_iface_addr),
                 walker->L_link_quality, walker->loss_link_quality,
                walker->lost_packets, walker->total_packets,
-               walker->neigh_link_quality);
-
+               walker->neigh_link_quality, etx);
+  }
 }
 
 static void update_packet_loss_worker(struct link_entry *entry, int lost)
@@ -1011,39 +1027,13 @@ static void update_packet_loss_worker(struct link_entry *entry, int lost)
     saved_lq = -1.0;
 
   // calculate the new link quality
-
-#if 0
-  // quick start: receive the first packet => link quality = 1.0
-
-  entry->loss_link_quality = 1.0 - (float)entry->lost_packets /
-    (float)entry->total_packets;
-#else
-  // slow start: receive the first packet => link quality = 1 / n
-  //             (n = window size)
+  //
+  // start slowly: receive the first packet => link quality = 1 / n
+  //               (n = window size)
 
   entry->loss_link_quality =
     (float)(entry->total_packets - entry->lost_packets) /
     (float)(entry->loss_window_size);
-#endif
-
-  // XXX - if we do not get any packets from our neighbour
-  // any longer, we do not know the link quality at the remote
-  // end of the link
-  //
-  // heuristic: expire the link in this case; let's see how this
-  // works
-
-  if (entry->lost_packets == entry->total_packets)
-    {
-      entry->SYM_time = now;
-      entry->SYM_time.tv_sec -= 1;
-
-      entry->ASYM_time = now;
-      entry->ASYM_time.tv_sec -= 1;
-
-      entry->time = now;
-      entry->time.tv_sec -= 1;
-    }
 
   // if the link quality has changed by more than 10 percent,
   // print the new link quality table
@@ -1169,6 +1159,7 @@ struct link_entry *olsr_neighbor_best_link(union olsr_ip_addr *main)
 {
   struct link_entry *walker;
   double best = 0.0;
+  double curr;
   struct link_entry *res = NULL;
 
   // loop through all links
@@ -1178,35 +1169,15 @@ struct link_entry *olsr_neighbor_best_link(union olsr_ip_addr *main)
     // check whether it's a link to the requested neighbor and
     // whether the link's quality is better than what we have
 
-    if(COMP_IP(main, &walker->neighbor->neighbor_main_addr) &&
-       walker->neigh_link_quality >= best)
+    if(COMP_IP(main, &walker->neighbor->neighbor_main_addr))
     {
-      best = walker->loss_link_quality;
-      res = walker;
-    }
-  }
-
-  return res;
-}
+      curr = walker->loss_link_quality * walker->neigh_link_quality;
 
-struct link_entry *olsr_neighbor_best_inverse_link(union olsr_ip_addr *main)
-{
-  struct link_entry *walker;
-  double best = 0.0;
-  struct link_entry *res = NULL;
-
-  // loop through all links
-
-  for (walker = link_set; walker != NULL; walker = walker->next)
-  {
-    // check whether it's a link to the requested neighbor and
-    // whether the link's quality is better than what we have
-
-    if(COMP_IP(main, &walker->neighbor->neighbor_main_addr) &&
-       walker->loss_link_quality >= best)
-    {
-      best = walker->loss_link_quality;
-      res = walker;
+      if (curr >= best)
+      {
+        best = curr;
+        res = walker;
+      }
     }
   }
 
index c0ccb24..26f84e7 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: lq_mpr.c,v 1.5 2004/11/21 11:28:56 kattemat Exp $
+ * $Id: lq_mpr.c,v 1.6 2004/11/28 13:43:59 tlopatic Exp $
  */
 
 #if defined USE_LINK_QUALITY
@@ -108,10 +108,10 @@ void olsr_calculate_lq_mpr(void)
                walker != &neigh2->neighbor_2_nblist;
                walker = walker->next)
             if (walker->neighbor->status == SYM &&
-                walker->full_link_quality > best)
+                walker->path_link_quality > best)
               {
                 neigh = walker->neighbor;
-                best = walker->full_link_quality;
+                best = walker->path_link_quality;
               }
 
           if (neigh != NULL)
index c349d4d..aebf5fb 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: lq_packet.c,v 1.6 2004/11/21 11:28:56 kattemat Exp $
+ * $Id: lq_packet.c,v 1.7 2004/11/28 13:43:59 tlopatic Exp $
  */
 
 #if defined USE_LINK_QUALITY
@@ -199,10 +199,9 @@ create_lq_tc(struct lq_tc_message *lq_tc, struct interface *outif)
 
           // set the entry's link quality
 
-          link = olsr_neighbor_best_inverse_link(&neigh->main);
-          neigh->link_quality = link->loss_link_quality;
-
           link = olsr_neighbor_best_link(&neigh->main);
+
+          neigh->link_quality = link->loss_link_quality;
           neigh->neigh_link_quality = link->neigh_link_quality;
 
           // queue the neighbour entry
index cad80d6..7550d87 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.12 2004/11/21 11:28:56 kattemat Exp $
+ * $Id: lq_route.c,v 1.13 2004/11/28 13:43:59 tlopatic Exp $
  */
 
 #if defined USE_LINK_QUALITY
 #include "lq_list.h"
 #include "lq_route.h"
 
-#define INFINITE_ETX (1 << 30)
-#define MIN_LINK_QUALITY 0.0001
-
 struct dijk_edge
 {
   struct list_node node;
   struct dijk_vertex *dest;
-  int etx;
+  float etx;
 };
 
 struct dijk_vertex
@@ -64,7 +61,7 @@ struct dijk_vertex
   struct list_node node;
   union olsr_ip_addr addr;
   struct list edge_list;
-  int path_etx;
+  float path_etx;
   struct dijk_vertex *prev;
   olsr_bool done;
 };
@@ -72,7 +69,7 @@ struct dijk_vertex
 // XXX - bad complexity
 
 static void add_vertex(struct list *vertex_list, union olsr_ip_addr *addr,
-                       int path_etx)
+                       float path_etx)
 {
   struct list_node *node;
   struct dijk_vertex *vert;
@@ -114,7 +111,7 @@ static void add_vertex(struct list *vertex_list, union olsr_ip_addr *addr,
 // XXX - bad complexity
 
 static void add_edge(struct list *vertex_list, union olsr_ip_addr *src,
-                     union olsr_ip_addr *dst, int etx)
+                     union olsr_ip_addr *dst, float etx)
 {
   struct list_node *node;
   struct dijk_vertex *vert;
@@ -219,7 +216,7 @@ static void free_everything(struct list *vertex_list)
 
 static struct dijk_vertex *extract_best(struct list *vertex_list)
 {
-  int best_etx = INFINITE_ETX + 1;
+  float best_etx = INFINITE_ETX + 1.0;
   struct list_node *node;
   struct dijk_vertex *vert;
   struct dijk_vertex *res = NULL;
@@ -254,7 +251,7 @@ static struct dijk_vertex *extract_best(struct list *vertex_list)
 static void relax(struct dijk_vertex *vert)
 {
   struct dijk_edge *edge;
-  int new_etx;
+  float new_etx;
   struct list_node *node;
 
   node = list_get_head(&vert->edge_list);
@@ -284,14 +281,14 @@ static void relax(struct dijk_vertex *vert)
   }
 }
 
-static char *etx_to_string(int etx)
+static char *etx_to_string(float etx)
 {
-  static char buff[10];
+  static char buff[20];
 
   if (etx == INFINITE_ETX)
     return "INF";
 
-  sprintf(buff, "%d", etx);
+  sprintf(buff, "%.2f", etx);
   return buff;
 }
 
@@ -309,6 +306,7 @@ void olsr_calculate_lq_routing_table(void)
   struct dijk_vertex *walker;
   int hops;
   struct addresses *mid_walker;
+  float etx;
 
   // initialize the graph
 
@@ -316,7 +314,7 @@ void olsr_calculate_lq_routing_table(void)
 
   // add ourselves to the vertex list
 
-  add_vertex(&vertex_list, &main_addr, 0);
+  add_vertex(&vertex_list, &main_addr, 0.0);
 
   // add our neighbours
 
@@ -351,15 +349,17 @@ void olsr_calculate_lq_routing_table(void)
       {
         link = olsr_neighbor_best_link(&neigh->neighbor_main_addr);
 
-        if (link->neigh_link_quality >= MIN_LINK_QUALITY)
-          add_edge(&vertex_list, &main_addr, &neigh->neighbor_main_addr,
-                   (int)(1.0 / link->neigh_link_quality));
+        if (link->loss_link_quality >= MIN_LINK_QUALITY &&
+            link->neigh_link_quality >= MIN_LINK_QUALITY)
+          {
+            etx = 1.0 / (link->loss_link_quality * link->neigh_link_quality);
 
-        link = olsr_neighbor_best_inverse_link(&neigh->neighbor_main_addr);
+            add_edge(&vertex_list, &main_addr, &neigh->neighbor_main_addr,
+                     etx);
 
-        if (link->loss_link_quality >= MIN_LINK_QUALITY)
-          add_edge(&vertex_list, &neigh->neighbor_main_addr, &main_addr,
-                   (int)(1.0 / link->loss_link_quality));
+            add_edge(&vertex_list, &neigh->neighbor_main_addr, &main_addr,
+                     etx);
+          }
       }
 
   // add remaining edges
@@ -369,13 +369,17 @@ void olsr_calculate_lq_routing_table(void)
       for (tcdst = tcsrc->destinations.next; tcdst != &tcsrc->destinations;
            tcdst = tcdst->next)
       {
-        if (tcdst->link_quality >= MIN_LINK_QUALITY)
-          add_edge(&vertex_list, &tcsrc->T_last_addr, &tcdst->T_dest_addr,
-                   (int)(1.0 / tcdst->link_quality));
+        if (tcdst->link_quality >= MIN_LINK_QUALITY &&
+            tcdst->inverse_link_quality >= MIN_LINK_QUALITY)
+          {
+            etx = 1.0 / (tcdst->link_quality * tcdst->inverse_link_quality);
+
+            add_edge(&vertex_list, &tcsrc->T_last_addr, &tcdst->T_dest_addr,
+                     etx);
 
-        if (tcdst->inverse_link_quality >= MIN_LINK_QUALITY)
-          add_edge(&vertex_list, &tcdst->T_dest_addr, &tcsrc->T_last_addr,
-                   (int)(1.0 / tcdst->inverse_link_quality));
+            add_edge(&vertex_list, &tcdst->T_dest_addr, &tcsrc->T_last_addr,
+                     etx);
+          }
       }
 
   // run Dijkstra's algorithm
index 55788ff..7cf78be 100644 (file)
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: lq_route.h,v 1.2 2004/11/21 11:28:56 kattemat Exp $
+ * $Id: lq_route.h,v 1.3 2004/11/28 13:43:59 tlopatic Exp $
  */
 
 #ifndef _LQ_ROUTE_H
 #define _LQ_ROUTE_H
 
+#define INFINITE_ETX ((float)(1 << 30))
+#define MIN_LINK_QUALITY 0.01
+
 void olsr_calculate_lq_routing_table(void);
 
 #endif
index b53ecf7..d03bb64 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: neighbor_table.c,v 1.19 2004/11/21 13:45:50 kattemat Exp $
+ * $Id: neighbor_table.c,v 1.20 2004/11/28 13:43:59 tlopatic Exp $
  */
 
 
@@ -507,9 +507,8 @@ olsr_print_neighbor_table()
        {
 #if defined USE_LINK_QUALITY
           link = olsr_neighbor_best_link(&neigh->neighbor_main_addr);
-          best_lq = link->neigh_link_quality;
 
-          link = olsr_neighbor_best_inverse_link(&neigh->neighbor_main_addr);
+          best_lq = link->neigh_link_quality;
           inv_best_lq = link->loss_link_quality;
 #else
           best_lq = 0.0;
index 2e6bad3..9e1dd33 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: process_package.c,v 1.22 2004/11/21 11:28:56 kattemat Exp $
+ * $Id: process_package.c,v 1.23 2004/11/28 13:43:59 tlopatic Exp $
  */
 
 
@@ -620,28 +620,37 @@ olsr_process_message_neighbors(struct neighbor_entry *neighbor,
 
                       // saved previous total link quality
 
-                      saved_lq = walker->saved_full_link_quality;
+                      saved_lq = walker->saved_path_link_quality;
 
                       if (saved_lq == 0.0)
                         saved_lq = -1.0;
 
-                      // total link quality = link quality between us
+                      // path link quality = link quality between us
                       // and our one-hop neighbor x link quality between
                       // our one-hop neighbor and the two-hop neighbor
 
-                      walker->full_link_quality =
-                        link->neigh_link_quality *
+                      // let's compare this to ETX:
+
+                      // 1 / LQ1 + 1 / LQ2 < 1 / LQ3 + 1 / LQ4 <=>
+                      // LQ1 * LQ2 > LQ3 * LQ4
+
+                      // so comparing path link quality values with ">" is
+                      // equivalent to comparing ETX values with "<"
+
+                      walker->path_link_quality =
+                        link->loss_link_quality * link->neigh_link_quality *
+                        message_neighbors->link_quality *
                         message_neighbors->neigh_link_quality;
 
                       // if the link quality has changed by more than 10
                       // percent, signal
 
-                      rel_lq = walker->full_link_quality / saved_lq;
+                      rel_lq = walker->path_link_quality / saved_lq;
 
                       if (rel_lq > 1.1 || rel_lq < 0.9)
                         {
-                          walker->saved_full_link_quality =
-                            walker->full_link_quality;
+                          walker->saved_path_link_quality =
+                            walker->path_link_quality;
 
                           changes_neighborhood = OLSR_TRUE;
                           changes_topology = OLSR_TRUE;
@@ -681,8 +690,8 @@ olsr_linking_this_2_entries(struct neighbor_entry *neighbor,struct neighbor_2_en
   list_of_1_neighbors->neighbor = neighbor;
 
 #if defined USE_LINK_QUALITY
-  list_of_1_neighbors->full_link_quality = 0.0;
-  list_of_1_neighbors->saved_full_link_quality = 0.0;
+  list_of_1_neighbors->path_link_quality = 0.0;
+  list_of_1_neighbors->saved_path_link_quality = 0.0;
 #endif
 
   /* Queue */
index 84733f4..a9b125e 100644 (file)
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: tc_set.c,v 1.14 2004/11/21 13:55:21 kattemat Exp $
+ * $Id: tc_set.c,v 1.15 2004/11/28 13:43:59 tlopatic Exp $
  */
 
 
 #include "tc_set.h"
 #include "olsr.h"
 #include "scheduler.h"
+#include "lq_route.h"
 
 /**
  * Initialize the topology set
@@ -432,6 +433,9 @@ olsr_print_tc_table()
   struct tc_entry *entry;
   struct topo_dst *dst_entry;
   char *fstr;
+#if defined USE_LINK_QUALITY
+  float etx;
+#endif
   
   olsr_printf(2, "\n--- %02d:%02d:%02d.%02d ------------------------------------------------- TOPOLOGY\n\n",
               nowtm->tm_hour,
@@ -441,14 +445,14 @@ olsr_print_tc_table()
 
   if (olsr_cnf->ip_version == AF_INET)
   {
-    olsr_printf(1, "Source IP addr   Dest IP addr     LQ     ILQ\n");
-    fstr = "%-15s  %-15s  %5.3f  %5.3f\n";
+    olsr_printf(1, "Source IP addr   Dest IP addr     LQ     ILQ    ETX\n");
+    fstr = "%-15s  %-15s  %5.3f  %5.3f  %.2f\n";
   }
 
   else
   {
-    olsr_printf(1, "Source IP addr                Dest IP addr                    LQ     ILQ\n");
-    fstr = "%-30s%-30s  %5.3f  %5.3f\n";
+    olsr_printf(1, "Source IP addr                Dest IP addr                    LQ     ILQ    ETX\n");
+    fstr = "%-30s%-30s  %5.3f  %5.3f  %.2f\n";
   }
 
   for (i = 0; i < HASHSIZE; i++)
@@ -462,13 +466,22 @@ olsr_print_tc_table()
       while(dst_entry != &entry->destinations)
       {
 #if defined USE_LINK_QUALITY
+        if (dst_entry->link_quality < MIN_LINK_QUALITY ||
+            dst_entry->inverse_link_quality < MIN_LINK_QUALITY)
+          etx = 0.0;
+
+        else
+          etx = 1.0 / (dst_entry->link_quality *
+                       dst_entry->inverse_link_quality);
+
         olsr_printf(1, fstr, olsr_ip_to_string(&entry->T_last_addr),
                     olsr_ip_to_string(&dst_entry->T_dest_addr),
-                    dst_entry->link_quality, dst_entry->inverse_link_quality);
+                    dst_entry->link_quality, dst_entry->inverse_link_quality,
+                    etx);
 #else
         olsr_printf(1, fstr, olsr_ip_to_string(&entry->T_last_addr),
                     olsr_ip_to_string(&dst_entry->T_dest_addr),
-                    00);
+                    0.0, 0.0, 0.0);
 #endif
 
         dst_entry = dst_entry->next;
index 8d037b6..8b16a40 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: two_hop_neighbor_table.c,v 1.9 2004/11/21 11:28:56 kattemat Exp $
+ * $Id: two_hop_neighbor_table.c,v 1.10 2004/11/28 13:43:59 tlopatic Exp $
  */
 
 
@@ -282,7 +282,7 @@ olsr_print_two_hop_neighbor_table()
                 olsr_printf(1, "                 ");
 
 #if defined USE_LINK_QUALITY
-              total_lq = entry->full_link_quality;
+              total_lq = entry->path_link_quality;
 #else
               total_lq = 0.0;
 #endif
index 3a4f2c7..6270aa7 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: two_hop_neighbor_table.h,v 1.9 2004/11/21 11:28:56 kattemat Exp $
+ * $Id: two_hop_neighbor_table.h,v 1.10 2004/11/28 13:43:59 tlopatic Exp $
  */
 
 
@@ -53,8 +53,8 @@ struct neighbor_list_entry
 {
   struct       neighbor_entry *neighbor;
 #if defined USE_LINK_QUALITY
-  double full_link_quality;
-  double saved_full_link_quality;
+  double path_link_quality;
+  double saved_path_link_quality;
 #endif
   struct       neighbor_list_entry *next;
   struct       neighbor_list_entry *prev;