<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NRF Connect SDK missing mesh-local UDP6 broadcasts from openthread</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/70044/nrf-connect-sdk-missing-mesh-local-udp6-broadcasts-from-openthread</link><description>Hello, 
 
 I&amp;#39;m developing an application using zephyr, openthread, udp, and nfc, targeting the nrf52840 (currently developing on nrf52840dk pca10056). 
 I initially developed and tested the application using zephyr open source (not NRF Connect SDK). The</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 06 Jan 2021 08:40:27 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/70044/nrf-connect-sdk-missing-mesh-local-udp6-broadcasts-from-openthread" /><item><title>RE: NRF Connect SDK missing mesh-local UDP6 broadcasts from openthread</title><link>https://devzone.nordicsemi.com/thread/287642?ContentTypeID=1</link><pubDate>Wed, 06 Jan 2021 08:40:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fb511098-c565-4baf-815a-3b99dd8bf635</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Thank you as well! I noted the Thread team about your Zephyr issue and pull request. They will look into this from Monday, and figure out how to make sure that either this zephyr patch or a workaround is implemented in our future releases.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thank you for bringing this bug up.&lt;/p&gt;
&lt;p&gt;Best regards Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Connect SDK missing mesh-local UDP6 broadcasts from openthread</title><link>https://devzone.nordicsemi.com/thread/287610?ContentTypeID=1</link><pubDate>Wed, 06 Jan 2021 02:17:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c0607bb1-851f-40f9-bcc5-0fad0c127d8c</guid><dc:creator>frazieje</dc:creator><description>&lt;p&gt;Thank you for the reply Edvin. I am aware Nordic does not write openthread in zephyr. At the time I submitted the original ticket, I thought the issue may be tied to NCS implementation since I was seeing it was reproducible in NCS but not in Zephyr. However after further looking, I am confirming the issue is actually with Zephyr.&lt;br /&gt;&lt;br /&gt;Yesterday I recorded a &lt;a href="https://github.com/zephyrproject-rtos/zephyr/issues/31085"&gt;Zephyr issue&lt;/a&gt; to highlight the problem. I think the fix belongs there in the openthread shim layer of Zephyr. I have opened a&amp;nbsp;&lt;a href="https://github.com/zephyrproject-rtos/zephyr/pull/31096"&gt;pull request&lt;/a&gt; to resolve the issue (using my last suggestion above to join any mesh-specific openthread multicast addresses), and am awaiting review from Zephyr developers. See the issue and PR for details&lt;br /&gt;&lt;br /&gt;Thank you&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Connect SDK missing mesh-local UDP6 broadcasts from openthread</title><link>https://devzone.nordicsemi.com/thread/287401?ContentTypeID=1</link><pubDate>Tue, 05 Jan 2021 07:26:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:24787897-36ea-4cdb-a38e-d1a6c6b25694</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Thank you for the information. I ran this by our Thread team, and they say that your suggested workarounds seems reasonable. They will look into this in more details, and whether there is a reasonable way to patch this in NCS. Please note that it is not Nordic Semiconductor that writes the openthread implementation in Zephyr. Perhaps you can file a bug report there as well. I guess our Thread team will do so, but it may be pushed into an earlier release if reported from several holds.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF Connect SDK missing mesh-local UDP6 broadcasts from openthread</title><link>https://devzone.nordicsemi.com/thread/287100?ContentTypeID=1</link><pubDate>Sun, 03 Jan 2021 21:43:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:54cb506a-2d63-4c35-86c9-686cc56d2e9a</guid><dc:creator>frazieje</dc:creator><description>&lt;p&gt;After doing more investigation, i found that a recent change to Zephyr causes the above change in behavior. This change is included with the current (1.4.99) NRF Connect SDK fork of Zephyr, but the Zephyr version I was building my original app against was older and did not have this change yet.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/zephyrproject-rtos/zephyr/commit/b7b73d016017ebeec7cbf56e683793b27f260671"&gt;This Zephyr commit&lt;/a&gt; adds code to net_ipv6_input() to filter multicast messages coming from lower layers, specifically those destined for a non all-nodes multicast address that is not joined. &lt;br /&gt;&lt;br /&gt;This change is made to reflect IPV6 Addressing &lt;a href="https://tools.ietf.org/html/rfc4291#section-2.7.1"&gt;RFC 4291 Section 2.7.1 and 2.8&lt;/a&gt;, which specifies that a host must respect all-nodes addresses FF01::1 and FF02::1, as well as any joined multicast group addresses. This differs from Thread which also specifies FF03::1 as a mesh-local all-nodes multicast address. &lt;br /&gt;&lt;br /&gt;The above change caused my issue of packet drop when using Zephyr&amp;#39;s bsd sockets api on a mesh L2, because Zephyr doesn&amp;#39;t respect FF03::1 as an all-nodes multicast address by default, and multicast addresses added to Zephyr through the openthread integration are not joined by default, so the packets are dropped.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;a few ways around this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use OpenThread API directly instead of bsd sockets api - Not ideal for portability but works around issue&lt;/li&gt;
&lt;li&gt;Create and join an application-specific multicast group from all application nodes - Preferable solution&lt;/li&gt;
&lt;li&gt;Application itself can call net_if_ipv6_maddr_join() manually to join FF03::1 and other desired thread-specific multicast addresses - works but seems improper to &amp;#39;join&amp;#39; a reserved all-nodes address&lt;/li&gt;
&lt;li&gt;Zephyr&amp;#39;s net_ipv6_input() multicast packet filtering could be modified to exempt FF03::1 from packet drop. could be ok because zephyr has function net_ipv6_is_addr_mcast_mesh() which could be used to prevent drop of multicast packets from mesh-local all-nodes addresses, but this seems improper because IPV6 implementation shouldn&amp;#39;t know about mesh addresses&lt;/li&gt;
&lt;li&gt;Zephyr openthread bridge could be modified to call net_if_ipv6_maddr_join() on FF03::1 by default during the process of adding an openthread multicast address to Zephyr - this also works but again involves calling join on a reserved all-nodes address which feels strange.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Any thoughts from Nordic on this issue and best way to solve it for NRF Connect SDK applications?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>