This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

ISSUE: MQTT-SN over OpenThread on nrf52840-dk (node) and nrf52840-mdk (border-router)

Setup:

 Node:
  1 nrf52840dk acting as a node flashed with mqtt_client_publisher running on top of OpenThread using the nrfSDK for Thread and Zigbee.

  Debugger access via JLinkClient and also CLI access via screen /dev/ttyACMX 115200

 Border Router (Router Leader)

  1 nrf52840mdk acting as a border router (leader) running on Ubuntu 20.04 LTS

  otbr-agent, otbr-nat44, tayga, mosquito (MQTT Broker on default settings) and MQTTSNGateway (paho mqttsn gateway with provided settings) are running.

  CLI access to Border Router via ot-ctl

Currently, the node is able to receive icmpv6 messages from the Ubuntu machine even via a different iface (otbr running on wpan0. Ubuntu wifi is on wlo1)

But as soon as the Button2 is pressed for SEARCHGW the node is unable to find it.
Wireshark is running on wpan0 (otbr's iface) and can clearly see the broadcasted packet from the node.
Now, a local mqttsn-client subscribed to the topic to which node will publish is active.

Mesh-link is added. Route between wpan0(otbr's iface) and wlo1 (Ubuntu's wifi) is established.
What am I missing?

Parents Reply Children
  • Image: jlink-node-pub-log.png
    The node receives a message from Gateway which is an advertisement message found in the mqttsngateway-log.png image

    Image: mqttsngw-node-pub.png
    The Wireshark packet capture of the wpan0 interface on the border router. Notice that node's SEARCHGW message is published on the broadcast address ff03::1 on packet no. 4
    Also it has the advertisement packet from the gateway on packet 3 and 6 with same broadcast address ff03::1

    Image: mqttsngateway-log.png
    Only advertisement packet can be seen here but no SEARCHGW message from the node which was captured on Wireshark on wpan0 interface.







    Link to Wireshark packet capture:

  • I have even tried on RPi3 but without the Nordic provided pre-configured Raspbian image.
    Plus the border router is running on RCP mode instead of NCP mode.
    It doesn't work even that way.

    I am convinced that it has something to do with NAT and ipv6 configuration where routing is lacking. Because the node is receiving the ADVERTISE message from the gateway, but it isn't able to process it because the node's current state doesn't allow it to. And the node's advertisement messages is received properly on the border router as it can be seen on the Wireshark. But that message is not reaching to the gateway somehow.

Related