ipethernetmulticastmac-addressswitching

What is the purpose of the 25th bit of a multicast mac address


I have a video stream sent from an FPGA.

When I analyse this multicast stream with Wireshark, I see the destination mac address : 01:00:5E:A9:A9:0A. The FPGA is configured to send to this multicast IP address : 239:169:169:10.

Everywhere on the Internet I see that the multicast mac address is supposed to start with 01:00:5E followed by a bit 0, then the last 23 bits of the IP address. In the mac address I receive though, the 25th bit is set to 1 instead of 0. I expected : 01:00:5E:29:A9:0A

00000001:00000000:01011110:x yyyyyyy:yyyyyyyy:yyyyyyyy
( header 01:00:5E )        ^ (23 last bits of the IP)
                           |
                        25th bit

I cannot find anywhere a good explanation of what this bit does but I understand that it is a special bit that split the address into two ranges.

In my case, it causes a problem with the multicast mac table filter in the ethernet switch, which I configured with the 25th bit to 0. (Because any other streamer has a good header with the 0 bit when configured with the same IP address)

When I set the multicast IP address to 239.64.169.10 now the mac is 01:00:5E:40:A9:0A so I suspect that the FPGA mismanages the 25th bit and does not force a 0 and takes 24 bits from the IP address. Maybe it's just a bug on their side, but I wondered if this bit to 1 can cause issues, other than the mac table filter on the switch.


Solution

  • I found the answer in the norm. RFC 1112 - 6.4

    An IP host group address is mapped to an Ethernet multicast address by placing the low-order 23-bits of the IP address into the low-order 23 bits of the Ethernet multicast address 01-00-5E-00-00-00 (hex).

    I contacted the company with this information and they fixed their IP.