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 dropped entirely):
- IGMP/MLD 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.
- Leave messages are ignored as the IGMP/MLD snooping in LCOS is passive. This means that Joins only disappear from the table by aging.
- An incoming IGMP/MLD query results in the port being marked as a router port. These messages are flooded to all interfaces.
- All other IGMP/MLD messages are flooded to all interfaces—no ports experience a change of state.
- If an IP multicast packet does not contain an IGMP/MLD message, the IP destination address is examined. Packets for the destination address "224.0.0.x" (IPv4 ) or "FF02::1" (IPv6) are flooded to all ports because this "reserved" range is used by protocols without proper IGMP/MLD registration. For all other packets the destination address is looked up in the IGMP/ MLD 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 dropped, flooded to all ports, or forwarded exclusively to all router ports (depending on the configuration).