Backwards compatibility with thread-reference-20200818

100 views
Skip to first unread message

Arnulf Rupp

unread,
Nov 25, 2021, 1:14:26 PM11/25/21
to openthread-users
I have and issue with joining an existing Thread network with a more recent version of Thread. The existing network is based on the August 2020 reference implementation.
After the proper networkkey is configured, the device seems to join the network but never receives the complete dataset. Attach does not seem working.
Doing the same in a network with recent devices works normal.
Recent devices  cannot join networks created with "older" devices from the market.

Existing network:
> dataset active
Active Timestamp: 1
Channel: 11
Channel Mask: 07fff800
Ext PAN ID: cdb8ca3349fd9a48
Mesh Local Prefix: fd52:6e79:15b2:e983/64
Master Key: 054bc6e8ca9d3d5b29d45f6b0b8b6d94
Network Name: OpenThread-5565
PAN ID: 0x5565
PSKc: fab219667c45e9914523ccbb1320dae5
Security Policy: 0, onrcb
Done

Joiner:
> factoryreset
...
> scan
| J | Network Name     | Extended PAN     | PAN  | MAC Address      | Ch | dBm | LQI |
+---+------------------+------------------+------+------------------+----+-----+-----+
| 0 | OpenThread-5565  | cdb8ca3349fd9a48 | 5565 | 26258d8934684512 | 11 | -61 | 128 |
> thread stop
> ifconfig down
> dataset networkkey 054bc6e8ca9d3d5b29d45f6b0b8b6d94
> dataset panid 0x5565
> dataset channel 11
> dataset commit active
> ifconfig up
> thread start
> state
child
> dataset active
Channel: 11
Network Key: 054bc6e8ca9d3d5b29d45f6b0b8b6d94
PAN ID: 0x5565

Device remains child and never receives a proper dataset.
The same behavior is observed when using MeshCop commissioning.

An example for a "recent device" showing that issue is the CLI example of the Nordic SDK v1.7.0 running on a nRF52840 dongle.

Any help is appreciated.

Arnulf


 

Arnulf Rupp

unread,
Nov 25, 2021, 2:59:05 PM11/25/21
to openthread-users
More research on the topic discovered that new network created with:
> dataset init new
in  thread-reference-20200818 sets the key rotation time to 0 while in newer versions its set to the default value of 625 as specified in chapter 7.1.2 of the Thread 1.1.1 specification.

The more recent devices apparently verify the validity of the dataset and discover 0 is not an allowed value for key rotation time.
If the thread-reference-20200818 device properly sets key rotation time, then the more recent device can also join.

The may be an ugly problem with devices in the market not setting key rotation time properly.

still shows datasets with "Security Policy: 0, onrcb".

Jonathan Hui

unread,
Jan 14, 2022, 9:49:46 PM1/14/22
to Arnulf Rupp, openthread-users
Thanks for reporting this issue.

I have submitted a proposed fix in openthread/openthread#7323.

--
Jonathan Hui



--
You received this message because you are subscribed to the Google Groups "openthread-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openthread-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/b59c7cd0-f2d6-49f0-b955-d9c7dd9a65c3n%40googlegroups.com.

Jonathan Hui

unread,
Jan 18, 2022, 6:12:32 PM1/18/22
to Arnulf Rupp, openthread-users
Thanks again for reporting this issue - openthread/openthread#7323 has been merged.

--
Jonathan Hui


Reply all
Reply to author
Forward
0 new messages