LOSSLESS SWITCHING OF TRAFFIC IN A NETWORK DEVICE
First Claim
1. A system for lossless switching of traffic in a network device, the system comprising:
- a network device comprising queues;
a data source comprising data items, each of the data items being associated with one of the queues; and
a processor that is communicably coupled to the data source and the network device, and that is configured to;
receive queue depth information for each of the queues of the network device; and
release at least one of the data items to the network device when the queue depth information indicates that the associated queue can accommodate the at least one of the data items, irrespective of the queue depth information for the other queues.
6 Assignments
0 Petitions
Accused Products
Abstract
A system for lossless switching of traffic in a network device may be implemented when a network switch is integrated into a gateway device, or with any other data source. A processor of the gateway device may receive queue depth information for queues of the network switch. The processor may prevent data from being transmitted to congested queues of the network switch, while allowing data to be transmitted to uncongested queues. In this manner, data loss can be avoided through the network switch for data sourced from the gateway device, such as audio-video data retrieved from a hard drive, audio-video data received from a tuner, etc. Furthermore, re-transmission at higher layers can be reduced. Since the subject system observes congestion for each individual queue, only traffic destined to that particular, congested, queue is affected, e.g. paused. Traffic to non-congested queues is not affected, regardless of traffic class or egress port.
-
Citations
20 Claims
-
1. A system for lossless switching of traffic in a network device, the system comprising:
-
a network device comprising queues; a data source comprising data items, each of the data items being associated with one of the queues; and a processor that is communicably coupled to the data source and the network device, and that is configured to; receive queue depth information for each of the queues of the network device; and release at least one of the data items to the network device when the queue depth information indicates that the associated queue can accommodate the at least one of the data items, irrespective of the queue depth information for the other queues. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A switch device comprising:
-
a first ingress port that is associated with audio video (AV) traffic, and a second ingress port that is associated with non-AV traffic; a plurality of egress ports, each of the plurality of egress ports being associated with a plurality of queues, at least one of the plurality of queues of each of the plurality of egress ports being dedicated to the audio video (AV) traffic of the first ingress port and at least one of the plurality of queues of each of the plurality of egress ports being dedicated to the non-AV traffic of the second ingress port; and a plurality of schedulers that each schedules the plurality of queues associated with one of the plurality of ports for transmission over the one of the plurality of ports, wherein the at least one of the plurality of queues that is dedicated to the AV traffic of each of the plurality of ports is scheduled with a higher scheduling priority than the at least one of the plurality of queues of each of the plurality of ports that is dedicated to the non-AV traffic. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A computer program product comprising instructions stored in a tangible computer-readable storage medium, the instructions comprising:
-
instructions for receiving an indication of intent to release a packet from a data source, the indication comprising a packet size and an identifier of a queue of a switch device; instructions for determining whether space is available for the packet in a portion of a buffer that is allocated to the queue of the switch device based at least in part on the packet size, a queue depth of the queue, and a variable that is indicative of whether other data units associated with the queue are in-transit; and instructions for allowing the packet to be scheduled for release from the data source when the space is available for the packet; and instructions for preventing the packet from being scheduled for release from the data source when the space is not available for the packet. - View Dependent Claims (19, 20)
-
Specification