A method of switching packets in a network switch includes the step of
receiving a packet on a source port of a network switch. Thereafter, the
method includes the step of determining whether the network switch has
sufficient memory capacity to process the data packet; and if memory
capacity is sufficient, then the method reads a selected portion of the
packet to determine if the packet is to be sent to a mirrored port. If
mirroring is determined, then the method sends the data packet to the
mirrored port. The method also includes the step of determining whether
the packet is to be sent to a remote CPU for further handling, and
sending the data packet to the remote CPU if appropriate. The method
additionally includes the step of determining whether the packet is a
unicast packet, and if so, placing the packet on an internal
communication channel within the network switch for appropriate storing
and forwarding. If the packet is not a unicast packet, then the method
determines if the packet is a multicast packet. If the packet is
determined to be a multicast packet, then performing simultaneous lookups
and switching using layer 2 lookup tables and addresses, and layer 3
lookup tables and addresses, thereby providing hybrid multicast handling
of the packet.