<?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: IGMP Snooping with SJA1110 in Other NXP Products</title>
    <link>https://community.nxp.com/t5/Other-NXP-Products/IGMP-Snooping-with-SJA1110/m-p/2304726#M31145</link>
    <description>&lt;P&gt;NXP has not responded to my support tickets and this post has also not been responded to, so I shall document what I've found here.&lt;/P&gt;&lt;P&gt;On BSP43.&amp;nbsp; The SJA1105 DSA driver does not appear to support IGMP snooping for the SJA1110 when the ports are linked by a bridge.&amp;nbsp; During driver setup, the sja1110 ports are setup in standalone mode where the &lt;A href="https://github.com/nxp-auto-linux/linux/blob/810f396375526c11989bd1a296d2f9959de9392f/drivers/net/dsa/sja1105/sja1105_main.c#L3138" target="_self"&gt;dsa `tag_8021q` installs&lt;/A&gt; a different vlan-lookup rule on each port of the switch.&amp;nbsp; The vlan-lookup rules tag ingress packets with the `tag_8021q` ethertype `0xDADB` and a &lt;A href="https://github.com/nxp-auto-linux/linux/blob/810f396375526c11989bd1a296d2f9959de9392f/net/dsa/tag_8021q.c#L20" target="_self"&gt;vlan with metadata&lt;/A&gt; including the port ID.&amp;nbsp; This creates a mechanism for the host processor to know which ports a packet was received from, and also egress packets on specific ports.&amp;nbsp; When the ports are linked in a bridge, &lt;A href="https://github.com/nxp-auto-linux/linux/blob/810f396375526c11989bd1a296d2f9959de9392f/drivers/net/dsa/sja1105/sja1105_main.c#L2119" target="_self"&gt;`tag_8021q` replaces the per port vlan-lookup&lt;/A&gt; rules with a single rule which is associated with the bridge.&amp;nbsp; The host processor now not able to tell which port packets originated from and is not able to egress packets to specific ports.&amp;nbsp; I believe using `vlan-filtering` will also break this mechanism as described &lt;A href="https://github.com/nxp-auto-linux/linux/blob/810f396375526c11989bd1a296d2f9959de9392f/net/dsa/tag_8021q.c#L269" target="_self"&gt;here&lt;/A&gt;&amp;nbsp;(the sja1110 is evidently of the second type because it calls `dsa_tag_8021q_bridge_join`).&lt;/P&gt;&lt;P&gt;IGMP querier packets created by the host processor are still tagged with the per port vlan, but the vlan-lookup only contains rules for the bridge so the IGMP querier packets are sent out into the void.&amp;nbsp; They are thrown into the trash.&amp;nbsp; They do not egress the switch.&amp;nbsp; This behavior can be changed by modifying &lt;A href="https://github.com/nxp-auto-linux/linux/blob/810f396375526c11989bd1a296d2f9959de9392f/net/dsa/tag_sja1105.c#L300" target="_self"&gt;this line:&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;    if (!dp-&amp;gt;bridge) {
        tx_vid = dsa_tag_8021q_standalone_vid(dp);
    } else {
        tx_vid = dsa_tag_8021q_bridge_vid(dp-&amp;gt;bridge-&amp;gt;num);
    }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;IGMP querier messages will now egress the switch, but this alone will not enable IGMP snooping because the host processor doesn't know what port the IGMP join/leave was received on because the `tag_8021q` is still bridge wide, not port specific.&amp;nbsp; The switch must trap packets and apply the native sja1110 tag (ethertype 0xdadc) in order to enable IGMP snooping.&amp;nbsp; The switch can trap packets and add the tag through the two `mac_fltres`, but the driver already uses these for PTP and STP.&amp;nbsp; The userspace utility `tc` can be configured to trap packets, but this is implemented through virtual links which do not add the tag to trapped packets.&amp;nbsp; The last two options are to use an l2-lookup or deep packet inspection.&amp;nbsp; The l2-lookup can be used to enable IGMPv3 by trapping destination mac address&amp;nbsp;01:00:5E:00:00:16 with the trap bit set.&amp;nbsp; This will also match any multicast IP group ending in *.0.0.22 and so is not a good solution.&amp;nbsp; Deep packet inspection seems to be the only way to enable IGMP snooping when using a bridge.&amp;nbsp; Whatever trapping mechanism is used, &lt;A href="https://github.com/nxp-auto-linux/linux/commit/0064b863abdc7bd5e209cdbce7619464069458fe" target="_self"&gt;this commit&lt;/A&gt; is necessary or the sja1110 tag will be overwritten by the `tag_8021q` which again only represents the bridge.&lt;/P&gt;</description>
    <pubDate>Mon, 02 Feb 2026 15:20:00 GMT</pubDate>
    <dc:creator>sg_cnh</dc:creator>
    <dc:date>2026-02-02T15:20:00Z</dc:date>
    <item>
      <title>IGMP Snooping with SJA1110</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/IGMP-Snooping-with-SJA1110/m-p/2199453#M30540</link>
      <description>&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I have an S32G with SJA1110 running bsp43 and am trying to enable IGMP snooping to dynamically route multicast streams.&amp;nbsp; I have identified a few unique issues related to IGMP which I am not sure how to resolve.&amp;nbsp; I have confirmed that disabling IGMP snooping causes multicast packets to flood the switch, so the IGMP snooping option is doing something...&amp;nbsp; Just not the expected behavior.&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Multicast traffic is always forwarded to the lowest enumerated active port&lt;OL&gt;&lt;LI&gt;A stream egressing on port 4 with a node on port 3 requesting that traffic through IGMP will cause traffic to egress through port 1 (if that link is active) as if port 1 had requested the traffic.&amp;nbsp; If the port 1 link is not active, traffic will be forwarded to port 2 if that link is active.&lt;/LI&gt;&lt;LI&gt;I am able to manually route the traffic with mdb, but my expectation is that IGMP snooping should be managing this automatically&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI&gt;Enabling multicast-querier does not cause membership queries to egress the switch ports&lt;OL&gt;&lt;LI&gt;There are&amp;nbsp; IGMP queries on the DSA bridge interface, but no IGMP queries are visible on other links connected to the switch&lt;/LI&gt;&lt;LI&gt;I suspect I may need to set up a tc rule to trap IGMP queries from the bridge port and redirect them to the switch ports?&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;I'm not clear if this is some issue with Linux configuration or a limitation from switch hardware.&lt;/P&gt;&lt;P&gt;Thanks for any suggestions.&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 05 Nov 2025 22:24:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/IGMP-Snooping-with-SJA1110/m-p/2199453#M30540</guid>
      <dc:creator>sg_cnh</dc:creator>
      <dc:date>2025-11-05T22:24:30Z</dc:date>
    </item>
    <item>
      <title>Re: IGMP Snooping with SJA1110</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/IGMP-Snooping-with-SJA1110/m-p/2304726#M31145</link>
      <description>&lt;P&gt;NXP has not responded to my support tickets and this post has also not been responded to, so I shall document what I've found here.&lt;/P&gt;&lt;P&gt;On BSP43.&amp;nbsp; The SJA1105 DSA driver does not appear to support IGMP snooping for the SJA1110 when the ports are linked by a bridge.&amp;nbsp; During driver setup, the sja1110 ports are setup in standalone mode where the &lt;A href="https://github.com/nxp-auto-linux/linux/blob/810f396375526c11989bd1a296d2f9959de9392f/drivers/net/dsa/sja1105/sja1105_main.c#L3138" target="_self"&gt;dsa `tag_8021q` installs&lt;/A&gt; a different vlan-lookup rule on each port of the switch.&amp;nbsp; The vlan-lookup rules tag ingress packets with the `tag_8021q` ethertype `0xDADB` and a &lt;A href="https://github.com/nxp-auto-linux/linux/blob/810f396375526c11989bd1a296d2f9959de9392f/net/dsa/tag_8021q.c#L20" target="_self"&gt;vlan with metadata&lt;/A&gt; including the port ID.&amp;nbsp; This creates a mechanism for the host processor to know which ports a packet was received from, and also egress packets on specific ports.&amp;nbsp; When the ports are linked in a bridge, &lt;A href="https://github.com/nxp-auto-linux/linux/blob/810f396375526c11989bd1a296d2f9959de9392f/drivers/net/dsa/sja1105/sja1105_main.c#L2119" target="_self"&gt;`tag_8021q` replaces the per port vlan-lookup&lt;/A&gt; rules with a single rule which is associated with the bridge.&amp;nbsp; The host processor now not able to tell which port packets originated from and is not able to egress packets to specific ports.&amp;nbsp; I believe using `vlan-filtering` will also break this mechanism as described &lt;A href="https://github.com/nxp-auto-linux/linux/blob/810f396375526c11989bd1a296d2f9959de9392f/net/dsa/tag_8021q.c#L269" target="_self"&gt;here&lt;/A&gt;&amp;nbsp;(the sja1110 is evidently of the second type because it calls `dsa_tag_8021q_bridge_join`).&lt;/P&gt;&lt;P&gt;IGMP querier packets created by the host processor are still tagged with the per port vlan, but the vlan-lookup only contains rules for the bridge so the IGMP querier packets are sent out into the void.&amp;nbsp; They are thrown into the trash.&amp;nbsp; They do not egress the switch.&amp;nbsp; This behavior can be changed by modifying &lt;A href="https://github.com/nxp-auto-linux/linux/blob/810f396375526c11989bd1a296d2f9959de9392f/net/dsa/tag_sja1105.c#L300" target="_self"&gt;this line:&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;    if (!dp-&amp;gt;bridge) {
        tx_vid = dsa_tag_8021q_standalone_vid(dp);
    } else {
        tx_vid = dsa_tag_8021q_bridge_vid(dp-&amp;gt;bridge-&amp;gt;num);
    }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;IGMP querier messages will now egress the switch, but this alone will not enable IGMP snooping because the host processor doesn't know what port the IGMP join/leave was received on because the `tag_8021q` is still bridge wide, not port specific.&amp;nbsp; The switch must trap packets and apply the native sja1110 tag (ethertype 0xdadc) in order to enable IGMP snooping.&amp;nbsp; The switch can trap packets and add the tag through the two `mac_fltres`, but the driver already uses these for PTP and STP.&amp;nbsp; The userspace utility `tc` can be configured to trap packets, but this is implemented through virtual links which do not add the tag to trapped packets.&amp;nbsp; The last two options are to use an l2-lookup or deep packet inspection.&amp;nbsp; The l2-lookup can be used to enable IGMPv3 by trapping destination mac address&amp;nbsp;01:00:5E:00:00:16 with the trap bit set.&amp;nbsp; This will also match any multicast IP group ending in *.0.0.22 and so is not a good solution.&amp;nbsp; Deep packet inspection seems to be the only way to enable IGMP snooping when using a bridge.&amp;nbsp; Whatever trapping mechanism is used, &lt;A href="https://github.com/nxp-auto-linux/linux/commit/0064b863abdc7bd5e209cdbce7619464069458fe" target="_self"&gt;this commit&lt;/A&gt; is necessary or the sja1110 tag will be overwritten by the `tag_8021q` which again only represents the bridge.&lt;/P&gt;</description>
      <pubDate>Mon, 02 Feb 2026 15:20:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/IGMP-Snooping-with-SJA1110/m-p/2304726#M31145</guid>
      <dc:creator>sg_cnh</dc:creator>
      <dc:date>2026-02-02T15:20:00Z</dc:date>
    </item>
    <item>
      <title>Re: IGMP Snooping with SJA1110</title>
      <link>https://community.nxp.com/t5/Other-NXP-Products/IGMP-Snooping-with-SJA1110/m-p/2308609#M31164</link>
      <description>&lt;P&gt;Note that the solution suggested above will send an IGMP query for each DSA port on the bridge...&amp;nbsp; Reinstalling the vlan-lookup rules to egress the packets out of the correct ports could also be a solution, but I think port 0 would conflict with the vlan-lookup installed by the bridge, so also not a good solution.&amp;nbsp; Sending too many IGMP queries doesn't seem to have any side effects beyond the additional traffic.&lt;/P&gt;</description>
      <pubDate>Wed, 04 Feb 2026 14:09:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Other-NXP-Products/IGMP-Snooping-with-SJA1110/m-p/2308609#M31164</guid>
      <dc:creator>sg_cnh</dc:creator>
      <dc:date>2026-02-04T14:09:22Z</dc:date>
    </item>
  </channel>
</rss>

