From d9673ee96fc711747b875b7f48c5ea7906a35217 Mon Sep 17 00:00:00 2001 From: andreaskoepke Date: Fri, 13 Jul 2007 16:48:27 +0000 Subject: [PATCH] fix exotic backoff bug, check validity of duplicate supression table first --- tos/chips/tda5250/mac/RedMacP.nc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tos/chips/tda5250/mac/RedMacP.nc b/tos/chips/tda5250/mac/RedMacP.nc index b51f4ae6..164813de 100644 --- a/tos/chips/tda5250/mac/RedMacP.nc +++ b/tos/chips/tda5250/mac/RedMacP.nc @@ -535,9 +535,9 @@ implementation bool rVal = TRUE; uint8_t i; for(i=0; i < MSG_TABLE_ENTRIES; i++) { - if((getHeader(msg)->src == knownMsgTable[i].src) && - (((getHeader(msg)->token) & TOKEN_ACK_MASK) == knownMsgTable[i].token) && - (knownMsgTable[i].age < MAX_AGE)) { + if((knownMsgTable[i].age < MAX_AGE) && + (getHeader(msg)->src == knownMsgTable[i].src) && + (((getHeader(msg)->token) & TOKEN_ACK_MASK) == knownMsgTable[i].token)) { knownMsgTable[i].age = 0; rVal = FALSE; break; @@ -983,8 +983,10 @@ implementation } else { sdDebug(203); - updateLongRetryCounters(); - action = RX; + updateLongRetryCounters(); // this will eventually schedule the right backoff + macState = SLEEP; // so much traffic is going on -- take a nap + setSleepMode(); + action = INIT; // a difficult way to say: do nothing } } else { -- 2.39.2