How to leave device force fully from NXP Zigbee 3.0 stack

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

How to leave device force fully from NXP Zigbee 3.0 stack

跳至解决方案
3,664 次查看
kanji_viroja
Contributor III

Hi Support Team,

I want to remove a device from the network without any bother if it is online or power off. How to clear device-specific information from the stack. so the coordinator itself not allowed to rejoin that device again in network.

Issue Description: Currently, Zigbee Coordinator is sending management leave request but there is device power off due to not leave and also coordinator not getting leave confirmation. so once the device again powers up and it has rejoined the Zigbee network successfully. 
标签 (3)
0 项奖励
1 解答
3,613 次查看
mario_castaneda
NXP TechSupport
NXP TechSupport

 

Hi Kanji,

You could use the API ZPS_bAplZdoTrustCenterRemoveDevice

This function can be used by the Trust Centre to delete a node in its information base.

Regards,

Mario

在原帖中查看解决方案

13 回复数
3,523 次查看
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Kanji,

The Install code can be used to create the link key used to authenticate a node into a centralized security network and pass the network key to the node. The install code and derived link key protect the network key with high security.

In other words, in your case, the node that was power off and then power on has the network key. It can enter the network again.

Regards,

Mario

3,521 次查看
kanji_viroja
Contributor III

Hi @mario_castaneda ,

If I removed the link key using this API ZPS_teStatus ZPS_eAplZdoRemoveLinkKey( uint64 u64IeeeAddr) then also device again enter in a network.


Thanks & Regards,

Kanji.

0 项奖励
3,511 次查看
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi,

The device should receive the leave command when it is power on. Otherwise, the device doesn't erase the network information.

You could change the network key to avoid that the device rejoins the network.

Regards,

Mario

0 项奖励
3,507 次查看
kanji_viroja
Contributor III

Hi @mario_castaneda ,

You could change the network key to avoid that the device rejoins the network.

Here, we have two scenarios happening:

scenario-1:
The coordinator doesn't remove end devices in that case, we can expect to device rejoin successfully. In case a device goes offline then it should be back online.

scenario-2:

The coordinator has removed the specific device and that time device is powered off. so definitely it will not leave the network. whenever the device again powered it has joined the successful network.

As per your feedback, If we removed the network key on every power cycle then scenario-1 will be failed. Am I right?

Thanks & Regards,

Kanji.

0 项奖励
3,500 次查看
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi,

 

As per your feedback, If we removed the network key on every power cycle then scenario-1 will be failed. Am I right?

Yes, you are right. In Scenario-2, you could implement a polling routine, and be sure that if the device comes back you could send the leave command again.

Is the node a SED?

Regards,

Mario

0 项奖励
3,563 次查看
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Kanji,

Is it possible that you could print out the vDisplayNWKKey and the vDisplayAPSTable before and after calling the ZPS_bAplZdoTrustCenterRemoveDevice API?

Also, what is the response that you are seeing in the sniffer log when the SED power on?

Regards,

Mario

0 项奖励
3,555 次查看
kanji_viroja
Contributor III

Hi Mario, 

We are using the same install code for all devices. Here, I have attached log file & sniffer log. Please look into that.

0 项奖励
3,550 次查看
kanji_viroja
Contributor III

IEEE Address 0x158d0001930330
PanID 0x7f4c
CurRadioChannel 0x0f
Transmit Power 0x08
NWK KEY: 30 75 b6 c3 2c 41 12 6f e8 cd 2e db 64 19 0a 07

0 项奖励
3,614 次查看
mario_castaneda
NXP TechSupport
NXP TechSupport

 

Hi Kanji,

You could use the API ZPS_bAplZdoTrustCenterRemoveDevice

This function can be used by the Trust Centre to delete a node in its information base.

Regards,

Mario

3,584 次查看
kanji_viroja
Contributor III

Hi @mario_castaneda , Stil I am getting issue while leave request send to device. Unfortuantely device is powered off after powered up device then again successfully device rejoin even I have removed device info from the trust center using this ZPS_bAplZdoTrustCenterRemoveDevice().

0 项奖励
3,607 次查看
kanji_viroja
Contributor III

@mario_castaneda , I appreciate your effort and quick resolution. Thank you so much man!!!

3,643 次查看
mario_castaneda
NXP TechSupport
NXP TechSupport

Hi Kanji,

I hope you are doing great.

As the device is power off or could be in sleep mode, the device won't receive any data.

The parent will try to reach the device 3 times, and if the case of a leave command, the parent will erase the information from the routing table. Unfortunately, the SED has the Zigbee network key and it could rejoin again without any issue.

So, you have to change the Zigbee network key or poll for the data request to send the leave request again. 

You could look at the B.2 Sending Data to Sleeping End Devices and B.2.1 Acknowledged Data Transmission to Sleeping End Device

https://www.nxp.com/docs/en/user-guide/JN-UG-3048.pdf

Regards,

Mario

0 项奖励
3,626 次查看
kanji_viroja
Contributor III

Hi @mario_castaneda ,

 

Actually, I want to intentionally remove the device from the coordinator Zigbee stack. that means I wanna clear that device-specific stuff from the stack so next time it will not able to communicate with Zigbee coordinator. 

i.e: 

B.3 Clearing Stack Context Data Before a Rejoin
- suppose to be a device is powered off and a leave request sent to the device, but it was not able to respond and not leave from the network. Instead, if we can remove device-specific things from the coordinator stack then definitely CO itself not allowed further communication with that specific device. It is one kind of leave perform at the coordinator side. Is this possible to do that? so which kind of information remove/delete in the coordinator so we can achieve it.

FYI: We are using install code based link key security level.

0 项奖励