Patent classifications
H04L47/527
Shared-Credit Arbitration Circuit
This patent application relates generally to a shared-credit arbitration circuit for use in arbitrating access by a number of virtual channels to a shared resource managed by a destination (arbiter) based on credits allotted to each virtual channel, in which only the destination is aware of the availability of a shared pool of resources, and the destination selectively provides access to the shared pool by the virtual channels and returns credits to the source(s) associated with the virtual channels when shared resources are used so that the source(s) are unaware of the destination's use of the shared resources and are unhindered by the destination's use of shared resources. Among other things, this can significantly reduce the complexity of the source(s) and the required handshaking between the source(s) and the destination.
Age-Based Arbitration Circuit
This patent application relates generally to an age-based arbitration circuit for use in arbitrating access by a number of data streams to a shared resource managed by a destination (arbiter), in which age-based determinations are performed at the input sources of the data streams in order to designate certain packets as high-priority packets based on packet ages, and the destination expedites processing of the high-priority packets. Among other things, this approach offloads the age-based determinations from the destination, where they otherwise can cause delays in processing packets.
Dropping or Admitting Packets to an Output Queue using Policy-Based Scheduling and Virtual Destination Queue Occupancy Values
One embodiment is associated with dropping or admitting packets to an output queue using occupancy values of virtual destination queues which are updated according to different independent disciplines upon the enqueuing of a packet to an output queue, and the dequeuing of that packet from an output queue. In one embodiment, a virtual destination queue is determined for a packet. A policing decision is made whether to drop the packet or admit the packet to the output queue based on the occupancy level of the determined virtual destination queue, which is updated upon admission. Packets are dequeued in first-in-first-out order from the output queue. For a dequeued one or more packets, one or more of the occupancy values of the virtual destination queues are updated based a scheduling policy that is independent of the particular virtual destination queue(s) associated with the dequeued packets.
Apparatus to achieve quality of service (QOS) without requiring fabric speedup
A device may store a credit value for each of multiple output components. The device may receive packets from a network device via an input component. The device may cause the input component to queue the packets. The device may selectively dequeue a packet from the input component, to be sent to an output component, based on whether the credit value for the output component satisfies a credit threshold. The device may send the packet to the output component based on a destination of the packet when the packet is dequeued from the input component. The device may determine a size of the packet after the packet is dequeued. The device may update the credit value for the output component based on the size of the packet. The device may output the packet to another network device via the output component.
TRANSMISSION APPARATUS AND TRANSMISSION PROCESSING METHOD
There is provided a transmission apparatus including at least one memory in which a first data including a first destination information and a second data including a second destination information are stored, and at least one processor coupled to the at least one memory and the at least one processor configured to control the at least one memory to output the first data and the second data stored in the at least one memory according to a set rate, and control the set rate to output one of the first data and the second data according to a priority degree.
ARBITRATION OF MULTIPLE-THOUSANDS OF FLOWS FOR CONVERGENCE ENHANCED ETHERNET
In one embodiment, a method includes receiving a plurality of flows, each flow comprising packets of data and assigning a service credit to each of the plurality of flows. In addition, the method includes assigning a weight parameter to each of the plurality of flows, and selecting a flow from a head of a first control queue unless the first control queue is empty or there is indication that the first control queue should be avoided. A flow is selected from a head of a second control queue in response to a determination that the first control queue is empty or there is indication that the first control queue should be avoided. Additionally, the method includes providing a number of units of service to the selected flow. Moreover, the method includes decreasing the selected flow's service credit by an amount corresponding to the number of units of service provided thereto.
METHOD FOR PRIORITIZING NETWORK PACKETS AT HIGH BANDWIDTH SPEEDS
The embodiments are directed to methods and appliances for scheduling a packet transmission. The methods and appliances can assign received data packets or a representation of data packets to one or more connection nodes of a classification tree having a link node and first and second intermediary nodes associated with the link node via one or more semi-sorted queues, wherein the one or more connection nodes correspond with the first intermediary node. The methods and appliances can process the one or more connection nodes using a credit-based round robin queue. The methods and appliances can authorize the sending of the received data packets based on the processing.
Opportunistic wireless resource utilization using dynamic traffic shaping
Systems and methods which provide resource sharing techniques implementing opportunistic shared resource utilization using dynamic traffic shaping are disclosed. Embodiments implement a multi-part transmission frame generation process in which data packets of various different traffic flows are selected for the transmission frame to fill the frame capacity. For example, scheduling logic may apply traffic shaping logic to select data packet queues from which data packets are to be included in a frame and to initially determine a number of packets to be included in the frame from each selected data packet queue according to the traffic shaping logic. Thereafter, the frame may be analyzed to determine if excess capacity remains. The scheduling logic may then apply traffic shaping logic to the data packet queues to implement an opportunistic scheme for including additional data packets in the frame and thereby fill the excess capacity.
Inter-device policing on network interface devices in LAG configuration
A master network interface device (NID) receives a first packet flow associated with a particular customer via a first link of a link aggregation group (LAG). The master NID also receives, from a non-master NID, an indication of a second packet flow, associated with the particular customer, that are traversing a second link of the LAG. The master NID applies collective rate limiting criteria to the first packet flow and to the second packet flow, such that the collective rate limiting criteria enforces a SLA rate for the particular customer. The master NID forwards at least some of the first packet flow via the first link, based on the rate limiting criteria as applied to the first packet flow. The master NID also sends, to the non-master network interface device, an indication of the rate limiting criteria as applied to the second packet flow.
Allocating bandwidth between bandwidth zones according to user load
A bandwidth management system includes a plurality of queues respectively corresponding to a plurality of zones. An enqueuing module receives network traffic from one or more incoming network interfaces, determines a belonging zone to which the network traffic belongs, and enqueues the network traffic on a queue corresponding to the belonging zone. A dequeuing module selectively dequeues data from the queues and passes the data to one or more outgoing network interfaces. When dequeuing data from the queues the dequeuing module dequeues an amount of data from a selected queue, and the amount of data dequeued from the selected queue is determined according to user load of a zone to which the selected queue corresponds.