
US Patent No: 7,089,326
Number of patents in Portfolio can not be more than 2000
Fast-path processing for receiving data on TCP connection offload devices
Stats
-
Aug 8, 2006
Issued date -
May 6, 2002
filing date -
10/093,042
serial no -
In Force
status
Importance
Abstract
A network interface device provides a fast-path that avoids most host TCP and IP protocol processing for most messages. The host retains a fallback slow-path processing capability. In one embodiment, generation of a response to a TCP/IP packet received onto the network interface device is accelerated by determining the TCP and IP source and destination information from the incoming packet, retrieving an appropriate template header, using a finite state machine to fill in the TCP and IP fields in the template header without sequential TCP and IP protocol processing, combining the filled-in template header with a data payload to form a packet, and then outputting the packet from the network interface device by pushing a pointer to the packet onto a transmit queue. A transmit sequencer retrieves the pointer from the transmit queue and causes the corresponding packet to be output from the network interface device.
First Claim
Related Publications
International Classification(s)
- [Classification Symbol]
- [Patents Count]
Cited Art
| Patent Info | (Count) | # Cites | Year |
|---|---|---|---|
|
|
|||
| 4,991,133 Specialized communications processor for layered protocols | 145 | 1988 | |
| 5,448,566 Method and apparatus for facilitating communication in a multilayer communication architecture via a dynamic communication channel | 100 | 1993 | |
| 5,634,127 Methods and apparatus for implementing a message driven processor in a client-server environment | 246 | 1994 | |
| 5,634,099 Direct memory access unit for transferring data between processor memories in multiprocessing systems | 88 | 1994 | |
| 5,629,933 Method and system for enhanced communication in a multisession packet based communication system | 62 | 1995 | |
| 5,752,078 System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory | 88 | 1995 | |
| 5,619,650 Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message | 152 | 1995 | |
| 5,727,142 Method for a non-disruptive host connection switch after detection of an error condition or during a host outage or failure | 51 | 1996 | |
| 5,802,258 Loosely coupled system environment designed to handle a non-disruptive host connection switch after detection of an error condition or during a host outage or failure | 94 | 1996 | |
| 5,878,225 Dual communication services interface for distributed transaction processing | 68 | 1996 | |
| 6,038,562 Interface to support state-dependent web applications accessing a relational database | 58 | 1996 | |
| 5,930,830 System and method for concatenating discontiguous memory pages | 81 | 1997 | |
| 6,021,507 Method for a non-disruptive host connection switch after detection of an error condition or during a host outage or failure | 46 | 1997 | |
| 6,044,438 Memory controller for controlling memory accesses across networks in distributed shared memory processing systems | 93 | 1997 | |
| 5,950,203 Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system | 111 | 1997 | |
|
|
|||
| 5,758,084 Apparatus for parallel client/server communication having data structures which stored values indicative of connection state and advancing the connection state of established connections | 75 | 1995 | |
| 5,592,622 Network intermediate system with message passing architecture | 178 | 1995 | |
| 5,664,114 Asynchronous FIFO queuing system operating with minimal queue status | 77 | 1995 | |
| 5,812,775 Method and apparatus for internetworking buffer management | 86 | 1995 | |
| 6,047,323 Creation and migration of distributed streams in clusters of networked computers | 329 | 1996 | |
| 5,771,349 Network packet switch using shared memory for repeating and bridging packets at media rate | 86 | 1997 | |
| 5,991,299 High speed header translation processing | 115 | 1997 | |
| 6,172,980 Multiple protocol support | 101 | 1997 | |
| 5,937,169 Offload of TCP segmentation to a smart adapter | 233 | 1997 | |
| 6,057,863 Dual purpose apparatus, method and system for accelerated graphics port and fibre channel arbitrated loop interfaces | 129 | 1997 | |
| 6,016,513 Method of preventing packet loss during transfers of data packets between a network interface card and an operating system of a computer | 56 | 1998 | |
| 6,246,683 Receive processing with network protocol bypass | 137 | 1998 | |
| 6,526,446 Hardware only transmission control protocol segmentation for a high performance network interface card | 43 | 1999 | |
|
|
|||
| 5,758,186 Method and apparatus for generically handling diverse protocol method calls in a client/server computer system | 105 | 1995 | |
| 5,758,089 Method and apparatus for burst transferring ATM packet header and data to a host computer system | 76 | 1995 | |
| 5,749,095 Multiprocessing system configured to perform efficient write operations | 117 | 1996 | |
| 6,021,446 Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine | 53 | 1997 | |
| 6,356,951 System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction | 144 | 1999 | |
| 6,389,468 Method and apparatus for distributing network traffic processing on a multiprocessor computer | 132 | 1999 | |
| 6,434,651 Method and apparatus for suppressing interrupts in a high-speed network environment | 60 | 1999 | |
| 6,453,360 High performance network interface | 157 | 1999 | |
| 6,480,489 Method and apparatus for data re-assembly with a high performance network interface | 101 | 1999 | |
|
|
|||
| 6,009,478 File array communications interface for communicating between a host computer and an adapter | 83 | 1997 | |
| 6,070,200 Host adapter having paged data buffers for continuously transferring data between a system bus and a peripheral bus | 94 | 1998 | |
| 6,202,105 Host adapter capable of simultaneously transmitting and receiving data of multiple contexts between a computer bus and peripheral bus | 42 | 1998 | |
| 6,298,403 Host adapter having a snapshot mechanism | 46 | 1998 | |
| 6,145,017 Data alignment system for a hardware accelerated command interpreter engine | 52 | 1998 | |
| 6,279,051 Host adapter having paged payload buffers for simultaneously transferring data between a computer bus and a peripheral bus | 64 | 2000 | |
|
|
|||
| 5,548,730 Intelligent bus bridge for input/output subsystems in a computer system | 138 | 1994 | |
| 5,758,194 Communication apparatus for handling networks with different transmission protocols by stripping or adding data to the data stream in the application layer | 77 | 1997 | |
| 6,157,955 Packet processing system including a policy engine having a classification unit | 418 | 1998 | |
| 6,427,169 Parsing a packet header | 112 | 1999 | |
| 6,449,656 Storing a frame header | 81 | 1999 | |
| 6,421,742 Method and apparatus for emulating an input/output unit when transferring data over a network | 48 | 1999 | |
|
|
|||
| 5,056,058 Communication protocol for predicting communication frame type in high-speed processing system | 102 | 1990 | |
| 5,303,344 Protocol processing apparatus for use in interfacing network connected computer systems utilizing separate paths for control information and data transfer | 107 | 1991 | |
| 5,678,060 System for executing high speed communication protocol processing by predicting protocol header of next frame utilizing successive analysis of protocol header until successful header retrieval | 88 | 1994 | |
| 5,701,434 Interleave memory controller with a common access queue | 122 | 1995 | |
| 5,935,205 Computer system having a plurality of computers each providing a shared storage access processing mechanism for controlling local/remote access to shared storage devices | 81 | 1996 | |
|
|
|||
| 5,163,131 Parallel I/O network file server architecture | 791 | 1989 | |
| 5,485,579 Multiple facility operating system architecture | 312 | 1994 | |
| 5,701,516 High-performance non-volatile RAM protected write cache accelerator system employing DMA and data transferring scheme | 143 | 1996 | |
| 5,931,918 Parallel I/O network file server architecture | 319 | 1997 | |
| 5,941,969 Bridge for direct data storage device access | 133 | 1997 | |
|
|
|||
| 5,524,250 Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers | 94 | 1994 | |
| 5,913,028 Client/server data traffic delivery system and method | 124 | 1995 | |
| 6,101,555 Methods and apparatus for communicating between networked peripheral devices | 55 | 1998 | |
|
|
|||
| 5,289,580 Programmable multiple I/O interface controller | 148 | 1991 | |
| 5,809,328 Apparatus for fibre channel transmission having interface logic, buffer memory, multiplexor/control device, fibre channel controller, gigabit link module, microprocessor, and bus control device | 154 | 1995 | |
| 6,345,301 Split data path distributed network protocol | 89 | 1999 | |
|
|
|||
| 6,226,680 Intelligent network interface system method for protocol processing | 290 | 1998 | |
| 6,389,479 Intelligent network interface device and system for accelerated communication | 188 | 1998 | |
|
|
|||
| 6,247,060 Passing a communication control block from host to a local device such that a message is processed on the device | 222 | 1999 | |
| 6,334,153 Passing a communication control block from host to a local device such that a message is processed on the device | 164 | 2000 | |
|
|
|||
| 5,815,646 Decompression processor for video applications | 82 | 1994 | |
| 6,065,096 Integrated single chip dual mode raid controller | 103 | 1997 | |
|
|
|||
| 6,067,569 Fast-forwarding and filtering of network packets in a computer system | 112 | 1997 | |
| 6,141,705 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 | 145 | 1998 | |
|
|
|||
| 5,511,169 Data transmission apparatus and a communication path management method therefor | 83 | 1993 | |
| 5,590,328 Protocol parallel processing apparatus having a plurality of CPUs allocated to process hierarchical protocols | 83 | 1995 | |
|
|
|||
| 6,034,963 Multiple network protocol encoder/decoder and data processor | 170 | 1996 | |
| 2003/0165,160 Gigabit Ethernet adapter | 128 | 2002 | |
|
|
|||
| 5,566,170 Method and apparatus for accelerated packet forwarding | 318 | 1994 | |
| 5,598,410 Method and apparatus for accelerated packet processing | 213 | 1994 | |
|
|
|||
| 5,517,668 Distributed protocol framework | 52 | 1994 | |
|
|
|||
| 5,751,715 Accelerator fiber channel hub and protocol | 119 | 1996 | |
|
|
|||
| 5,642,482 System for network transmission using a communication co-processor comprising a microprocessor to implement protocol layer and a microprocessor to manage DMA | 63 | 1994 | |
|
|
|||
| 5,898,713 IP checksum offload | 55 | 1997 | |
|
|
|||
| 5,941,972 Storage router and method for providing virtual local storage | 428 | 1997 | |
|
|
|||
| 5,996,024 Method and apparatus for a SCSI applications server which extracts SCSI commands and data from message and encapsulates SCSI responses to provide transparent operation | 138 | 1998 | |
|
|
|||
| 6,005,849 Full-duplex communication processor which can be used for fibre channel frames | 84 | 1997 | |
|
|
|||
| 4,366,538 Memory controller with queue control apparatus | 63 | 1980 | |
|
|
|||
| 5,699,317 Enhanced DRAM with all reads from on-chip cache and all writers to memory array | 138 | 1994 | |
|
|
|||
| 5,588,121 Parallel computer having MAC-relay layer snooped transport header to determine if a message should be routed directly to transport layer depending on its destination | 127 | 1996 | |
|
|
|||
| 6,173,333 TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols | 148 | 1999 | |
|
|
|||
| 5,778,013 Method and apparatus for verifying CRC codes | 53 | 1996 | |
|
|
|||
| 5,212,778 Message-driven processor in a concurrent computer | 104 | 1988 | |
|
|
|||
| 5,794,061 General purpose, multiple precision parallel operation, programmable media processor | 89 | 1996 | |
|
|
|||
| 5,790,804 Computer network interface and network protocol with direct deposit messaging | 118 | 1996 | |
|
|
|||
| 6,026,452 Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data | 133 | 1998 | |
|
|
|||
| 5,506,966 System for message traffic control utilizing prioritized message chaining for queueing control ensuring transmission/reception of high priority messages | 91 | 1992 | |
|
|
|||
| 5,280,477 Network synchronous data distribution system | 78 | 1992 | |
|
|
|||
| 5,671,355 Reconfigurable network interface apparatus and method | 211 | 1996 | |
|
|
|||
| 6,345,302 System for transmitting and receiving data within a reliable communications protocol by concurrently processing portions of the protocol suite | 70 | 2000 | |
|
|
|||
| 5,692,130 Method for selectively using one or two communication channel by a transmitting data terminal based on data type and channel availability | 64 | 1995 | |
|
|
|||
| 6,047,356 Method of dynamically allocating network node memory's partitions for caching distributed files | 91 | 1994 | |
|
|
|||
| 5,097,442 Programmable depth first-in, first-out memory | 69 | 1988 | |
|
|
|||
| 4,589,063 Data processing system having automatic configuration | 230 | 1983 | |
|
|
|||
| 5,412,782 Programmed I/O ethernet adapter with early interrupts for accelerating data transfer | 144 | 1992 | |
|
|
|||
| 5,058,110 Protocol processor | 156 | 1989 | |
|
|
|||
| 2001/0001,008 Transmitter/receiver for GMSK and Offset-QAM | 1 | 2000 | |
|
|
|||
| 6,061,368 Custom circuitry for adaptive hardware routing engine | 125 | 1997 | |
|
|
|||
| 5,802,580 High performance digital electronic system architecture and memory circuit thereof | 66 | 1997 | |
| 2001/0025,315 Term addressable memory of an accelerator system and method | 65 | 2001 | |
Patent Citation Ranking
Maintenance Fees
| Fee | Large entity fee | small entity fee | micro entity fee | due date |
|---|---|---|---|---|
| 7.5 Year Payment | $3600.00 | $1800.00 | $900.00 | Feb 8, 2014 |
| 11.5 Year Payment | $7400.00 | $3700.00 | $1850.00 | Feb 8, 2018 |
| Fee | Large entity fee | small entity fee | micro entity fee |
|---|---|---|---|
| Surcharge - 7.5 year - Late payment within 6 months | $160.00 | $80.00 | $40.00 |
| Surcharge - 11.5 year - Late payment within 6 months | $160.00 | $80.00 | $40.00 |
| Surcharge after expiration - Late payment is unavoidable | $700.00 | $350.00 | $175.00 |
| Surcharge after expiration - Late payment is unintentional | $1,640.00 | $820.00 | $410.00 |