Hi everyone,

Please help me with the following questions regarding CTP, specifically for
forwarding engine component "CtpForwardingEngineP.nc".
1) In the event handler
  event void SubSend.sendDone(message_t* msg, error_t error) {
..
else if (error != SUCCESS) {
..
else if (ackPending && !call PacketAcknowledgements.wasAcked(msg)) {
..
}
What is the difference between the two conditions? Aren't both of them
suggesting failed delivery by means of absence of ACK? What scenarios would
cause "error != SUCCESS" exactly, possibly besides no ACK?

2) In the same event handler
  event void SubSend.sendDone(message_t* msg, error_t error) {
..
    else if (qe->client < CLIENT_COUNT) {
..
       call SendQueue.dequeue();
..
  }
    else if (call MessagePool.size() < call MessagePool.maxSize()) {
..
      call SentCache.insert(qe->msg);
      call SendQueue.dequeue();
..
It shows forwarded packets from other nodes are cached after successfully
transmitted, for duplicate suppression. However, packets generated
locally (qe->client
< CLIENT_COUNT) are not cached. Since these two kind of packets share the
same send queue, why are they treated differently as to caching?

Your attention is appreciated.
-- 
-Xiaohui Liu
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to