Abstract:
An apparatus for switching network traffic includes an ingress packet forwarding engine and an egress packet forwarding engine. The ingress packet forwarding engine is configured to determine, in response to receiving a network packet, an egress packet forwarding engine for outputting the network packet and enqueue the network packet in a virtual output queue. The egress packet forwarding engine is configured to output, in response to a first scheduling event and to the ingress packet forwarding engine, information indicating the network packet in the virtual output queue and that the network packet is to be enqueued at an output queue for an output port of the egress packet forwarding engine. The ingress packet forwarding engine is further configured to dequeue, in response to receiving the information, the network packet from the virtual output queue and enqueue the network packet to the output queue.
Abstract:
In some embodiments, an apparatus includes a transmission schedule module in at least one of a memory or a processing device that can select, at a first time, a data unit to send to a network device based at least in part on a value of a transmission rate counter indicating that the network is in a first state. The transmission schedule module can receive, at a second time, an indication of a number of buffers associated with the data unit and can calculate a size estimate of the data unit based on the number of buffers and a capacity associated with each buffer. The transmission schedule module can calculate at a third time, a temporary transmission rate count and can send a signal to transition the network device from the first state to a second state if the temporary transmission rate count meets a criterion.
Abstract:
An apparatus for switching network traffic includes an ingress packet forwarding engine and an egress packet forwarding engine. The ingress packet forwarding engine is configured to determine, in response to receiving a network packet, an egress packet forwarding engine for outputting the network packet and enqueue the network packet in a virtual output queue. The egress packet forwarding engine is configured to output, in response to a first scheduling event and to the ingress packet forwarding engine, information indicating the network packet in the virtual output queue and that the network packet is to be enqueued at an output queue for an output port of the egress packet forwarding engine. The ingress packet forwarding engine is further configured to dequeue, in response to receiving the information, the network packet from the virtual output queue and enqueue the network packet to the output queue.
Abstract:
The techniques may provide a hierarchical scheduler for dynamically computing rate credits when a plurality of queues share an intermediate node. For example, the hierarchical scheduler may group respective sets of queues with respective virtual subscribers to be associated with a shared intermediate node. The weight used by the shared intermediate node may be computed as a function of the number of virtual subscriber child members of the shared intermediate node and their respective weights to correctly proportion the services to the queues. The techniques may also provide a hierarchical scheduler for dynamically computing rate credits allocated to queues associated with a shared intermediate node. For example, the number of rate credits allocated to a queue for a virtual subscriber is based on the product of the virtual subscriber weight and a queue weighted fraction of the queues for the virtual subscriber.
Abstract:
A first device may receive an indication that a time interval has elapsed. The time interval may indicate a time at which the first device is to provide a rate credit update to a second device. The first device may generate a request for a set of instructions. The first device may provide the request to a third device that may store the set of instructions. The first device may store information associated with the request, and a timestamp of the request, in a first data structure. The first device may receive, from the third device, the set of instructions. The first device may store the set of instructions and the timestamp in a second data structure. The first device may determine whether a threshold amount of time after the time indicated by the timestamp has elapsed. The first device may provide the rate credit update to the second device.
Abstract:
In some embodiments, an apparatus includes a transmission schedule module in at least one of a memory or a processing device that can select, at a first time, a data unit to send to a network device based at least in part on a value of a transmission rate counter indicating that the network is in a first state. The transmission schedule module can receive, at a second time, an indication of a number of buffers associated with the data unit and can calculate a size estimate of the data unit based on the number of buffers and a capacity associated with each buffer. The transmission schedule module can calculate at a third time, a temporary transmission rate count and can send a signal to transition the network device from the first state to a second state if the temporary transmission rate count meets a criterion.
Abstract:
In some embodiments, an apparatus includes a rate module implemented in at least one of a memory or a processing device that can be operatively coupled to a set of rate counters. Each rate counter is associated with a different network device associated with a level within the hierarchy of a network. The rate module can receive from a schedule module a signal to begin execution of a first page of a first rate program and can send during a first time period transmission credits to a first subset of rate counters. The rate module can send during a second time period transmission credits to a second subset of rate counters based on the execution of a page of a second rate program where the priority of the second rate program is no lower than a priority of the first rate program.