Delete hysteresis functions (they block the following refactoring)
authorHenning Rogge <rogge@fgan.de>
Sat, 13 Dec 2008 10:32:41 +0000 (11:32 +0100)
committerHenning Rogge <rogge@fgan.de>
Sat, 13 Dec 2008 10:32:41 +0000 (11:32 +0100)
16 files changed:
lib/httpinfo/src/admin_interface.c
lib/httpinfo/src/olsrd_httpinfo.c
lib/txtinfo/src/olsrd_txtinfo.c
src/cfgparser/cfgfile_gen.c
src/cfgparser/olsrd_conf.c
src/cfgparser/oparse.y
src/cfgparser/oscan.lex
src/link_set.c
src/link_set.h
src/lq_packet.c
src/neighbor_table.c
src/olsr_cfg.c
src/olsr_cfg.h
src/olsr_cfg_gen.c
src/parser.c
src/process_package.c

index 4f883a6..46adaa7 100644 (file)
@@ -94,21 +94,6 @@ build_admin_body(struct autobuf *abuf)
   abuf_puts(abuf, "</tr>\n"
                                              "<tr>\n");
 
-  if(olsr_cnf->use_hysteresis) {
-    abuf_appendf(abuf, admin_basic_setting_float,
-                     "Hyst scaling:", "hyst_scaling", 4, olsr_cnf->hysteresis_param.scaling);
-
-    abuf_appendf(abuf, admin_basic_setting_float,
-                     "Lower thr:", "hyst_lower", 4, olsr_cnf->hysteresis_param.thr_low);
-    abuf_appendf(abuf, admin_basic_setting_float,
-                     "Upper thr:", "hyst_upper", 4, olsr_cnf->hysteresis_param.thr_high);
-  } else {
-    abuf_puts(abuf, "<td>Hysteresis disabled</td>\n");
-  }
-
-  abuf_puts(abuf, "</tr>\n"
-                                             "<tr>\n");
-
   if(olsr_cnf->lq_level) {
     abuf_appendf(abuf, admin_basic_setting_int,
                      "LQ level:", "lq_level", 1, olsr_cnf->lq_level);
index fc809b1..f014f09 100644 (file)
@@ -884,15 +884,6 @@ static void build_config_body(struct autobuf *abuf)
   abuf_appendf(abuf, "<td>RtTableDefault: 0x%04x/%d</td>\n", olsr_cnf->rttable_default, olsr_cnf->rttable_default);
   abuf_appendf(abuf, "<td>Willingness: %d %s</td>\n", olsr_cnf->willingness, olsr_cnf->willingness_auto ? "(auto)" : "");
 
-  if (olsr_cnf->lq_level == 0) {
-    abuf_appendf(abuf, "</tr>\n<tr>\n"
-                   "<td>Hysteresis: %s</td>\n", olsr_cnf->use_hysteresis ? "Enabled" : "Disabled");
-    if (olsr_cnf->use_hysteresis) {
-      abuf_appendf(abuf, "<td>Hyst scaling: %0.2f</td>\n", olsr_cnf->hysteresis_param.scaling);
-      abuf_appendf(abuf, "<td>Hyst lower/upper: %0.2f/%0.2f</td>\n", olsr_cnf->hysteresis_param.thr_low, olsr_cnf->hysteresis_param.thr_high);
-    }
-  }
-
   abuf_appendf(abuf, "</tr>\n<tr>\n"
                  "<td>LQ extension: %s</td>\n", olsr_cnf->lq_level ? "Enabled" : "Disabled");
   if (olsr_cnf->lq_level) {
@@ -993,7 +984,7 @@ static void build_neigh_body(struct autobuf *abuf)
   section_title(abuf, "Links");
 
   abuf_appendf(abuf,
-                   "<tr><th align=\"center\"%s>Local IP</th><th align=\"center\"%s>Remote IP</th><th align=\"right\">Hysteresis</th>", colspan, colspan);
+                   "<tr><th align=\"center\"%s>Local IP</th><th align=\"center\"%s>Remote IP</th>", colspan, colspan);
   if (olsr_cnf->lq_level > 0) {
     abuf_puts(abuf,
                      "<th align=\"right\">LinkCost</th>");
@@ -1005,7 +996,6 @@ static void build_neigh_body(struct autobuf *abuf)
     abuf_puts(abuf, "<tr>");
     build_ipaddr_with_link(abuf, &lnk->local_iface_addr, -1);
     build_ipaddr_with_link(abuf, &lnk->neighbor_iface_addr, -1);
-    abuf_appendf(abuf, "<td align=\"right\">%0.2f</td>", lnk->L_link_quality);
     if (olsr_cnf->lq_level > 0) {
       struct lqtextbuffer lqbuffer1, lqbuffer2;
       abuf_appendf(abuf,
index d1f8c34..4d5cf7d 100644 (file)
@@ -439,7 +439,7 @@ static int ipc_print_link(struct ipc_conn *conn)
 {
     struct link_entry *lnk;
 
-    if (abuf_appendf(&conn->resp, "Table: Links\nLocal IP\tRemote IP\tHyst.\tLQ\tNLQ\tCost\n") < 0) {
+    if (abuf_appendf(&conn->resp, "Table: Links\nLocal IP\tRemote IP\tLQ\tNLQ\tCost\n") < 0) {
         return -1;
     }
 
@@ -448,10 +448,9 @@ static int ipc_print_link(struct ipc_conn *conn)
         struct ipaddr_str buf1, buf2;
         struct lqtextbuffer lqbuffer1, lqbuffer2;
        if (abuf_appendf(&conn->resp,
-                            "%s\t%s\t%0.2f\t%s\t%s\t\n",
+                            "%s\t%s\t%s\t%s\t\n",
                             olsr_ip_to_string(&buf1, &lnk->local_iface_addr),
                             olsr_ip_to_string(&buf2, &lnk->neighbor_iface_addr),
-                            lnk->L_link_quality,
                             get_link_entry_text(lnk, '\t', &lqbuffer1),
                             get_linkcost_text(lnk->linkcost, false, &lqbuffer2)) < 0) {
             return -1;
index c5321bc..b5198f9 100644 (file)
@@ -172,27 +172,6 @@ cfgparser_olsrd_write_cnf_buf(struct autobuf *abuf, const struct olsrd_config *c
 
   abuf_appendf(abuf, "}\n");
 
-  /* Hysteresis */
-  abuf_appendf(abuf, "# Hysteresis adds more robustness to the\n"
-                     "# link sensing.\n"
-                     "# Used by default. 'yes' or 'no'\n"
-                     "UseHysteresis\t%s\n\n", cnf->use_hysteresis ? "yes" : "no");
-
-  abuf_appendf(abuf, "# Hysteresis parameters\n"
-                     "# Do not alter these unless you know \n"
-                     "# what you are doing!\n"
-                     "# Set to auto by default. Allowed\n"
-                     "# values are floating point values\n"
-                     "# in the interval 0,1\n"
-                     "# THR_LOW must always be lower than\n"
-                     "# THR_HIGH!!\n"
-                     "%sHystScaling\t%0.2f\n"
-                     "%sHystThrHigh\t%0.2f\n"
-                     "%sHystThrLow\t%0.2f\n\n",
-                     cnf->use_hysteresis ? "#" : "", cnf->hysteresis_param.scaling,
-                     cnf->use_hysteresis ? "#" : "", cnf->hysteresis_param.thr_high,
-                     cnf->use_hysteresis ? "#" : "", cnf->hysteresis_param.thr_low);
-
   /* Pollrate */
   abuf_appendf(abuf, "# Polling rate in seconds(float).\n"
                      "# Auto uses default value 0.05 sec\n"
index 82c9a4a..ff7df8b 100644 (file)
@@ -216,37 +216,6 @@ cfgparser_olsrd_sanity_check_cnf(struct olsrd_config *cnf)
       return -1;
     }
 
-  /* Hysteresis */
-  if(cnf->use_hysteresis)
-    {
-      if(cnf->hysteresis_param.scaling < MIN_HYST_PARAM ||
-        cnf->hysteresis_param.scaling > MAX_HYST_PARAM)
-       {
-         fprintf(stderr, "Hyst scaling %0.2f is not allowed\n", cnf->hysteresis_param.scaling);
-         return -1;
-       }
-
-      if(cnf->hysteresis_param.thr_high <= cnf->hysteresis_param.thr_low)
-       {
-         fprintf(stderr, "Hyst upper(%0.2f) thr must be bigger than lower(%0.2f) threshold!\n", cnf->hysteresis_param.thr_high, cnf->hysteresis_param.thr_low);
-         return -1;
-       }
-
-      if(cnf->hysteresis_param.thr_high < MIN_HYST_PARAM ||
-        cnf->hysteresis_param.thr_high > MAX_HYST_PARAM)
-       {
-         fprintf(stderr, "Hyst upper thr %0.2f is not allowed\n", cnf->hysteresis_param.thr_high);
-         return -1;
-       }
-
-      if(cnf->hysteresis_param.thr_low < MIN_HYST_PARAM ||
-        cnf->hysteresis_param.thr_low > MAX_HYST_PARAM)
-       {
-         fprintf(stderr, "Hyst lower thr %0.2f is not allowed\n", cnf->hysteresis_param.thr_low);
-         return -1;
-       }
-    }
-
   /* Check Link quality dijkstra limit */
   if (olsr_cnf->lq_dinter < conv_pollrate_to_secs(cnf->pollrate) && olsr_cnf->lq_dlimit != 255) {
        fprintf(stderr, "Link quality dijkstra limit must be higher than pollrate\n");
@@ -277,13 +246,6 @@ cfgparser_olsrd_sanity_check_cnf(struct olsrd_config *cnf)
       return -1;
     }
 
-  /* Link Q and hysteresis cannot be activated at the same time */
-  if(cnf->use_hysteresis && cnf->lq_level)
-    {
-      fprintf(stderr, "Hysteresis and LinkQuality cannot both be active! Deactivate one of them.\n");
-      return -1;
-    }
-
   /* Link quality level */
   if(cnf->lq_level > MAX_LQ_LEVEL)
     {
@@ -457,11 +419,6 @@ cfgparser_set_default_cnf(struct olsrd_config *cnf)
     cnf->ipc_connections = DEF_IPC_CONNECTIONS;
     cnf->fib_metric = DEF_FIB_METRIC;
 
-    cnf->use_hysteresis = DEF_USE_HYST;
-    cnf->hysteresis_param.scaling = HYST_SCALING;
-    cnf->hysteresis_param.thr_high = HYST_THRESHOLD_HIGH;
-    cnf->hysteresis_param.thr_low = HYST_THRESHOLD_LOW;
-
     cnf->pollrate = conv_pollrate_to_microsecs(DEF_POLLRATE);
     cnf->nic_chgs_pollrate = DEF_NICCHGPOLLRT;
 
@@ -657,15 +614,6 @@ cfgparser_olsrd_print_cnf(const struct olsrd_config *cnf)
        }
     }
 
-  /* Hysteresis */
-  if(cnf->use_hysteresis) {
-    printf("Using hysteresis:\n");
-    printf("\tScaling      : %0.2f\n", cnf->hysteresis_param.scaling);
-    printf("\tThr high/low : %0.2f/%0.2f\n", cnf->hysteresis_param.thr_high, cnf->hysteresis_param.thr_low);
-  } else {
-    printf("Not using hysteresis\n");
-  }
-
   /* HNA IPv4 and IPv6 */
   if(h) {
     printf("HNA%d entries:\n", cnf->ip_version == AF_INET ? 4 : 6);
index 51bfbeb..5b93533 100644 (file)
@@ -179,10 +179,6 @@ static int add_ipv6_addr(YYSTYPE ipaddr_arg, YYSTYPE prefixlen_arg)
 %token TOK_WILLINGNESS
 %token TOK_IPCCON
 %token TOK_FIBMETRIC
-%token TOK_USEHYST
-%token TOK_HYSTSCALE
-%token TOK_HYSTUPPER
-%token TOK_HYSTLOWER
 %token TOK_POLLRATE
 %token TOK_NICCHGSPOLLRT
 %token TOK_TCREDUNDANCY
@@ -238,10 +234,6 @@ stmt:       idebug
           | arttable
           | arttable_default
           | awillingness
-          | busehyst
-          | fhystscale
-          | fhystupper
-          | fhystlower
           | fpollrate
           | fnicchgspollrt
           | atcredundancy
@@ -905,38 +897,6 @@ awillingness: TOK_WILLINGNESS TOK_INTEGER
 }
 ;
 
-busehyst: TOK_USEHYST TOK_BOOLEAN
-{
-  olsr_cnf->use_hysteresis = $2->boolean;
-  PARSER_DEBUG_PRINTF("Hysteresis %s\n", olsr_cnf->use_hysteresis ? "enabled" : "disabled");
-  free($2);
-}
-;
-
-fhystscale: TOK_HYSTSCALE TOK_FLOAT
-{
-  olsr_cnf->hysteresis_param.scaling = $2->floating;
-  PARSER_DEBUG_PRINTF("Hysteresis Scaling: %0.2f\n", $2->floating);
-  free($2);
-}
-;
-
-fhystupper: TOK_HYSTUPPER TOK_FLOAT
-{
-  olsr_cnf->hysteresis_param.thr_high = $2->floating;
-  PARSER_DEBUG_PRINTF("Hysteresis UpperThr: %0.2f\n", $2->floating);
-  free($2);
-}
-;
-
-fhystlower: TOK_HYSTLOWER TOK_FLOAT
-{
-  olsr_cnf->hysteresis_param.thr_low = $2->floating;
-  PARSER_DEBUG_PRINTF("Hysteresis LowerThr: %0.2f\n", $2->floating);
-  free($2);
-}
-;
-
 fpollrate: TOK_POLLRATE TOK_FLOAT
 {
   PARSER_DEBUG_PRINTF("Pollrate %0.2f\n", $2->floating);
index 8bd3468..a2dec8d 100644 (file)
@@ -353,26 +353,6 @@ IPV6ADDR {IP6PAT1}|{IP6PAT2}|{IP6PAT3}|{IP6PAT4}|{IP6PAT5}|{IP6PAT6}|{IP6PAT7}|{
     return TOK_FIBMETRIC;
 }
 
-"UseHysteresis" {
-    yylval = NULL;
-    return TOK_USEHYST;
-}
-
-"HystScaling" {
-    yylval = NULL;
-    return TOK_HYSTSCALE;
-}
-
-"HystThrHigh" {
-    yylval = NULL;
-    return TOK_HYSTUPPER;
-}
-
-"HystThrLow" {
-    yylval = NULL;
-    return TOK_HYSTLOWER;
-}
-
 "Pollrate" {
     yylval = NULL;
     return TOK_POLLRATE;
index 8d96ac6..39409f5 100644 (file)
@@ -45,7 +45,6 @@
 
 #include "defs.h"
 #include "link_set.h"
-#include "hysteresis.h"
 #include "mid_set.h"
 #include "mpr.h"
 #include "neighbor_table.h"
@@ -117,37 +116,6 @@ lookup_link_status(const struct link_entry *entry)
   /*
    * Hysteresis
    */
-  if (olsr_cnf->use_hysteresis) {
-
-    /*
-     * if L_LOST_LINK_time is not expired, the link is advertised
-     * with a link type of LOST_LINK.
-     */
-
-    if (!TIMED_OUT(entry->L_LOST_LINK_time)) {
-      return LOST_LINK;
-    }
-
-    /*
-     * otherwise, if L_LOST_LINK_time is expired and L_link_pending
-     * is set to "true", the link SHOULD NOT be advertised at all;
-     */
-    if (entry->L_link_pending == 1) {
-#ifndef NODEBUG
-      struct ipaddr_str buf;
-      OLSR_PRINTF(3, "HYST[%s]: Setting to HIDE\n",
-                 olsr_ip_to_string(&buf, &entry->neighbor_iface_addr));
-#endif
-      return HIDE_LINK;
-    }
-
-    /*
-     * otherwise, if L_LOST_LINK_time is expired and L_link_pending
-     * is set to "false", the link is advertised as described
-     * previously in section 6.
-     */
-  }
-
   if (entry->link_sym_timer) {
     return SYM_LINK;
   }
@@ -368,8 +336,6 @@ olsr_delete_link_entry(struct link_entry *link)
   link->link_timer = NULL;
   olsr_stop_timer(link->link_sym_timer);
   link->link_sym_timer = NULL;
-  olsr_stop_timer(link->link_hello_timer);
-  link->link_hello_timer = NULL;
   olsr_stop_timer(link->link_loss_timer);
   link->link_loss_timer = NULL;
 
@@ -449,30 +415,13 @@ olsr_expire_link_sym_timer(void *context)
 void
 olsr_expire_link_hello_timer(void *context)
 {
-  struct ipaddr_str buf;
   struct link_entry *link;
 
   link = (struct link_entry *)context;
 
-  link->L_link_quality = olsr_hyst_calc_instability(link->L_link_quality);
-
-  OLSR_PRINTF(1, "HYST[%s] HELLO timeout %f\n",
-             olsr_ip_to_string(&buf, &link->neighbor_iface_addr),
-             link->L_link_quality);
-
-  /* Update hello_timeout - NO SLACK THIS TIME */
-  olsr_change_timer(link->link_hello_timer, link->last_htime,
-                   OLSR_LINK_JITTER, OLSR_TIMER_PERIODIC);
-
-  /* Update hysteresis values */
-  olsr_process_hysteresis(link);
-
   /* update neighbor status */
   update_neighbor_status(link->neighbor,
                         get_neighbor_status(&link->neighbor_iface_addr));
-
-  /* Update seqno - not mentioned in the RFC... kind of a hack.. */
-  link->olsr_seqno++;
 }
 
 /**
@@ -572,18 +521,6 @@ add_link_entry(const union olsr_ip_addr *local,
 
   new_link->prev_status = ASYM_LINK;
 
-  /* HYSTERESIS */
-  if (olsr_cnf->use_hysteresis) {
-    new_link->L_link_pending = 1;
-    new_link->L_LOST_LINK_time = GET_TIMESTAMP(vtime);
-    olsr_update_hysteresis_hello(new_link, htime);
-    new_link->last_htime = htime;
-    new_link->olsr_seqno = 0;
-    new_link->olsr_seqno_valid = false;
-  }
-
-  new_link->L_link_quality = 0.0;
-
   if (olsr_cnf->lq_level > 0) {
     new_link->loss_helloint = htime;
 
@@ -734,10 +671,6 @@ update_link_entry(const union olsr_ip_addr *local,
     olsr_set_link_timer(entry, TIME_DUE(entry->ASYM_time));
   }
 
-  /* Update hysteresis values */
-  if (olsr_cnf->use_hysteresis)
-    olsr_process_hysteresis(entry);
-
   /* Update neighbor */
   update_neighbor_status(entry->neighbor, get_neighbor_status(remote));
 
@@ -829,9 +762,8 @@ olsr_print_link_set(void)
 
     struct ipaddr_str buf;
     struct lqtextbuffer lqbuffer1, lqbuffer2;
-    OLSR_PRINTF(1, "%-*s  %5.3f  %-14s %s\n",
+    OLSR_PRINTF(1, "%-*s %-14s %s\n",
                addrsize, olsr_ip_to_string(&buf, &walker->neighbor_iface_addr),
-               walker->L_link_quality,
                get_link_entry_text(walker, '/', &lqbuffer1),
                get_linkcost_text(walker->linkcost, false, &lqbuffer2));
   } OLSR_FOR_ALL_LINK_ENTRIES_END(walker);
index 51efb94..6f89175 100644 (file)
@@ -68,17 +68,6 @@ struct link_entry {
   uint8_t prev_status;
 
   /*
-   * Hysteresis
-   */
-  bool olsr_seqno_valid;
-  uint16_t olsr_seqno;
-  float L_link_quality;
-  int L_link_pending;
-  clock_t L_LOST_LINK_time;
-  struct timer_entry *link_hello_timer;        /* When we should receive a new HELLO */
-  olsr_reltime last_htime;
-
-  /*
    * packet loss
    */
   olsr_reltime loss_helloint;
index 3d840e1..bcfc71a 100644 (file)
@@ -52,7 +52,6 @@
 #include "mantissa.h"
 #include "process_package.h" // XXX - remove
 #include "two_hop_neighbor_table.h"
-#include "hysteresis.h"
 #include "olsr.h"
 #include "build_msg.h"
 #include "net_olsr.h"
index 1c52759..d80e690 100644 (file)
@@ -419,9 +419,8 @@ 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  %5.3f  %s  %s  %s  %d\n",
+        OLSR_PRINTF(1, "%-*s  %s  %s  %s  %d\n",
                     ipwidth, olsr_ip_to_string(&buf, &neigh->neighbor_main_addr),
-                    lnk->L_link_quality,
                     neigh->status == SYM ? "YES " : "NO  ",
                     neigh->is_mpr ? "YES " : "NO  ",
                     olsr_lookup_mprs_set(&neigh->neighbor_main_addr) == NULL ? "NO  " : "YES ",
index 3ec988a..0d331bb 100644 (file)
@@ -82,7 +82,7 @@ olsr_parse_cnf(int argc, char* argv[], const char *conf_file_name)
   char **opt_argv = olsr_malloc(argc * sizeof(argv[0]), "argv");
 #ifdef DEBUG
   struct ipaddr_str buf;
-#endif  
+#endif
 
   /*
    * Original cmd line params
@@ -134,9 +134,6 @@ olsr_parse_cnf(int argc, char* argv[], const char *conf_file_name)
     {"FIBMetric",                required_argument, 0, 'F'}, /* (str) */
     {"Hna4",                     required_argument, 0, '4'}, /* (4body) */
     {"Hna6",                     required_argument, 0, '6'}, /* (6body) */
-    {"HystScaling",              required_argument, 0, 'B'}, /* (f) */
-    {"HystThrHigh",              required_argument, 0, 'G'}, /* (f) */
-    {"HystThrLow",               required_argument, 0, 'K'}, /* (f) */
     {"Interface",                required_argument, 0, 'I'}, /* (if1 if2 {ifbody}) */
     {"IpcConnect",               required_argument, 0, 'Q'}, /* (Host,Net,MaxConnections) */
     {"IpVersion",                required_argument, 0, 'V'}, /* (i) */
@@ -156,7 +153,6 @@ olsr_parse_cnf(int argc, char* argv[], const char *conf_file_name)
     {"RtTable",                  required_argument, 0, 'r'}, /* (i) */
     {"TcRedundancy",             required_argument, 0, 't'}, /* (i) */
     {"TosValue",                 required_argument, 0, 'Z'}, /* (i) */
-    {"UseHysteresis",            required_argument, 0, 'U'}, /* (yes/no) */
     {"Willingness",              required_argument, 0, 'w'}, /* (i) */
     {0, 0, 0, 0}
   }, *popt = long_options;
@@ -174,14 +170,14 @@ olsr_parse_cnf(int argc, char* argv[], const char *conf_file_name)
 
   /* get option count */
   for (opt_idx = 0; long_options[opt_idx].name; opt_idx++);
-  
+
   /* Calculate short option string */
   opt_str = olsr_malloc(opt_idx * 3, "create short opt_string");
   opt_idx = 0;
   while (popt->name != NULL && popt->val != 0)
   {
     opt_str[opt_idx++] = popt->val;
-    
+
     switch (popt->has_arg)
     {
       case optional_argument:
@@ -400,18 +396,6 @@ olsr_parse_cnf(int argc, char* argv[], const char *conf_file_name)
         olsr_strtok_free(tok);
       }
       break;
-    case 'B':                  /* HystScaling (f) */
-      sscanf(optarg, "%f", &olsr_cnf->hysteresis_param.scaling);
-      PARSER_DEBUG_PRINTF("Hysteresis Scaling: %0.2f\n", olsr_cnf->hysteresis_param.scaling);
-      break;
-    case 'G':                  /* HystThrHigh (f) */
-      sscanf(optarg, "%f", &olsr_cnf->hysteresis_param.thr_high);
-      PARSER_DEBUG_PRINTF("Hysteresis UpperThr: %0.2f\n", olsr_cnf->hysteresis_param.thr_high);
-      break;
-    case 'K':                  /* HystThrLow (f) */
-      sscanf(optarg, "%f", &olsr_cnf->hysteresis_param.thr_low);
-      PARSER_DEBUG_PRINTF("Hysteresis LowerThr: %0.2f\n", olsr_cnf->hysteresis_param.thr_low);
-      break;
     case 'I':                  /* Interface if1 if2 { ifbody } */
       if (NULL != (tok = olsr_strtok(optarg, &optarg_next))) {
         if ('{' != *optarg_next) {
@@ -808,10 +792,6 @@ olsr_parse_cnf(int argc, char* argv[], const char *conf_file_name)
         PARSER_DEBUG_PRINTF("TOS: %d\n", olsr_cnf->tos);
       }
       break;
-    case 'U':                  /* UseHysteresis (yes/no) */
-      olsr_cnf->use_hysteresis =  (0 == strcmp("yes", optarg));
-      PARSER_DEBUG_PRINTF("Hysteresis %s\n", olsr_cnf->use_hysteresis ? "enabled" : "disabled");
-      break;
     case 'w':                  /* Willingness (i) */
       {
         int arg = -1;
@@ -876,30 +856,6 @@ olsr_sanity_check_cnf(struct olsrd_config *cnf)
     return -1;
   }
 
-  /* Hysteresis */
-  if (cnf->use_hysteresis) {
-    if (cnf->hysteresis_param.scaling < MIN_HYST_PARAM || cnf->hysteresis_param.scaling > MAX_HYST_PARAM) {
-      fprintf(stderr, "Hyst scaling %0.2f is not allowed\n", cnf->hysteresis_param.scaling);
-      return -1;
-    }
-
-    if (cnf->hysteresis_param.thr_high <= cnf->hysteresis_param.thr_low) {
-      fprintf(stderr, "Hyst upper(%0.2f) thr must be bigger than lower(%0.2f) threshold!\n", cnf->hysteresis_param.thr_high,
-              cnf->hysteresis_param.thr_low);
-      return -1;
-    }
-
-    if (cnf->hysteresis_param.thr_high < MIN_HYST_PARAM || cnf->hysteresis_param.thr_high > MAX_HYST_PARAM) {
-      fprintf(stderr, "Hyst upper thr %0.2f is not allowed\n", cnf->hysteresis_param.thr_high);
-      return -1;
-    }
-
-    if (cnf->hysteresis_param.thr_low < MIN_HYST_PARAM || cnf->hysteresis_param.thr_low > MAX_HYST_PARAM) {
-      fprintf(stderr, "Hyst lower thr %0.2f is not allowed\n", cnf->hysteresis_param.thr_low);
-      return -1;
-    }
-  }
-
   /* Check Link quality dijkstra limit */
   if (olsr_cnf->lq_dinter < conv_pollrate_to_secs(cnf->pollrate) && olsr_cnf->lq_dlimit != 255) {
     fprintf(stderr, "Link quality dijkstra limit must be higher than pollrate\n");
@@ -924,12 +880,6 @@ olsr_sanity_check_cnf(struct olsrd_config *cnf)
     return -1;
   }
 
-  /* Link Q and hysteresis cannot be activated at the same time */
-  if (cnf->use_hysteresis && cnf->lq_level) {
-    fprintf(stderr, "Hysteresis and LinkQuality cannot both be active! Deactivate one of them.\n");
-    return -1;
-  }
-
   /* Link quality level */
   if (cnf->lq_level > MAX_LQ_LEVEL) {
     fprintf(stderr, "LQ level %d is not allowed\n", cnf->lq_level);
@@ -1082,11 +1032,6 @@ set_default_cnf(struct olsrd_config *cnf)
   cnf->ipc_connections = DEF_IPC_CONNECTIONS;
   cnf->fib_metric = DEF_FIB_METRIC;
 
-  cnf->use_hysteresis = DEF_USE_HYST;
-  cnf->hysteresis_param.scaling = HYST_SCALING;
-  cnf->hysteresis_param.thr_high = HYST_THRESHOLD_HIGH;
-  cnf->hysteresis_param.thr_low = HYST_THRESHOLD_LOW;
-
   cnf->pollrate = conv_pollrate_to_microsecs(DEF_POLLRATE);
   cnf->nic_chgs_pollrate = DEF_NICCHGPOLLRT;
 
@@ -1200,7 +1145,7 @@ ip_prefix_list_flush(struct ip_prefix_list **list)
 
   for (entry = *list; entry; entry = next_entry) {
     next_entry = entry->next;
-    
+
     entry->next = NULL;
     free(entry);
   }
index bd753ef..9a9c5e3 100644 (file)
@@ -189,7 +189,6 @@ struct olsrd_config {
   unsigned char host_emul:1;
   unsigned char allow_no_interfaces:1;
   unsigned char willingness_auto:1;
-  unsigned char use_hysteresis:1;
   unsigned char clear_screen:1;
   unsigned char del_gws:1;             /* Delete InternetGWs at startup */
   uint16_t tos;
@@ -199,7 +198,7 @@ struct olsrd_config {
   uint8_t ipc_connections;
   int8_t debug_level;
   olsr_fib_metric_options fib_metric;
-  struct hyst_param hysteresis_param;
+
   struct plugin_entry *plugins;
   struct ip_prefix_list *hna_entries;
   struct ip_prefix_list *ipc_nets;
index 12e5c42..1676eec 100644 (file)
@@ -155,15 +155,6 @@ olsr_print_cnf(const struct olsrd_config *cnf)
     }
   }
 
-  /* Hysteresis */
-  if (cnf->use_hysteresis) {
-    printf("Using hysteresis:\n");
-    printf("\tScaling      : %0.2f\n", cnf->hysteresis_param.scaling);
-    printf("\tThr high/low : %0.2f/%0.2f\n", cnf->hysteresis_param.thr_high, cnf->hysteresis_param.thr_low);
-  } else {
-    printf("Not using hysteresis\n");
-  }
-
   /* HNA IPv4 and IPv6 */
   if (h) {
     printf("HNA%d entries:\n", cnf->ip_version == AF_INET ? 4 : 6);
@@ -290,26 +281,6 @@ olsr_write_cnf_buf(struct autobuf *abuf, const struct olsrd_config *cnf, bool wr
 
   abuf_appendf(abuf, "}\n");
 
-  /* Hysteresis */
-  abuf_appendf(abuf, "# Hysteresis adds more robustness to the\n"
-               "# link sensing.\n"
-               "# Used by default. 'yes' or 'no'\n" "UseHysteresis\t%s\n\n", cnf->use_hysteresis ? "yes" : "no");
-
-  abuf_appendf(abuf, "# Hysteresis parameters\n"
-               "# Do not alter these unless you know \n"
-               "# what you are doing!\n"
-               "# Set to auto by default. Allowed\n"
-               "# values are floating point values\n"
-               "# in the interval 0,1\n"
-               "# THR_LOW must always be lower than\n"
-               "# THR_HIGH!!\n"
-               "%sHystScaling\t%0.2f\n"
-               "%sHystThrHigh\t%0.2f\n"
-               "%sHystThrLow\t%0.2f\n\n",
-               cnf->use_hysteresis ? "#" : "", cnf->hysteresis_param.scaling,
-               cnf->use_hysteresis ? "#" : "", cnf->hysteresis_param.thr_high,
-               cnf->use_hysteresis ? "#" : "", cnf->hysteresis_param.thr_low);
-
   /* Pollrate */
   abuf_appendf(abuf, "# Polling rate in seconds(float).\n"
                "# Auto uses default value 0.05 sec\n" "Pollrate\t%0.2f\n", conv_pollrate_to_secs(cnf->pollrate));
index ac11d28..b4290b4 100644 (file)
@@ -43,7 +43,6 @@
 #include "defs.h"
 #include "process_package.h"
 #include "mantissa.h"
-#include "hysteresis.h"
 #include "duplicate_set.h"
 #include "mid_set.h"
 #include "olsr.h"
@@ -282,13 +281,6 @@ static void parse_packet(struct olsr *olsr, int size, struct interface *in_if, u
   }
   msgsize = ntohs(olsr_cnf->ip_version == AF_INET ? m->v4.olsr_msgsize : m->v6.olsr_msgsize);
 
-  /*
-   * Hysteresis update - for every OLSR package
-   */
-  if (olsr_cnf->use_hysteresis) {
-    update_hysteresis_incoming(from_addr, in_if, ntohs(olsr->olsr_seqno));
-  }
-
   for (; count > 0; m = (union olsr_message *)((char *)m + msgsize)) {
     bool forward = true;
 
index e99b079..1b32504 100644 (file)
@@ -40,7 +40,6 @@
 
 #include "process_package.h"
 #include "link_set.h"
-#include "hysteresis.h"
 #include "hna_set.h"
 #include "two_hop_neighbor_table.h"
 #include "neighbor_table.h"
@@ -407,15 +406,6 @@ hello_tap(struct hello_message *message,
     olsr_update_packet_loss(lnk);
   }
 
-  /*
-   * Hysteresis
-   */
-  if (olsr_cnf->use_hysteresis) {
-    /* Update HELLO timeout */
-    /* printf("MESSAGE HTIME: %f\n", message->htime);*/
-    olsr_update_hysteresis_hello(lnk, message->htime);
-  }
-
   /* Check if we are chosen as MPR */
   if (lookup_mpr_status(message, in_if)) {
     /* source_addr is always the main addr of a node! */