How to force a thread node to leave the network

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

How to force a thread node to leave the network

跳至解决方案
1,800 次查看
kimnyholm
Contributor II

We have a simple setup using two FRDMKW41Z evaluation boards. One runs the frdmkw41z_wireless_examples_thread_end_device_freertos reference project, the other the frdmkw41z_wireless_examples_thread_router_eligible_device_freertos project.

Using the shell on the boards we create the network on the router and joins the network on the end device.

Now we want to exclude the end device from the network.

Using the shell we have tried different things on the router, e.g. below sequence:
- factoryreset
- thr create
- thr joiner removeall

However the end device is still in the network, e.g. when pressing SW3 the LED on the router changes.

What measures can the router do in order to get the node of the network?

0 项奖励
回复
1 解答
1,588 次查看
jc_pacheco
NXP Employee
NXP Employee

Hi Kim,

Unfortunately, you can't remove an end device from the network without asking him to detach (Thread 1.1), this is because the end device will already have the network key and will try to rejoin the network through another parent when it detects it's not connected to the last known parent.

You could remotely ask the end device to "factory reset" or "detach" using a CoAP command similar to how it's done when "#define LARGE_NETWORK 1" is defined. See "gAPP_RESET_URI_PATH" URI but modify it as Unicast. This would require the end device to do a data request to get this packet.

Another (not recommended) option could be to use mac filtering... but you'd need to add a rule to reject that specific device on all routers. And the device would never rejoin the network until that rule is removed.

-JC

在原帖中查看解决方案

0 项奖励
回复
4 回复数
1,589 次查看
jc_pacheco
NXP Employee
NXP Employee

Hi Kim,

Unfortunately, you can't remove an end device from the network without asking him to detach (Thread 1.1), this is because the end device will already have the network key and will try to rejoin the network through another parent when it detects it's not connected to the last known parent.

You could remotely ask the end device to "factory reset" or "detach" using a CoAP command similar to how it's done when "#define LARGE_NETWORK 1" is defined. See "gAPP_RESET_URI_PATH" URI but modify it as Unicast. This would require the end device to do a data request to get this packet.

Another (not recommended) option could be to use mac filtering... but you'd need to add a rule to reject that specific device on all routers. And the device would never rejoin the network until that rule is removed.

-JC

0 项奖励
回复
1,588 次查看
kimnyholm
Contributor II

Hi JC

Thank you for your response. We will go for the coap factoryreset.

Regards

Kim

0 项奖励
回复
1,588 次查看
jc_pacheco
NXP Employee
NXP Employee

Hi Kim,

In shell, use "thr detach" (THR_NwkDetach(threadInstanceID)) to remove the node from the network.

By default, the Thread demos start a commissioner to allow all devices to join to the network, you need to remove this rule, add the joiner's PSKD + EUI and send the "sync steering" command.

pastedImage_3.png

Please refer to <SDK path>\docs\wireless\Thread\Kinetis Thread Stack Shell Interface User's Guide.pdf for Shell documentation.

Regards,

JC

0 项奖励
回复
1,588 次查看
kimnyholm
Contributor II

Hi JC

We are aware the detach command and the catch all joiner rule.

My question was, assuming your setup above, how do we remove the node with EUI ending with "...DEF" from the network, after is has successfully joined.

We have to do it using shell/api on the router only and the method should also handle the situation where the node to be removed is not currently online.

Regards

Kim

0 项奖励
回复