Does each version of ncs correspond to an OpenThread Border Router docker image version?

HI,

I tested the light_bulb with the following configuration, but there are some questions, could you please help me to answer my questions?

  • Raspberry Pi 4B as Board Router and build ubuntu system
  • nRF52840 dongle build coprocesse as RCP
  • nRF5340DK build light_bulb FW
  • A WIFI router that supports IPV6

(1)install border router by docker

sudo systemctl start docker

(2)Create an IPV6 network in Docker for the OpenThread Border Router container

sudo docker network create --ipv6 --subnet fd11:db8:1::/64 -o com.docker.network.bridge.name=otbr0 otbr

(3)Download a compatible version of the OpenThread border Router docker image

sudo docker pull nrfconnect/otbr:a892bf7
//Through the documentation, I found the following versions corresponding to ncs
//sudo docker pull nrfconnect/otbr:1813352      //For ncs V2.1.1
//sudo docker pull nrfconnect/otbr:0895ad5		//For ncs V2.2.0
//sudo docker pull nrfconnect/otbr:a892bf7		//For ncs V2.3.0
//sudo docker pull nrfconnect/otbr:9185bda		//For ncs V2.4.0

(4)Ensure that packets sent to devices in the Thread network are routed through the OpenThread Border Router container in Docker

sudo ip -6 route add fd11:22::/64 dev otbr0 via fd11:db8:1::2

(5)

sudo modprobe ip6table_filter

(6)Start the OpenThread border router container

sudo docker run -it --rm --privileged --name otbr --network otbr -p 8080:80 \
--sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" \
--volume /dev/ttyACM0:/dev/radio nrfconnect/otbr:a892bf7 --radio-url spinel+hdlc+uart:///dev/radio?uart-baudrate=1000000

(7)Get and store the current active action data set from the Thread Border Router

sudo docker exec -it otbr sh -c "sudo ot-ctl dataset active -x"

(8)Debug to Thread network through Bluetooth LE

./chip-tool-debug pairing ble-thread 1234 hex:<operational_dataset> 20202021 3840

My questions have the following points.

  1. The value of "fd11:22::/64" in step 2 represents the value of On-Mesh prefix. Is it filled in randomly?
  2. I know that the items pulled from docker in Step 3 correspond to different ncs versions. What is the reason for this? If I want to test whether the chips of other manufacturers are different mirror versions, I have tried to implement the commissioning experiment of the chips of other manufacturers by chip-tool with the mirror of ncs V2.3.0, which seems impossible
  3. The last parameters in Step 4 are also custom?
  4. After implementing step 6 in the command line, it seems necessary to open the IP address corresponding to the Raspberry PI in the local browser and add the suffix ":8080", click in the "FORM" to generate the Thread network. Can this step be implemented through the command line? And I wonder if the point of this step is just to generate the Thread network that I built? Do you need to connect to the public network to authenticate anything through the server?

Even though I was able to successfully debug the light_bulb using chip-tool now, I really wondered why I needed to do this at each step. I hope you can answer me patiently, this is very important to me, thank you ~
Oh, by the way, about the version of chip-tool, is it also true that each ncs version corresponds to a chip-tool version? What's the difference? Because I see that each of these versions has a chip-tool.

(https://github.com/nrfconnect/sdk-connectedhomeip/releases)

Best regards,

chuck

  • Hi Chuck,

    Happy to hear that you're able to debug the light_bulb using chip-tool and otbr in Docker! 

    The value of "fd11:22::/64" in step 2 represents the value of On-Mesh prefix. Is it filled in randomly?

    The prefix is not filled randomly. In the case of "fd" and "fe" they are so called "local", either Link-local or Mesh-local prefixes https://openthread.io/guides/thread-primer/ipv6-addressing

    I know that the items pulled from docker in Step 3 correspond to different ncs versions. What is the reason for this? If I want to test whether the chips of other manufacturers are different mirror versions, I have tried to implement the commissioning experiment of the chips of other manufacturers by chip-tool with the mirror of ncs V2.3.0, which seems impossible

    The reason for why there exists so many versions of CHIP which corresponds to different versions of NCS is due to changes in between the versions of both CHIP and NCS. When we release for instance NCS v2.3.0 we are running a multitude of tests to verify that the items we test for are qualified for release and we can only guarantee that a specific version(s) of the different software tools, programs, libraries and such. It does not make sense to use the same version of CHIP for NCS v2.0.0 and v2.4.0 because both the SDK and CHIP has had numerous changes, fixes and improvements in between the versions

    The last parameters in Step 4 are also custom?

    I think the same answer as the first question also goes here

    After implementing step 6 in the command line, it seems necessary to open the IP address corresponding to the Raspberry PI in the local browser and add the suffix ":8080", click in the "FORM" to generate the Thread network. Can this step be implemented through the command line? And I wonder if the point of this step is just to generate the Thread network that I built? Do you need to connect to the public network to authenticate anything through the server?

    I will have to check up on the last one. I will get back to you with something constructive once I know more.

    Kind regards,
    Andreas

  • Regarding 4): It is stated in the documentation that you either have to follow the instructions in the OTBR codelab tutorial which explains how you create a Thread network with command line or you may open localhost:8080. Item 7 in https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/protocols/thread/tools.html#running-otbr-using-docker states this.

    Kind regards,
    Andreas

Related