More use of the new logger (WIP)
authorHenning Rogge <hrogge@googlemail.com>
Sat, 14 Mar 2009 21:46:10 +0000 (22:46 +0100)
committerHenning Rogge <hrogge@googlemail.com>
Sat, 14 Mar 2009 21:46:10 +0000 (22:46 +0100)
src/link_set.c
src/mpr.c
src/mpr.h
src/mpr_selector_set.c
src/mpr_selector_set.h
src/neighbor_table.c
src/olsr_cfg_data.c
src/olsr_cfg_data.h
src/routing_table.c
src/tc_set.c
src/two_hop_neighbor_table.c

index 5876f2a..a798093 100644 (file)
@@ -55,6 +55,7 @@
 #include "ipcalc.h"
 #include "lq_plugin.h"
 #include "common/string.h"
+#include "olsr_logging.h"
 
 /* head node for all link sets */
 struct list_node link_entry_head;
@@ -63,7 +64,6 @@ static struct olsr_cookie_info *link_dead_timer_cookie = NULL;
 static struct olsr_cookie_info *link_loss_timer_cookie = NULL;
 static struct olsr_cookie_info *link_sym_timer_cookie = NULL;
 
-
 bool link_changes;                    /* is set if changes occur in MPRS set */
 
 void
@@ -443,6 +443,9 @@ add_link_entry(const union olsr_ip_addr *local,
 {
   struct link_entry *link;
   struct neighbor_entry *neighbor;
+#if !defined  REMOVE_LOG_DEBUG
+  struct ipaddr_str localbuf, rembuf;
+#endif
 
   link = lookup_link_entry(remote, remote_main, local_if);
   if (link) {
@@ -459,14 +462,8 @@ add_link_entry(const union olsr_ip_addr *local,
    * L_neighbor_iface_addr == Source Address
    */
 
-#ifdef DEBUG
-  {
-    struct ipaddr_str localbuf, rembuf;
-    OLSR_PRINTF(1, "Adding %s=>%s to link set\n",
-               olsr_ip_to_string(&localbuf, local), olsr_ip_to_string(&rembuf,
-                                                                      remote));
-  }
-#endif
+  OLSR_DEBUG(LOG_LINKS,  "Adding %s=>%s to link set\n",
+      olsr_ip_to_string(&localbuf, local), olsr_ip_to_string(&rembuf, remote));
 
   /* a new tuple is created with... */
   link = olsr_malloc_link_entry();
@@ -519,11 +516,8 @@ add_link_entry(const union olsr_ip_addr *local,
   /* Neighbor MUST exist! */
   neighbor = olsr_lookup_neighbor_table(remote_main);
   if (!neighbor) {
-#ifdef DEBUG
-    struct ipaddr_str buf;
-    OLSR_PRINTF(3, "ADDING NEW NEIGHBOR ENTRY %s FROM LINK SET\n",
-               olsr_ip_to_string(&buf, remote_main));
-#endif
+    OLSR_DEBUG(LOG_LINKS, "ADDING NEW NEIGHBOR ENTRY %s FROM LINK SET\n",
+                   olsr_ip_to_string(&rembuf, remote_main));
     neighbor = olsr_insert_neighbor_table(remote_main);
   }
 
@@ -599,9 +593,11 @@ lookup_link_entry(const union olsr_ip_addr *remote,
       if (NULL != remote_main && !olsr_ipequal(remote_main, &link->neighbor->neighbor_main_addr))
       {
         /* Neighbor has changed it's main_addr, update */
+#if !defined REMOVE_DEBUG
         struct ipaddr_str oldbuf, newbuf;
-        OLSR_PRINTF(1, "Neighbor changed main_ip, updating %s -> %s\n",
-          olsr_ip_to_string(&oldbuf, &link->neighbor->neighbor_main_addr), olsr_ip_to_string(&newbuf, remote_main));
+#endif
+        OLSR_DEBUG(LOG_LINKS, "Neighbor changed main_ip, updating %s -> %s\n",
+              olsr_ip_to_string(&oldbuf, &link->neighbor->neighbor_main_addr), olsr_ip_to_string(&newbuf, remote_main));
         link->neighbor->neighbor_main_addr = *remote_main;
       }
       return link;
@@ -743,25 +739,24 @@ check_link_status(const struct lq_hello_message *message,
 void
 olsr_print_link_set(void)
 {
-#ifndef NODEBUG
+#if !defined REMOVE_INFO
   /* The whole function makes no sense without it. */
   struct link_entry *walker;
   const int addrsize = olsr_cnf->ip_version == AF_INET ? 15 : 39;
 
-  OLSR_PRINTF(0,
-             "\n--- %s ---------------------------------------------------- LINKS\n\n",
+  OLSR_INFO(LOG_LINKS, "\n--- %s ---------------------------------------------------- LINKS\n\n",
              olsr_wallclock_string());
-  OLSR_PRINTF(1, "%-*s  %-6s %-14s %s\n", addrsize, "IP address", "hyst",
+  OLSR_INFO_NH(LOG_LINKS, "%-*s  %-6s %-14s %s\n", addrsize, "IP address", "hyst",
              "      LQ      ", "ETX");
 
   OLSR_FOR_ALL_LINK_ENTRIES(walker) {
-
     struct ipaddr_str buf;
     struct lqtextbuffer lqbuffer1, lqbuffer2;
-    OLSR_PRINTF(1, "%-*s %-14s %s\n",
-               addrsize, olsr_ip_to_string(&buf, &walker->neighbor_iface_addr),
-               get_link_entry_text(walker, '/', &lqbuffer1),
-               get_linkcost_text(walker->linkcost, false, &lqbuffer2));
+
+    OLSR_INFO_NH(LOG_LINKS, "%-*s %-14s %s\n",
+                   addrsize, olsr_ip_to_string(&buf, &walker->neighbor_iface_addr),
+                   get_link_entry_text(walker, '/', &lqbuffer1),
+                   get_linkcost_text(walker->linkcost, false, &lqbuffer2));
   } OLSR_FOR_ALL_LINK_ENTRIES_END(walker);
 #endif
 }
index 36360a6..96f3586 100644 (file)
--- a/src/mpr.c
+++ b/src/mpr.c
@@ -46,6 +46,7 @@
 #include "neighbor_table.h"
 #include "scheduler.h"
 #include "net_olsr.h"
+#include "olsr_logging.h"
 
 #include <stdlib.h>
 
@@ -106,8 +107,9 @@ olsr_find_2_hop_neighbors_with_1_link(int willingness)
   struct neighbor_2_list_entry *two_hop_list = NULL;
   struct neighbor_entry        *dup_neighbor;
   struct neighbor_2_entry      *two_hop_neighbor = NULL;
-
-
+#if !defined REMOVE_DEBUG
+  struct ipaddr_str buf;
+#endif
   for(idx=0;idx<HASHSIZE;idx++)
     {
 
@@ -123,8 +125,7 @@ olsr_find_2_hop_neighbors_with_1_link(int willingness)
 
          if((dup_neighbor != NULL) && (dup_neighbor->status != NOT_SYM))
            {
-
-             //OLSR_PRINTF(1, "(1)Skipping 2h neighbor %s - already 1hop\n", olsr_ip_to_string(&buf, &two_hop_neighbor->neighbor_2_addr));
+        OLSR_DEBUG(LOG_MPR, "(1)Skipping 2h neighbor %s - already 1hop\n", olsr_ip_to_string(&buf, &two_hop_neighbor->neighbor_2_addr));
 
              continue;
            }
@@ -136,7 +137,7 @@ olsr_find_2_hop_neighbors_with_1_link(int willingness)
                {
                  two_hop_list_tmp = olsr_malloc(sizeof(struct neighbor_2_list_entry), "MPR two hop list");
 
-                 //OLSR_PRINTF(1, "ONE LINK ADDING %s\n", olsr_ip_to_string(&buf, &two_hop_neighbor->neighbor_2_addr));
+      OLSR_DEBUG(LOG_MPR, "ONE LINK ADDING %s\n", olsr_ip_to_string(&buf, &two_hop_neighbor->neighbor_2_addr));
 
                  /* Only queue one way here */
                  two_hop_list_tmp->neighbor_2 = two_hop_neighbor;
@@ -170,10 +171,12 @@ olsr_chosen_mpr(struct neighbor_entry *one_hop_neighbor, uint16_t *two_hop_cover
   struct neighbor_2_list_entry *second_hop_entries;
   struct neighbor_entry        *dup_neighbor;
   uint16_t                   count;
+#if !defined REMOVE_DEBUG
   struct ipaddr_str            buf;
+#endif
   count = *two_hop_covered_count;
 
-  OLSR_PRINTF(1, "Setting %s as MPR\n", olsr_ip_to_string(&buf, &one_hop_neighbor->neighbor_main_addr));
+  OLSR_DEBUG(LOG_MPR, "Setting %s as MPR\n", olsr_ip_to_string(&buf, &one_hop_neighbor->neighbor_main_addr));
 
   //printf("PRE COUNT: %d\n\n", count);
 
@@ -187,7 +190,7 @@ olsr_chosen_mpr(struct neighbor_entry *one_hop_neighbor, uint16_t *two_hop_cover
 
       if((dup_neighbor != NULL) && (dup_neighbor->status == SYM))
        {
-         //OLSR_PRINTF(7, "(2)Skipping 2h neighbor %s - already 1hop\n", olsr_ip_to_string(&buf, &second_hop_entries->neighbor_2->neighbor_2_addr));
+         OLSR_DEBUG(LOG_MPR, "(2)Skipping 2h neighbor %s - already 1hop\n", olsr_ip_to_string(&buf, &second_hop_entries->neighbor_2->neighbor_2_addr));
          continue;
        }
 
@@ -200,7 +203,9 @@ olsr_chosen_mpr(struct neighbor_entry *one_hop_neighbor, uint16_t *two_hop_cover
          second_hop_entries->neighbor_2->mpr_covered_count++;
          the_one_hop_list = second_hop_entries->neighbor_2->neighbor_2_nblist.next;
 
-         //OLSR_PRINTF(1, "[%s](%x) has coverage %d\n", olsr_ip_to_string(&buf, &second_hop_entries->neighbor_2->neighbor_2_addr), second_hop_entries->neighbor_2, second_hop_entries->neighbor_2->mpr_covered_count);
+         OLSR_DEBUG(LOG_MPR, "[%s] has coverage %d\n",
+           olsr_ip_to_string(&buf, &second_hop_entries->neighbor_2->neighbor_2_addr),
+           second_hop_entries->neighbor_2->mpr_covered_count);
 
          if(second_hop_entries->neighbor_2->mpr_covered_count >= olsr_cnf->mpr_coverage)
             count++;
@@ -221,8 +226,6 @@ olsr_chosen_mpr(struct neighbor_entry *one_hop_neighbor, uint16_t *two_hop_cover
          //}
     }
 
-  //printf("POST COUNT %d\n\n", count);
-
   *two_hop_covered_count = count;
   return count;
 
@@ -243,19 +246,19 @@ olsr_find_maximum_covered(int willingness)
   uint16_t                  maximum;
   struct neighbor_entry       *a_neighbor;
   struct neighbor_entry       *mpr_candidate = NULL;
-
+#if !defined REMOVE_DEBUG
+  struct ipaddr_str buf;
+#endif
   maximum = 0;
 
   OLSR_FOR_ALL_NBR_ENTRIES(a_neighbor) {
 
-#if 0
-      printf("[%s] nocov: %d mpr: %d will: %d max: %d\n\n",
+    OLSR_DEBUG(LOG_MPR, "[%s] nocov: %d mpr: %d will: %d max: %d\n\n",
              olsr_ip_to_string(&buf, &a_neighbor->neighbor_main_addr),
              a_neighbor->neighbor_2_nocov,
              a_neighbor->is_mpr,
              a_neighbor->willingness,
              maximum);
-#endif
 
       if ((!a_neighbor->is_mpr) &&
           (a_neighbor->willingness == willingness) &&
@@ -393,7 +396,7 @@ olsr_calculate_two_hop_neighbors(void)
 
   } OLSR_FOR_ALL_NBR_ENTRIES_END(a_neighbor);
 
-  OLSR_PRINTF(3, "Two hop neighbors: %d\n", sum);
+  OLSR_DEBUG(LOG_MPR, "Two hop neighbors: %d\n", sum);
   return sum;
 }
 
@@ -408,27 +411,21 @@ add_will_always_nodes(void)
 {
   struct neighbor_entry *a_neighbor;
   uint16_t count = 0;
-
-#if 0
-  printf("\nAdding WILL ALWAYS nodes....\n");
+#if !defined REMOVE_DEBUG
+  struct ipaddr_str buf;
 #endif
-
   OLSR_FOR_ALL_NBR_ENTRIES(a_neighbor) {
-    struct ipaddr_str buf;
     if ((a_neighbor->status == NOT_SYM) ||
         (a_neighbor->willingness != WILL_ALWAYS)) {
       continue;
     }
     olsr_chosen_mpr(a_neighbor, &count);
 
-    OLSR_PRINTF(3, "Adding WILL_ALWAYS: %s\n",
+    OLSR_DEBUG(LOG_MPR, "Adding WILL_ALWAYS: %s\n",
                 olsr_ip_to_string(&buf, &a_neighbor->neighbor_main_addr));
 
   } OLSR_FOR_ALL_NBR_ENTRIES_END(a_neighbor);
 
-#if 0
-  OLSR_PRINTF(1, "Count: %d\n", count);
-#endif
   return count;
 }
 
@@ -443,8 +440,6 @@ olsr_calculate_mpr(void)
   uint16_t two_hop_count;
   int i;
 
-  OLSR_PRINTF(3, "\n**RECALCULATING MPR**\n\n");
-
   olsr_clear_mprs();
   two_hop_count = olsr_calculate_two_hop_neighbors();
   two_hop_covered_count = add_will_always_nodes();
@@ -461,7 +456,6 @@ olsr_calculate_mpr(void)
       while(two_hop_list != NULL)
        {
           struct neighbor_2_list_entry *tmp;
-         //printf("CHOSEN FROM 1 LINK\n");
          if(!two_hop_list->neighbor_2->neighbor_2_nblist.next->neighbor->is_mpr)
            olsr_chosen_mpr(two_hop_list->neighbor_2->neighbor_2_nblist.next->neighbor, &two_hop_covered_count);
          tmp = two_hop_list;
@@ -475,11 +469,8 @@ olsr_calculate_mpr(void)
          break;
        }
 
-      //printf("two hop covered count: %d\n", two_hop_covered_count);
-
       while((mprs = olsr_find_maximum_covered(i)) != NULL)
        {
-         //printf("CHOSEN FROM MAXCOV\n");
          olsr_chosen_mpr(mprs,&two_hop_covered_count);
 
          if(two_hop_covered_count >= two_hop_count)
@@ -494,14 +485,13 @@ olsr_calculate_mpr(void)
   /*
     increment the mpr sequence number
   */
-  //neighbortable.neighbor_mpr_seq++;
 
   /* Optimize selection */
   olsr_optimize_mpr_set();
 
   if(olsr_check_mpr_changes())
     {
-      OLSR_PRINTF(3, "CHANGES IN MPR SET\n");
+      OLSR_DEBUG(LOG_MPR, "CHANGES IN MPR SET\n");
       if(olsr_cnf->tc_redundancy > 0)
        signal_link_changes(true);
     }
@@ -521,10 +511,10 @@ static void
 olsr_optimize_mpr_set(void)
 {
   int i;
-
-#if 0
-  printf("\n**MPR OPTIMIZING**\n\n");
+#if !defined REMOVE_DEBUG
+  struct ipaddr_str buf;
 #endif
+  OLSR_DEBUG(LOG_MPR, "\n**MPR OPTIMIZING**\n\n");
 
   for(i = WILL_NEVER + 1; i < WILL_ALWAYS; i++) {
     struct neighbor_entry *a_neighbor;
@@ -549,7 +539,7 @@ olsr_optimize_mpr_set(void)
             continue;
           }
 
-          //printf("\t[%s] coverage %d\n", olsr_ip_to_string(&buf, &two_hop_list->neighbor_2->neighbor_2_addr), two_hop_list->neighbor_2->mpr_covered_count);
+          OLSR_DEBUG(LOG_MPR, "\t[%s] coverage %d\n", olsr_ip_to_string(&buf, &two_hop_list->neighbor_2->neighbor_2_addr), two_hop_list->neighbor_2->mpr_covered_count);
           /* Do not remove if we find a entry which need this MPR */
           if (two_hop_list->neighbor_2->mpr_covered_count <= olsr_cnf->mpr_coverage) {
             remove_it = 0;
@@ -558,8 +548,7 @@ olsr_optimize_mpr_set(void)
         }
 
         if (remove_it) {
-          struct ipaddr_str buf;
-          OLSR_PRINTF(3, "MPR OPTIMIZE: removiong mpr %s\n\n", olsr_ip_to_string(&buf, &a_neighbor->neighbor_main_addr));
+          OLSR_DEBUG(LOG_MPR, "MPR OPTIMIZE: removiong mpr %s\n\n", olsr_ip_to_string(&buf, &a_neighbor->neighbor_main_addr));
           a_neighbor->is_mpr = false;
         }
       }
@@ -567,15 +556,14 @@ olsr_optimize_mpr_set(void)
   }
 }
 
-#if 0
 void
 olsr_print_mpr_set(void)
 {
-#ifndef NODEBUG
+#if !defined REMOVE_INFO
   /* The whole function makes no sense without it. */
   struct neighbor_entry *a_neighbor;
 
-  OLSR_PRINTF(1, "MPR SET: ");
+  OLSR_INFO(LOG_MPR, "MPR SET: ");
 
   OLSR_FOR_ALL_NBR_ENTRIES(a_neighbor) {
 
@@ -584,14 +572,11 @@ olsr_print_mpr_set(void)
      */
     if (a_neighbor->is_mpr) {
       struct ipaddr_str buf;
-      OLSR_PRINTF(1, "[%s] ", olsr_ip_to_string(&buf, &a_neighbor->neighbor_main_addr));
+      OLSR_INFO_NH(LOG_MPR, "\t[%s]\n", olsr_ip_to_string(&buf, &a_neighbor->neighbor_main_addr));
     }
   } OLSR_FOR_ALL_NBR_ENTRIES_END(a_neighbor);
-
-  OLSR_PRINTF(1, "\n");
 #endif
 }
-#endif
 
 /*
  * Local Variables:
index f47469e..8ea1f5b 100644 (file)
--- a/src/mpr.h
+++ b/src/mpr.h
 #ifndef _OLSR_MPR
 #define _OLSR_MPR
 
+#include "defs.h"
+
 void
 olsr_calculate_mpr(void);
 
-#if 0
-void
-olsr_print_mpr_set(void);
-#endif
+void olsr_print_mpr_set(void);
 
 #endif
 
index 8ccfde1..0457495 100644 (file)
@@ -40,8 +40,7 @@
 #include "mpr_selector_set.h"
 #include "link_set.h"
 #include "olsr.h"
-
-#define OLSR_MPR_SEL_JITTER 5 /* percent */
+#include "olsr_logging.h"
 
 uint16_t ansn = 0;
 
@@ -50,20 +49,6 @@ static struct olsr_cookie_info *mpr_sel_timer_cookie;
 /* MPR selector list */
 static struct list_node mprs_list_head;
 
-/* inline to recast from link_list back to link_entry */
-LISTNODE2STRUCT(list2mpr, struct mpr_selector, mprs_list);
-
-#define FOR_ALL_MPRS_ENTRIES(elem)     \
-{ \
-  struct list_node *elem_node, *next_elem_node; \
-  for (elem_node = mprs_list_head.next;                         \
-       elem_node != &mprs_list_head; /* circular list */ \
-       elem_node = next_elem_node) { \
-    next_elem_node = elem_node->next; \
-    elem = list2mpr(elem_node);
-
-#define FOR_ALL_MPRS_ENTRIES_END(elem) }}
-
 
 void
 olsr_init_mprs(void)
@@ -77,19 +62,6 @@ olsr_init_mprs(void)
     olsr_alloc_cookie("MPR Selector", OLSR_COOKIE_TYPE_TIMER);
 }
 
-#if 0
-/**
- * Check if we(this node) is selected as a MPR by any
- * neighbors. If the list is empty we are not MPR.
- */
-bool
-olsr_is_mpr(void)
-{
-    return mprs_list.next == &mprs_list ? false : true;
-}
-#endif
-
-
 /**
  * Wrapper for the timer callback.
  */
@@ -97,11 +69,12 @@ static void
 olsr_expire_mpr_sel_entry(void *context)
 {
   struct mpr_selector *mpr_sel = context;
-#ifdef DEBUG
+#if !defined REMOVE_DEBUG
   struct ipaddr_str buf;
-  OLSR_PRINTF(1, "MPRS: Timing out %st\n",
-              olsr_ip_to_string(&buf, &mpr_sel->MS_main_addr));
 #endif
+  OLSR_DEBUG(LOG_MPRS, "MPRS: Timing out %st\n",
+              olsr_ip_to_string(&buf, &mpr_sel->MS_main_addr));
+
   mpr_sel->MS_timer = NULL;
 
   list_remove(&mpr_sel->mprs_list);
@@ -127,14 +100,11 @@ olsr_lookup_mprs_set(const union olsr_ip_addr *addr)
   if (addr == NULL) {
     return NULL;
   }
-  //OLSR_PRINTF(1, "MPRS: Lookup....");
   FOR_ALL_MPRS_ENTRIES(mprs) {
     if (olsr_ipequal(&mprs->MS_main_addr, addr)) {
-      //OLSR_PRINTF(1, "MATCH\n");
       return mprs;
     }
   } FOR_ALL_MPRS_ENTRIES_END(mprs);
-  //OLSR_PRINTF(1, "NO MACH\n");
   return NULL;
 }
 
@@ -152,13 +122,15 @@ int
 olsr_update_mprs_set(const union olsr_ip_addr *addr, olsr_reltime vtime)
 {
   int rv;
+#if !defined REMOVE_DEBUG
   struct ipaddr_str buf;
+#endif
   struct mpr_selector *mprs = olsr_lookup_mprs_set(addr);
 
   if (mprs == NULL) {
     mprs = olsr_malloc(sizeof(*mprs), "Add MPR selector");
 
-    OLSR_PRINTF(1, "MPRS: adding %s\n", olsr_ip_to_string(&buf, addr));
+    OLSR_DEBUG(LOG_MPRS, "MPRS: adding %s\n", olsr_ip_to_string(&buf, addr));
 
     /* Fill struct */
     mprs->MS_main_addr = *addr;
@@ -169,7 +141,7 @@ olsr_update_mprs_set(const union olsr_ip_addr *addr, olsr_reltime vtime)
     signal_link_changes(true);
     rv = 1;
   } else {
-    OLSR_PRINTF(5, "MPRS: Update %s\n", olsr_ip_to_string(&buf, addr));
+    OLSR_DEBUG(LOG_MPRS, "MPRS: Update %s\n", olsr_ip_to_string(&buf, addr));
     rv = 0;
   }
   olsr_set_timer(&mprs->MS_timer,
@@ -183,22 +155,23 @@ olsr_update_mprs_set(const union olsr_ip_addr *addr, olsr_reltime vtime)
 }
 
 
-#if 0
 /**
  *Print the current MPR selector set to STDOUT
  */
 void
 olsr_print_mprs_set(void)
 {
+#if !defined REMOVE_INFO
+  struct ipaddr_str buf;
   struct mpr_selector *mprs;
-  OLSR_PRINTF(1, "MPR SELECTORS: ");
+
+  OLSR_INFO(LOG_MPRS, "MPR SELECTORS:\n");
+
   FOR_ALL_MPRS_ENTRIES(mprs) {
-    struct ipaddr_str buf;
-    OLSR_PRINTF(1, "%s ", olsr_ip_to_string(&buf, &mprs->MS_main_addr));
+    OLSR_INFO_NH(LOG_MPRS, "\t%s\n", olsr_ip_to_string(&buf, &mprs->MS_main_addr));
   } FOR_ALL_MPRS_ENTRIES_END(mprs);
-  OLSR_PRINTF(1, "\n");
-}
 #endif
+}
 
 /*
  * Local Variables:
index 6687271..2f3ed1d 100644 (file)
 #include "defs.h"
 #include "common/list.h"
 
+#define OLSR_MPR_SEL_JITTER 5 /* percent */
+
 struct mpr_selector {
   union olsr_ip_addr  MS_main_addr;
   struct timer_entry  *MS_timer;
   struct list_node mprs_list;
 };
 
-extern uint16_t ansn;
+/* inline to recast from link_list back to link_entry */
+LISTNODE2STRUCT(list2mpr, struct mpr_selector, mprs_list);
 
-#if 0
-bool
-olsr_is_mpr(void);
-#endif
+#define FOR_ALL_MPRS_ENTRIES(elem)  \
+{ \
+  struct list_node *elem_node, *next_elem_node; \
+  for (elem_node = mprs_list_head.next;      \
+       elem_node != &mprs_list_head; /* circular list */ \
+       elem_node = next_elem_node) { \
+    next_elem_node = elem_node->next; \
+    elem = list2mpr(elem_node);
+
+#define FOR_ALL_MPRS_ENTRIES_END(elem) }}
+
+
+extern uint16_t ansn;
 
 void olsr_init_mprs(void);
 
@@ -67,10 +79,8 @@ struct mpr_selector *EXPORT(olsr_lookup_mprs_set)(const union olsr_ip_addr *);
 
 int olsr_update_mprs_set(const union olsr_ip_addr *, olsr_reltime);
 
-#if 0
 void
 olsr_print_mprs_set(void);
-#endif
 
 #endif
 
index c9b08d1..8462b10 100644 (file)
@@ -49,6 +49,7 @@
 #include "link_set.h"
 #include "mpr_selector_set.h"
 #include "net_olsr.h"
+#include "olsr_logging.h"
 
 #include <stdlib.h>
 
@@ -178,7 +179,10 @@ olsr_delete_neighbor_table(const union olsr_ip_addr *neighbor_addr)
   uint32_t                    hash;
   struct neighbor_entry         *entry;
 
-  //printf("inserting neighbor\n");
+#if !defined REMOVE_DEBUG
+  struct ipaddr_str buf;
+#endif
+  OLSR_DEBUG(LOG_NEIGHTABLE, "delete neighbor: %s\n", olsr_ip_to_string(&buf, neighbor_addr));
 
   hash = olsr_ip_hashing(neighbor_addr);
 
@@ -190,7 +194,7 @@ olsr_delete_neighbor_table(const union olsr_ip_addr *neighbor_addr)
   while(entry != &neighbortable[hash])
     {
       if(olsr_ipequal(&entry->neighbor_main_addr, neighbor_addr))
-       break;
+        break;
 
       entry = entry->next;
     }
@@ -237,6 +241,9 @@ olsr_insert_neighbor_table(const union olsr_ip_addr *main_addr)
 {
   uint32_t             hash;
   struct neighbor_entry  *new_neigh;
+#if !defined REMOVE_DEBUG
+  struct ipaddr_str buf;
+#endif
 
   hash = olsr_ip_hashing(main_addr);
 
@@ -247,10 +254,10 @@ olsr_insert_neighbor_table(const union olsr_ip_addr *main_addr)
       new_neigh = new_neigh->next)
     {
       if(olsr_ipequal(&new_neigh->neighbor_main_addr, main_addr))
-       return new_neigh;
+        return new_neigh;
     }
 
-  //printf("inserting neighbor\n");
+  OLSR_DEBUG(LOG_NEIGHTABLE, "delete neighbor: %s\n", olsr_ip_to_string(&buf, main_addr));
 
   new_neigh = olsr_malloc(sizeof(struct neighbor_entry), "New neighbor entry");
 
@@ -309,17 +316,13 @@ olsr_lookup_neighbor_table_alias(const union olsr_ip_addr *dst)
   struct neighbor_entry  *entry;
   uint32_t             hash = olsr_ip_hashing(dst);
 
-  //printf("\nLookup %s\n", olsr_ip_to_string(&buf, dst));
   for(entry = neighbortable[hash].next;
       entry != &neighbortable[hash];
       entry = entry->next)
     {
-      //printf("Checking %s\n", olsr_ip_to_string(&buf, &entry->neighbor_main_addr));
       if(olsr_ipequal(&entry->neighbor_main_addr, dst))
-       return entry;
-
+        return entry;
     }
-  //printf("NOPE\n\n");
 
   return NULL;
 
@@ -404,11 +407,11 @@ olsr_expire_nbr2_list(void *context)
 void
 olsr_print_neighbor_table(void)
 {
-#ifndef NODEBUG
+#if !defined REMOVE_INFO
   /* The whole function doesn't do anything else. */
   const int ipwidth = olsr_cnf->ip_version == AF_INET ?  15 : 39;
   int idx;
-  OLSR_PRINTF(1, "\n--- %s ------------------------------------------------ NEIGHBORS\n\n"
+  OLSR_INFO(LOG_NEIGHTABLE, "\n--- %s ------------------------------------------------ NEIGHBORS\n\n"
               "%*s  LQ    SYM   MPR   MPRS  will\n",
                          olsr_wallclock_string(),
               ipwidth, "IP address");
@@ -419,7 +422,7 @@ olsr_print_neighbor_table(void)
       struct link_entry *lnk = get_best_link_to_neighbor(&neigh->neighbor_main_addr);
       if(lnk) {
         struct ipaddr_str buf;
-        OLSR_PRINTF(1, "%-*s  %s  %s  %s  %d\n",
+        OLSR_INFO(LOG_NEIGHTABLE, "%-*s  %s  %s  %s  %d\n",
                     ipwidth, olsr_ip_to_string(&buf, &neigh->neighbor_main_addr),
                     neigh->status == SYM ? "YES " : "NO  ",
                     neigh->is_mpr ? "YES " : "NO  ",
index 11c12c5..9a263aa 100644 (file)
@@ -59,6 +59,12 @@ const char *LOG_SOURCE_NAMES[] = {
   "plugins",
   "lq-plugins",
   "ll-plugins",
+  "links",
+  "neightable",
+  "mpr",
+  "mprset",
+  "2-neigh",
+  "tc",
   "duplicate-set"
 };
 
index 59c4b53..117d1f7 100644 (file)
@@ -57,7 +57,12 @@ enum log_source {
   LOG_PLUGINS,            //!< LOG_PLUGINS
   LOG_LQ_PLUGINS,         //!< LOG_LQ_PLUGINS
   LOG_LL_PLUGINS,         //!< LOG_LL_PLUGINS
-
+  LOG_LINKS,              //!< LOG_LINKS
+  LOG_NEIGHTABLE,         //!< LOG_NEIGHTABLE
+  LOG_MPR,                //!< LOG_MPR
+  LOG_MPRS,               //!< LOG_MPRS
+  LOG_2NEIGH,             //!< LOG_2NEIGH
+  LOG_TC,                 //!< LOG_TC
   LOG_DUPLICATE_SET,      //!< LOG_DUPLICATE_SET
 
   /* this one must be the last of the enums ! */
index c1541b6..521cd9e 100644 (file)
@@ -383,7 +383,7 @@ olsr_insert_rt_path(struct rt_path *rtp, struct tc_entry *tc,
   rtp->rtp_tree_node.key = &rtp->rtp_originator;
 
   /* insert to the route entry originator tree */
-  avl_insert(&rt->rt_path_tree, &rtp->rtp_tree_node, AVL_DUP);
+  avl_insert(&rt->rt_path_tree, &rtp->rtp_tree_node, AVL_DUP_NO);
 
   /* backlink to the owning route entry */
   rtp->rtp_rt = rt;
index 0d9eb07..84558f1 100644 (file)
@@ -45,6 +45,7 @@
 #include "net_olsr.h"
 #include "link_set.h"
 #include "neighbor_table.h"
+#include "olsr_logging.h"
 
 static bool delete_outdated_tc_edges(struct tc_entry *);
 
@@ -127,7 +128,7 @@ olsr_seq_inrange_high(int beg, int end, uint16_t seq)
 static struct tc_entry *
 olsr_add_tc_entry(const union olsr_ip_addr *adr)
 {
-#ifdef DEBUG
+#if !defined REMOVE_DEBUG
   struct ipaddr_str buf;
 #endif
   struct tc_entry *tc;
@@ -139,9 +140,7 @@ olsr_add_tc_entry(const union olsr_ip_addr *adr)
     return NULL;
   }
 
-#ifdef DEBUG
-  OLSR_PRINTF(1, "TC: add entry %s\n", olsr_ip_to_string(&buf, adr));
-#endif
+  OLSR_DEBUG(LOG_TC, "TC: add entry %s\n", olsr_ip_to_string(&buf, adr));
 
   tc = olsr_cookie_malloc(tc_mem_cookie);
   if (!tc) {
@@ -181,7 +180,7 @@ olsr_add_tc_entry(const union olsr_ip_addr *adr)
 void
 olsr_init_tc(void)
 {
-  OLSR_PRINTF(5, "TC: init topo\n");
+  OLSR_DEBUG(LOG_TC, "TC: init topo\n");
 
   avl_init(&tc_tree, avl_comp_default);
 
@@ -257,10 +256,11 @@ olsr_delete_tc_entry(struct tc_entry *tc)
 {
   struct tc_edge_entry *tc_edge;
   struct rt_path *rtp;
-#if 0
+#if !defined REMOVE_DEBUG
   struct ipaddr_str buf;
-  OLSR_PRINTF(1, "TC: del entry %s\n", olsr_ip_to_string(&buf, &tc->addr));
 #endif
+  OLSR_DEBUG(LOG_TC, "TC: del entry %s\n", olsr_ip_to_string(&buf, &tc->addr));
+
 
   /*
    * Delete the rt_path for ourselves.
@@ -300,10 +300,6 @@ olsr_lookup_tc_entry(const union olsr_ip_addr *adr)
 {
   struct avl_node *node;
 
-#if 0
-  OLSR_PRINTF(1, "TC: lookup entry\n");
-#endif
-
   node = avl_find(&tc_tree, adr);
   return node ? vertex_tree2tc(node) : NULL;
 }
@@ -319,7 +315,6 @@ olsr_locate_tc_entry(const union olsr_ip_addr *adr)
   return tc == NULL ? olsr_add_tc_entry(adr) : tc;
 }
 
-#if defined(DEBUG) && !defined(NODEBUG)
 /**
  * Format tc_edge contents into a buffer.
  */
@@ -338,7 +333,6 @@ olsr_tc_edge_to_string(struct tc_edge_entry *tc_edge)
           get_linkcost_text(tc_edge->cost, false, &lqbuffer2));
   return buf;
 }
-#endif /* !NODEBUG */
 
 /**
  * Wrapper for the timer callback.
@@ -399,6 +393,9 @@ olsr_add_tc_edge_entry(struct tc_entry *tc, union olsr_ip_addr *addr,
 {
   struct tc_entry *tc_neighbor;
   struct tc_edge_entry *tc_edge = olsr_malloc_tc_edge_entry();
+#if !defined REMOVE_DEBUG
+  struct ipaddr_str buf;
+#endif
   if (!tc_edge) {
     return NULL;
   }
@@ -429,18 +426,13 @@ olsr_add_tc_edge_entry(struct tc_entry *tc, union olsr_ip_addr *addr,
   tc_neighbor = olsr_lookup_tc_entry(&tc_edge->T_dest_addr);
   if (tc_neighbor) {
     struct tc_edge_entry *tc_edge_inv;
-#ifdef DEBUG
-    struct ipaddr_str buf;
-    OLSR_PRINTF(1, "TC:   found neighbor tc_entry %s\n",
-               olsr_ip_to_string(&buf, &tc_neighbor->addr));
-#endif
+    OLSR_DEBUG(LOG_TC, "TC:   found neighbor tc_entry %s\n",
+                 olsr_ip_to_string(&buf, &tc_neighbor->addr));
 
     tc_edge_inv = olsr_lookup_tc_edge(tc_neighbor, &tc->addr);
     if (tc_edge_inv) {
-#ifdef DEBUG
-      OLSR_PRINTF(1, "TC:   found inverse edge for %s\n",
-                 olsr_ip_to_string(&buf, &tc_edge_inv->T_dest_addr));
-#endif
+      OLSR_DEBUG(LOG_TC, "TC:   found inverse edge for %s\n",
+                   olsr_ip_to_string(&buf, &tc_edge_inv->T_dest_addr));
 
       /*
        * Connect the edges mutually.
@@ -455,9 +447,7 @@ olsr_add_tc_edge_entry(struct tc_entry *tc, union olsr_ip_addr *addr,
    */
   olsr_calc_tc_edge_entry_etx(tc_edge);
 
-#ifdef DEBUG
-  OLSR_PRINTF(1, "TC: add edge entry %s\n", olsr_tc_edge_to_string(tc_edge));
-#endif
+  OLSR_DEBUG(LOG_TC, "TC: add edge entry %s\n", olsr_tc_edge_to_string(tc_edge));
 
   return tc_edge;
 }
@@ -475,9 +465,7 @@ olsr_delete_tc_edge_entry(struct tc_edge_entry *tc_edge)
   struct link_entry *link;
   struct tc_edge_entry *tc_edge_inv;
 
-#ifdef DEBUG
-  OLSR_PRINTF(1, "TC: del edge entry %s\n", olsr_tc_edge_to_string(tc_edge));
-#endif
+  OLSR_DEBUG(LOG_TC, "TC: del edge entry %s\n", olsr_tc_edge_to_string(tc_edge));
 
   tc = tc_edge->tc;
   avl_delete(&tc->edge_tree, &tc_edge->edge_node);
@@ -518,9 +506,7 @@ delete_outdated_tc_edges(struct tc_entry *tc)
   struct tc_edge_entry *tc_edge;
   bool retval = false;
 
-#if 0
-  OLSR_PRINTF(5, "TC: deleting outdated TC-edge entries\n");
-#endif
+  OLSR_DEBUG(LOG_TC, "TC: deleting outdated TC-edge entries\n");
 
   OLSR_FOR_ALL_TC_EDGE_ENTRIES(tc, tc_edge) {
     if (SEQNO_GREATER_THAN(tc->ansn, tc_edge->ansn) &&
@@ -550,13 +536,10 @@ olsr_delete_revoked_tc_edges(struct tc_entry *tc, uint16_t ansn,
 {
   struct tc_edge_entry *tc_edge;
   int retval = 0;
-
-#if 0
-  OLSR_PRINTF(5, "TC: deleting MPRS\n");
-#endif
-
   bool passedLowerBorder = false;
 
+  OLSR_DEBUG(LOG_TC, "TC: deleting revoked TCs\n");
+
   OLSR_FOR_ALL_TC_EDGE_ENTRIES(tc, tc_edge) {
     if (!passedLowerBorder) {
       if (avl_comp_default(lower_border, &tc_edge->T_dest_addr) <= 0) {
@@ -640,12 +623,10 @@ olsr_tc_update_edge(struct tc_entry *tc, uint16_t ansn,
        edge_change = 1;
       }
     }
-#if DEBUG
     if (edge_change) {
-      OLSR_PRINTF(1, "TC:   chg edge entry %s\n",
-                 olsr_tc_edge_to_string(tc_edge));
+      OLSR_DEBUG(LOG_TC, "TC:   chg edge entry %s\n",
+                   olsr_tc_edge_to_string(tc_edge));
     }
-#endif
   }
   return edge_change;
 }
@@ -662,10 +643,6 @@ olsr_lookup_tc_edge(struct tc_entry *tc, union olsr_ip_addr *edge_addr)
 {
   struct avl_node *edge_node;
 
-#if 0
-  OLSR_PRINTF(1, "TC: lookup dst\n");
-#endif
-
   edge_node = avl_find(&tc->edge_tree, edge_addr);
 
   return edge_node ? edge_tree2tc_edge(edge_node) : NULL;
@@ -677,14 +654,15 @@ olsr_lookup_tc_edge(struct tc_entry *tc, union olsr_ip_addr *edge_addr)
 void
 olsr_print_tc_table(void)
 {
-#ifndef NODEBUG
+#if !defined REMOVE_INFO
   /* The whole function makes no sense without it. */
   struct tc_entry *tc;
   const int ipwidth = olsr_cnf->ip_version == AF_INET ? 15 : 30;
 
-  OLSR_PRINTF(1,
-             "\n--- %s ------------------------------------------------- TOPOLOGY\n\n"
-             "%-*s %-*s %-14s  %s\n", olsr_wallclock_string(), ipwidth,
+  OLSR_INFO(LOG_TC,
+             "\n--- %s ------------------------------------------------- TOPOLOGY\n\n",
+             olsr_wallclock_string());
+       OLSR_INFO_NH(LOG_TC, "%-*s %-*s %-14s  %s\n", ipwidth,
              "Source IP addr", ipwidth, "Dest IP addr", "      LQ      ",
              "ETX");
 
@@ -694,12 +672,12 @@ olsr_print_tc_table(void)
       struct ipaddr_str addrbuf, dstaddrbuf;
       struct lqtextbuffer lqbuffer1, lqbuffer2;
 
-      OLSR_PRINTF(1, "%-*s %-*s %-14s %s\n",
-                 ipwidth, olsr_ip_to_string(&addrbuf, &tc->addr),
-                 ipwidth, olsr_ip_to_string(&dstaddrbuf,
+      OLSR_INFO_NH(LOG_TC, "%-*s %-*s %-14s %s\n",
+                   ipwidth, olsr_ip_to_string(&addrbuf, &tc->addr),
+                   ipwidth, olsr_ip_to_string(&dstaddrbuf,
                                             &tc_edge->T_dest_addr),
-                 get_tc_edge_entry_text(tc_edge, '/', &lqbuffer1),
-                 get_linkcost_text(tc_edge->cost, false, &lqbuffer2));
+                   get_tc_edge_entry_text(tc_edge, '/', &lqbuffer1),
+                   get_linkcost_text(tc_edge->cost, false, &lqbuffer2));
 
     } OLSR_FOR_ALL_TC_EDGE_ENTRIES_END(tc, tc_edge);
   } OLSR_FOR_ALL_TC_ENTRIES_END(tc);
@@ -772,7 +750,6 @@ olsr_input_tc(union olsr_message *msg,
              struct interface *input_if __attribute__ ((unused)),
              union olsr_ip_addr *from_addr)
 {
-  struct ipaddr_str buf;
   uint16_t size, msg_seq, ansn;
   uint8_t type, ttl, msg_hops, lower_border, upper_border;
   olsr_reltime vtime;
@@ -780,7 +757,9 @@ olsr_input_tc(union olsr_message *msg,
   const unsigned char *limit, *curr;
   struct tc_entry *tc;
   bool relevantTc;
-
+#if !defined REMOVE_DEBUG
+  struct ipaddr_str buf;
+#endif
   union olsr_ip_addr lower_border_ip, upper_border_ip;
   int borderSet = 0;
 
@@ -825,8 +804,8 @@ olsr_input_tc(union olsr_message *msg,
        return false;
       }
 
-      OLSR_PRINTF(1, "Ignored to much LQTC's for %s, restarting\n",
-                 olsr_ip_to_string(&buf, &originator));
+      OLSR_DEBUG(LOG_TC, "Ignored to much LQTC's for %s, restarting\n",
+                   olsr_ip_to_string(&buf, &originator));
 
     } else
       if (!olsr_seq_inrange_high
@@ -849,8 +828,8 @@ olsr_input_tc(union olsr_message *msg,
        return false;
       }
 
-      OLSR_PRINTF(2, "Detected node restart for %s\n",
-                 olsr_ip_to_string(&buf, &originator));
+      OLSR_DEBUG(LOG_TC, "Detected node restart for %s\n",
+                   olsr_ip_to_string(&buf, &originator));
     }
   }
 
@@ -876,12 +855,12 @@ olsr_input_tc(union olsr_message *msg,
    * message MUST be discarded.
    */
   if (check_neighbor_link(from_addr) != SYM_LINK) {
-    OLSR_PRINTF(2, "Received TC from NON SYM neighbor %s\n",
-               olsr_ip_to_string(&buf, from_addr));
+    OLSR_DEBUG(LOG_TC, "Received TC from NON SYM neighbor %s\n",
+                 olsr_ip_to_string(&buf, from_addr));
     return false;
   }
 
-  OLSR_PRINTF(1, "Processing TC from %s, seq 0x%04x\n",
+  OLSR_DEBUG(LOG_TC, "Processing TC from %s, seq 0x%04x\n",
              olsr_ip_to_string(&buf, &originator), tc->msg_seq);
 
   /*
index 501bd86..b9dcc76 100644 (file)
@@ -44,6 +44,7 @@
 #include "neighbor_table.h"
 #include "net_olsr.h"
 #include "scheduler.h"
+#include "olsr_logging.h"
 
 #include <stdlib.h>
 
@@ -137,11 +138,12 @@ olsr_delete_two_hop_neighbor_table(struct neighbor_2_entry *two_hop_neighbor)
 void
 olsr_insert_two_hop_neighbor_table(struct neighbor_2_entry *two_hop_neighbor)
 {
+#if !defined REMOVE_DEBUG
+  struct ipaddr_str buf;
+#endif
   uint32_t hash = olsr_ip_hashing(&two_hop_neighbor->neighbor_2_addr);
 
-#if 0
-    printf("Adding 2 hop neighbor %s\n", olsr_ip_to_string(&buf, &two_hop_neighbor->neighbor_2_addr));
-#endif
+  OLSR_DEBUG(LOG_2NEIGH, "Adding 2 hop neighbor %s\n", olsr_ip_to_string(&buf, &two_hop_neighbor->neighbor_2_addr));
 
   /* Queue */
   QUEUE_ELEM(two_hop_neighbortable[hash], two_hop_neighbor);
@@ -161,13 +163,11 @@ olsr_lookup_two_hop_neighbor_table(const union olsr_ip_addr *dest)
   struct neighbor_2_entry  *neighbor_2;
   uint32_t               hash = olsr_ip_hashing(dest);
 
-  /* printf("LOOKING FOR %s\n", olsr_ip_to_string(&buf, dest)); */
   for(neighbor_2 = two_hop_neighbortable[hash].next;
       neighbor_2 != &two_hop_neighbortable[hash];
       neighbor_2 = neighbor_2->next) {
     struct tc_entry *tc;
 
-    /* printf("Checking %s\n", olsr_ip_to_string(&buf, dest)); */
     if (olsr_ipequal(&neighbor_2->neighbor_2_addr, dest)) {
       return neighbor_2;
     }
@@ -197,7 +197,6 @@ olsr_lookup_two_hop_neighbor_table_mid(const union olsr_ip_addr *dest)
   struct neighbor_2_entry  *neighbor_2;
   uint32_t               hash = olsr_ip_hashing(dest);
 
-  /* printf("LOOKING FOR %s\n", olsr_ip_to_string(&buf, dest)); */
   for(neighbor_2 = two_hop_neighbortable[hash].next;
       neighbor_2 != &two_hop_neighbortable[hash];
       neighbor_2 = neighbor_2->next) {
@@ -215,11 +214,11 @@ olsr_lookup_two_hop_neighbor_table_mid(const union olsr_ip_addr *dest)
 void
 olsr_print_two_hop_neighbor_table(void)
 {
-#ifndef NODEBUG
+#if !defined REMOVE_INFO
   /* The whole function makes no sense without it. */
   int i;
 
-  OLSR_PRINTF(1, "\n--- %s ----------------------- TWO-HOP NEIGHBORS\n\n"
+  OLSR_INFO(LOG_2NEIGH, "\n--- %s ----------------------- TWO-HOP NEIGHBORS\n\n"
               "IP addr (2-hop)  IP addr (1-hop)  Total cost\n",
               olsr_wallclock_string());
 
@@ -236,16 +235,13 @@ olsr_print_two_hop_neighbor_table(void)
            entry = entry->next) {
         struct ipaddr_str buf;
         struct lqtextbuffer lqbuffer;
-        if (first) {
-          OLSR_PRINTF(1, "%-15s  ",
-                      olsr_ip_to_string(&buf, &neigh2->neighbor_2_addr));
-          first = false;
-        } else {
-          OLSR_PRINTF(1, "                 ");
-        }
-        OLSR_PRINTF(1, "%-15s  %s\n",
-                    olsr_ip_to_string(&buf, &entry->neighbor->neighbor_main_addr),
-                    get_linkcost_text(entry->path_linkcost, false, &lqbuffer));
+
+        OLSR_INFO_NH(LOG_2NEIGH, "%-15s  %-15s  %s\n",
+                      first ? "": olsr_ip_to_string(&buf, &neigh2->neighbor_2_addr),
+                      olsr_ip_to_string(&buf, &entry->neighbor->neighbor_main_addr),
+                      get_linkcost_text(entry->path_linkcost, false, &lqbuffer));
+
+        first = false;
       }
     }
   }