Whenever a packet is received, the bridge initially determines whether it is a unicast, broadcast, or multicast packet. For broadcast and unicast packets, the bridge operates in the usual way, i.e. it floods to all ports or sends to a specific port based on the MAC table entry for the receiver.
Two types of IP multicast packet are differentiated (whereby packets which are truncated or contain an invalid checksum are discarded entirely):
- IGMP messages are handled in different ways depending on their content:
- A Join message results in the incoming port becoming member of the respective multicast group. This message is forwarded to router ports only.
- Similarly, a Leave message results in the incoming port being removed from the multicast group’s member list. This message is also forwarded to router ports only.
- An incoming IGMP query results in the port being marked as a router port. These messages are flooded to all interfaces.
- All other messages are flooded to all interfaces—no ports experience a change of state.
- If an IP multicast packet does not contain an IGMP message, the IP destination address is examined. Packets for the destination address "224.0.0.x" are flooded to all ports because this is a "reserved" range. For all other packets the destination address is looked up in the IGMP membership table:
- If the address is found, the packet is forwarded according to the membership stored in the table.
- If the address is not found, the packet may either be discarded, flooded to all ports, or forwarded exclusively to all router ports (depending on the configuration).