Patent classifications
H04L49/9031
Packet validation in virtual network interface architecture
Roughly described, a network interface device receiving data packets from a computing device for transmission onto a network, the data packets having a certain characteristic, transmits the packet only if the sending queue has authority to send packets having that characteristic. The data packet characteristics can include transport protocol number, source and destination port numbers, source and destination IP addresses, for example. Authorizations can be programmed into the NIC by a kernel routine upon establishment of the transmit queue, based on the privilege level of the process for which the queue is being established. In this way, a user process can use an untrusted user-level protocol stack to initiate data transmission onto the network, while the NIC protects the remainder of the system or network from certain kinds of compromise.
Remote direct memory access based networking gateway
A system includes a memory including a plurality of rings, an endpoint associated with a ring of the plurality of rings, and a gateway. The gateway is configured to receive a notification from the endpoint regarding a packet made available in the ring associated with the endpoint, access the ring with an RDMA read request, retrieve the packet made available in the ring, and forward the packet on an external network.
Adjustable receive queue for processing packets in a network device
A network device, such as a Network Interface Card (NIC), can have a receive queue (RxQ) that changes size based on whether the network device is in a normal operating mode or in a maintenance mode. In a normal operating mode, it is desirable that the receive queue has a smaller number of free buffers, to increase cache locality in a processor subsystem. However, there can be known periods when the receive queue can be overloaded. During a maintenance period, it is desirable that the receive queue absorbs a large burst of network packets while the processor subsystem is not processing the packets. A solution is to maintain a receive queue at a smaller percentage of its maximum during the normal operation mode, but then before or upon entering the maintenance mode, expand the receive queue to a larger size.
NETWORK DEVICE HAVING FLEXIBLE RATE LIMITER
A network device for a communications network includes a port configured to transmit data to the network at a maximum transmit data rate. The device also includes a transmit buffer configured to buffer data units that are ready for transmission to the network, and a packet buffer configured to buffer data units before the data units are ready for transmission. The packet buffer is configured to output data units at a maximum packet buffer transmission rate faster than the maximum transmit data rate. The device includes a rate controller configured to control a transmission rate of data from the packet buffer to the transmit buffer so that averaged over a period, the transmission rate from the packet buffer to the transmit buffer is at most equal to the maximum transmit data rate, while allowing the transmission rate, at one or more time intervals, to exceed the maximum transmit data rate.
Network device having flexible rate limiter
A network device for a communications network includes a port configured to transmit data to the network at a maximum transmit data rate. The device also includes a transmit buffer configured to buffer data units that are ready for transmission to the network, and a packet buffer configured to buffer data units before the data units are ready for transmission. The packet buffer is configured to output data units at a maximum packet buffer transmission rate faster than the maximum transmit data rate. The device includes a rate controller configured to control a transmission rate of data from the packet buffer to the transmit buffer so that averaged over a period, the transmission rate from the packet buffer to the transmit buffer is at most equal to the maximum transmit data rate, while allowing the transmission rate, at one or more time intervals, to exceed the maximum transmit data rate.
Routerless networks-on-chip
The disclosed technology concerns methods, apparatus, and systems for designing and generating networks-on-chip (NoCs), as well as to hardware architectures for implementing such NoCs. The disclosed NoCs can be used, for instance, to interconnect cores of a chip multiprocessor (aka a multi-core processor). In one example implementation, a wire-based routerless NoC design is disclosed that uses deterministically specified wire loops to connect the cores of the chip multiprocessor. The disclosed technology also comprises network interface architectures for use in an NoC. For example, a core can be equipped with a low-area-cost interface that is deadlock-free, uses buffering sharing, and provides low latency.
Joining data within a reconfigurable fabric
Techniques are disclosed for managing data within a reconfigurable computing environment. In a multiple processing element environment, such as a mesh network or other suitable topology, there is an inherent need to pass data between processing elements. Subtasks are divided among multiple processing elements. The output resulting from the subtasks is then merged by a downstream processing element. In such cases, a join operation can be used to combine data from multiple upstream processing elements. A control agent executes on each processing element. A memory buffer is disposed between upstream processing elements and the downstream processing element. The downstream processing element is configured to automatically perform an operation based on the availability of valid data from the upstream processing elements.
Bandwidth matched scheduler
A computing system uses a memory for storing data, one or more clients for generating network traffic and a communication fabric with network switches. The network switches include centralized storage structures, rather than separate input and output storage structures. The network switches store particular metadata corresponding to received packets in a single, centralized collapsing queue where the age of the packets corresponds to a queue entry position. The payload data of the packets are stored in a separate memory, so the relatively large amount of data is not shifted during the lifetime of the packet in the network switch. The network switches select sparse queue entries in the collapsible queue, deallocate the selected queue entries, and shift remaining allocated queue entries toward a first end of the queue with a delay proportional to the radix of the network switches.
Transport Protocol and Interface for Efficient Data Transfer Over RDMA Fabric
Described herein is a system and method for utilizing a protocol over RDMA network fabric between a first computing node and a second computing node. The protocol identifies a first threshold and a second threshold. A transfer request is received, and, a data size associated with the transfer request is determined. Based up the data size associated with the transfer request, one of at least three transfer modes is selected to perform the transfer request in accordance with the first threshold and the second threshold. Each transfer mode utilizes flow control and at least one RDMA operation. The selected transfer mode is utilized to perform the transfer request.
Statistics collecting architecture
Disclosed are techniques that can be used to efficiently collect statistical or other information from many registers in an integrated circuit without substantially burdening a central processing unit. The techniques can use logic that, without being directed by a central processing unit, can periodically collect information from a plurality of disparate registers of an integrated circuit and move the contents of the registers to memory (e.g., volatile memory accessible by the central processing unit) other than the registers.