net: Extend echo_client README.rst file to setup OTBR based echo_server
This description provides information about setting up RCP (nRF21540-DK)
and OT HOST (mimxrt1020_evk) to communicate with HOST PC's echo_server
via OpenThread Border Router (OTBR).
Signed-off-by: Lukasz Majewski <lukma@denx.de>
diff --git a/samples/net/sockets/echo_client/README.rst b/samples/net/sockets/echo_client/README.rst
index 289a90a..02cc74b 100644
--- a/samples/net/sockets/echo_client/README.rst
+++ b/samples/net/sockets/echo_client/README.rst
@@ -179,3 +179,161 @@
See the :zephyr:code-sample:`sockets-echo-server` documentation for an alternate
way of running, with the echo-client on the Linux host and the echo-server
in QEMU.
+
+OpenThread RCP+Zephyr HOST (SPINEL connection via UART)
+=======================================================
+
+Prerequisites:
+--------------
+
+- Build ``echo-server`` for HOST PC (x86_64)
+ (https://github.com/zephyrproject-rtos/net-tools) SHA1:1c4fdba
+
+.. code-block:: console
+
+ $ make echo-server
+
+- Program nRF RCP from Nordic nrf SDK (v2.7.0):
+
+.. code-block:: console
+
+ (v2.7.0) ~/ncs$ west build -p always -b nrf21540dk/nrf52840 -S logging nrf/samples/openthread/coprocessor
+
+
+- Build mimxrt1020_evk HOST (Zephyr):
+
+.. zephyr-app-commands::
+ :zephyr-app: samples/net/sockets/echo_client
+ :board: mimxrt1020_evk
+ :conf: "prj.conf overlay-ot-rcp-host-uart.conf"
+ :goals: build
+ :compact:
+
+And flash
+
+.. code-block:: console
+
+ $ west flash -r pyocd -i 0226000047784e4500439004d9170013e56100009796990
+
+
+- Connect the nRF RCP with IMXRT1020 (HOST) via UART
+
+.. code-block:: c
+
+ /*
+ * imxrt1020_evk -> HOST
+ * nRF21540-DK -> RCP (nrf/samples/openthread/coprocessor)
+ * LPUART2 used for communication:
+ * nRF21540 (P6) P0.08 RXD -> IMXRT1020-EVK (J17) D1 (GPIO B1 08) (TXD)
+ * nRF21540 (P6) P0.07 CTS -> IMXRT1020-EVK (J19) D8 (GPIO B1 07) (RTS)
+ * nRF21540 (P6) P0.06 TXD -> IMXRT1020-EVK (J17) D0 (GPIO B1 09) (RXD)
+ * nRF21540 (P6) P0.05 RTS -> IMXRT1020-EVK (J17) D7 (GPIO B1 06) (CTS)
+ */
+
+
+- Install the OTBR (OpenThread Border Router) docker container on your HOST PC (x86_64)
+ Follow steps from https://docs.nordicsemi.com/bundle/ncs-2.5.1/page/nrf/protocols/thread/tools.html#running_otbr_using_docker
+
+**Most notable ones:**
+
+ 1. Create ``otbr0`` network bridge to have access to OT network from HOST
+ Linux PC
+
+ .. code-block:: console
+
+ sudo docker network create --ipv6 --subnet fd11:db8:1::/64 -o com.docker.network.bridge.name=otbr0 otbr
+
+
+ 2. Pull docker container for OTBR:
+
+ .. code-block:: console
+
+ docker pull nrfconnect/otbr:84c6aff
+
+
+ 3. Start the docker image:
+
+ .. code-block:: console
+
+ sudo modprobe ip6table_filter
+ 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/ttyACM5:/dev/radio nrfconnect/otbr:84c6aff --radio-url spinel+hdlc+uart:///dev/radio?uart-baudrate=1000000
+
+
+ 4. Add proper routing (``fd11:22::/64`` are the IPv6 addresses - On-Mesh - which allow accessing the OT devices) on HOST PC (x86_64)
+
+ .. code-block:: console
+
+ sudo ip -6 route add fd11:22::/64 dev otbr0 via fd11:db8:1::2
+
+
+ And the output for on-OT address:
+
+ .. code-block:: console
+
+ ip route get fd11:22:0:0:5188:1678:d0c0:6893
+ fd11:22::5188:1678:d0c0:6893 from :: via fd11:db8:1::2 dev otbr0 src fd11:db8:1::1 metric 1024 pref medium
+
+
+ 5. Start the console to the docker image:
+
+ .. code-block:: console
+
+ sudo docker exec -it otbr /bin/bash
+
+
+ Test with e.g.
+
+ .. code-block:: console
+
+ ot-ctl router table
+ ot-ctl ipaddr
+
+
+
+Configure OTBR
+--------------
+
+On the HOST PC's webbrowser: http://localhost:8080/
+
+Go to ``Form`` and leave default values - e.g:
+
+ * Network Key: ``00112233445566778899aabbccddeeff``
+ * On-Mesh Prefix: ``fd11:22::``
+ * Channel: ``15``
+
+
+to "FORM" the OT network.
+
+*Note:*
+The "On-Mesh Prefix" shall match the one setup in ``otbr0`` routing.
+
+
+Configure RCP (nRF21540-DK) + OT HOST (mimxrt1020)
+--------------------------------------------------
+
+.. code-block:: console
+
+ ot factoryreset
+ ot dataset networkkey 00112233445566778899aabbccddeeff
+ ot ifconfig up
+
+
+In the HOST PC www webpage interface please:
+Commission -> Joiner PSKd* set to ``J01NME`` -> START COMMISSION
+
+.. code-block:: console
+
+ ot joiner start J01NME
+ ot thread start
+
+
+The ``ot ipaddr`` shall show IPv6 address starting from ``fd11:22:0:0:``.
+This one can be accessed from HOST's PC network (via e.g.
+``ping -6 fd11:22:0:0:e8bf:266b:63ca:eff4``).
+
+Start ``echo-server`` on HOST PC (x86-64)
+-----------------------------------------
+
+.. code-block:: console
+
+ ./echo-server -i otbr0