Patent classifications
H04L49/9047
SYSTEM AND METHOD FOR FACILITATING EFFICIENT LOAD BALANCING IN A NETWORK INTERFACE CONTROLLER (NIC)
A network interface controller (NIC) capable of efficient load balancing among the hardware engines is provided. The NIC can be equipped with a plurality of ordering control units (OCUs), a queue, a selection logic block, and an allocation logic block. The selection logic block can determine, from the plurality of OCUs, an OCU for a command from the queue, which can store one or more commands. The allocation logic block can then determine a selection setting for the OCU, select an egress queue for the command based on the selection setting, and send the command to the egress queue.
WEIGHTED TRAFFIC DISTRIBUTION BETWEEN GRADED PORTS
A system, a computing system, and a switch are provided. In one example, a system for routing data to one of a plurality of queues comprises a processor to poll a depth of one or more queues of the plurality of queues, determine a weight for each polled queue based on the depth of each polled queue, and route data received via a port to a first queue of the plurality of queues based on the determined weight for each polled queue.
WEIGHTED TRAFFIC DISTRIBUTION BETWEEN GRADED PORTS
A system, a computing system, and a switch are provided. In one example, a system for routing data to one of a plurality of queues comprises a processor to poll a depth of one or more queues of the plurality of queues, determine a weight for each polled queue based on the depth of each polled queue, and route data received via a port to a first queue of the plurality of queues based on the determined weight for each polled queue.
Traffic and load aware dynamic queue management
Some embodiments provide a queue management system that efficiently and dynamically manages multiple queues that process traffic to and from multiple virtual machines (VMs) executing on a host. This system manages the queues by (1) breaking up the queues into different priority pools with the higher priority pools reserved for particular types of traffic or VM (e.g., traffic for VMs that need low latency), (2) dynamically adjusting the number of queues in each pool (i.e., dynamically adjusting the size of the pools), (3) dynamically reassigning a VM to a new queue based on one or more optimization criteria (e.g., criteria relating to the underutilization or overutilization of the queue).
System and method for facilitating efficient packet forwarding in a network interface controller (NIC)
A network interface controller (NIC) capable of efficient packet forwarding is provided. The NIC can be equipped with a host interface, a packet generation logic block, and a forwarding logic block. During operation, the packet generation logic block can obtain, via the host interface, a message from the host device and for a remote device. The packet generation logic block may generate a plurality of packets for the remote device from the message. The forwarding logic block can then send a first subset of packets of the plurality of packets based on ordered delivery. If a first condition is met, the forwarding logic block can send a second subset of packets of the plurality of packets based on unordered delivery. Furthermore, if a second condition is met, the forwarding logic block can send a third subset of packets of the plurality of packets based on ordered delivery.
System and method for facilitating efficient packet forwarding in a network interface controller (NIC)
A network interface controller (NIC) capable of efficient packet forwarding is provided. The NIC can be equipped with a host interface, a packet generation logic block, and a forwarding logic block. During operation, the packet generation logic block can obtain, via the host interface, a message from the host device and for a remote device. The packet generation logic block may generate a plurality of packets for the remote device from the message. The forwarding logic block can then send a first subset of packets of the plurality of packets based on ordered delivery. If a first condition is met, the forwarding logic block can send a second subset of packets of the plurality of packets based on unordered delivery. Furthermore, if a second condition is met, the forwarding logic block can send a third subset of packets of the plurality of packets based on ordered delivery.
System and method for facilitating data-driven intelligent network with per-flow credit-based flow control
Data-driven intelligent networking systems and methods are provided. The system can accommodate dynamic traffic with fast, effective per-flow credit-based flow control. The system can maintain state information of individual packet flows, which can be set up or released dynamically based on injected data. Each flow can be provided with a flow-specific input queue upon arriving at a switch. Packets of a respective flow can be acknowledged after reaching the egress point of the network, and the acknowledgement packets can be sent back to the ingress point of the flow along the same data path. As a result, each switch can obtain state information of each flow and perform flow control on a per-flow basis.
System and method for facilitating data-driven intelligent network with per-flow credit-based flow control
Data-driven intelligent networking systems and methods are provided. The system can accommodate dynamic traffic with fast, effective per-flow credit-based flow control. The system can maintain state information of individual packet flows, which can be set up or released dynamically based on injected data. Each flow can be provided with a flow-specific input queue upon arriving at a switch. Packets of a respective flow can be acknowledged after reaching the egress point of the network, and the acknowledgement packets can be sent back to the ingress point of the flow along the same data path. As a result, each switch can obtain state information of each flow and perform flow control on a per-flow basis.
OPTIMALLY BALANCED NETWORK SYSTEMS
In an aspect, a system for an optimally balanced networked system is disclosed. The system includes a fabric adapter communication system communicatively coupled to a plurality of network ports and a plurality of controlling hosts. The fabric adapter communication system is configured to receive a network packet from, or transmit a network packet to, a network port of the plurality of network ports. The fabric adapter communication system is configured to separate the network packet into different portions, each portion including a header or a payload. The fabric adapter communication system is configured to forward the headers of the different portions to one or more controlling hosts. The fabric adapter communication system is configured to forward multiple payloads of the different portions in parallel through a bundled interface to multiple memory buffers of a global memory pool based on one or more scatter gather lists (SGLs).
Efficient memory bandwidth utilization in a network device
A system for efficient memory bandwidth utilization may include a depacketizer, a packetizer, and a processor core. The depacketizer may generate header information items from received packets, where the header information items include sufficient information for the processor core to process the packets without accessing the payloads from off-chip memory. The depacketizer may accumulate multiple payloads and may write the multiple payloads to the off-chip memory in a single memory transaction when a threshold amount of the payloads have been accumulated. The processor core may receive the header information items and may generate a single descriptor for accessing multiple payloads corresponding to the header information items from the off-chip memory. The packetizer may generate a header for each payload based at least on on-chip information and without accessing off-chip memory. Thus, the subject system provides efficient memory bandwidth utilization, e.g. at least by reducing the number of off-chip memory accesses.