From 48fb9dda9e2ea52a818e595ea98a90d6483c2278 Mon Sep 17 00:00:00 2001 From: Joakim Eriksson Date: Sun, 13 Feb 2011 11:25:53 +0100 Subject: [PATCH] fixed of0 to respect min hop rank increase --- core/net/rpl/rpl-of0.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/net/rpl/rpl-of0.c b/core/net/rpl/rpl-of0.c index daec2104c..a108acc45 100644 --- a/core/net/rpl/rpl-of0.c +++ b/core/net/rpl/rpl-of0.c @@ -69,6 +69,7 @@ reset(rpl_dag_t *dag) static rpl_rank_t calculate_rank(rpl_parent_t *p, rpl_rank_t base_rank) { + rpl_rank_t increment; if(base_rank == 0) { if(p == NULL) { return INFINITE_RANK; @@ -76,12 +77,14 @@ calculate_rank(rpl_parent_t *p, rpl_rank_t base_rank) base_rank = p->rank; } - if((rpl_rank_t)(base_rank + DEFAULT_RANK_INCREMENT) < base_rank) { + increment = p != NULL ? p->dag->min_hoprankinc : DEFAULT_RANK_INCREMENT; + + if((rpl_rank_t)(base_rank + increment) < base_rank) { PRINTF("RPL: OF0 rank %d incremented to infinite rank due to wrapping\n", base_rank); return INFINITE_RANK; } - return base_rank + DEFAULT_RANK_INCREMENT; + return base_rank + increment; }