This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Zigbee node retransmit and fail ,what will it do next?

Other Parts Discussed in Thread: Z-STACK

hello erveryone, I have a question .

In z-stack -1.4.3, if a node retransmits the data frame for 4 times and fail,what will it do next?

  • Hi,

    Failure seems to be not getting acknowledgment back from the intended recipient. This is responsibility of Application to take care what to do next, either don't send the data again to the device, discover the device again, or may be get on with further transmissions.

    Regards

  • Yeah, failure is not getting acknowledgement back from the coordinator,however I find the end devise node seems to send an orphan notification or make a reconnection  with the coordinator after it fails in retransmission.You can see it in the picture.

    (1) send an orphan notification ,after the noed 0x4927 fails in retransmission. In fact ,I closed the coordinator after the end device send data frame to the coordinator every 10 seconds.so the device node cannot receive the acknowledgement  from the coordinator.

    (2)after the end device node send an orphan notification,it send Beacon request continously before I open the coordinator.

    (3)after I open the coordinator, the coordinator 0x0000 start the network, and the end device node make a reconnection.

  • Hi,

    So certainly this problem id due to not getting acknowledgement. This scenario is created when you manually switched off coordinator. Please ascertain first :

    1) Don't switch off coordinator.

    2) Are you getting MAC level acknowledgement from coordinator.

    3) If yes, then it must be getting dropped at nwk level, which can be due to sequence number mismatch or due to nwk queue full problem, may also be due to dynamic memory allocation. If No then MAC is dropping the packets at MAC layer, which can be due to wrong reads by radio to MAC layer.

    Please follow these steps and tell about MAC behavior of coordinator side.

    Regards,

    Varun

  • Thanks for your suggestion. I find the mac level acknowledgement is lost ,so the zigbee node have to retransmit the data frame. The problem is after the retransmission fails, what will the end device node do? I find it will send an orphan notification,and if it can receive the coordinator realignment command,it will go on transmitting data frame;if it cannot receive the command from the coordinator ,it will try the reconnection! 

    This can be find in the IEEE Std 802.15.4 ™-2003,in page 147and page 156

  • I think answer is in query itself.

  •  I am sorry,I think I donnot explain my question clearly. 

    It's a such scenario, in z-stack-1.4.3 star topology. It has 1coordinator and 5 end device node. Every end device node sends a data frame to the coordinator every 1seconds simutaneously. And I find the node often have to retransmit the data frame and thus fail because of the heavy load.

    What confused me is  when the end device node fail to retransmit ,what will it do next after the reconnection?  Will it still send the former data frame which donnot send to the coordinator instantly, or  it send a new data frame when the timer expired,or send a new data frame instantly regardless  of the timer.          

  • It will go for re-connection as it feels network is not present. It is a nwk level activity(rejoining), which will make the nwk layer buffers go free. So now this becomes the responsibility of application layer to take care of sending the previous data for which it didn't get application level acknowledgment (if APS_ACK is marked in flag while sending the data frame in APS_DATARequest) as well MAC ACK. Ideally it's sole responsibility of Application. 

    So ideally it will transfer packet when timer fires again and application sends previous data(if APS_ACK is marked), else sends new data. This is simply like UDP or TCP.

    Regards,

    Varun

  • Thanks very much! I try to read the source code, but it seems the codes about retransmission and reconnection are not open.I can not  get knowledge of the details.

    I will try using the packet sniffer to obeserve whether it sends the previous data or send new data !

  • In Z stack, I believe you can define 3 different level retransmissions, MAC, NWK and APS

    MAC retransmission is 3 times, so total 4 times.

    NWK retransmission happens once one MAC Tx fails, -DNWK_MAX_DATA_RETRIES

    APS retransmission is little bit different, if MAC Ack is received, but you can not get APS Ack, then you can choose to retransmit -DAPSC_MAX_FRAME_RETRIES

    Hope that helps

    Rui

  • Hi, Rui 

         Thanks for your suggestion. The zigbee protocal  defines these parameters,I find the -DNWK_MAX_DATA_RETRIES and  -DAPSC_MAX_FRAME_RETRIES in the file "f8wConfig.cfg".  I need some time to understand the details.

    Regards,

    yancy