FIX: Drop packages with same seqno in etx_ff (most likely a layer1/2 problem)
authorHenning Rogge <hrogge@googlemail.com>
Sat, 7 Mar 2009 18:44:30 +0000 (19:44 +0100)
committerHenning Rogge <hrogge@googlemail.com>
Sat, 7 Mar 2009 18:44:30 +0000 (19:44 +0100)
lib/lq_etx_ff/src/lq_plugin_etx_ff.c
src/lq_plugin_etx_ff.c

index a1b576d..1698606 100644 (file)
@@ -150,6 +150,13 @@ static void lq_etxff_packet_parser(struct olsr *olsr, struct interface *in_if,
     return;
   }
 
+  if (lnk->last_seq_nr == olsr->olsr_seqno ) {
+#ifndef REMOVE_LOG_WARN
+    struct ipaddr_str buf;
+#endif
+    OLSR_WARN(LOG_LQ_PLUGINS, "Got package with same sequence number from %s\n", olsr_ip_to_string(&buf, from_addr));
+    return;
+  }
   if (lnk->last_seq_nr > olsr->olsr_seqno) {
     seq_diff = (uint32_t) olsr->olsr_seqno + 65536 - lnk->last_seq_nr;
   } else {
index a1b576d..1698606 100644 (file)
@@ -150,6 +150,13 @@ static void lq_etxff_packet_parser(struct olsr *olsr, struct interface *in_if,
     return;
   }
 
+  if (lnk->last_seq_nr == olsr->olsr_seqno ) {
+#ifndef REMOVE_LOG_WARN
+    struct ipaddr_str buf;
+#endif
+    OLSR_WARN(LOG_LQ_PLUGINS, "Got package with same sequence number from %s\n", olsr_ip_to_string(&buf, from_addr));
+    return;
+  }
   if (lnk->last_seq_nr > olsr->olsr_seqno) {
     seq_diff = (uint32_t) olsr->olsr_seqno + 65536 - lnk->last_seq_nr;
   } else {