Link quality window size is now configurable. Screen clearing is, too.
authorThomas Lopatic <thomas@lopatic.de>
Sat, 20 Nov 2004 17:10:03 +0000 (17:10 +0000)
committerThomas Lopatic <thomas@lopatic.de>
Sat, 20 Nov 2004 17:10:03 +0000 (17:10 +0000)
src/cfgparser/olsrd_conf.c
src/cfgparser/oparse.y
src/cfgparser/oscan.lex
src/link_set.c
src/olsr.c
src/olsr_cfg.h

index 0b8e78a..cde0a7d 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: olsrd_conf.c,v 1.18 2004/11/12 20:48:19 kattemat Exp $
+ * $Id: olsrd_conf.c,v 1.19 2004/11/20 17:10:03 tlopatic Exp $
  *
  */
 
@@ -264,6 +264,8 @@ set_default_cnf(struct olsrd_config *cnf)
     cnf->tc_redundancy = TC_REDUNDANCY;
     cnf->mpr_coverage = MPR_COVERAGE;
     cnf->lq_level = DEF_LQ_LEVEL;
+    cnf->lq_wsize = DEF_LQ_WSIZE;
+    cnf->clear_screen = DEF_CLEAR_SCREEN;
 }
 
 
@@ -445,9 +447,14 @@ olsrd_write_cnf(struct olsrd_config *cnf, char *fname)
   fprintf(fd, "MprCoverage\t%d\n\n", cnf->mpr_coverage);
 
   fprintf(fd, "# Link quality level\n# 0 = do not use link quality\n# 1 = use link quality for MPR selection\n# 2 = use link quality for MPR selection and routing\n\n");
-   
   fprintf(fd, "LinkQualityLevel\t%d\n\n", cnf->lq_level);
 
+  fprintf(fd, "# Link quality window size\n\n");
+  fprintf(fd, "LinkQualityWinSize\t%d\n\n", cnf->lq_wsize);
+
+  fprintf(fd, "# Clear screen when printing debug output?\n\n");
+  fprintf(fd, "ClearScreen\t%s\n\n", cnf->clear_screen ? "yes" : "no");
+
   /* Plugins */
   fprintf(fd, "# Olsrd plugins to load\n# This must be the absolute path to the file\n# or the loader will use the following scheme:\n# - Try the paths in the LD_LIBRARY_PATH \n#   environment variable.\n# - The list of libraries cached in /etc/ld.so.cache\n# - /lib, followed by /usr/lib\n\n");
   if(pe)
@@ -619,6 +626,10 @@ olsrd_print_cnf(struct olsrd_config *cnf)
    
   printf("LQ level         : %d\n", cnf->lq_level);
 
+  printf("LQ window size   : %d\n", cnf->lq_wsize);
+
+  printf("Clear screen     : %s\n", cnf->clear_screen ? "yes" : "no");
+
   /* Interfaces */
   if(in)
     {
index 44ee7a7..5843593 100644 (file)
@@ -21,7 +21,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: oparse.y,v 1.15 2004/11/11 21:14:18 kattemat Exp $
+ * $Id: oparse.y,v 1.16 2004/11/20 17:10:03 tlopatic Exp $
  *
  */
 
@@ -79,6 +79,8 @@ int yylex(void);
 %token TOK_TCREDUNDANCY
 %token TOK_MPRCOVERAGE
 %token TOK_LQ_LEVEL
+%token TOK_LQ_WSIZE
+%token TOK_CLEAR_SCREEN
 %token TOK_PLNAME
 %token TOK_PLPARAM
 
@@ -124,6 +126,8 @@ stmt:       idebug
           | atcredundancy
           | amprcoverage
           | alq_level
+          | alq_wsize
+          | bclear_screen
           | vcomment
 ;
 
@@ -638,6 +642,26 @@ alq_level: TOK_LQ_LEVEL TOK_INTEGER
 }
 ;
 
+alq_wsize: TOK_LQ_WSIZE TOK_INTEGER
+{
+  if(PARSER_DEBUG) printf("Link quality window size %d\n", $2->integer);
+  cnf->lq_wsize = $2->integer;
+
+  free($2);
+}
+;
+
+bclear_screen: TOK_CLEAR_SCREEN TOK_BOOLEAN
+{
+  cnf->clear_screen = $2->boolean;
+
+  if (PARSER_DEBUG)
+    printf("Clear screen %s\n", cnf->clear_screen ? "enabled" : "disabled");
+
+  free($2);
+}
+;
+
 plblock: TOK_PLUGIN TOK_STRING
 {
   struct plugin_entry *pe = malloc(sizeof(struct plugin_entry));
index 1dab4ac..0444e8c 100644 (file)
@@ -21,7 +21,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: oscan.lex,v 1.10 2004/11/11 21:14:18 kattemat Exp $
+ * $Id: oscan.lex,v 1.11 2004/11/20 17:10:03 tlopatic Exp $
  *
  */
 
@@ -346,6 +346,16 @@ IPV6ADDR {IP6PAT1}|{IP6PAT2}|{IP6PAT3}|{IP6PAT4}|{IP6PAT5}|{IP6PAT6}|{IP6PAT7}|{
   return TOK_LQ_LEVEL;
 }
 
+"LinkQualityWinSize" {
+  yylval = NULL;
+  return TOK_LQ_WSIZE;
+}
+
+"ClearScreen" {
+  yylval = NULL;
+  return TOK_CLEAR_SCREEN;
+}
+
 "Ip4Broadcast" {
   yylval = NULL;
   return TOK_IP4BROADCAST;
index 696f112..4beedda 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: link_set.c,v 1.28 2004/11/14 15:08:10 kattemat Exp $
+ * $Id: link_set.c,v 1.29 2004/11/20 17:10:02 tlopatic Exp $
  *
  */
 
@@ -480,7 +480,7 @@ add_new_entry(union olsr_ip_addr *local, union olsr_ip_addr *remote, union olsr_
       new_link->lost_packets = 0;
       new_link->total_packets = 0;
 
-      new_link->loss_window_size = 10;
+      new_link->loss_window_size = olsr_cnf->lq_wsize;
       new_link->loss_index = 0;
 
       memset(new_link->loss_bitmap, 0, sizeof (new_link->loss_bitmap));
index 2c06091..03350c8 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: olsr.c,v 1.23 2004/11/20 15:40:52 tlopatic Exp $
+ * $Id: olsr.c,v 1.24 2004/11/20 17:10:03 tlopatic Exp $
  *
  */
 
@@ -165,7 +165,7 @@ olsr_process_changes()
      !changes_hna)
     return;
 
-  if (olsr_cnf->debug_level > 0)
+  if (olsr_cnf->debug_level > 0 && olsr_cnf->clear_screen && isatty(1))
     {
       clear_console();
       printf("<<<< %s (%s) >>>>\n", SOFTWARE_VERSION, __DATE__);
index 6edded7..3f9df55 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: olsr_cfg.h,v 1.9 2004/11/12 20:48:19 kattemat Exp $
+ * $Id: olsr_cfg.h,v 1.10 2004/11/20 17:10:03 tlopatic Exp $
  *
  */
 
@@ -38,6 +38,8 @@
 #define DEF_IPC_CONNECTIONS 0
 #define DEF_USE_HYST        OLSR_TRUE
 #define DEF_LQ_LEVEL        0
+#define DEF_LQ_WSIZE        10
+#define DEF_CLEAR_SCREEN    OLSR_FALSE
 
 
 #ifndef IPV6_ADDR_SITELOCAL
@@ -170,7 +172,9 @@ struct olsrd_config
   float                    pollrate;
   olsr_u8_t                tc_redundancy;
   olsr_u8_t                mpr_coverage;
+  olsr_bool                clear_screen;
   olsr_u8_t                lq_level;
+  olsr_u32_t               lq_wsize;
   struct plugin_entry      *plugins;
   struct hna4_entry        *hna4_entries;
   struct hna6_entry        *hna6_entries;