X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Flib%2Fnet%2Fctp%2FCtpRoutingEngineP.nc;h=4657a00f20ccffc96657bcd4079e827f207a80b0;hb=d4537ed55f2a5d54a9206f15c69b1ec63a490d2c;hp=ec0d0acdf707cc9fe134f6919dc0c7664dc1317b;hpb=a841fa524b527c33bc3e3cb36e2a685d506aa070;p=tinyos-2.x.git diff --git a/tos/lib/net/ctp/CtpRoutingEngineP.nc b/tos/lib/net/ctp/CtpRoutingEngineP.nc index ec0d0acd..4657a00f 100644 --- a/tos/lib/net/ctp/CtpRoutingEngineP.nc +++ b/tos/lib/net/ctp/CtpRoutingEngineP.nc @@ -242,16 +242,9 @@ implementation { /* Is this quality measure better than the minimum threshold? */ // Implemented assuming quality is EETX bool passLinkEtxThreshold(uint16_t etx) { - return TRUE; return (etx < ETX_THRESHOLD); } - /* Converts the output of the link estimator to path metric - * units, that can be *added* to form path metric measures */ - uint16_t evaluateEtx(uint16_t quality) { - //dbg("TreeRouting","%s %d -> %d\n",__FUNCTION__,quality, quality+10); - return (quality + 10); - } /* updates the routing information, using the info that has been received * from neighbor beacons. Two things can cause this info to change: @@ -286,8 +279,8 @@ implementation { i, entry->neighbor, entry->info.parent); continue; } - /* Compute this neighbor's path metric */ - linkEtx = evaluateEtx(call LinkEstimator.getLinkQuality(entry->neighbor)); + + linkEtx = call LinkEstimator.getLinkQuality(entry->neighbor); dbg("TreeRouting", "routingTable[%d]: neighbor: [id: %d parent: %d etx: %d retx: %d]\n", i, entry->neighbor, entry->info.parent, linkEtx, entry->info.etx); @@ -400,8 +393,7 @@ implementation { beaconMsg->etx = routeInfo.etx; beaconMsg->options |= CTP_OPT_PULL; } else { - beaconMsg->etx = routeInfo.etx + - evaluateEtx(call LinkEstimator.getLinkQuality(routeInfo.parent)); + beaconMsg->etx = routeInfo.etx + call LinkEstimator.getLinkQuality(routeInfo.parent); } dbg("TreeRouting", "%s parent: %d etx: %d\n", @@ -544,8 +536,7 @@ implementation { if (state_is_root == 1) { *etx = 0; } else { - // path etx = etx(parent) + etx(link to the parent) - *etx = routeInfo.etx + evaluateEtx(call LinkEstimator.getLinkQuality(routeInfo.parent)); + *etx = routeInfo.etx + call LinkEstimator.getLinkQuality(routeInfo.parent); } return SUCCESS; } @@ -670,7 +661,6 @@ implementation { if (entry->neighbor == routeInfo.parent) continue; neighEtx = entry->info.etx; - //neighEtx = evaluateEtx(call LinkEstimator.getLinkQuality(entry->neighbor)); found |= (pathEtx < neighEtx); } return found; @@ -709,7 +699,7 @@ implementation { error_t routingTableUpdateEntry(am_addr_t from, am_addr_t parent, uint16_t etx) { uint8_t idx; uint16_t linkEtx; - linkEtx = evaluateEtx(call LinkEstimator.getLinkQuality(from)); + linkEtx = call LinkEstimator.getLinkQuality(from); idx = routingTableFind(from); if (idx == routingTableSize) { @@ -809,7 +799,7 @@ implementation { command uint16_t CtpRoutingPacket.getEtx(message_t* msg) { return getHeader(msg)->etx; } - command void CtpRoutingPacket.setEtx(message_t* msg, uint8_t etx) { + command void CtpRoutingPacket.setEtx(message_t* msg, uint16_t etx) { getHeader(msg)->etx = etx; }