Multicast replication skip
First Claim
1. A method comprising:
- receiving a flow of incoming packets;
replicating the flow of incoming packets for a plurality of egress ports;
receiving the replicated packets at a real queue of one of the plurality of egress ports; and
counting the replicated packets in a virtual queue as an indicator of congestion in the real queue, wherein a first service rate (R) associated with the real queue and a second service rate (X) is associated with the virtual queue according to X =R*(1−
ε
), wherein ε
is a value between 0 and 1 and (1−
ε
) is a constant ratio, comparing a count value for the virtual queue to a threshold; and
dropping packets at the real queue when the count value for the virtual queue exceeds a threshold.
1 Assignment
0 Petitions
Accused Products
Abstract
In one implementation, the volumes of the queues in a network device are monitored to identify ports that are congested or near congestion. In another implementation, an auxiliary queue or counter is used to measure the long term congestion or predict future congestion. The auxiliary queue includes a counter that tracks the occupancy of the queue through a service rate that is less than the service rate of the queue. The service rate of the queue may be the data rate at which data leaves the queue. The service rate of the counter or auxiliary queue may be the speed at which the value of the counter changes. Forced packet dropping may be applied to packets destined to queues associated with a counter that exceeds a threshold.
28 Citations
16 Claims
-
1. A method comprising:
- receiving a flow of incoming packets;
replicating the flow of incoming packets for a plurality of egress ports;
receiving the replicated packets at a real queue of one of the plurality of egress ports; and
counting the replicated packets in a virtual queue as an indicator of congestion in the real queue, wherein a first service rate (R) associated with the real queue and a second service rate (X) is associated with the virtual queue according to X =R*(1−
ε
), wherein ε
is a value between 0 and 1 and (1−
ε
) is a constant ratio, comparing a count value for the virtual queue to a threshold; and
dropping packets at the real queue when the count value for the virtual queue exceeds a threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
- receiving a flow of incoming packets;
-
11. A network device comprising:
- an input communication interface configured to receive a sequence of data packets;
a controller configured to direct the sequence of data packets to a queue having a first service rate and accumulate a count value associated with the queue according to an amount of data in the sequence of data packets, wherein the count value is stored in a shadow queue having a second service rate; and
an output communication interface that receives the sequence of data packets until the count value exceeds a predetermined threshold, wherein the controller is configured to replicate data packets destined for the output communication interface when the count value is less than the predetermined threshold and configured to drop data packets destined for the output communication interface when the count value is greater than the predetermined threshold, wherein the second service rate (X) is associated with the first service rate (R) according to X =R*(1−
ε
), wherein ε
is a value between 0 and 1. - View Dependent Claims (12, 13)
- an input communication interface configured to receive a sequence of data packets;
-
14. A non-transitory computer readable medium containing instructions that when executed are configured to:
- receive a flow of incoming packets;
replicate the flow of incoming packet as replicated packets;
send the replicated packets to a plurality of egress ports;
receive the replicated packets at a real queue of one of the plurality of egress ports, wherein the real queue drains at a first rate;
track an occupancy of the virtual queue that drains at a second rate, wherein the second rate (X) is associated with the first rate (R) according to X =R*(1−
ε
), wherein ε
is a value between 0 and 1; and
compare data indicative of the occupancy of the real queue to a predetermined threshold; and
drop packets at the real queue when the occupancy of the virtual queue exceeds the predetermined threshold. - View Dependent Claims (15, 16)
- receive a flow of incoming packets;
Specification