A non-transitory computer-readable storage medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations in an electronic device to forward Ethernet frames at a node in a network supporting an implementation of shortest path bridging (SPB) protocol, wherein each Ethernet frame contains a source and a destination media access control (MAC) address, wherein the node contains a plurality of ports to receive and forward Ethernet frames, wherein the node contains a filtering database (FDB) to guide Ethernet frame forwarding, wherein FDB update is coordinated through a digest exchange between the node and one or more neighboring nodes, and wherein the FDB contains a plurality of mappings of ports to MAC addresses, the operations comprising:
- upon receiving an Ethernet frame from a port of the electronic device, determining whether the Ethernet frame is a multicast frame;
- upon determining the Ethernet frame is a multicast frame, examining a source MAC address in the Ethernet frame to determine for the port whether in the FDB the source MAC address has a matching MAC address;
- processing the Ethernet frame for frame forwarding in response to determination that a matching MAC address for the port is found in the FDB for the Ethernet frame;
- discarding the Ethernet frame in response to determination that no matching MAC address for the port is found in the FDB for the Ethernet frame;
- and
- upon determining the Ethernet frame is not a multicast frame, sending the Ethernet frame for an alternate ingress check processing, wherein the alternate ingress check processing comprises:
- checking a destination MAC address of the Ethernet frame;
- determining whether the port belongs to a set of permissible ports for the destination MAC address of the Ethernet frame, wherein the set of permissible ports of the node for the destination MAC address is selected through:
- (i) determining each port of the node is an upstream port or not for a destination node;
- and (ii) splitting all ports of the node into two sets for the destination node, wherein a first set of the two sets being upstream ports and a second set of the two sets being non-upstream ports, wherein the upstream ports are the set of permissible ports for a destination node facing a set of nodes that are further from the destination node indicated by the destination MAC address than the node;
- processing the Ethernet frame in response to determining that the port is in the set of permissible ports for the destination MAC address;
- and
- discarding the Ethernet frame in response to determining that the port is not in the set of permissible ports the destination MAC addresses.