Hello,
I am working with a small network of one docker-based border router and one nRF52840 SED. My border router image is built off of commit a734b6b. I have built and enabled channel monitoring/management on my border router following this
post. I also added a volume to my docker compose such that network parameters survive reboot or container instantiation as discussed
here.
Despite this, I have noticed an odd behavior. If the channel manager causes a channel change (automatically or manually with a command), it creates a new empty pending dataset, sets that dataset channel to the new channel, but doesn't carry over any other parameters, including master key, panid, or network name. These parameters are still set out of band and can be queried from ot-ctl, but they are not part of the dataset any longer. The network functions normally and my SED correctly switches channels, until I reboot my border router or restart my container.
If I reboot my device or restart the container, none of these parameters are saved (because the active dataset is empty) and it populates them with random values. Due to the master key change, my SED can not rejoin the network.
Is this behavior intended? How can I use the channel manager without it erasing network parameters besides the channel?
Attached is an ot-ctl trace before reboot:
> dataset
dataset
Active Timestamp: 430
Channel: 25
Channel Mask: 0x07fff800
Ext PAN ID: 1111111122222222
Mesh Local Prefix: fd78:a9e2:dc9:2619::/64
Master Key: 00112233445566778899aabbccddeeff
Network Name: OpenThread
PAN ID: 0xface
PSKc: be20cb6d1de43841677ba1cae161469b
Security Policy: 672, onrcb
Done
> dataset active
dataset active
Active Timestamp: 430
Channel: 25
Channel Mask: 0x07fff800
Ext PAN ID: 1111111122222222
Mesh Local Prefix: fd78:a9e2:dc9:2619::/64
Master Key: 00112233445566778899aabbccddeeff
Network Name: OpenThread
PAN ID: 0xface
PSKc: be20cb6d1de43841677ba1cae161469b
Security Policy: 672, onrcb
Done
> channel manager change 12
channel manager change 12
Done
> dataset pending
dataset pending
Pending Timestamp: 27
Active Timestamp: 539
Channel: 12
Delay: 113223
Done
> dataset active
dataset active
Active Timestamp: 539
Channel: 12
Done
> channel
channel
12
Done
> masterkey
masterkey
00112233445566778899aabbccddeeff
Done
> panid
panid
0xface
Done
Attached is an ot-ctl trace after reboot:
> state
state
leader
Done
> channel
channel
12
Done
> dataset
dataset
Done
> dataset active
dataset active
Active Timestamp: 539
Channel: 12
Done
> masterkey
masterkey
062da435dd53a551fb3cf3addf164113
Done
> panid
panid
0xe6a9
Done