Claims Analysis
Total Claims: 14
Claim 1
Independent Claim
172 words
A method of distributing traffic over a network port group, comprising: receiving a packet of data to be forwarded; determining a stream ID for said packet by hashing and masking; determining whether a bit for the stream ID is set in a current time mark register; where the bit is not set, setting the bit in the current time mark register, and determining whether a bit for the stream ID is set in an alternate time mark register; where neither the bit in the current nor the alternate time mark registers are set, allocating the packet to a least utilized queue, assigning the packet a queue mark bit, and storing an identifier for the queue in a stream state table location corresponding to the stream ID; where the bit for the stream ID is set in the current time mark register, consulting the stream state table for an identifier of a transmit queue to which the packet is assigned, and assigning the packet a queue mark bit; and forwarding the queued packet.
Claim 2
Independent Claim
172 words
A method of distributing traffic over a network port group, comprising: receiving a packet of data to be forwarded; determining a stream ID for said packet by hashing and masking; determining whether a bit for the stream ID is set in a current time mark register; where the bit is not set, setting the bit in the current time mark register, and determining whether a bit for the stream ID is set in an alternate time mark register; where neither the bit in the current nor the alternate time mark registers are set, allocating the packet to a least utilized queue, assigning the packet a queue mark bit, and storing an identifier for the queue in a stream state table location corresponding to the stream ID; where the bit for the stream ID is set in the current time mark register, consulting the stream state table for an identifier of a transmit queue to which the packet is assigned, and assigning the packet a queue mark bit; and forwarding the queued packet.
Claim 3
Dependent Claim
69 words
The method of claim 1 , further comprising: maintaining proper identification of the least utilized queue whenever a packet is pushed onto a queue, comprising, comparing the identifier of the queue with a least utilized queue identifier, and where the identifiers are the same, determining if any other queues in the port group have no entries, and selecting a queue with no entries to be the least utilized queue.
Claim 4
Dependent Claim
78 words
The method of claim 2 , further comprising: maintaining proper identification of the least utilized queue whenever a packet is popped from a queue, each of said queues having a number of entries, comprising, comparing the number of entries in the queue with the number of entries in the least utilized queue, and where the number of entries on the queue is less than that on the least utilized queue, designating the queue as the least utilized queue.
Claim 5
Dependent Claim
104 words
The method of claim 3 , further comprising a method of updating the time mark registers, comprising: determining whether a load balance time interval has passed; where the load balance time interval has passed, determining for each queue of the port group, whether a queue mark indicate bit assigned to packets exiting the queue is equal to a queue mark bit being assigned to packets entering the queue; where the queue mark indicate bit is the same as the queue mark bit, clearing all alternate time mark register bits, and toggling all queue mark bits; and, switching the current and alternate time mark registers.
Claim 6
Dependent Claim
20 words
The method of claim 4 , wherein said load balance time interval is less than about 1 millisecond in duration.
Claim 7
Dependent Claim
58 words
The method of claim 4 , further comprising a method of handling empty queues, comprising: immediately prior to or after switching the current and alternate time mark registers, checking to see if any queues for ports of the group are empty; for any empty queues, setting the queue's queue mark indicate bit equal to its queue mark bit.
Claim 8
Dependent Claim
151 words
A network switch, comprising: a port group; a system for distributing network traffic among ports of the port group, comprising, a mechanism for determining a stream ID for a packet and assigning the packet having the stream ID to a queue of a port of the port group, and a mechanism for adjusting a queue assignment of a subsequent packet having the stream ID to a queue of a different port of the port group based on load in the queues of the ports of the group, wherein the adjusting mechanism comprises: a least utilized queue register for maintaining proper identification of a least utilized queue, and a pair of queue mark registers for determining whether a queue for a port of the port group is current, and a clock for timing a load balance time interval, wherein said load balance time interval is less than about 1 millisecond in duration.
Claim 9
Dependent Claim
151 words
A network switch, comprising: a port group; a system for distributing network traffic among ports of the port group, comprising, a mechanism for determining a stream ID for a packet and assigning the packet having the stream ID to a queue of a port of the port group, and a mechanism for adjusting a queue assignment of a subsequent packet having the stream ID to a queue of a different port of the port group based on load in the queues of the ports of the group, wherein the adjusting mechanism comprises: a least utilized queue register for maintaining proper identification of a least utilized queue, and a pair of queue mark registers for determining whether a queue for a port of the port group is current, and a clock for timing a load balance time interval, wherein said load balance time interval is less than about 1 millisecond in duration.
Claim 10
Dependent Claim
90 words
The switch of claim 7 , wherein the mechanism for determining a stream ID and assigning the packet having the stream ID to a queue for a port of the port group comprises: a hashing and masking mechanism for determining a stream ID for the packet; a pair of time mark registers for determining whether another packet having the stream ID has been distributed to a queue for a port of the group during a time interval; and a stream state table for storing stream IDs with corresponding queue assignments.
Claim 11
Dependent Claim
138 words
A computer program product comprising a computer-usable medium having computer-readable program code embodied thereon relating to updating current and alternate time mark registers for a dynamic load balancing of traffic on a port group, the computer program product comprising computer-readable program code for effecting the following steps within a computing system: determining whether a load balance time interval has passed; where the load balance time interval has passed, determining for each queue of the port group, whether a queue mark indicate bit assigned to packets exiting the queue is equal to a queue mark bit being assigned to packets entering the queue; where the queue mark indicate bit is the same as the queue mark bit, clearing all alternate time mark register bits, and toggling all queue mark bits; and, switching the current and alternate time mark registers.
Claim 12
Dependent Claim
138 words
A computer program product comprising a computer-usable medium having computer-readable program code embodied thereon relating to updating current and alternate time mark registers for a dynamic load balancing of traffic on a port group, the computer program product comprising computer-readable program code for effecting the following steps within a computing system: determining whether a load balance time interval has passed; where the load balance time interval has passed, determining for each queue of the port group, whether a queue mark indicate bit assigned to packets exiting the queue is equal to a queue mark bit being assigned to packets entering the queue; where the queue mark indicate bit is the same as the queue mark bit, clearing all alternate time mark register bits, and toggling all queue mark bits; and, switching the current and alternate time mark registers.
Claim 13
Dependent Claim
22 words
The computer program product of claim 9 , wherein said load balance time interval is less than about 1 millisecond in duration.
Claim 14
Dependent Claim
52 words
The computer program product of claim 9 , wherein immediately prior to or after switching the current and alternate time mark registers, checking to see if any queues for ports of the group are empty; for any empty queues, setting the queue's queue mark indicate bit equal to its queue mark bit.