Skip to content

[FIX] [IPv6] Use correct destination address so packets with multicast destination are properly handled#1104

Closed
mgonzalezlopezudc wants to merge 3 commits into
inet-framework:masterfrom
mgonzalezlopezudc:master
Closed

[FIX] [IPv6] Use correct destination address so packets with multicast destination are properly handled#1104
mgonzalezlopezudc wants to merge 3 commits into
inet-framework:masterfrom
mgonzalezlopezudc:master

Conversation

@mgonzalezlopezudc

Copy link
Copy Markdown
Contributor

The previous version was inefficient because it used the broadcast address as the destination address for any multicast packet.

@levy levy added the Bug label Jun 1, 2026
avarga added a commit that referenced this pull request Jun 4, 2026
…cast packets

Merged from inet-framework/inet PR #1104 by mgonzalezlopezudc.

In datagramLocalOut() and routeMulticastPacket(), IPv6 multicast packets
were sent with MacAddress::BROADCAST_ADDRESS as the destination MAC.
This is incorrect: RFC 2464 Section 7 specifies that IPv6 multicast
addresses should be mapped to Ethernet multicast addresses using
Ipv6Address::mapToMulticastMacAddress(). Using broadcast causes all
nodes on the link to process the frame at the MAC layer, even if they
have not joined the multicast group.

Updated fingerprints: multicast MAC destination address changed from
ff:ff:ff:ff:ff:ff to 33:33:xx:xx:xx:xx, affecting byte-level content
fingerprints in all IPv6 simulations that use multicast (ND, EIGRP, etc).
@avarga

avarga commented Jun 4, 2026

Copy link
Copy Markdown
Member

Part of topic/ipv6-refactoring, will be merged into master soon.

@avarga avarga assigned avarga and unassigned ZoltanBojthe Jun 4, 2026
@avarga

avarga commented Jun 23, 2026

Copy link
Copy Markdown
Member

Thanks for this fix, @mgonzalezlopezudc — the diagnosis is spot on. IPv6 multicast datagrams were being handed to the link layer with the broadcast MAC instead of the proper 33:33:xx:xx:xx:xx multicast MAC mapped from the destination address. Based on your input, the following fixes landed on master, as part of the recent IPv6 multicast forwarding work:

  • datagramLocalOut() — the multicast-MAC check is now in place (commit 3be7618, "IPv6: fix: use correct multicast MAC instead of broadcast (RFC 2464 Section 7)"), matching your change with the else branch wrapped in braces.
  • routeMulticastPacket() — superseded by a larger refactor that also uses mapToMulticastMacAddress() (commit dd56c31, "IPv6: implement multicast forwarding (RIB/FIB + RPF)").

@avarga avarga closed this Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants