From 1913e1a9367a7a8dddb18bd01c1359c5f7641458 Mon Sep 17 00:00:00 2001 From: zhitao Date: Thu, 22 Oct 2009 13:11:20 +0000 Subject: [PATCH] prevent neighbor ETX from wrap-over --- core/net/rime/neighbor.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/net/rime/neighbor.c b/core/net/rime/neighbor.c index 07d8fe758..e3a06636b 100644 --- a/core/net/rime/neighbor.c +++ b/core/net/rime/neighbor.c @@ -33,7 +33,7 @@ * * This file is part of the Contiki operating system. * - * $Id: neighbor.c,v 1.19 2009/10/21 21:25:10 nifi Exp $ + * $Id: neighbor.c,v 1.20 2009/10/22 13:11:20 zhitao Exp $ */ /** @@ -150,6 +150,9 @@ neighbor_timedout_etx(struct neighbor *n, uint8_t etx) { if(n != NULL) { n->etxs[n->etxptr] += etx; + if(n->etxs[n->etxptr] > RTMETRIC_MAX / NEIGHBOR_ETX_SCALE) { + n->etxs[n->etxptr] = RTMETRIC_MAX / NEIGHBOR_ETX_SCALE; + } n->etxptr = (n->etxptr + 1) % NEIGHBOR_NUM_ETXS; } }