Socket echo server sample with border router

Hello !

I have taken echo server sample

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/samples/net/sockets/echo_server/README.html#sockets-echo-server-sample

and it work well with USB-NET connectivity

west build --pristine --board nrf5340dk_nrf5340_cpuapp – -DOVERLAY_CONFIG=overlay-netusb.conf

ping and echos are returned as expected

I have got impression that server sample can be part of mesh and border router might  be activated

by using OpenThread and/or IPSP  overlays

west build --pristine --board nrf5340dk_nrf5340_cpuapp – -DOVERLAY_CONFIG=”overlay-ot.conf;overlay-netusb.conf”

or

west build --pristine --board nrf5340dk_nrf5340_cpuapp – -DOVERLAY_CONFIG=”overlay-bt.conf;overlay-netusb.conf”

Image build is OK, but looks like extra configuration need. No ping and echo any more.

Pictures from netterminal

Does this kind of configuration with Border Router exist in samples ?

I have some Hosts what would like to communicate via nRF53 what is used as modem like device ( IPV6 like).

Really I need good start point for environment where I can use own radio via HCI_rpmg on network core.

Regards,

Eugene

Parents
  • Hello,

    Thank you for your patience.

    I will try to address each part of your post in an organized manner.

    I have got impression that server sample can be part of mesh and border router might  be activated

    by using OpenThread and/or IPSP  overlays

    west build --pristine --board nrf5340dk_nrf5340_cpuapp – -DOVERLAY_CONFIG=”overlay-ot.conf;overlay-netusb.conf”

    or

    west build --pristine --board nrf5340dk_nrf5340_cpuapp – -DOVERLAY_CONFIG=”overlay-bt.conf;overlay-netusb.conf”

    I assume you mean a Thread network by "mesh". Your impression that the Socket Echo server can be made into a Thread device by enabling OpenThread is correct. However, the nRF5340 DK is not able to work as a Thread Border Router on its own. Please read about our recommendations for a Thread Border Router in this documentation.

    Does this kind of configuration with Border Router exist in samples ?

    We do not have a sample for a Thread Border Router in nRF Connect SDK. Please read the documentation I linked above.

    I have some Hosts what would like to communicate via nRF53 what is used as modem like device ( IPV6 like).

    In this setup, would the nRF5340 act as a router for the Hosts? How will the Hosts communicate with the nRF5340?

    Really I need good start point for environment where I can use own radio via HCI_rpmg on network core.

    I don't quite understand what you want here. Have you got your own Bluetooth LE Host which you want to use with HCI RPMsg?

    Best Regards,
    Maria

Reply
  • Hello,

    Thank you for your patience.

    I will try to address each part of your post in an organized manner.

    I have got impression that server sample can be part of mesh and border router might  be activated

    by using OpenThread and/or IPSP  overlays

    west build --pristine --board nrf5340dk_nrf5340_cpuapp – -DOVERLAY_CONFIG=”overlay-ot.conf;overlay-netusb.conf”

    or

    west build --pristine --board nrf5340dk_nrf5340_cpuapp – -DOVERLAY_CONFIG=”overlay-bt.conf;overlay-netusb.conf”

    I assume you mean a Thread network by "mesh". Your impression that the Socket Echo server can be made into a Thread device by enabling OpenThread is correct. However, the nRF5340 DK is not able to work as a Thread Border Router on its own. Please read about our recommendations for a Thread Border Router in this documentation.

    Does this kind of configuration with Border Router exist in samples ?

    We do not have a sample for a Thread Border Router in nRF Connect SDK. Please read the documentation I linked above.

    I have some Hosts what would like to communicate via nRF53 what is used as modem like device ( IPV6 like).

    In this setup, would the nRF5340 act as a router for the Hosts? How will the Hosts communicate with the nRF5340?

    Really I need good start point for environment where I can use own radio via HCI_rpmg on network core.

    I don't quite understand what you want here. Have you got your own Bluetooth LE Host which you want to use with HCI RPMsg?

    Best Regards,
    Maria

Children
  • Hello !

    I have proprietorial radio where own radio driver run on networkcore. It is BLE radio based. But it is not amy relation with OpenThread and HCI_BLE_RPMG driver what part of nordic network core samples.

    I think I can include 2 network drivers in echo server sample ( one USB-DEV like now ) and other one will run on network core. 

    I think echo-server sample and IPV6 API can be used for create routing table between 2 network interfaces,

    I would like to utilize current serialized network driver architecture what you use when implement IPSP like framework.

    And I look sample where network driver on app core serialized towards network core and uniliize RPMG/IPC/MBOX modules like now. But I will write own radio driver what will follow current standard network driver.

    Is exists simple way how to include empty serialized network driver to app/network core and after that I will continue with own implementation on network core ?

    Regards,

    Eugene

  • Hello  Maria !

    But can we return to original question as well.

    How legal echo sample what built  with 2 network interfaces ?

    west build --pristine --board nrf5340dk_nrf5340_cpuapp – -DOVERLAY_CONFIG=”overlay-bt.conf;overlay-netusb.conf”

    How I can add routing between those 2 interfaces ?

    Regards,

    Eugene

  • Hello Eugene,

    Have you tried to build and run echo_server with only the OpenThread-overlay?
    west build --pristine --board nrf5340dk_nrf5340_cpuapp – -DOVERLAY_CONFIG=”overlay-ot.conf”
    If the ping and echo does not work with OpenThread enabled, the issue could be from a wrong configuration for OpenThread.

    I have got impression that server sample can be part of mesh and border router might  be activated

    by using OpenThread and/or IPSP  overlays

    We don't have any current samples for setting up a Thread Border Router with nRF5340. The current sample uses nRF52840 and a Raspberry Pi. Read more about the Thread Border Router in this documentation: https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_thread_tools.html#thread-border-router
    As stated in the documentation, the nRF52840 can work as a Radio Coprocessor (RCP).

    Hiihtaja said:
    How I can add routing between those 2 interfaces ?

    The routing is handled by the OpenThread Border Router. You can ask them about this by following this link to their discussion forum: https://github.com/openthread/openthread/discussions

    Hiihtaja said:
    I would like to utilize current serialized network driver architecture what you use when implement IPSP like framework.

    I don't know what a serialized network driver is. Can you link to reading material?

    Hiihtaja said:
    I have proprietorial radio where own radio driver run on networkcore. It is BLE radio based. But it is not amy relation with OpenThread and HCI_BLE_RPMG driver what part of nordic network core samples.

    Use Multiprotocol support to enable concurrent BLE and Thread. Link to documentation for multiprotocol on nRF5340 is here: https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_nrf5340.html#multiprotocol-thread-or-zigbee-in-combination-with-bluetooth-le.

    Documentation for multiprotocol support in general is found here: https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_multiprotocol_support.html#ug-multiprotocol-support.

    Best Regards,
    Maria

  • HI Maria !

    Looks like Zephyr and NCS dosn't provide any more generic Border router what can run on device.

    Even routing capabilities is hidden in zephyr's IP stack.

    All of your network drivers running on the network core but controlled via IPC from application core.

    I call it as serialized network driver.

    Now I looking good sample for this kind of driver because I need to write own one in similar way.

    Regards,

    Eugene

  • Hello,

    Hiihtaja said:
    All of your network drivers running on the network core but controlled via IPC from application core.

    The drivers are not controlled via IPC but the communication between the cores is done using the RPMsg messaging protocol which is based on the OpenAMP. You can learn more about the RPMsg protocol from this documentation: https://github.com/OpenAMP/open-amp/wiki/RPMsg-Messaging-Protocol

    Hiihtaja said:
    Now I looking good sample for this kind of driver because I need to write own one in similar way.

    To enable and use communication between the cores, for Bluetooth LE you use HCI RPMsg  (documentation, code) or for Bluetooth LE and 802.15.4 radio you use Multiprotocol RPMsg (documentation, code).

    The network driver you write can use RPMsg i a similar manner to enable communication between the cores.

    Best Regards,
    Maria

Related