if (call SubSend.send(call AMPacket.destination(msg),
msg,
call SubPacket.payloadLength(msg)) == SUCCESS) {
+ call CollectionDebug.logEventMsg(NET_C_DBG_1,
+ call CollectionPacket.getSequenceNumber(msg),
+ call CollectionPacket.getOrigin(msg),
+ call AMPacket.destination(msg));
dbg("LQI", "%s: Send to %hu success.\n", __FUNCTION__, call AMPacket.destination(msg));
}
fwdbusy = TRUE;
len -= sizeof(lqi_header_t);
call CollectionDebug.logEventMsg(NET_C_FE_RCV_MSG,
- call CollectionPacket.getTestNetworkSeq(msg),
+ call CollectionPacket.getSequenceNumber(msg),
call CollectionPacket.getOrigin(msg),
call AMPacket.destination(msg));
-
if (call RootControl.isRoot()) {
dbg("LQI,LQIDeliver", "LQI Root is receiving packet from node %hu @%s\n", getHeader(msg)->originaddr, sim_time_string());
return signal Receive.receive[id](msg, payload, len);
}
+ else if (call AMPacket.destination(msg) != call AMPacket.address()) {
+ return msg;
+ }
else if (signal Intercept.forward[id](msg, payload, len)) {
dbg("LQI,LQIDeliver", "LQI fwd is forwarding packet from node %hu @%s\n", getHeader(msg)->originaddr, sim_time_string());
return mForward(msg);
message_t* nextMsg() {
int i;
- int inc = call Random.rand16();
+ uint16_t inc = call Random.rand16() & 0xfff;
for (i = 0; i < FWD_QUEUE_SIZE; i++) {
int pindex = (i + inc) % FWD_QUEUE_SIZE;
if (FwdBufBusy[pindex]) {
call SubPacket.payloadLength(msg)) == SUCCESS) {
dbg("LQI", "Packet not acked, retransmit @%s:\n\t%s\n", sim_time_string(), fields(msg));
call CollectionDebug.logEventMsg(NET_C_FE_SENDDONE_WAITACK,
- call CollectionPacket.getTestNetworkSeq(msg),
+ call CollectionPacket.getSequenceNumber(msg),
call CollectionPacket.getOrigin(msg),
call AMPacket.destination(msg));
fail_count ++;
return;
} else {
call CollectionDebug.logEventMsg(NET_C_FE_SENDDONE_FAIL,
- call CollectionPacket.getTestNetworkSeq(msg),
+ call CollectionPacket.getSequenceNumber(msg),
call CollectionPacket.getOrigin(msg),
call AMPacket.destination(msg));
dbg("LQI", "Packet not acked, retransmit fail @%s:\n\t%s\n", sim_time_string(), fields(msg));
}
else if (fail_count >= 5) {
call CollectionDebug.logEventMsg(NET_C_FE_SENDDONE_FAIL_ACK_FWD,
- call CollectionPacket.getTestNetworkSeq(msg),
+ call CollectionPacket.getSequenceNumber(msg),
call CollectionPacket.getOrigin(msg),
call AMPacket.destination(msg));
dbg("LQI", "Packet failed:\t%s\n", fields(msg));
else if (call PacketAcknowledgements.wasAcked(msg)) {
dbg("LQI", "Packet acked:\t%s\n", fields(msg));
call CollectionDebug.logEventMsg(NET_C_FE_FWD_MSG,
- call CollectionPacket.getTestNetworkSeq(msg),
+ call CollectionPacket.getSequenceNumber(msg),
call CollectionPacket.getOrigin(msg),
call AMPacket.destination(msg));
}
call SubPacket.payloadLength(msg)) == SUCCESS) {
dbg("LQI", "Packet not acked, retransmit (%hhu) @%s:\n\t%s\n", fail_count, sim_time_string(), fields(msg));
call CollectionDebug.logEventMsg(NET_C_FE_SENDDONE_WAITACK,
- call CollectionPacket.getTestNetworkSeq(msg),
+ call CollectionPacket.getSequenceNumber(msg),
call CollectionPacket.getOrigin(msg),
call AMPacket.destination(msg));
fail_count ++;
return;
} else {
call CollectionDebug.logEventMsg(NET_C_FE_SENDDONE_FAIL,
- call CollectionPacket.getTestNetworkSeq(msg),
+ call CollectionPacket.getSequenceNumber(msg),
call CollectionPacket.getOrigin(msg),
call AMPacket.destination(msg));
dbg("LQI", "Packet not acked, retransmit fail @%s:\n\t%s\n", sim_time_string(), fields(msg));
}
else if (fail_count >= 5) {
call CollectionDebug.logEventMsg(NET_C_FE_SENDDONE_FAIL_ACK_SEND,
- call CollectionPacket.getTestNetworkSeq(msg),
+ call CollectionPacket.getSequenceNumber(msg),
call CollectionPacket.getOrigin(msg),
call AMPacket.destination(msg));
dbg("LQI", "Packet failed:\t%s\n", fields(msg));
else if (call PacketAcknowledgements.wasAcked(msg)) {
dbg("LQI", "Packet acked:\t%s\n", fields(msg));
call CollectionDebug.logEventMsg(NET_C_FE_SENT_MSG,
- call CollectionPacket.getTestNetworkSeq(msg),
+ call CollectionPacket.getSequenceNumber(msg),
call CollectionPacket.getOrigin(msg),
call AMPacket.destination(msg));
}
hdr->originseqno = seqno;
}
- command uint16_t CollectionPacket.getTestNetworkSeq(message_t* msg) {
- TestNetworkMsg *tn;
- tn = (TestNetworkMsg *)call Packet.getPayload(msg, NULL);
- return tn->seqno;
- }
default event void Send.sendDone(message_t* pMsg, error_t success) {}