Patent application number | Description | Published |
20100020818 | SHARING BUFFER SPACE IN LINK AGGREGATION CONFIGURATIONS - In link aggregation configurations, a data packet may be copied into a buffer space of a first NIC. Load balancing techniques may determine that the packet should be transmitted by a second NIC. The packet exists in memory that the second NIC cannot access. The data packet is copied into memory accessible to the second NIC or the memory location of the packet is registered with the NIC. A copy penalty is incurred if a packet is copied from a first buffer space to a second buffer space. A registration penalty is incurred if the location within the first buffer space is registered with the second NIC. Functionality can be implemented within a link aggregation configuration to register buffer space shared among interconnected NICs. Sharing of buffer space between interconnected NICs allows any one of the NICs to access data within the shared buffer space without incurring a penalty. | 01-28-2010 |
20100153974 | OBTAIN BUFFERS FOR AN INPUT/OUTPUT DRIVER - Disclosed is a computer implemented method, computer program product, and apparatus to obtain buffers in a multiprocessor system. A software component receives a call from an I/O device driver for a buffer, the call including at least one parameter, and walks a bucket data structure to a current bucket. The software component then determines whether the current bucket is free, and obtains a buffer list contained with the current bucket. Responsive to a determination that the current bucket is free, the software component determines whether sufficient buffers are obtained based on the parameter. Upon determining there are sufficient buffers obtained, the software component provides the current bucket and a second bucket as a single buffer list to the I/O device driver. | 06-17-2010 |
20100251268 | SERIALIZED ACCESS TO AN I/O ADAPTER THROUGH ATOMIC OPERATION - Disclosed is a computer implemented method, computer program product, and apparatus to enqueue one or more packets in a device driver for an I/O adapter. A device driver receives, by a processor executing the device driver, a reference to a list of transmit packets. The device driver may then atomically fetch and set a transmit active flag, wherein atomically setting comprises determining a former status of the transmit active flag. Responsive to a determination that a former status of the transmit active flag is different than a current status of the transmit active flag, the device driver atomically removes, by a processor executing the device driver, any packets referenced by a host machine transmit queue reference. The device driver pre-pends transmit packets referenced by the host machine transmit queue reference to the list of transmit packets to form an augmented list of transmit packets. The device driver builds a work request based on the augmented list of transmit packets. The device driver notifies the I/O adapter of the work request. The device driver atomically resets the transmit active flag. | 09-30-2010 |
20100296518 | Single DMA Transfers from Device Drivers to Network Adapters - Methods and arrangements of data communications are discussed. Embodiments include transformations, code, state machines or other logic to provide data communications. An embodiment may involve receiving from a protocol stack a request for a buffer to hold data. The data may consist of all or part of a payload of a packet. The embodiment may also involve allocating space in a buffer for the data and for a header of a packet. The protocol stack may store the data in a portion of the buffer and hand down the buffer to a network device driver. The embodiment may also involve the network device driver transferring the entire packet from the buffer to a communications adapter in a single direct memory access (DMA) operation. | 11-25-2010 |
20110096659 | Zero Packet Loss Energy Efficient Ethernet Link Transition Via Driver Fast Failover - A mechanism for zero packet loss with energy efficient Ethernet link transition via driver fast failover is provided. By default, the mechanism uses a primary adapter running at low speed with low energy usage and a secondary adapter that is disabled. This default configuration is used during periods of low link utilization. When system or input/output load is such that high speed is required, then the mechanism enables the secondary adapter to its highest supported link speed. All transmit traffic in progress running over the primary adapter will complete, and upon completion, the driver generates an address resolution request and sends the request over the secondary adapter. After this process completes, the primary adapter transitions to link down and zero packet loss transition completes. | 04-28-2011 |
20110103396 | SELECTIVE LINK AGGREGATION IN A VIRTUALIZED ENVIRONMENT - A method, system, and computer usable program product for selective link aggregation in a virtualized data processing environment are provided in the illustrative embodiments. A data packet is received at a switch. An identifier associated with the data packet is determined. The identifier corresponds to a logical partition in a logical partitioned data processing system. A lookup is performed in a data structure to determine a set of ports associated with the identifier. The set of ports is retrieved from the data structure. A port is selected from the set of ports and the data packet is transmitted from the port to the logical partition. | 05-05-2011 |
20110231406 | MULTICAST ADDRESS SEARCH INCLUDING MULTIPLE SEARCH MODES - An information handling system (IHS) includes a network adapter having a hardware address store that stores multicast addresses and a device driver that stores multicast addresses in a software address store. When there is no more storage space available in the hardware address store for multicast addresses, the device driver stores multicast addresses in the software address store. When the IHS receives a multicast information packet, the network adapter searches the hardware address store for a multicast address corresponding to that multicast information packet. If the search of the hardware address store does not find that multicast address, then the device driver searches the software address store for that multicast address. The IHS may prioritize the multicast addresses in the hardware address store and the software address store on a most frequently used basis, a most recently used basis or a most popular basis. For example, the hardware address store may store addresses that are more frequently used than those in the software address store. | 09-22-2011 |
20110264789 | DYNAMIC SETTING OF MBUF MAXIMUM LIMITS - A data processing system stack initializes a first mbuf chain limit to a pre-set level. It receives at least one packet. The system receives at least one packet. The system returns an mbuf data structure in response to receiving at least one packet from an IP address. The system measures a health of the network connection to determine whether the network connection satisfies a first health criterion. The system reduces the mbuf chain limit to a second mbuf chain limit, responsive to the health of the network connection not satisfying the first health criterion. The system measures the health of the network connection to determine whether the network connection meets a second health criterion. | 10-27-2011 |
20110265095 | Resource Affinity via Dynamic Reconfiguration for Multi-Queue Network Adapters - A mechanism is provided for providing resource affinity for multi-queue network adapters via dynamic reconfiguration. A device driver allocates an initial queue pair within a memory. The device driver determines whether workload of the data processing system has risen above a predetermined high threshold. Responsive to the workload rising above the predetermined high threshold, the device driver allocates and initializes an additional queue pair in the memory. The device driver programs a receive side scaling (RSS) mechanism in a network adapter to allow for dynamic insertion of an additional processing engine associated with the additional queue pair. The device driver enables transmit tuple hashing to the additional queue pair. | 10-27-2011 |
20110271008 | Selective TCP Large Receive Aggregation Based On IP Destination Address - An information handling device receives a packet and determines a packet destination for the packet. In turn, the information handling device either aggregates the packet in response to determining that the packet destination is a local destination, or forwards the packet in response to determining that the packet destination is a non-local destination. | 11-03-2011 |
20110321039 | VIRTUAL NETWORK PACKET TRANSFER SIZE MANAGER - The method determines whether a particular virtual adapter of a virtual network IHS may perform enhanced packet communication transfer of larger sizes than those of physical network IHSs. The method registers each virtual adapter maximum receive unit (MRU) value in an MRU attribute table within a hypervisor virtual switch. The hypervisor virtual switch provides communication pathways for packet transfers between virtual network IHS virtual adapters and also between physical adapters. The method determines if a sending virtual adapter is sending a packet to a receiving virtual adapter that is local or a remote virtual trunk adapter. The method determines if the receiving virtual adapter exhibits a registered MRU value. If the receiving virtual adapter exhibits a registered MRU value, the method provides for larger sizes of packet transfers for those particular packets. | 12-29-2011 |
20120124572 | VIRTUALIZATION OF VENDOR SPECIFIC NETWORK INTERFACES OF SELF-VIRTUALIZING INPUT/OUTPUT DEVICE VIRTUAL FUNCTIONS - A vendor independent partition interface between a logical partition and an adjunct partition associated with a self-virtualizing IO resource is used to effectively abstract away vender-specific interface details for the self-virtualizing IO resource. By doing so, vender-specific implementation details may be isolated from the operating systems resident in logical partitions, thus requiring only changes in vendor specific firmware in order to support new or revised self-virtualizing IO resources. | 05-17-2012 |
20120180047 | PRESERVING TRAFFIC CLASS PRIORITY QoS WITH SELF-VIRTUALIZING INPUT/OUTPUT DEVICE - Frame wrapping such as Q-in-Q frame wrapping is used to enforce QoS prioritization with a converged or multi-function self-virtualizing IO resource such as a converged SRIOV network adapter. Frame wrapping may be used to avoid conflicting priorities from frames associated with virtual functions for which ACLs are not enforced, and thereby preserve QoS prioritization for lossless traffic classes. | 07-12-2012 |
20120210039 | SELECTIVE LINK AGGREGATION IN A VIRTUALIZED ENVIRONMENT - A method for selective link aggregation in a virtualized data processing environment is provided in the illustrative embodiments. A data packet is received at a switch. An identifier associated with the data packet is determined. The identifier corresponds to a logical partition in a logical partitioned data processing system. A lookup is performed in a data structure to determine a set of ports associated with the identifier. The set of ports is retrieved from the data structure. A port is selected from the set of ports and the data packet is transmitted from the port to the logical partition. | 08-16-2012 |
20120210337 | Resource Affinity Via Dynamic Reconfiguration for Multi-Queue Network Adapters - A mechanism is provided for providing resource affinity for multi-queue network adapters via dynamic reconfiguration. A device driver allocates an initial queue pair within a memory. The device driver determines whether workload of the data processing system has risen above a predetermined high threshold. Responsive to the workload rising above the predetermined high threshold, the device driver allocates and initializes an additional queue pair in the memory. The device driver programs a receive side scaling (RSS) mechanism in a network adapter to allow for dynamic insertion of an additional processing engine associated with the additional queue pair. The device driver enables transmit tuple hashing to the additional queue pair. | 08-16-2012 |
20130204933 | MULTICAST MESSAGE FILTERING IN VIRTUAL ENVIRONMENTS - Various systems, processes, and products may be used to filter multicast messages in virtual environments. In particular implementations, a system, process, and product for filtering multicast messages in virtual environments may include the ability to determine whether a multicast message has been received, examine a local filtering store for a match for the destination address of the multicast message, and send the message to a number of virtual machines if a match for the address is found. The system, process, and product may also include the ability to analyze a filtering store of at least one of the virtual machines for a match for the address if a match is not found in the local filtering store and send the message to a number of the virtual machines if a match for the address is found in a filtering store of one of the virtual machines. | 08-08-2013 |
20130205296 | MULTICAST MESSAGE FILTERING IN VIRTUAL ENVIRONMENTS - Various systems, processes, and products may be used to filter multicast messages in virtual environments. In particular implementations, a system, process, and product for filtering multicast messages in virtual environments may include the ability to determine whether a multicast message has been received, examine a local filtering store for a match for the destination address of the multicast message, and send the message to a number of virtual machines if a match for the address is found. The system, process, and product may also include the ability to analyze a filtering store of at least one of the virtual machines for a match for the address if a match is not found in the local filtering store and send the message to a number of the virtual machines if a match for the address is found in a filtering store of one of the virtual machines. | 08-08-2013 |
20150085879 | Memory Transfer Optimization of Network Adapter Data Placement when Performing Header-Data Split Operations - Mechanisms are provided, in a data processing system comprising a host system and a network adapter, for processing received frames of data over a network connection. The mechanisms receive, in the host system from the network adapter, a plurality of frames of data. The mechanisms record, by the host system, for each frame in the plurality of frames, a header size associated with the frame over a current predetermined interval. The mechanisms determine, by the host system, a receive buffer address offset for receive buffers in the host system for a next predetermined interval based on the recorded header sizes of the plurality of frames over the current predetermined interval. In addition, the mechanisms configure, by the host system, the network adapter to utilize the receive buffer address offset to perform data transfers with the host system. | 03-26-2015 |
20150085880 | Memory Transfer Optimization of Network Adapter Data Placement when Performing Header-Data Split Operations - Mechanisms are provided, in a data processing system comprising a host system and a network adapter, for processing received frames of data over a network connection. The mechanisms receive, in the host system from the network adapter, a plurality of frames of data. The mechanisms record, by the host system, for each frame in the plurality of frames, a header size associated with the frame over a current predetermined interval. The mechanisms determine, by the host system, a receive buffer address offset for receive buffers in the host system for a next predetermined interval based on the recorded header sizes of the plurality of frames over the current predetermined interval. In addition, the mechanisms configure, by the host system, the network adapter to utilize the receive buffer address offset to perform data transfers with the host system. | 03-26-2015 |