Tony, thank you for taking the time to look over this!
This is all very interesting that you can see how the message is relayed by jumping from router to router! Very cool stuff indeed! Thanks!
With this new unlocked knowledge, I found the following:
When I pair the IKEA Rodret Dimmer (E2201) via a router device the following happens:
-
The pairing process is starting.
-
The Coordinator (HE) immediately issues the "Transport Key" command towards the IKEA Rodret Dimmer without previously receiving the "Request Key" command. By following the routing chain, I can see that this command reaches the IKEA Rodret Dimmer.
-
Bindings and Attribute Reporting configuration happen ...
-
IKEA Rodret Dimmer issues the "Request key" command towards the Coordinator. After going through the routers chain, this command reaches the Coordinator.
-
The Coordinator ignores this command and does not respond with the "Transport Key" command as expected by the IKEA Rodret Dimmer device. Why?
When I pair the IKEA Rodret Dimmer (E2201) directly to the Coordinator (by keeping it very close):
-
The pairing process is starting.
-
The Coordinator (HE) immediately issues the "Transport Key" command towards the IKEA Rodret Dimmer without previously receiving the "Request Key" command.
-
Bindings and Attribute Reporting configuration happen ...
-
IKEA Rodret Dimmer issues the "Request key" command towards the Coordinator (directly, no routers/hops).
-
The Coordinator responds to this command by sending (again) the "Transport Key" command towards the IKEA Rodret Dimmer.
-
IKEA Rodret Dimmer issues the "Confirm Key" and "Verify Key" commands.
-
IKEA Rodret Dimmer issues the "Permit Join Request" command.
Seems like the Coordinator is refusing to respond to the "Request Key" command if the requesting device is not speaking to it directly, but via a router (the "Request Key" package reaching the Coordinator has wpan.src16 != zbee_nwk.src because wpan.src16 is the address of the last hop, and zbee_nwk.src is the address of the requesting device).
Is this behavior normal or is there a bug/quirk of HE?
PS: I tested only on C-7.