[Tinyos-devel] ctp vs other radio clients

Philip Levis pal at cs.stanford.edu
Sat Dec 6 09:11:11 PST 2008


On Dec 6, 2008, at 8:56 AM, Omprakash Gnawali wrote:

>
> Lets say queue is not NULL in the above case, and call goes down to
> the CC2420 stack and somehow the busy state is shared among all the
> clients? Did you get a chance to look at this concern I had:

AMQueueImplP serializes all client calls to AMSend; note the check for  
if the queue is empty.

>
>
> "Is it possible that the busy state is stack-wide rather than per type
> in the implementation of tep116? Is there one instance of StateC for
> CC2420 stack (UniqueSendC.nc) ?"
>
> In DefaultLplP.nc:
>
>  command error_t Send.send(message_t *msg, uint8_t len) {
> ...
>    if(call SendState.requestState(S_LPL_SENDING) == SUCCESS) {
>
> My concern was if there is one SendState, this could happen?

Possibly. But the queue should only have called AMSend on the  
underlying AM stack if had no outstanding packet transmissions. This  
isn't an issue of multiple clients conflicting (unless there's a bug  
in the queue). I think it's about the underlying stack sometimes  
returning EBUSY when there isn't an outstanding call to AMSend.

Phil


More information about the Tinyos-devel mailing list