<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: lwip multicast in Kinetis Software Development Kit</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403402#M1590</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;Hi Carlos,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;Thanks for the link, I had already found that on Google already. I will try to hit up their forums to see what I can find. I am just wondering if this is a Kinetis specific problem.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;Here is what I have done in the past few days to try to get this working. To simplify I am working inside of the example project of projects provided with KSDK 1.2:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;C:\Freescale\KSDK_1.2.0\examples\twrk60d100m\demo_apps\lwip\lwip_udpecho_demo\udpecho_rtos\udpecho_mqx\kds\lwip_udpecho_demo_mqx.wsd&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;-imported this into a blank workspace.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;-everything compiles as usual.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;-I can ping the tower board and send UDP packets which are echoed as expected.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I then reconfigured this example to receive multicast messages:&lt;/P&gt;&lt;P&gt;-Added the following line to the udpecho_thread function in main.c:&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas;"&gt;err = netconn_join_leave_group(conn, &amp;amp;multicast_ip_address, &amp;amp;local_ip_address, &lt;EM&gt;NETCONN_JOIN&lt;/EM&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;-Calling this requires that &lt;SPAN style="font-size: 10.0pt; font-family: Consolas;"&gt;LWIP_IGMP &lt;/SPAN&gt;be defined as 1&lt;/P&gt;&lt;P&gt;-Also we must define &lt;SPAN style="font-size: 10.0pt; font-family: Consolas;"&gt;LWIP_RAND()&lt;/SPAN&gt;be defined so we added the following in main.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: #005032;"&gt;#define LWIP_RAND &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;get_random_value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: #005032;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt; &lt;STRONG&gt;get_random_value&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: 10pt; font-family: Consolas;"&gt;&lt;STRONG&gt;void&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10pt; font-family: Consolas; color: #005032;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt; num;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10pt; font-family: Consolas; color: #005032;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt; seed_value = 17;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #642880; font-size: 10pt; font-family: Consolas;"&gt;&lt;STRONG&gt;srand&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;(seed_value);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; num = &lt;/SPAN&gt;&lt;SPAN style="color: #642880; font-size: 10pt; font-family: Consolas;"&gt;&lt;STRONG&gt;rand&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #7f0055; font-size: 10pt; font-family: Consolas;"&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt; num;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 45px;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Everything seems to work fine and looking at the debug dialog and wireshark we are successful at broadcasting the multicast join message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, we could still not receive messages.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I temporarily enabled promiscuous mode (ENET_RCR[PROM]) and this works, messages come through as expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I guess my question at this point is how to implement the function to filter MAC address to allow the multicast messages through?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am specifically talking about the area in igmp.c, around line 500:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If first use of the group, allow the group at the MAC level */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((group-&amp;gt;use==0) &amp;amp;&amp;amp; (netif-&amp;gt;igmp_mac_filter != NULL)) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup: igmp_mac_filter(ADD "));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_addr_debug_print(IGMP_DEBUG, groupaddr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", netif));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; netif-&amp;gt;igmp_mac_filter(netif, groupaddr, IGMP_ADD_MAC_FILTER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any ideas?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 Sep 2015 16:33:23 GMT</pubDate>
    <dc:creator>davidtietz</dc:creator>
    <dc:date>2015-09-10T16:33:23Z</dc:date>
    <item>
      <title>lwip multicast</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403400#M1588</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Does lwip in SDK 1.2 support multicast messages?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If so, does anybody know any good examples to set this up?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Aug 2015 17:51:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403400#M1588</guid>
      <dc:creator>davidtietz</dc:creator>
      <dc:date>2015-08-27T17:51:04Z</dc:date>
    </item>
    <item>
      <title>Re: lwip multicast</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403401#M1589</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;KSDK1.2 includes the lwIP 1.4.1 source code which features &lt;CODE&gt;IGMP&lt;/CODE&gt; (Internet Group Management Protocol) for multicast traffic management.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lwip 1.4.1 can be downloaded from this link: download.savannah.gnu.org/releases/lwip/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Carlos&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Aug 2015 18:44:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403401#M1589</guid>
      <dc:creator>Carlos_Musich</dc:creator>
      <dc:date>2015-08-31T18:44:38Z</dc:date>
    </item>
    <item>
      <title>Re: lwip multicast</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403402#M1590</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;Hi Carlos,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;Thanks for the link, I had already found that on Google already. I will try to hit up their forums to see what I can find. I am just wondering if this is a Kinetis specific problem.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;Here is what I have done in the past few days to try to get this working. To simplify I am working inside of the example project of projects provided with KSDK 1.2:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;C:\Freescale\KSDK_1.2.0\examples\twrk60d100m\demo_apps\lwip\lwip_udpecho_demo\udpecho_rtos\udpecho_mqx\kds\lwip_udpecho_demo_mqx.wsd&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;-imported this into a blank workspace.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;-everything compiles as usual.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.5pt; font-family: Helvetica, sans-serif;"&gt;-I can ping the tower board and send UDP packets which are echoed as expected.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I then reconfigured this example to receive multicast messages:&lt;/P&gt;&lt;P&gt;-Added the following line to the udpecho_thread function in main.c:&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas;"&gt;err = netconn_join_leave_group(conn, &amp;amp;multicast_ip_address, &amp;amp;local_ip_address, &lt;EM&gt;NETCONN_JOIN&lt;/EM&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;-Calling this requires that &lt;SPAN style="font-size: 10.0pt; font-family: Consolas;"&gt;LWIP_IGMP &lt;/SPAN&gt;be defined as 1&lt;/P&gt;&lt;P&gt;-Also we must define &lt;SPAN style="font-size: 10.0pt; font-family: Consolas;"&gt;LWIP_RAND()&lt;/SPAN&gt;be defined so we added the following in main.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: #005032;"&gt;#define LWIP_RAND &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;get_random_value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: #005032;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt; &lt;STRONG&gt;get_random_value&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055; font-size: 10pt; font-family: Consolas;"&gt;&lt;STRONG&gt;void&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10pt; font-family: Consolas; color: #005032;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt; num;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-size: 10pt; font-family: Consolas; color: #005032;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt; seed_value = 17;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #642880; font-size: 10pt; font-family: Consolas;"&gt;&lt;STRONG&gt;srand&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;(seed_value);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; num = &lt;/SPAN&gt;&lt;SPAN style="color: #642880; font-size: 10pt; font-family: Consolas;"&gt;&lt;STRONG&gt;rand&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: 0.0001pt; padding-left: 45px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #7f0055; font-size: 10pt; font-family: Consolas;"&gt;&lt;STRONG&gt;return&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt; num;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 45px;"&gt;&lt;SPAN style="font-size: 10pt; font-family: Consolas; color: black;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Everything seems to work fine and looking at the debug dialog and wireshark we are successful at broadcasting the multicast join message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, we could still not receive messages.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I temporarily enabled promiscuous mode (ENET_RCR[PROM]) and this works, messages come through as expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I guess my question at this point is how to implement the function to filter MAC address to allow the multicast messages through?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am specifically talking about the area in igmp.c, around line 500:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If first use of the group, allow the group at the MAC level */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((group-&amp;gt;use==0) &amp;amp;&amp;amp; (netif-&amp;gt;igmp_mac_filter != NULL)) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup: igmp_mac_filter(ADD "));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_addr_debug_print(IGMP_DEBUG, groupaddr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", netif));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; netif-&amp;gt;igmp_mac_filter(netif, groupaddr, IGMP_ADD_MAC_FILTER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any ideas?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Sep 2015 16:33:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403402#M1590</guid>
      <dc:creator>davidtietz</dc:creator>
      <dc:date>2015-09-10T16:33:23Z</dc:date>
    </item>
    <item>
      <title>Re: lwip multicast</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403403#M1591</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;David&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It sounds as though these functions have never been used or tested before since the multicast filter configuration must be missing. This is HW dependent and so the lwip part is possibly just calling a dummy function that needs to be replaced for the platform. Since IPv6 also needs mulicast operation it is probable that IPv6 link-local operations will not function either.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have attached the Kinetis Ethernet driver from the uTasker project so that you can take the multicast filter parts in case you don't find a quick solution from the other communities.&lt;/P&gt;&lt;P&gt;Just search for&lt;/P&gt;&lt;P&gt;external: fnModifyMulticastFilter()&lt;/P&gt;&lt;P&gt;static: fnDisableMulticastHash()&lt;/P&gt;&lt;P&gt;static: fnEnableMulticastHash()&lt;/P&gt;&lt;P&gt;static:fnCalculateHash()&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For multicast/IGMP overview you can look at&lt;/P&gt;&lt;P&gt;www. utasker.com/docs/uTasker/uTasker_IGMP.pdf&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Sep 2015 14:59:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403403#M1591</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2015-09-14T14:59:31Z</dc:date>
    </item>
    <item>
      <title>Re: lwip multicast</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403404#M1592</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just ran into this and I'm working my way through it.&amp;nbsp; You need to add the hooks for the join/leave operations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In ethernetif_init (ethernetif.c) I added:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;netif_set_igmp_mac_filter(netif, ethernetif_igmp_mac_filter);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P&gt;and defined:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static err_t ethernetif_igmp_mac_filter(struct netif *netif, ip_addr_t *group, u8_t action) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; uint32_t devNumber = 0;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; uint32_t hash;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;#if LWIP_HAVE_LOOPIF&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; devNumber = netif-&amp;gt;num - 1;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;#else&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; devNumber = netif-&amp;gt;num;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;#endif&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; switch (action) {&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; case IGMP_ADD_MAC_FILTER:&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; return ENET_DRV_AddMulticastGroup(devNumber, (uint8_t *) group, &amp;amp;hash);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; case IGMP_DEL_MAC_FILTER:&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; return ENET_DRV_LeaveMulticastGroup(devNumber, (uint8_t *) group);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; default:&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&amp;nbsp; return ERR_IF;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;to get the ball rolling.&amp;nbsp; I can send out multicast packets and I see the IGMP membership notifications on wireshark.&amp;nbsp; Still trying to figure out why I'm not receiving any yet.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Nov 2015 19:32:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403404#M1592</guid>
      <dc:creator>joseraffucci</dc:creator>
      <dc:date>2015-11-24T19:32:02Z</dc:date>
    </item>
    <item>
      <title>Re: lwip multicast</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403405#M1593</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Figured it out... the driver expects a multicast mac address while the hook is sending an ip address.&amp;nbsp; You also need to tell netif that that interface is igmp aware:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in ethernetif.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Add to low_level_init():&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if LWIP_IGMP&lt;/P&gt;&lt;P&gt;&amp;nbsp; netif-&amp;gt;flags |= NETIF_FLAG_IGMP;&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and the above code changes slightly to:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static err_t multicast_ip_to_mac(ip_addr_t *ip_addr, uint8_t *mac_addr) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((NULL == ip_addr) || (NULL == mac_addr)) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; return ERR_ARG;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[0] = 0x01;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[1] = 0x00;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[2] = 0x53;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[3] = ip4_addr2_16(ip_addr) &amp;amp; ~0x80;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[4] = ip4_addr3_16(ip_addr);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[5] = ip4_addr4_16(ip_addr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return ENET_OK;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static err_t ethernetif_igmp_mac_filter(struct netif *netif, ip_addr_t *group, u8_t action) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t devNumber = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t hash;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if LWIP_HAVE_LOOPIF&lt;/P&gt;&lt;P&gt;&amp;nbsp; devNumber = netif-&amp;gt;num - 1;&lt;/P&gt;&lt;P&gt;#else&lt;/P&gt;&lt;P&gt;&amp;nbsp; devNumber = netif-&amp;gt;num;&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t multicastMacAddr[kEnetMacAddrLen];&lt;/P&gt;&lt;P&gt;&amp;nbsp; multicast_ip_to_mac(group, multicastMacAddr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //LWIP_DEBUGF(IGMP_DEBUG, ("mac filtering ip: %d hw: % hash: %d", );&lt;/P&gt;&lt;P&gt;&amp;nbsp; switch (action) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; case IGMP_ADD_MAC_FILTER:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return ENET_DRV_AddMulticastGroup(devNumber, (uint8_t *) multicastMacAddr, &amp;amp;hash);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; case IGMP_DEL_MAC_FILTER:&lt;/P&gt;&lt;P&gt;&amp;nbsp; return ENET_DRV_LeaveMulticastGroup(devNumber, (uint8_t *) multicastMacAddr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; default:&lt;/P&gt;&lt;P&gt;&amp;nbsp; return ERR_IF;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Nov 2015 19:47:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403405#M1593</guid>
      <dc:creator>joseraffucci</dc:creator>
      <dc:date>2015-11-30T19:47:21Z</dc:date>
    </item>
    <item>
      <title>Re: lwip multicast</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403406#M1594</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OMG, I been struggling so much with this. Finally got it receiving but there was a slight error in your code posted above. The &lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;mac_addr[2] should equal 0x5E not 0x53. The following site explains this conversion quite well: &lt;A href="https://technet.microsoft.com/en-us/library/cc957928.aspx" title="https://technet.microsoft.com/en-us/library/cc957928.aspx"&gt;Mapping IP Multicast to MAC-Layer Multicast&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;So my code looks as follows:&lt;BR /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;err_t ethernetif_init(struct netif *netif)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif;"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if LWIP_IGMP&lt;/P&gt;&lt;P&gt;&amp;nbsp; netif_set_igmp_mac_filter(netif, ethernetif_igmp_mac_filter);&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return result;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static err_t multicast_ip_to_mac(ip_addr_t *ip_addr, uint8_t *mac_addr)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((NULL == ip_addr) || (NULL == mac_addr)) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; return ERR_ARG;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[0] = 0x01;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[1] = 0x00;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[2] = 0x5E;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[3] = ip4_addr2_16(ip_addr) &amp;amp; ~0x80;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[4] = ip4_addr3_16(ip_addr);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr[5] = ip4_addr4_16(ip_addr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return ENET_OK;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static err_t ethernetif_igmp_mac_filter(struct netif *netif, ip_addr_t *group, u8_t action)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t devNumber = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint32_t hash;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if LWIP_HAVE_LOOPIF&lt;/P&gt;&lt;P&gt;&amp;nbsp; devNumber = netif-&amp;gt;num - 1;&lt;/P&gt;&lt;P&gt;#else&lt;/P&gt;&lt;P&gt;&amp;nbsp; devNumber = netif-&amp;gt;num;&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t multicastMacAddr[kEnetMacAddrLen];&lt;/P&gt;&lt;P&gt;&amp;nbsp; multicast_ip_to_mac(group, multicastMacAddr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //LWIP_DEBUGF(IGMP_DEBUG, ("mac filtering ip: %d hw: % hash: %d", );&lt;/P&gt;&lt;P&gt;&amp;nbsp; switch (action)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; case IGMP_ADD_MAC_FILTER:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; return ENET_DRV_AddMulticastGroup(devNumber, (uint8_t *) multicastMacAddr, &amp;amp;hash);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; case IGMP_DEL_MAC_FILTER:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; return ENET_DRV_LeaveMulticastGroup(devNumber, (uint8_t *) multicastMacAddr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; default:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; return ERR_IF;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Jan 2016 16:41:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403406#M1594</guid>
      <dc:creator>wesleyhunter</dc:creator>
      <dc:date>2016-01-27T16:41:40Z</dc:date>
    </item>
    <item>
      <title>Re: lwip multicast</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403407#M1595</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Good catch.&amp;nbsp; That was a typo that I forgot to fix in my post.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FYI - you still have to make the modifications in the 2.0 KDSK with some slight changes (so far -- haven't gotten everything working just yet)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define IPE_ADDR_MC(addr, ip)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \&lt;/P&gt;&lt;P&gt;&amp;nbsp; do {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (addr)[0] = 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (addr)[1] = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (addr)[2] = 0x5E;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (addr)[3] = ((ip) &amp;gt;&amp;gt; 8)&amp;nbsp; &amp;amp; 0x7F; \&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (addr)[4] = ((ip) &amp;gt;&amp;gt; 16) &amp;amp; 0xFF; \&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (addr)[5] = ((ip) &amp;gt;&amp;gt; 24) &amp;amp; 0xFF; \&lt;/P&gt;&lt;P&gt;&amp;nbsp; } while (0)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static err_t ethernetif_igmp_mac_filter(struct netif *netif, ip_addr_t *group, u8_t action) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; uint8_t multicastMacAddr[kEnetMacAddrLen];&lt;/P&gt;&lt;P&gt;&amp;nbsp; IPE_ADDR_MC(multicastMacAddr, group-&amp;gt;addr);&lt;/P&gt;&lt;P&gt;&amp;nbsp; LWIP_DEBUGF(IGMP_DEBUG, ("Filtering multicast mac:"));&lt;/P&gt;&lt;P&gt;&amp;nbsp; mac_addr_debug_print(IGMP_DEBUG, multicastMacAddr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; switch (action) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case IGMP_ADD_MAC_FILTER:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_AddMulticastGroup(ENET, multicastMacAddr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ERR_OK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case IGMP_DEL_MAC_FILTER:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_LeaveMulticastGroup(ENET, multicastMacAddr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ERR_OK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ERR_IF;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;low_level_init changes are the same. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Feb 2016 21:49:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/lwip-multicast/m-p/403407#M1595</guid>
      <dc:creator>joseraffucci</dc:creator>
      <dc:date>2016-02-10T21:49:16Z</dc:date>
    </item>
  </channel>
</rss>

