transfer of data is facilitated between at least one application and a peer via a network. data destined for the peer is provided from the at least one application for transmission to the peer via the network. Modulation event tokens are managed, and protocol processing of the data with the peer is based in part on a result of the modulation event tokens managing such that protocol processed data is caused to be transmitted to the peer via the network nominally with desired data transmission rate characteristics. A result of the protocol processing step is fed back to the to the modulation event tokens managing. The desired data transmission rate characteristics may include, for example, shaping and pacing.
|
13. A network interface device configured to facilitate a transfer of data between at least one application, operating on a host, and a peer, the transfer of data according to a particular communication protocol, the network interface device communicatively coupled to the host, the method comprising:
means for receiving, from the application, data destined for transmission to the peer via the network; and
means for protocol processing with the peer, operating according to the particular communication protocol and based at least in part on an indication of a desired transmission rate characteristic, by providing packets including the data received from the host such that the packets are caused to be provided from the network interface device to the network with the desired transmission rate characteristics; wherein the means for protocol processing with the peer is controlled by a transmission rate regulating mechanism operating based on an amount of data to be transmitted and on the desired transmission rate characteristics, to regulate a rate at which the protocol processing mechanism operates with respect to the data, to thus cause the packets to be output from the network interface device to the network with the desired transmission rate characteristic.
1. A method of operating a network interface device to facilitate a transfer of data between at least one application, operating on a host, and a peer, the transfer of data according to a particular communication protocol, the network interface device communicatively coupled to the host, the method comprising:
receiving, from the application, data destined for transmission to the peer via the network;
protocol processing with the peer, by a protocol mechanism operating according to the particular communication protocol and based at least in part on an indication of a desired transmission rate characteristic, to provide packets including the data received from the host such that the packets are caused to be provided from the network interface device to the network with the desired transmission rate characteristics;
wherein the protocol processing with the peer is controlled by a transmission rate regulating mechanism operating based on an amount of data to be transmitted and on the desired transmission rate characteristics, to regulate a rate at which the protocol processing mechanism operates with respect to the data, to thus cause the packets to be output from the network interface device to the network with the desired transmission rate characteristic.
14. A network interface controller configured to facilitate a transfer of data between at least one application and a peer via a network using a protocol processing mechanism, wherein data destined for the peer is provided from the at least one application, operating on a host, for transmission to the peer via the network, to a protocol processing mechanism, according to a particular transmission protocol, to cause the data to be provided from the network interface device to the network, the controller comprising:
means for managing a data structure of tokens, each token including an estimate of an amount of data in the data to be transmitted, managing the data structure including retrieving tokens out of the data structure based on the included estimate of an amount of data in the data to be transmitted and based on desired data transmission rate characteristics;
protocol processing means for protocol processing with the peer, for each token retrieved out of the data structure by the protocol processing mechanism according to the particular transmission protocol, to cause data packets including the data provided from the at least one application to be transmitted to the peer via the network, such that data packet transmission to the peer via the network is modulated to nominally have desired data transmission rate characteristics; and
means for feeding back a result of the protocol processing step to cause a token to be stored into the data structure of tokens.
2. The method of
the peer is a particular peer; and
a protocol processing mechanism is configured to operate a plurality of connections between the host and a plurality of peers including the particular peer;
the connections are grouped into a plurality of categories; and
the protocol processing step includes protocol processing for each connection with at least one of the plurality of peers such that, for each connection, the protocol processing for that connection by the protocol processing mechanism is controlled by the transmission rate regulating mechanism based at least in part on a desired transmission rate characteristic for the category to which that connection belongs, to thus cause the packets of each connection to be output from the network interface device to the network with the desired transmission rate characteristic for the category to which that connection belongs.
3. The method of
at least some of the indications of desired transmission rate characteristics indicate at least one of a group consisting of at least one desired shaping characteristic and at least one desired pacing characteristic.
4. The method of
the transmission rate regulation mechanism operates, for each connection, based on an estimate of an amount of data to be transmitted for that connection and the desired transmission rate for the category to which that connection belongs, to regulate a rate at which the protocol processing mechanism operates with respect to data of that connection to thus cause the data for that connection to be output to the network with the desired transmission rate characteristic for the category to which that connection belongs.
5. The method of
the transmission rate regulation mechanism further operates, for each connection, according to a priority associated with the category to which that connection belongs.
6. The method of
the priorities associated with the categories are based at least in part on an amount of data to be transmitted for the separate categories.
7. The method of
the priorities associated with the categories are based at least in part on the urgency of the data to be transmitted.
8. The method of
the priorities associated with the categories are based at least in part on the customer transmitting the data.
9. The method of
the protocol processing step includes processing information received from the network and, based in part thereon, controlling the protocol processing step.
10. The method of
the protocol processing step includes processing information received from the network, and,
the method further comprises determining whether transmission of particular data to the peer should not be deferred, based on a result of processing the information received from the network.
11. The method of
the protocol processing step includes TCP, and
determining whether transmission of particular data to the peer should not be deferred includes processing the information received from the network to determine if at least part of the data to be transmitted to the peer has previously been transmitted.
12. The method of
if it is determined that at least part of the data to be transmitted to the peer has previously been transmitted, determining that the transmission of the particular data to the peer should not be deferred.
|
This application is a continuation of pending U.S. patent application Ser. No. 12/752,719, filed Apr. 1, 2010, and entitled “PROTOCOL OFFLOAD TRANSMIT TRAFFIC MANAGEMENT,” which is a continuation of U.S. patent application Ser. No. 11/217,661 (now U.S. Pat. No. 7,724,658), filed Aug. 31, 2005, and entitled “PROTOCOL OFFLOAD TRANSMIT TRAFFIC MANAGEMENT,” both of which are incorporated herein by reference in their entirety for all purposes.
The present invention is in the field of protocol offload processing and, in particular, relates to transmit traffic management in correspondence with protocol offload processing.
Protocol offload processing is known. For example, an interface device may be provided to operate in coordination with a host, for protocol offload processing with a peer device across a network. For example, the protocol offload processing may be according to a Transmission Control Protocol (TCP) whereas communication across the network may be via high-speed Ethernet, such as 10 Gbps Ethernet.
Transfer of data is facilitated between at least one application and a peer via a network. Data destined for the peer is provided from the at least one application for transmission to the peer via the network. Modulation event tokens are managed, and protocol processing of the data with the peer is based in part on a result of the modulation event tokens managing such that protocol processed data is caused to be transmitted to the peer via the network nominally with desired data transmission rate characteristics. A result of the protocol processing step is fed back to the modulation event tokens managing. The desired data transmission rate characteristics may include, for example, shaping and pacing.
It is desirable that the protocol offload processing be capable of modulating the transmission of data across the network to have particular desired data rate characteristics. As a result, for example, the data transmission can be modulated based on characteristics of the network itself, such as round trip time (RTT). As another example, data transmission may also be modulated based on a desired peak transmission rate to, for example, operate to defined quality of service transmission characteristics for particular customers, smooth out (i.e., not propagate) jitter from a data source, and/or attempt to match the receive capabilities of receiving peer devices.
Broadly speaking, the traffic management controls the delivery of data across the network to nominally have desired characteristics, and a transmission traffic management capability may be provided for protocol offload processing accomplished using various architectures. Typically, the desired characteristics for data delivery are provided from a host computer. In some cases, processing more closely associated with the protocol processing determines the desired characteristics, typically based at least partly on characteristics of the network.
We now describe a specific example of protocol offload processing and modulating the transmission of data across the network. In the specific example, a flow processor architecture for protocol offload processing is employed, and a traffic management capability manages the operation of the flow processor (or, at least, portions of the flow processor) to control the flow of data communication via the network between the protocol offload processing and peer devices. While the processor architecture in the described example is a flow processor architecture, other architectures (perhaps not even processors) may be employed.
Turning now to
When the arbiter 102 operates to allow a transmission modulation event through (the source of the transmission modulation event tokens, including the transmission event modulator 106, is discussed in detail later), the protocol header in the transmission modulation event is provided to a protocol processing block 107.
The protocol processing block includes a lookup block 108. A protocol header (including, for the TCP protocol, a 4-tuple) uniquely identifies a connection according to the protocol. The lookup block 108 operates to match the protocol header to an internal identification (“tid,” used by the interface device and the host) corresponding to particular protocol connection states. In the
The lookup block 108 then provides the tid, received from the TCAM 110, to connection manager circuitry 112 that manages the connection state and attributes. In the
In particular, the connection manager provides the tid to the TCB 114, and the TCB 114 provides the current connection state and attributes for the connection (i.e., the connection to which the tid corresponds) to the connection manager 112. Based on the current connection state and attributes provided from the TCB 114, the connection manager 112 determines how to appropriately modify the connection state and provides, to the payload command manager 116, an indication of the modification to the connection state. Based on the indication of the modification, the payload command manager 116 issues one or more appropriate payload commands to the payload manager block 118. Furthermore, as appropriate based on the modified connection state and the availability of additional data to send for the connection, the payload command manager 116 provides transmission modulation event tokens to the transmission event modulator 106.
The connection manager 112 writes the modified connection state and attributes back into the TCB 114. The read, modify and write of the connection state and attributes is done in an atomic operation
The connection manager 112 provides an appropriate packet header for data transmission to a form packet block 120. Meanwhile, the payload manager block 118 provides the corresponding payload to the form packet block 120 (as discussed above, based on payload commands from the payload command manager 116). The form packet block 120 combines the packet header and corresponding payload into a packet for transmission across the network. A network protocol block 122 forms appropriate units of data for transmission across the network. In the
As discussed above, the transmission modulation event tokens originate in the payload command manager 116 and are provided to the transmission event modulator 106. In the example discussed above, a transmission modulation event is provided to the transmission event modulator 106 as the ultimate result of the arbiter 102 operating to allow a transmission modulation event through. As another example, a transmission modulation event may be provided to the transmission event modulator 106 as the ultimate result of the arbiter 102 operating to allow through information received off the wire. For example, the information received off the wire may be a header of an ingress Ethernet packet that comprises, for example, an acknowledgement from a peer device indicating that data sent to the peer (such as peer 54 in
More generally, the information received off the wire is information to indicate that, but for the transmission traffic management capability, data may be transmitted to the peer device. In some examples, the transmission of particular data is not to be managed (i.e., is not to be deferred). For example, if “duplicate ACKs” are received, this could indicate that data was received out-of-order. It would then be inferred that the gap is due to a drop and a “fast retransmit” of a segment would be performed. It may be preferable that transmission of this segment not be deferred. On the other hand, an received ACK that indicates successful receipt of data by the peer would generally not result in a modulation token event being provided to the transmission event modulator 106, since a modulation token event would typically be outstanding based on whether there was more data to be sent when the data corresponding to the received ACK was originally transmitted. Thus, in accordance with this aspect of shaping, an ACK does not cause transmission to be triggered.
We now discuss operation of a detailed example of the transmission event modulator 106, with specific reference to the
For example, “pacing” refers to the sender spacing the packet transmission when the RTT (Round Trip Time) is large. Thus, for example, pacing can be used to minimize burstiness. For example, high speed long delay links may require very large send and receive windows. A default sending pattern is typically bursty. That is, some packets may be closely spaced on the wire, which can result in overflows at intermediate switches and routers. This can be particularly problematic for satellite links, where the buffering resources in the satellites may be extremely limited, even though the RTT is large. With TCP pacing, in general, the transmission of packets are distributed in a window across the RTT.
In contrast to pacing, shaping limits the peak rate at which data is transmitted over the network for a particular connection or class of connections. This capability has potentially many uses. For example, shaping can be used to provide different quality of service for different customers, based on an amount the customers pay, for example.
Shaping can also be useful when data coming from a source is inherently jittery. For example, an application reading data from disk storage may provide data with jitter (e.g., there may be bursts in the data when a read head has been moved over the data to be read). As another example, when a server is connected to a very high speed link (e.g., 10 Gbps) serving clients connected to 10/100 Mbps or even 1 Gbps links, data may be sent from the server to the clients up to 1,000 times faster than the client links can handle. In such a case, congestion and packet loss can result.
Yet another example area where shaping can be useful is when a server is connected to a high performance networked striping filing system, where the server generates a multi-gigabit I/O stream to be striped over multiple disks, and each disk can only handle a 1-3 Gbps stream depending on the type of the disk. If the data transmission rate exceeds the rate the disk can handle, packet loss will probably result.
Thus, in general, shaping can be used to limit the maximum data transmission rate to accommodate characteristics of the link (including endpoints) or to impose characteristics on the transmissions, even if not to accommodate characteristics of the link.
We now discuss
In the
Heap timer 213, in association with the heap 203, accomplishes the pacing function. Timers 214a through 214h, in association with FIFO's 204a through 204h, respectively, accomplish the shaping function. Notwithstanding the accomplishment of the pacing function and the shaping function as just discussed, the selector 216 is configured to enforce arbitration (e.g., priority-based or round robin) among those data modulation event tokens that are ready to “graduate” from the transmission event modulator 201. The characteristics of the pacing and shaping are configurable using messages passed between the host and the interface device. We now discuss pacing and shaping in greater detail.
With regard to pacing, when the transmission protocol is TCP, one way to spread the packet transmissions over an RTT, when the send window (snd_wnd) is larger than 2 MSS (Maximum TCP Segment Size), is to configure the heap timer 213 to schedule the transmission of the next packet (i.e., schedule the release of the next transmission modulation event from the heap 203) according to:
In one example, the value of the heap timer 213 is maintained as eleven bits and, therefore, the maximum inter-packet spacing is 2095 TCP ticks. (In terms of core clock cycles, one TCP tick is 2 to the power of the timer resolution setting). Thus, the timer tick may be chosen to allow a range typically sufficient for pacing, while keeping the maximum sampled RTT value (which, in this example, is limited to 216 times the timer tick) greater than the expected maximum network RTT (10 times that value, in this example).
In one example, the heap timer 213 operates to use a delta time value to trigger a timer event. Each transmission modulation event includes an indication of the connection for which the heap timer 213 is triggered, e.g., the tid (for the TCB 4-tuple, when the connection is a TCP connection). As discussed above, the transmission modulation event is used to fetch the TCB state, which in turn dispatches a TCP packet, and schedules another transmission modulation event (an entry in the heap 203, for paced connections) if there is more data to send for the particular connection.
If the traffic management was absent, the protocol processing step would determine an amount of data to be subsequently transmitted. With traffic management, this determination becomes an estimate that is provided with the token back to the transmission event modulator. The modulation may occur based in part on this estimate. When transmission actually occurs, the actual amount of data transmitted may be different from the estimate, since the estimate was based on the state at the time it was determined and the state may change before the transmission actually occurs.
One useful effect of pacing is to reduce “burstiness” during fast ramp up (e.g., in the slow start phase of TCP flow-control). As the receive window of the connection opens up, the computed inter-packet delay decreases and may eventually reach zero, and the pacing function is effectively disabled.
We now discuss shaping. In one example, there are two types of shaping FIFO's. One type of shaping FIFO provides control over the inter-packet delay for a group (class) of connections, while the second type provides control over the inter-packet delay within a single connection. In one example, all event tokens for a particular FIFO cause the same inter-packet delay (i.e., out of that FIFO), so only one inter-packet delay is supported by each FIFO.
The mapping of connections to FIFO's determines the shaping type (per-class or per-connection). The first type of shaping (per class) may be accomplished by having a single FIFO (modulation queue) being configured to hold modulation event tokens for connections in a single group. The second type of shaping (per connection) may be accomplished by having a single FIFO configured to hold modulation event tokens for a single connection. Each token has associated with it an indication of a time to graduate the token out of the FIFO. For example, the time indications may be a graduation time, such that the delay associated with each event in the FIFO (where each event in the FIFO corresponds to a different connection, each connection being in the same class) from the immediately previous event in the FIFO, is substantially the same. The overall effect is that data for each connection is transmitted at the same fixed rate, whereas the first type of shaping realizes a fixed rate on a per-class basis.
In some examples, triggering of a timer associated with the heap 203 or a FIFO 214 means only that a modulation event in the heap 203 or the FIFO 214 is ready to graduate out of the heap 203 or the FIFO 214 and into the arbiter 102 (
For example, a weighted round robin scheme may be employed, where the weight for a modulation event varies according to how much data there is to send for the connection or group of connections corresponding to that modulation event.
It is noted that the described traffic management scheme has applications broader than just offloaded protocol processing. Thus, for example, while
Furthermore, while the TCP protocol has been provided as an example, the traffic management scheme may be employed with other protocols, whether existing now or in the future. Examples of such other protocols are UDP (e.g., with video on demand applications) or STCP, which is currently being advanced as a replacement to the TCP protocol.
It should also be noted that the traffic management scheme does not require that the modulation events directly result in or from, or be part of protocol processing. For example, it is possible to space out the transmissions of already protocol processed packets to achieve a desired data rate by scheduling modulation events which are “graduated” in relation to the size of each packet to be sent.
Noureddine, Wael, Eiriksson, Asgeir Thor, Mao, Chris Yuhong
Patent | Priority | Assignee | Title |
10178035, | Mar 23 2011 | U S BANK NATIONAL ASSOCIATION | System and method for providing improved quality of service over broadband networks |
10637782, | Mar 23 2011 | Hughes Network Systems, LLC | System and method for policy-based multipath WAN transports for improved quality of service over broadband networks |
Patent | Priority | Assignee | Title |
4445116, | Mar 05 1982 | Unisys Corporation | Method for allocating bandwidth between stations in a local area network |
4533996, | Feb 23 1982 | International Business Machines Corporation | Peripheral systems accommodation of guest operating systems |
5058110, | May 03 1989 | Computer Network Technology Corporation | Protocol processor |
5065397, | Aug 14 1989 | Kabushiki Kaisha Toshiba | Data synchronous transfer system using a fiber distributed data exchange interface |
5497476, | Sep 21 1992 | International Business Machines Corporation | Scatter-gather in data processing system |
5778189, | May 29 1996 | Fujitsu Limited | System and method for converting communication protocols |
5937169, | Oct 29 1997 | Hewlett Packard Enterprise Development LP | Offload of TCP segmentation to a smart adapter |
6087581, | Jun 08 1998 | MVE, Inc. | Regenerable thermal insulation and cooling elements insulated thereby |
6141705, | Jun 12 1998 | Microsoft Technology Licensing, LLC | System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed |
6226680, | Oct 14 1997 | ALACRITECH, INC | Intelligent network interface system method for protocol processing |
6240094, | Dec 22 1997 | Verizon Patent and Licensing Inc | Statistical time division multiplexer for a wireless asymmetric local loop communication system |
6247060, | Oct 14 1997 | ALACRITECH, INC | Passing a communication control block from host to a local device such that a message is processed on the device |
6334153, | Oct 14 1997 | ALACRITECH, INC | Passing a communication control block from host to a local device such that a message is processed on the device |
6389479, | Oct 14 1997 | ALACRITECH, INC | Intelligent network interface device and system for accelerated communication |
6393487, | Oct 14 1997 | ALACRITECH, INC | Passing a communication control block to a local device such that a message is processed on the device |
6397316, | Jul 24 1997 | LEVEL ONE COMMUNICATIONS, INCORPORATED | System for reducing bus overhead for communication with a network interface |
6401117, | Jun 15 1998 | Intel Corporation | Platform permitting execution of multiple network infrastructure applications |
6401177, | Apr 28 1998 | NEC Corporation | Memory system for restructuring a main memory unit in a general-purpose computer |
6427171, | Oct 14 1997 | ALACRITECH, INC | Protocol processing stack for use with intelligent network interface device |
6427173, | Oct 14 1997 | ALACRITECH, INC | Intelligent network interfaced device and system for accelerated communication |
6434620, | Aug 27 1998 | ALACRITECH, INC | TCP/IP offload network interface device |
6460080, | Jan 08 1999 | Intel Corporation | Credit based flow control scheme over virtual interface architecture for system area networks |
6463077, | Oct 21 1997 | Nec Corp. | PHS data communication terminal adapter |
6470415, | Oct 13 1999 | ALACRITECH, INC | Queue system involving SRAM head, SRAM tail and DRAM body |
6510164, | Nov 16 1998 | Oracle America, Inc | User-level dedicated interface for IP applications in a data packet switching and load balancing system |
6564267, | Nov 22 1999 | Intel Corporation | Network adapter with large frame transfer emulation |
6591302, | Oct 14 1997 | ALACRITECH, INC | Fast-path apparatus for receiving data corresponding to a TCP connection |
6594268, | Mar 11 1999 | WSOU Investments, LLC | Adaptive routing system and method for QOS packet networks |
6625671, | May 03 1999 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Compression of buffered data |
6658480, | Oct 14 1997 | ALACRITECH, INC | Intelligent network interface system and method for accelerated protocol processing |
6681244, | Jun 09 2000 | VALTRUS INNOVATIONS LIMITED | System and method for operating a network adapter when an associated network computing system is in a low-power state |
6687758, | Mar 07 2001 | ALACRITECH, INC | Port aggregation for network connections that are offloaded to network interface devices |
6697868, | Feb 28 2000 | ALACRITECH, INC | Protocol processing stack for use with intelligent network interface device |
6701372, | Aug 22 1997 | Canon Kabushiki Kaisha | Data communication apparatus and method |
6708223, | Dec 11 1998 | Microsoft Technology Licensing, LLC | Accelerating a distributed component architecture over a network using a modified RPC communication |
6708232, | Jun 29 2000 | Hitachi, Ltd. | Data migration method, protocol converter and switching apparatus using it |
6717946, | Oct 31 2002 | Cisco Technology Inc. | Methods and apparatus for mapping ranges of values into unique values of particular use for range matching operations using an associative memory |
6751665, | Oct 18 2002 | ALACRITECH, INC | Providing window updates from a computer to a network interface device |
6757245, | Jun 01 2000 | Nokia Technologies Oy | Apparatus, and associated method, for communicating packet data in a network including a radio-link |
6757746, | Oct 14 1997 | ALACRITECH, INC | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory |
6792502, | Oct 12 2000 | SHENZHEN XINGUODU TECHNOLOGY CO , LTD | Microprocessor having a content addressable memory (CAM) device as a functional unit therein and method of operation |
6798743, | Mar 22 1999 | Cisco Technology, Inc. | Packet prioritization processing technique for routing traffic in a packet-switched computer network |
6807581, | Sep 29 2000 | ALACRITECH, INC | Intelligent network storage interface system |
6813652, | Apr 11 2001 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Reduced-overhead DMA |
6862648, | Oct 30 2000 | Oracle America, Inc | Interface emulation for storage devices |
6907042, | May 18 1999 | Fujitsu Limited | Packet processing device |
6925055, | Mar 05 2001 | Advanced Micro Devices, Inc. | Systems and methods for traffic shaping |
6938092, | Mar 07 2001 | ALACRITECH, INC | TCP offload device that load balances and fails-over between aggregated ports having different MAC addresses |
6941386, | Oct 14 1997 | ALACRITECH, INC | Protocol processing stack for use with intelligent network interface device |
6965941, | Oct 14 1997 | ALACRITECH, INC | Transmit fast-path processing on TCP/IP offload network interface device |
6996070, | Dec 05 2003 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
7031267, | Dec 21 2000 | 802 SYSTEMS INC | PLD-based packet filtering methods with PLD configuration data update of filtering rules |
7042898, | Oct 14 1997 | ALACRITECH, INC | Reducing delays associated with inserting a checksum into a network message |
7076568, | Oct 14 1997 | ALACRITECH, INC | Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket |
7089289, | Jul 18 2000 | LinkedIn Corporation | Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices |
7089326, | Oct 14 1997 | ALACRITECH, INC | Fast-path processing for receiving data on TCP connection offload devices |
7093099, | Dec 12 2002 | RPX Corporation | Native lookup instruction for file-access processor searching a three-level lookup cache for variable-length keys |
7114096, | Apr 02 2003 | International Business Machines Corporation | State recovery and failover of intelligent network adapters |
7124205, | Oct 02 2001 | ALACRITECH, INC | Network interface device that fast-path processes solicited session layer read commands |
7133902, | Dec 17 2002 | Oracle International Corporation | Transmitting acknowledgements using direct memory access |
7133914, | Oct 31 2001 | Cisco Technology, Inc. | Statistics-preserving ACL flattening system and method |
7133940, | Oct 14 1997 | ALACRITECH, INC | Network interface device employing a DMA command queue |
7136355, | Jan 16 2001 | ADMtek Incorporated | Transmission components for processing VLAN tag and priority packets supported by using single chip's buffer structure |
7155542, | Jun 27 2001 | Intel Corporation | Dynamic network interface with zero-copy frames |
7164656, | Apr 27 2001 | Boeing Company, the | Communicating data through a network so as to ensure quality of service |
7167926, | Aug 27 1998 | ALACRITECH, INC | TCP/IP offload network interface device |
7167927, | Feb 26 2002 | ALACRITECH, INC | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
7174393, | Mar 12 2002 | ALACRITECH, INC | TCP/IP offload network interface device |
7185266, | Feb 12 2003 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
7191241, | Sep 27 2002 | ALACRITECH, INC | Fast-path apparatus for receiving data corresponding to a TCP connection |
7191318, | Dec 12 2002 | RPX Corporation | Native copy instruction for file-access processor with copy-rule-based validation |
7239642, | Jul 16 2001 | NetApp, Inc | Multi-protocol network interface card |
7254637, | Apr 30 2002 | Microsoft Technology Licensing, LLC | Method to offload a network stack |
7260631, | Dec 19 2003 | Nvidia Corporation | System and method for receiving iSCSI protocol data units |
7284047, | Nov 08 2001 | Microsoft Technology Licensing, LLC | System and method for controlling network demand via congestion pricing |
7313623, | Aug 30 2002 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | System and method for TCP/IP offload independent of bandwidth delay product |
7320042, | Jun 27 2001 | Intel Corporation | Dynamic network interface |
7336608, | Oct 18 2003 | Samsung Electronics Co., Ltd. | Method for adjusting a transmission rate to obtain the optimum transmission rate in a mobile ad hoc network environment |
7346701, | Aug 30 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | System and method for TCP offload |
7349337, | Dec 12 2003 | RPX Corporation | Techniques for shaping data transmission rates |
7376147, | Dec 18 2003 | Intel Corporation | Adaptor supporting different protocols |
7408906, | Feb 20 2002 | Ericsson Inc. | Mobile data communications apparatus, methods and computer program products implementing cellular wireless data communications via a wireless local area network |
7447795, | Oct 04 2000 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Multi-purpose switching network interface controller |
7453892, | May 04 2001 | RPX Corporation | System and method for policing multiple data flows and multi-protocol data flows |
7457845, | Aug 23 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and system for TCP/IP using generic buffers for non-posting TCP applications |
7460510, | Apr 01 2005 | MOTOROLA SOLUTIONS CONNECTIVITY, INC | Radio gateway system and method for interfacing a radio system and an IP network |
7474670, | Jul 08 2002 | Ikanos Communications, Inc | Method and system for allocating bandwidth |
7493427, | Jul 14 2004 | International Business Machines Corporation | Apparatus and method for supporting received data processing in an offload of network protocol processing |
7533176, | Jul 14 2004 | International Business Machines Corporation | Method for supporting connection establishment in an offload of network protocol processing |
7583596, | Jun 28 2004 | Juniper Networks, Inc. | Priority scheduling using per-priority memory structures |
7594002, | Feb 14 2003 | Promise Technology, Inc | Hardware-accelerated high availability integrated networked storage system |
7596634, | Dec 12 2002 | RPX Corporation | Networked application request servicing offloaded from host |
7609696, | Jun 05 2003 | Nvidia Corporation | Storing and accessing TCP connection information |
7613813, | Sep 10 2004 | CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | Method and apparatus for reducing host overhead in a socket server implementation |
7616563, | Aug 31 2005 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Method to implement an L4-L7 switch using split connections and an offloading NIC |
7656887, | Nov 05 2004 | Hitachi, Ltd. | Traffic control method for network equipment |
7660264, | Dec 19 2005 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Method for traffic schedulign in intelligent network interface circuitry |
7660306, | Jan 12 2006 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Virtualizing the operation of intelligent network interface circuitry |
7715436, | Nov 18 2005 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Method for UDP transmit protocol offload processing with traffic management |
7724658, | Aug 31 2005 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Protocol offload transmit traffic management |
7735099, | Dec 23 2005 | CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | Method and system for processing network data |
7746780, | Jul 23 2004 | LG Electronics Inc.; LG Electronics Inc | Adaptive estimation of multimedia data transmission rate in a data communication system |
7751316, | May 13 2005 | R2 SOLUTIONS LLC | Relay Server for SIP/RTP messages with buffer management |
7760733, | Oct 13 2005 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Filtering ingress packets in network interface circuitry |
7813339, | May 02 2007 | Tehuti Networks Ltd. | Direct assembly of a data payload in an application memory |
7826350, | May 11 2007 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Intelligent network adaptor with adaptive direct data placement scheme |
7831720, | May 17 2007 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Full offload of stateful connections, with partial connection offload |
7831745, | May 25 2004 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Scalable direct memory access using validation of host and scatter gather engine (SGE) generation indications |
7844742, | Sep 16 2002 | Xilinx, Inc | Network interface and protocol |
7869355, | Feb 14 2003 | Promise Technology, Inc | Network receive interface for high bandwidth hardware-accelerated packet processing |
7924840, | Jan 12 2006 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Virtualizing the operation of intelligent network interface circuitry |
7929540, | Aug 30 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | System and method for handling out-of-order frames |
7930349, | Sep 10 2004 | CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | Method and apparatus for reducing host overhead in a socket server implementation |
7945705, | May 25 2004 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Method for using a protocol language to avoid separate channels for control messages involving encapsulated payload data messages |
8060644, | May 11 2007 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Intelligent network adaptor with end-to-end flow control |
8139482, | Aug 31 2005 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Method to implement an L4-L7 switch using split connections and an offloading NIC |
8155001, | Aug 31 2005 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Protocol offload transmit traffic management |
8213427, | Dec 19 2005 | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | Method for traffic scheduling in intelligent network interface circuitry |
8231484, | May 04 2010 | Franklin Sports, Inc. | Variable inertia bat weight |
20010010046, | |||
20010021949, | |||
20010037406, | |||
20020039366, | |||
20020101848, | |||
20020188753, | |||
20020191622, | |||
20030005164, | |||
20030018516, | |||
20030035436, | |||
20030046330, | |||
20030048751, | |||
20030067884, | |||
20030079033, | |||
20030158906, | |||
20030200284, | |||
20030204631, | |||
20040003094, | |||
20040019689, | |||
20040028069, | |||
20040030745, | |||
20040042487, | |||
20040047361, | |||
20040054813, | |||
20040062245, | |||
20040062246, | |||
20040064578, | |||
20040064590, | |||
20040073703, | |||
20040078480, | |||
20040088262, | |||
20040100952, | |||
20040111535, | |||
20040117496, | |||
20040117509, | |||
20040123142, | |||
20040158640, | |||
20040165592, | |||
20040190533, | |||
20040199808, | |||
20040213235, | |||
20040240435, | |||
20050071490, | |||
20050083850, | |||
20050083935, | |||
20050102682, | |||
20050111483, | |||
20050120037, | |||
20050125195, | |||
20050135378, | |||
20050135396, | |||
20050135412, | |||
20050135417, | |||
20050147126, | |||
20050188074, | |||
20050190787, | |||
20050216597, | |||
20050223134, | |||
20050259644, | |||
20050259678, | |||
20050286560, | |||
20050289246, | |||
20060015618, | |||
20060015651, | |||
20060031524, | |||
20060039413, | |||
20060072564, | |||
20060075119, | |||
20060080733, | |||
20060098675, | |||
20060133267, | |||
20060168649, | |||
20060200363, | |||
20060206300, | |||
20060209693, | |||
20060221832, | |||
20060221946, | |||
20060235977, | |||
20060265517, | |||
20060268841, | |||
20060274788, | |||
20060281451, | |||
20070011358, | |||
20070033301, | |||
20070064737, | |||
20070070901, | |||
20070076623, | |||
20070083638, | |||
20070086480, | |||
20070110436, | |||
20070143848, | |||
20070162572, | |||
20070201474, | |||
20070233892, | |||
20080002731, | |||
20080016511, | |||
20080043750, | |||
20080089347, | |||
20080091868, | |||
20080135415, | |||
20080168190, | |||
20080232386, | |||
20080273532, | |||
20090073884, | |||
20090172301, | |||
20090222564, | |||
20100023626, | |||
20100235465, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 18 2005 | NOUREDDINE, WAEL | CHELSIO COMMUNICATIONS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029456 | /0403 | |
Oct 18 2005 | MAO, CHRIS YUHONG | CHELSIO COMMUNICATIONS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029456 | /0403 | |
Feb 10 2006 | EIRIKSSON, ASGEIR THOR | CHELSIO COMMUNICATIONS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029456 | /0403 | |
Mar 06 2012 | Chelsio Communications, Inc. | (assignment on the face of the patent) | / | |||
May 09 2013 | CHELSIO COMMUNICATIONS, INC | East West Bank | SECURITY AGREEMENT | 030389 | /0982 | |
Oct 07 2014 | East West Bank | CHELSIO COMMUNICATIONS, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 033989 | /0930 | |
Oct 14 2014 | CHELSIO COMMUNICATIONS, INC | Silicon Valley Bank | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 033990 | /0451 | |
Jul 29 2016 | CHELSIO COMMUNICATIONS, INC | NOVIRIAN CAPITAL | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 039296 | /0550 | |
Apr 11 2017 | NOVIRIAN CAPITAL | CHELSIO COMMUNICATIONS, INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 042142 | /0232 | |
Aug 09 2019 | CHELSIO COMMUNICATIONS, INC | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 050050 | /0396 | |
Aug 09 2019 | CHELSIO COMMUNICATIONS, INC | WESTERN ALLIANCE BANK, AN ARIZONA CORPORATION | CORRECTIVE ASSIGNMENT TO CORRECT THE THE FIRST PAGE OF THE INTELLECTUAL PROPERTY SECURITY AGREEMENT HAS AN INCORRECT DATE THAT NEEDS TO BE CORRECTED PREVIOUSLY RECORDED ON REEL 050050 FRAME 0396 ASSIGNOR S HEREBY CONFIRMS THE SECURITY INTEREST | 050112 | /0234 |
Date | Maintenance Fee Events |
Apr 25 2016 | M2551: Payment of Maintenance Fee, 4th Yr, Small Entity. |
Jun 11 2020 | M2552: Payment of Maintenance Fee, 8th Yr, Small Entity. |
Jun 12 2024 | M2553: Payment of Maintenance Fee, 12th Yr, Small Entity. |
Date | Maintenance Schedule |
Dec 25 2015 | 4 years fee payment window open |
Jun 25 2016 | 6 months grace period start (w surcharge) |
Dec 25 2016 | patent expiry (for year 4) |
Dec 25 2018 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 25 2019 | 8 years fee payment window open |
Jun 25 2020 | 6 months grace period start (w surcharge) |
Dec 25 2020 | patent expiry (for year 8) |
Dec 25 2022 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 25 2023 | 12 years fee payment window open |
Jun 25 2024 | 6 months grace period start (w surcharge) |
Dec 25 2024 | patent expiry (for year 12) |
Dec 25 2026 | 2 years to revive unintentionally abandoned end. (for year 12) |