Claims
- 1. A method of switching packets in a network switch, said method comprising:
receiving a data packet on a source port of a network switch; determining whether the network switch has sufficient memory capacity to process the data packet; if memory capacity is sufficient, reading a selected portion of the packet to determine if the packet is to be sent to a mirrored port; if mirroring is determined, sending the data packet to the mirrored port; 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; 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, determining 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.
- 2. A method as recited in claim 1, wherein the simultaneous lookups and switching includes:
searching an IP multicast table to determine if a destination address is contained in the table; forwarding the packet to the remote CPU if the destination address is not contained in the table; comparing a time-to-live (TTL) value to a predetermined TTL threshold if the destination address is known; sending the packet to the CPU if the time-to-live value is below the predetermined TTL threshold; obtaining a layer 3 port bitmap is from the IP multicast table if the time-to-live value is not below the predetermined TTL threshold; switching the packet to the destination ports if ports on the layer 3 port bitmap are considered active ports for the network switch; simultaneously with the searching of the IP multicast table, the method includes examining port filtering bits of the module header to determine whether a first predetermined port filtering value is present; forwarding the packet to a selected group of ports on the switch if the first predetermined port filtering value is present; searching a multicast table using a destination key if the first predetermined filtering value is not present; obtaining a port bitmap from the multicast table if searching the multicast table results in a match, then forwarding the data packet to ports obtained from the port bitmap; if there is no match, the port filtering bits are examined to see if a second predetermined port filtering value is present; if the second predetermined port filtering value is present, the packet is dropped; and if the second predetermined port filtering value is not present, then a destination port bitmap is obtained from a VLAN table, and the data packet is forwarded to ports identified in the destination port bitmap.
- 3. A method as recited in claim 2, wherein said destination key is formed by combining a destination address and a destination VLAN identification value from a field in the packet.
REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority of U.S. Provisional Patent Application Serial No. 60/124,878, filed on Mar. 17, 1999, U.S. Provisional Patent Application Serial No. 60/135,603, filed on May 24, 1999, and U.S. Provisional Patent Application Serial No. 60/149,706, filed on Aug. 20, 1999. This application is a continuation-in-part (CIP) of U.S. patent application Ser. No. 09/343,409, filed on Jun. 30, 1999. The subject matter of these earlier filed applications is hereby incorporated by reference.
Continuations (1)
|
Number |
Date |
Country |
Parent |
09527271 |
Mar 2000 |
US |
Child |
10795259 |
Mar 2004 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09343409 |
Jun 1999 |
US |
Child |
10795259 |
Mar 2004 |
US |