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

CoAP client application can't reach nrf52840 CoAP server whereas IPv6 pings work

Hello all ! 

So here is my problem, I have a computer as a CoAP client running the Python script from :https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.3.0%2Fiot_sdk_user_guides_linux_commands.html&cp=5_1_5_5_0_5

I connect a nrf52840 DK running the CoAP server example through a Raspberry Pi used as border router. 

Pings from my computer to the nrf52840  works fine and I can see the CoAP Get requests directed to my CoAP server from my computer on Wireshark.

However the nrf52840 doesn't seem to receive the request and nothing happens on the DK (and the computer doesn't receive a response). 

I have the folowing logs on Segger: 

<info> app: Physical layer in connectable mode.
<info> app: Physical layer: connected.
<info> app: Got IP Application Handler Event on interface 0x0x20004F9C
<info> app: New interface added!
<info> app: Sending Router Solicitation to all routers!

Here I launch the Python script and get the Wireshark capture.

<info> app: Got IP Application Handler Event on interface 0x0x20004F9C
<info> app: Interface removed!
<info> app: Physical layer: disconnected.
<info> app: Physical layer in connectable mode.

Note: After 25 seconds, the interface is removed. This refers to an other problem I have with my setup that a connection between the border router and the nrf52840 never last more than ~30 seconds, I have another bug about it is someone wants to help: 

https://devzone.nordicsemi.com/f/nordic-q-a/48277/ble-over-ipv6-between-nrf52840-dev-kit-and-rapberry-3-b-border-router-connection-interface-is-removed-after-30-sec

Does anyone have an idea why this happens or some tips to keep trying to resolve this issue ? 

Thanks in advance,

Aloïs KYROU

  • Hello  ! 

    I think I've found the source of the problem. 

    Here is a capture I did on the border router :

    On the top line CoAP client requests from its global address the global address of the CoAP client.

    On the second line from the top, the CoAP client responds with its local-link address. 

    On the third line the border router tells the CoAP client that it can't reach this address as it is out of scope from a link-local address. 

    For the example to work, on the second line the CoAP client should use its global address (2001:db8::xxx). 

    We can verify it by looking at the capture from a ping between the client and the server that works:

    Here we clearly see that the nrf52 client responds using its global address. 

    So do you have an idea why the nrf52840 DK would answer using its local-link address instead of its global one ? 

    Thanks in advance,

    Aloïs KYROU.

  • Hi,

     

    The server seems to work locally on the RPi, but accessing it on the network seems to be the show-stopper.

    Its likely because there's routing missing somewhere in the chain. I am not very skilled in the network domain, but try googling "static route between two subnets" or similar.

    Most of the threads are ipv4 related, but the sequence is very similar for ipv6.

     

    Kind regards,

    Håkon

Related