project-chip / connectedhomeip

Matter (formerly Project CHIP) creates more connections between more objects, simplifying development for manufacturers and increasing compatibility for consumers, guided by the Connectivity Standards Alliance.
https://buildwithmatter.com
Apache License 2.0
7.41k stars 1.99k forks source link

OTBR used for TE2 is not answering to Dynamic Update Queries #6312

Closed doru91 closed 3 years ago

doru91 commented 3 years ago

I am trying to test NXP ELock Demo application with mDNS. The problem is that the OTBR does not reply to the Dynamic Update Request initiated by the SRP client on the Thread device. The queries look valid so the issue seems to be on the OTBR side.

There is also a strange UDP Checksum Error in the OTBR Logs but not sure if this is relevant.

Also, please see attached the Wireshark capture (unzip it first).

no_dynamic_update_response otbr_logs

no_dynamic_update_response_wireshark.zip

doru91 commented 3 years ago

I've also analyzed the OTBR logs (see the attached zip archive): it seems that there are some mDNS logs but these are related to IPv4 (so maybe Ethernet traffic). So mDNS is enabled on OTBR. I would expected to see mDNS logs also for IPv6 (Thread) traffic but I don't see. What I see is those UDP Checksum errors: so maybe the mDNS queries originated from the Thread device are dropped due to UDP checksum errors? otbr_docker_logs.zip

LuDuda commented 3 years ago

It might be something else, but please verify that you provisioned a full Thread Dataset to the device. The Error UDP Checksum appears usually when you have a different Mesh Local Prefix on the Border Router and on the Thread device.

Explanation: The Mesh Local Prefix is compressed on 6LoWPAN layer with Context ID 0. Because of that the prefix is not sent over the air, and devices need to have the same prefix in active dataset to properly calculate the checksum. Note that UDP Checksum for IPv6 includes both source and destination address.

doru91 commented 3 years ago

Thanks, Lukasz, that was the problem: a different ML prefix.