Claims
- 1. A network switch for network communications, said network switch comprising:
a first data port interface, said first data port interface supporting a plurality of data ports transmitting and receiving data at a first data rate; a second data port interface, said second data port interface supporting a plurality of data ports transmitting and receiving data at a second data rate; a CPU interface, said CPU interface configured to communicate with a CPU; an internal memory, said internal memory communicating with said first data port interface and said at least one second data port interface; a memory management unit, said memory management unit including an external memory interface for communicating data from at least one of said first data port interface and said second data port interface and an external memory; a communication channel, said communication channel for communicating data and messaging information between said first data port interface, said second data port interface, said internal memory, and said memory management unit; a plurality of semiconductor-implemented lookup tables, said lookup tables including address resolution lookup/layer three lookup, rules tables, and VLAN tables, wherein one of said first data port interface and said second data port interface is configured to update the address resolution lookup table based upon newly learned layer two addresses, and wherein an update to an address table associated with an initial data port interface of said first and second data port interfaces results in the initial data port interface sending a synchronization signal to other address resolution tables in the network switch, so that all address resolution tables on the network switch are synchronized on a per entry basis.
- 2. A network switch as recited in claim 1, wherein said address resolution table is updated by the sending of a synchronization message on the communication channel, and wherein each address resolution table acknowledges receipt of the synchronization message through the sending of an acknowledgement signal on the communication channel.
- 3. A network switch as recited in claim 1, wherein a learning and an accessing of an entry in the address resolution lookup table results in the setting of a hit bit, and wherein the hit bit is unset by the initial data port interface after a first predetermined period of time, and wherein the entry is deleted if the hit bit is not reset for a second predetermined period of time.
- 4. A method of switching data in a network switch, said method comprising:
receiving an incoming packet at a first port of a switch; reading a first packet portion, less than a full packet length, to determine particular packet information, said particular packet information including a source address and a destination address; comparing the particular packet information to information contained in a lookup table; if a match is made between the particular packet information and a first entry in the lookup table, modifying the packet to include appropriate forwarding and routing information thereto based on the first entry in the lookup table, and sending the packet on a communication channel to a selected memory buffer; if there is no match between the particular packet information and the lookup table, learning the particular packet information and placing the information as a second entry in the lookup table, and modifying the packet information to indicate that the packet is to be sent to all ports on the network switch, then sending the packet to the selected memory buffer; and retrieving the packet from the selected memory buffer, and sending the packet to appropriate destination ports as indicated in the modified packet information.
- 5. A method as recited in claim 4, wherein when a match is made between the particular packet information and an entry in the lookup table, and when a new entry is made in the lookup table, a hit bit is set to indicate that the entry is active.
- 6. A method as recited in claim 5, wherein, after a first predetermined period of time, the hit bit is inactivated.
- 7. A method as recited in claim 6, wherein, after a second predetermined period of time, if the hit bit remains inactivated, the entry is deleted from the lookup table.
- 8. A method as recited in claim 5, wherein the hit bit can only be set and unset by a data port interface module associated with the first port of the switch.
- 9. A method as recited in claim 8, wherein an aging process is performed by the data port interface, said aging process including inactivation of the hit bit after a first predetermined period of time, and deleting the entry if the hit bit remains inactivated for a second predetermined period of time.
- 10. A method as recited in claim 7, wherein said first and second predetermined periods of time are each five minutes.
- 11. A network switch for network communications, said network switch comprising:
a first data port interface, said first data port interface supporting a plurality of data ports transmitting and receiving data at a first data rate; a second data port interface, said second data port interface supporting a plurality of data ports transmitting and receiving data at a second data rate; a CPU interface, said CPU interface configured to communicate with a CPU; an internal memory, said internal memory communicating with said first data port interface and said at least one second data port interface; a memory management unit, said memory management unit including an external memory interface for communicating data from at least one of said first data port interface and said second data port interface and an external memory; a communication channel, said communication channel for communicating data and messaging information between said first data port interface, said second data port interface, said internal memory, and said memory management unit; protocol determining means for determining whether an incoming packet is an IP packet or an IPX packet; an IP router table for looking up addresses of IP packets; an IPX router table for looking up IPX addresses of IPX packets; and an L3 table containing a plurality of L3 addresses, wherein, after a determination by the protocol determining means whether the packet is an IP or an IPX packet, an appropriate lookup is performed on the L3 table and one of the IPX router table and the IPX router table, wherein a match is determined based upon a longest prefix match of the packet with an entry in the table.
- 12. A network switch as recited in claim 11, wherein if no longest prefix match is found, the packet is sent to the CPU interface to be forwarded to the CPU.
- 13. A network switch as recited in claim 11, wherein said first data port interface, second data port interface, CPU interface, internal memory, memory management unit, communication channel, protocol determining means, IP router table, and IPX router table are configured on an application specific integrated circuit implemented on a single silicon microchip.
- 14. A network switch as recited in claim 11, wherein the longest prefix match is determined by ANDing a destination address with a number of IP or IPX subnet bits and comparing the result with IP or IPX address information in the one of the IP or IPX router table.
- 15. A network switch for network communications, said network switch comprising:
a first data port interface, said first data port interface supporting a plurality of data ports transmitting and receiving data at a first data rate; a second data port interface, said second data port interface supporting a plurality of data ports transmitting and receiving data at a second data rate; a CPU interface, said CPU interface configured to communicate with a CPU; an internal memory, said internal memory communicating with said first data port interface and said at least one second data port interface; a memory management unit, said memory management unit including an external memory interface for communicating data from at least one of said first data port interface and said second data port interface and an external memory; a communication channel, said communication channel for communicating data and messaging information between said first data port interface, said second data port interface, said internal memory, and said memory management unit; port movement detection means for detecting movement of a user from a first port to a second port, said port movement detecting means detecting a new port identification on a response packet coming from the user at the second port.
- 16. A network switch as recited in claim 15, wherein said port movement detecting means, upon detecting the new port identification of the second port updates a first lookup table to properly contain the address of the user at the second port.
- 17. A network switch as recited in claim 16, wherein one of the first and second data port interface associated with the second port sends a table synchronization message on the communication channel, thereby instructing another of the first and second data port interface to update a second lookup table disposed thereupon to contain the address of the user, such that the first lookup table and the second lookup table are synchronized to contain corresponding address information.
- 18. A method of switching packets in a network switch, said method comprising:
receiving an incoming packet on a first data port; determining whether said packet is an IP packet or an IPX packet; performing a lookup of a L3 lookup table to determine if a match can be found with selected fields of the packet; if the packet is determined to be an IP packet, concurrently performing a lookup of an IP lookup table to determine if a match can be found of IP address information in the packet and corresponding IP address information in the IP lookup table; if the packet is determined to be an IPX packet, concurrently performing a lookup of an IPX lookup table to determine if a match can be found of IPX address information in the packet and corresponding IPX address information in the IPX lookup table; if a match is found during the L3 lookup, abandoning the IP and IPX lookups and forwarding the packet to an appropriate port based upon the L3 lookup; if there is no match on the L3 lookup, forwarding the packet to an appropriate destination based upon the match in the IP or IPX lookup; if there is no match in the IP or IPX lookup, forwarding the packet to the CPU interface for packet handling by the CPU.
- 19. A method as recited in claim 18, wherein the lookup of the IP lookup table is a longest prefix lookup, and wherein the IP lookup table comprises a default IP router table.
- 20. A method as recited in claim 18, wherein the lookup of the IPX lookup table comprises a longest prefix lookup, and wherein the IPX lookup table comprises a default IPX router table.
- 21. A system as recited in claim 1, said system further comprising a priority assignment unit for assigning a weighted priority value to untagged packets entering one of the first data port interface and the second data port interface.
- 22. A system as recited in claim 21, wherein said weighted priority is one of eight weighted priorities which are defined by a priority queue, said priority queue being provided in one of the first and second data port interfaces.
- 23. A method as recited in claim 4, said method further comprising the step of applying a weighted priority value to untagged packets entering one of the first data port interface and the second data port interface.
- 24. A method as recited in claim 23, wherein said weighted priority is one of eight weighted priorities which are defined by a priority queue, said priority queue being provided in one of the first and second data port interfaces.
REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority of U.S. Provisional Patent Application Serial No. 60/092,220, filed on Jul. 8, 1998, and U.S. Provisional Application No. 60/095,972, filed on Aug. 10, 1998. The contents of these provisional applications is hereby incorporated by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60092220 |
Jul 1998 |
US |
|
60095972 |
Aug 1998 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09343410 |
Jun 1999 |
US |
Child |
10418280 |
Apr 2003 |
US |