Zigbee Network Rejoin Issue while Zigbee Co-ordinator Reboot

cancel
Showing results for 
Search instead for 
Did you mean: 

Zigbee Network Rejoin Issue while Zigbee Co-ordinator Reboot

1,545 Views
kanji_viroja
Contributor III

Hi Support Team,

Understand Below Scenario:

1) Zigbee Co-ordinator Create Network 

2) Router Device Joined Network Successfully

3)

Issue 1: If Zigbee Co-ordinator Rebooted then Router Device doesn't get any information about the ZC rebooted so ZR needs to rejoin the network. so in that case what to do? so the router can get a notification to rejoin network immediately because of Zigbee network again available by ZC.

Issue 2: How to monitor ZC <---> ZR Zigbee network connection continuously without increasing much more traffic in-network? so if any case we lost network at both ends then the device should be put into F&B mode.

As per my current implementation:

A) If the Router reset then it can be able to rejoin the network successfully. That is working fine.

B) If the Router device left network due to management leave request then device put into find & bind mode. That is also working fine.

Please suggest a better solution to the above mentioned two issues (Issue 1 & 2).

Thank you in Advance.

Thank & Best Regards,

Kanji Viroja.

Labels (2)
Tags (1)
11 Replies

1,088 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Kanji,

Issue 1: What is the AN that you are working on?

For example, the JN-AN-1229 doesn't save the routing table and the network information that was created. If the device was reset it will create a new network set up.

Did you capture the packets in the air?

Issue 2: What is the reason that you put the Router in Find and Bind?

If for any reason the router leaves the network, it will provide a leave broadcast.

If the Coordinator turns off, the router will be sending the link status without the ZC.

Regards,

Mario

0 Kudos

1,088 Views
kanji_viroja
Contributor III

Hi mario_castaneda‌,

Issue 2: What is the reason that you put the Router in Find and Bind?

If for any reason the router leaves the network, it will provide a leave broadcast.

If the Coordinator turns off, the router will be sending the link status without the ZC.

If suppose zigbee router devices joined via router then how will you get information about zigbee coordinator in neighbour table?

scenario:

Zigbee Coordinator <---> Device A <----> Device B <----> Device C.

I assume that, Device C neighbour table doesn't have entry of the coordinator. if I am wrong then please correct me. so in that case how will you make sure through link status? 

Thanks & Regards,

Kanji.   

0 Kudos

1,088 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Kanji,

The Coordinator has the short address 0x0000 so in the routers application, you could set a simple command. With this, you could send a broadcast that the coordinator is gone for all your devices.

Device C neighbor table doesn't have an entry of the coordinator. It is not present, but you know the Coordinator's short address.

Regards,

Mario

1,088 Views
kanji_viroja
Contributor III

Hi mario_castaneda ,

I think that solution also not cover both scenario. Because it is just inform to router/end-device knows that coordinator gone. But coordinator doesn't get any information about the router/end-device connection status.

I have another thought on that if that is working then this issue solve with very simple way.

Please see the below things:

Zigbee Application : Coordinator, Router

=> Router already reporting their attribute on fix interval of time. so if we can get ACK of report attribute on application layer then we can solve both the problem without any extra stuff need to add in firmware. 

A) Router get ACK that means report attribute successfully reached to coordinator and coordinator also update those router devices status as online. If withing time duration doesn't receive any report that means device goes offline.

B) If Router doesn't get any ACK that means coordinator gone else coordinator is online.

What do you say about my above thought? Does it works? If yes then, How we can set such a things to get APS ACK of report attribute?   

Thanks & Best Regards,

Kanji.

0 Kudos

1,088 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Kanji,

What do you say about my above thought? Does it works? If yes then,

Yes, you are implementing in your application this workaround. You only need to set the parameters for the reporting attribute.

How we can set such a things to get APS ACK of report attribute?

Look at the ZPS_EVENT_APS_DATA_CONFIRM event. APP_vHandleZclEvents, be sure that is from a reporting command.

Regards,

Mario

1,088 Views
kanji_viroja
Contributor III

Many Thanks mario_castaneda‌ for great help and given right direction. I have done online/offline mechanism based on ACK and it is working fine now.      

1,088 Views
kanji_viroja
Contributor III

Hi mario_castaneda ,

I am using below list of application with JN5179 hardware module:

1) Zigbee Co-ordinator (JN-AN-1216-Zigbee-3-0-IoT-ControlBridge - ZC)

2) Zigbee Router (JN-AN-1217-Zigbee-3-0-Base-Device - ZR)

Issue 2: What is the reason that you put the Router in Find and Bind?

If for any reason the router leaves the network, it will provide a leave broadcast.

If the Coordinator turns off, the router will be sending the link status without the ZC.

Actually, I want to do such things like when Zigbee co-ordinator power off in that case all connected router device should have to know that their status out of network. While Zigbee network again available at that time all previously connected router devices tries to rejoin network with some retry mechanism(3 attempt). If within max attempt not rejoin network then again router should be in find & bind mode. so continuously searching available network and that will be only join if any Zigbee co-ordinator whitelisted that IEEE address.

As you have suggested, We can get information of current network status from link status. so Does it possible get this information in application layer? if you can provide me those APIs set which can provide this information then it's great help from your end.

Thank you.

Thanks & Best Regards,

Kanji.

0 Kudos

1,088 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Kanji,

If you want to turn off the Coordinator for some time. Before you turn off the coordinator could send an application command that it will turn off. In other words, you could create an APS command that sent to the routers that the coordinator will turn off. But it is part of your application.

However, the routers will know that the coordinator is gone if you send some command to the direction 0x0000.

Regards,

Mario

0 Kudos

1,088 Views
kanji_viroja
Contributor III

mario_castaneda 

Yes. As per your thought, That is right. But actually, We don't know the cause of co-ordinator turn off in that case how to cure that scenario. For that I am looking for solution.

Do we have any chance to get any information of connection break down in neighbour table (i.e: age parameter)? Look at the below code snippet: 

FILE: JN-SW-4270/Components/ZigbeeCommon/Source/appZpsExtendedDebug.c

/****************************************************************************
*
* NAME: vDisplayNT
*
* DESCRIPTION:
* Displays the neighbor table
*
* PARAMETERS: None
*
*
* RETURNS:
* None
*
****************************************************************************/
PUBLIC void vDisplayNT( void )
{
ZPS_tsNwkNib * thisNib = ZPS_psNwkNibGetHandle(ZPS_pvAplZdoGetNwkHandle());
uint8 i;

DBG_vPrintf(TRACE_ZBP_UTILS, "\r\nNT Size: %d\n", thisNib->sTblSize.u16NtActv);

for( i = 0 ; i < thisNib->sTblSize.u16NtActv ; i++ )
{
DBG_vPrintf(TRACE_ZBP_UTILS, "SAddr: 0x%04x - ExtAddr: 0x%016llx - LQI: %i - Failed TX's: %i - Auth: %i - %i %i %i %i %i %i - Active: %i - %i %i %i\n",
thisNib->sTbl.psNtActv[i].u16NwkAddr,
ZPS_u64NwkNibGetMappedIeeeAddr(ZPS_pvAplZdoGetNwkHandle(),thisNib->sTbl.psNtActv[i].u16Lookup),
thisNib->sTbl.psNtActv[i].u8LinkQuality,
thisNib->sTbl.psNtActv[i].u8TxFailed,
thisNib->sTbl.psNtActv[i].uAncAttrs.bfBitfields.u1Authenticated,
thisNib->sTbl.psNtActv[i].uAncAttrs.bfBitfields.u1DeviceType,
thisNib->sTbl.psNtActv[i].uAncAttrs.bfBitfields.u1ExpectAnnc,
thisNib->sTbl.psNtActv[i].uAncAttrs.bfBitfields.u1LinkStatusDone,
thisNib->sTbl.psNtActv[i].uAncAttrs.bfBitfields.u1PowerSource,
thisNib->sTbl.psNtActv[i].uAncAttrs.bfBitfields.u1RxOnWhenIdle,
thisNib->sTbl.psNtActv[i].uAncAttrs.bfBitfields.u1SecurityMode,
thisNib->sTbl.psNtActv[i].uAncAttrs.bfBitfields.u1Used,
thisNib->sTbl.psNtActv[i].uAncAttrs.bfBitfields.u2Relationship,
thisNib->sTbl.psNtActv[i].u8Age,
thisNib->sTbl.psNtActv[i].uAncAttrs.bfBitfields.u3OutgoingCost
);
}
}

Note*: Please look at bold fonts which indicate age field.

Please provide your appropirate input on above query.

Thank you.

Thanks & Best Regards,

Kanji Viroja.

0 Kudos

1,088 Views
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Kanji,

I think is not the best way to check if the Coordinator is active or not.

You could add an APS command in the router application and wait for the ACK. If the router doesn't receive that ACK, you could be sure that the coordinator is gone.

Regards,

Mario

0 Kudos

1,088 Views
kanji_viroja
Contributor III

Hi mario_castaneda ,

If you can assume if I have 200 nodes join in network in that case how much traffic will be generate in network? Do you think JN5179 able to handle that traffic along with normal functionality of attribute reporting and cluster specific commands transaction.

Thank & Regards,

Kanji.      

0 Kudos