Switching ethernet controller
First Claim
1. A generally full-wire throughput, switching Ethernet controller for use within an Ethernet network of other switching Ethernet controllers connected together by a bus, the controller comprising:
- a. a plurality of ports including at least one bus port associated with ports connected to other switching Ethernet controllers;
b. a hash table for storing to store addresses of ports within said Ethernet network;
c. a hash table address control for hashing to hash the address of a packet to initial hash table location values, for changing the hash table location values by a fixed jump amount if the address values stored in said initial hash table location does not match the received address, and for providing at least an output port number of the port associated with the received address;
d. a storage buffer including a multiplicity of contiguous buffers in which to temporarily store said packet;
e. an empty list including a multiplicity of single bit buffers;
f. a packet storage manager for associating to associate the state of the bit of a single bit buffer with the empty or full state of an associated contiguous buffer and for generating the address of a contiguous buffer through a simple function of the address or number of its associated single bit buffer;
g. a packet transfer manager for directing to direct said temporarily stored packet to the port determined by said hash table control unit; and
h. a write-only bus communication unit, activated by said packet transfer manager, for transferring said to transfer the directed packet out said at least one bus port by utilizing said bus only for write operations.
2 Assignments
0 Petitions
Accused Products
Abstract
An Ethernet controller, for use within an Ethernet network of other Ethernet controller connected together by a bus, is provided. The Ethernet controller includes a plurality of ports including at least one bus port associated with ports connected to other switching Ethernet controllers, a hash table for storing addresses of ports within the Ethernet network, a hash table address control, a storage buffer including a multiplicity of contiguous buffers in which to temporarily store said packet, an empty list including a multiplicity of single bit buffers, a packet storage manager, a packet transfer manager and a write-only bus communication unit. The hash table address control hashes the address of a packet to initial hash table location values, changes the hash table location values by a fixed jump amount if the address values stored in the initial hash table location do not match the received address, and provides at least an output port number of the port associated with the received address. The packet storage manager associates the state of the bit of a single bit buffer with the empty or full state of an associated contiguous buffer and generates the address of a contiguous buffer. The packet transfer manager directs the temporarily stored packet to the port determined by said hash table control unit. The write-only bus communication unit is activated by the packet transfer manager, for transferring the packet out of the bus port by utilizing the bus for write only operations.
50 Citations
38 Claims
-
1. A generally full-wire throughput, switching Ethernet controller for use within an Ethernet network of other switching Ethernet controllers connected together by a bus, the controller comprising:
-
a. a plurality of ports including at least one bus port associated with ports connected to other switching Ethernet controllers;
b. a hash table for storing to store addresses of ports within said Ethernet network;
c. a hash table address control for hashing to hash the address of a packet to initial hash table location values, for changing the hash table location values by a fixed jump amount if the address values stored in said initial hash table location does not match the received address, and for providing at least an output port number of the port associated with the received address;
d. a storage buffer including a multiplicity of contiguous buffers in which to temporarily store said packet;
e. an empty list including a multiplicity of single bit buffers;
f. a packet storage manager for associating to associate the state of the bit of a single bit buffer with the empty or full state of an associated contiguous buffer and for generating the address of a contiguous buffer through a simple function of the address or number of its associated single bit buffer;
g. a packet transfer manager for directing to direct said temporarily stored packet to the port determined by said hash table control unit; and
h. a write-only bus communication unit, activated by said packet transfer manager, for transferring said to transfer the directed packet out said at least one bus port by utilizing said bus only for write operations. - View Dependent Claims (2)
-
-
3. A network controller, comprising:
-
a plurality of ports including (i) at least a source port capable of communicating with a source device, and (ii) a destination port capable of communicating with a destination device, the source device having a source address and the destination device having a destination address, wherein the source device transmits at least one packet to the destination device, the packet comprising at least one of the destination address and a combination of the destination address and data;
a hash table comprising a plurality of hash table locations to store destination addresses;
a hash table address controller to hash the destination address from the at least one packet for comparison with the addresses stored in at least one of said plurality of hash table locations;
an empty list including a multiplicity of single bit buffers; and
a packet storage manager to associate a state of the bit of a single bit buffer with one of an empty state and a full state of an associated contiguous buffer and for generating the address of a contiguous buffer through a simple function of one of an address and a number of its associated single bit buffer, wherein if an address stored in one of said plurality of hash table locations matches the destination address, said hash table address controller provides information that causes data to be transmitted from said source port to said destination port, and wherein if an address stored in the one of said plurality of hash table locations does not match the destination address, said hash table address controller changes the address stored in the one of said plurality of hash table locations by a predetermined amount. - View Dependent Claims (4, 5, 6, 7, 8)
-
-
9. A network controller, comprising:
-
a plurality of ports including (i) at least a source port capable of communicating with a source device, and (ii) at least a destination port capable of communicating with a destination device, the source device having a source address and the destination device having a destination address, wherein the source device transmits at least one packet to the destination device, the packet comprising at least one of the destination address and a combination of the destination address and data;
a hash table comprising a plurality of hash table locations to store destination addresses;
a hash table address controller to hash the destination address from the packet for comparison with the addresses stored in at least one of said plurality of hash table locations; and
a transfer manager, wherein, if an address stored in one of said plurality of hash table locations matches the destination address as compared by said hash table address controller, said data transfer manager sends the data from said source port to said destination port, wherein, if an address stored in the one of said plurality of hash table locations does not match the destination address, said hash data address controller changes the addresses stored in the one of said plurality of hash table locations by a predetermined amount. - View Dependent Claims (10, 11)
-
-
12. A network controller, comprising:
-
a plurality of ports including (i) at least a source port capable of communicating with a source device, and (ii) at least a destination port capable of communicating with a destination device, the source device having a source address and the destination device having a destination address, wherein the source device transmits at least one packet to the destination device, the packet comprising at least one of the destination address and a combination of the destination address and data;
a hash table comprising a plurality of hash table locations to store destination addresses;
a hash table address controller to hash the destination address from the packet for comparison with the addresses stored in at least two of said plurality of hash table locations; and
a transfer manager, wherein, if an address stored in one of said plurality of hash table locations matches the destination address as compared by said hash table address controller, said data transfer manager sends the data from said source port to said destination port. - View Dependent Claims (13)
-
-
14. A network controller, comprising:
-
a plurality of port means for communicating information, including (i) at least a source port means for communicating with a source device, and (ii) a destination port means for communicating with a destination device, the source device having a source address and the destination device having a destination address, wherein the source device transmits at least one packet to the destination device, the packet comprising at least one of the destination address and a combination of the destination address and data;
a plurality of hash table location means for storing destination addresses; and
hash table address controller means for hashing the destination address from the packet for comparison with the addresses stored in at least one of said plurality of hash table location means, wherein if an address stored in one of said plurality of hash table location means matches the destination address, said hash table address controller means provides information that causes data to be transmitted from said source port means to said destination port means, and wherein if an address stored in the one of said plurality of hash table location means does not match the destination address, said hash table address controller means changes the address stored in the one of said plurality of hash table location means by a predetermined amount. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A network controller, comprising:
-
a plurality of port means for communicating information, including (i) at least a source port means for communicating with a source device, and (ii) a destination port means for communicating with a destination device, the source device having a source address and the destination device having a destination address, wherein the source device transmits at least one packet to the destination device, the packet comprising at least one of the destination address and a combination of the destination address and data;
a plurality of hash table location means for storing destination addresses;
hash table address controller means for hashing the destination address from the packet for comparison with the addresses stored in at least one of said plurality of hash table location means;
a multiplicity of single bit buffer means for determining one of an empty state and a full state of an associated contiguous buffer means for storing information;
packet storage manager means for associating a state of a bit of a single bit buffer means with one of the empty state and the full state of an associated contiguous buffer means, and for generating the address of a contiguous buffer means through a simple function of one of an address and a number of its associated single bit buffer means; and
transfer manager means for sending the data from said source port means to said destination port means, when an address stored in one of said plurality of hash table location means matches the destination address as compared by said hash table address controller means. - View Dependent Claims (21, 22, 24, 25)
-
-
26. A method of controlling communication among a plurality of ports comprising (i) a source port in communication with a source device and (ii) a destination port in communication with a destination device, the source device having a source address and the destination device having a destination address, wherein the source device transmits at least one packet to the destination device, the packet comprising at least one of the destination address and a combination of the destination address and data, the method comprising the steps of:
-
a. storing destination addresses in one of a plurality of hash table locations;
b. hashing the destination address from the at least one packet;
c. comparing the hashed destination address from step b with the addresses stored in at least one of the plurality of hash table locations;
d. transmitting the data from the source port to the destination port if an address stored in one of the plurality of hash table locations matches the destination address compared in step c, or changing an address stored in the one of the plurality of hash table locations by a predetermined amount if an address stored in the one of the plurality of hash table locations does not match the destination address compared in step c. - View Dependent Claims (23, 27, 28, 29, 30, 31, 32)
-
-
33. A method of controlling communication among a plurality of ports comprising (i) at least a source port in communication with a source device and (ii) a destination port in communication with a destination device, the source device having a source address and the destination device having a destination address, wherein the source device transmits at least one packet to the destination device, the packet comprising at least one of the destination address and a combination of the destination address and data, the method comprising the steps of:
-
a. storing destination addresses in one of a plurality of hash table locations;
b. hashing the destination address from the packet;
c. comparing the hashed destination address from step b with the addresses stored in at least one of the plurality of hash table locations, and changing an address stored in the one of the plurality of hash table locations by a predetermined amount if the address stored in the one of the plurality of hash table locations does not match the hashed destination address;
d. directing the data from the source port for transmission to the destination port if an address stored in one of the plurality of hash table locations matches the destination address as compared in step c. - View Dependent Claims (34, 35, 36)
-
-
37. A method of controlling communication among a plurality of ports comprising (i) at least a source port in communication with a source device and (ii) a destination port in communication with a destination device, the source device having a source address and the destination device having a destination address, wherein the source device transmits at least one packet to the destination device, the packet comprising at least one of the destination address and a combination of the destination address and data, the method comprising the steps of:
-
a. storing destination addresses in one of a plurality of hash table locations;
b. hashing the destination address from the packet;
c. comparing the hashed destination address from step b with the addresses stored in at least two of the plurality of hash table locations;
d. directing the data from the source port for transmission to the destination port if an address stored in one of the plurality of hash table locations matches the destination address as compared in step c. - View Dependent Claims (38)
-
Specification