Hi,
I was thinking of a making a simple modification to the
MultiHopEngineM.nc module for my project. I basically want to buffer data
packets, both forwarded and originated, when the parent fails and keep them
buffered till a new parent is found.
However, I'm not sure what the MultiHopEngine is currently doing.
Firstly, I am not able to understand why the return type of
ReceiveMsg.receive is TOS_MsgPtr? What it does is, from what I've
understood, forward intercepted packets, store them in a buffer and return
pointer to packet which it replaced in the buffer. What does it do with this
pointer?
Secondly, suppose I send a packet and sendDone() is signalled for it.
Thus iFwdBufTail moves at the same pace as iFwdBufHead. However, if I send a
packet (packet 'X') and its sendDone() is not signalled and another packet
(packet 'Y') is send in the interim i.e. iFwdBufHead is now two paces ahead
of iFwdBufTail (obviously % FWD_QUEUE_SIZE), even if 'packet Y's' sendDone()
is signalled, it won't be removed from buffer i.e iFwdBufTail won't be
incremented. Thus all packets after 'packet X' will keep getting buffered
even though their sendDone() has been signalled. Finally, say I receive
packet X's sendDone() signal in which case iFwdBufTail gets incremented,
however what about packet Y onwards since their sendDone() has been missed?
Won't the queue be wrongly assumed full?
Please point out where I'm going wrong.
Thanks,
Bharat Naik.
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help