NRF52840DK
NCS 2.8.0
Hello,
We are developing an application where a device with router function must join a coordinator network. The coordinator uses OOB (proprietary IR) to transmit the parameters of the network it forms to the router (PAN Id, Extended PAN Id, Channel). The router should not join networks whose PAN Id differs from the one transmitted from the coordinator.
To test this behavior, we use the Zigbee shell example, on two NRF52840DK boards, using the following commands:
Router board:
uart:~$ bdb role zr
Router role set
Done
uart:~$ bdb panid 0x57ca
Done
uart:~$ bdb start
Started router
Done
[00:03:53.518,218] <inf> zigbee_app_utils: Production configuration is not present or invalid (status: -1)
[00:03:53.518,676] <inf> zigbee_app_utils: Zigbee stack initialized
[00:03:53.524,139] <inf> zigbee_app_utils: Device started for the first time
[00:03:53.524,139] <inf> zigbee_app_utils: Start network steering
[00:03:53.524,169] <inf> zigbee_app_utils: Started network rejoin procedure.
[00:03:56.292,907] <inf> zigbee_app_utils: Unimplemented signal (signal: 54, status: 0)
[00:03:57.324,737] <inf> zigbee_app_utils: Unimplemented signal (signal: 54, status: 0)
[00:03:57.327,362] <inf> zigbee_app_utils: Joined network successfully (Extended PAN ID: f4ce3694d85533d8, PAN ID: 0x57cc)
[00:03:57.327,392] <inf> zigbee_app_utils: Network rejoin procedure stopped.
uart:~$
Coordinator board:
uart:~$ bdb role zc
Zigbee shell does not erase the NVRAM between reboots, but is not aware of the previously configured role.
Remember to set the coordinator role after rebooting the device.
Coordinator set
Done
uart:~$ bdb start
Started coordinator
Done
[00:02:12.252,075] <inf> zigbee_app_utils: Production configuration is not present or invalid (status: -1)
[00:02:12.252,563] <inf> zigbee_app_utils: Zigbee stack initialized
[00:02:12.258,056] <inf> zigbee_app_utils: Device started for the first time
[00:02:12.258,087] <inf> zigbee_app_utils: Start network formation
[00:02:12.810,516] <inf> zigbee_app_utils: Unimplemented signal (signal: 54, status: 0)
[00:02:12.812,622] <inf> zigbee_app_utils: Network formed successfully, start network steering (Extended PA N ID: f4ce3694d85533d8, PAN ID: 0x57cc)
[00:02:13.269,042] <inf> zigbee_app_utils: Unimplemented signal (signal: 54, status: 0)
[00:02:13.271,697] <inf> zigbee_app_utils: Joined network successfully (Extended PAN ID: f4ce3694d85533d8, PAN ID: 0x57cc)
[00:03:19.457,763] <inf> zigbee_app_utils: Device update received (short: 0xe3f3, long: f4ce36dec1d2db97, s tatus: 1)
[00:03:19.709,777] <inf> zigbee_app_utils: New device commissioned or rejoined (short: 0xe3f3)
[00:03:20.664,642] <inf> zigbee_app_utils: Device authorization event received (short: 0xe3f3, long: f4ce36 dec1d2db97, authorization type: 1, authorization status: 0)
[00:03:20.769,897] <inf> zigbee_app_utils: Unimplemented signal (signal: 54, status: 0)
Despite the fact that the PAN Id for the router is set different from that generated a coordinator (0x57ca vs 0x57cc), the router still successfully connected to the network. How can I make sure that the router connects only to a specific network with a specific PAN Id?