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

2 Status Updates

Stats

ALSO PUBLISHED AS: 20020161919
ATTORNEY / AGENT: (SPONSORED)
 

Importance

Loading Importance Indicators... loading....

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.

Loading the Abstract Image... loading....

First Claim

Related Publications

Loading Related Publications... loading....

Patent Owner(s)

Patent OwnerAddressTotal Patents
ALACRITECH, INC.SAN JOSE, CA63

International Classification(s)

  • [Classification Symbol]
  • [Patents Count]

Inventor(s)

Inventor Name Address # of filed Patents Total Citations
Blightman, Stephen E J San Jose, CA 43 3135
Boucher, Laurence B Saratoga, CA 77 6148
Craft, Peter K San Francisco, CA 72 4075
Higgen, David A Saratoga, CA 62 3768
Philbrick, Clive M San Jose, CA 83 4771
Starr, Daryl D Milpitas, CA 62 4137

Cited Art

Patent Info (Count) # Cites Year
 
INTERNATIONAL BUSINESS MACHINES CORPORATION (15)
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
 
HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. (13)
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
 
SUN MICROSYSTEMS, INC. (9)
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
 
ADAPTEC, INC. (6)
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
 
INTEL CORPORATION (6)
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
 
HITACHI, LTD. (5)
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
 
NETWORK APPLIANCE, INC. (5)
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
 
RPX CORPORATION (3)
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
 
UNISYS CORPORATION (3)
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
 
ALACRITECH CORPORATION (2)
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
 
ALACRITECH, INC. (2)
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
 
LSI LOGIC CORPORATION (2)
5,815,646 Decompression processor for video applications 82 1994
6,065,096 Integrated single chip dual mode raid controller 103 1997
 
MICROSOFT CORPORATION (2)
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
 
MITSUBISHI DENKI KABUSHIKI KAISHA (2)
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
 
NVIDIA CORPORATION (2)
6,034,963 Multiple network protocol encoder/decoder and data processor 170 1996
2003/0165,160 Gigabit Ethernet adapter 128 2002
 
Storage Technology Corporation (2)
5,566,170 Method and apparatus for accelerated packet forwarding 318 1994
5,598,410 Method and apparatus for accelerated packet processing 213 1994
 
Amdahl Corporation (1)
5,517,668 Distributed protocol framework 52 1994
 
BROADCOM CORPORATION (1)
5,751,715 Accelerator fiber channel hub and protocol 119 1996
 
BULL S.A. (1)
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
 
CISCO TECHNOLOGY, INC. (1)
5,898,713 IP checksum offload 55 1997
 
CROSSROADS SYSTEMS, INC. (1)
5,941,972 Storage router and method for providing virtual local storage 428 1997
 
EMC CORPORATION (1)
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
 
EMULEX DESIGN & MANUFACTURING CORPORATION (1)
6,005,849 Full-duplex communication processor which can be used for fibre channel frames 84 1997
 
Honeywell Information Systems Inc. (1)
4,366,538 Memory controller with queue control apparatus 63 1980
 
INTELLECTUAL VENTURES I LLC (1)
5,699,317 Enhanced DRAM with all reads from on-chip cache and all writers to memory array 138 1994
 
International Computers Limited (1)
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
 
INTERPROPHET CORPORATION (1)
6,173,333 TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols 148 1999
 
IXIA (1)
5,778,013 Method and apparatus for verifying CRC codes 53 1996
 
MASSACHUSETTS INSTITUTE OF TECHNOLOGY (1)
5,212,778 Message-driven processor in a concurrent computer 104 1988
 
MICROUNITY SYSTEMS ENGINEERING, INC. (1)
5,794,061 General purpose, multiple precision parallel operation, programmable media processor 89 1996
 
MITSUBISHI ELECTRIC RESEARCH LABORATORIES, INC. (1)
5,790,804 Computer network interface and network protocol with direct deposit messaging 118 1996
 
MOSAID TECHNOLOGIES INCORPORATED (1)
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
 
NEC CORPORATION (1)
5,506,966 System for message traffic control utilizing prioritized message chaining for queueing control ensuring transmission/reception of high priority messages 91 1992
 
OL SECURITY LIMITED LIABILITY COMPANY (1)
5,280,477 Network synchronous data distribution system 78 1992
 
PredaComm, Inc. (1)
5,671,355 Reconfigurable network interface apparatus and method 211 1996
 
PROSYNC TECHNOLOGY GROUP (1)
6,345,302 System for transmitting and receiving data within a reliable communications protocol by concurrently processing portions of the protocol suite 70 2000
 
RICOH COMPANY, LTD. (1)
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
 
SNK TECH INVESTMENT L.L.C. (1)
6,047,356 Method of dynamically allocating network node memory's partitions for caching distributed files 91 1994
 
TEXAS INSTRUMENTS INCORPORATED (1)
5,097,442 Programmable depth first-in, first-out memory 69 1988
 
U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE (1)
4,589,063 Data processing system having automatic configuration 230 1983
 
U.S. ETHERNET INNOVATIONS, LLC (1)
5,412,782 Programmed I/O ethernet adapter with early interrupts for accelerating data transfer 144 1992
 
ULTRA NETWORK TECHNOLOGIES, A CORP. OF CA. (1)
5,058,110 Protocol processor 156 1989
 
UNWIRED PLANET, LLC (1)
2001/0001,008 Transmitter/receiver for GMSK and Offset-QAM 1 2000
 
XYLAN CORPORATION (1)
6,061,368 Custom circuitry for adaptive hardware routing engine 125 1997
 
Other [Check patent profile for assignment information] (2)
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

Forward Cites

Patent Info (Count) # Cites Year
 
ALACRITECH, INC. (23)
8,019,901 Intelligent network storage interface system 0 2002
7,543,087 Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device 28 2003
7,496,689 TCP/IP offload device 12 2003
7,472,156 Transferring control of a TCP connection between devices 14 2003
8,447,803 Method and apparatus for distributing network traffic processing on a multiprocessor computer 0 2003
8,131,880 Intelligent network interface device and system for accelerated communication 1 2003
7,502,869 Intelligent network interface system and method for accelerated protocol processing 7 2003
7,461,160 Obtaining a destination address so that a network interface device can write network data without headers directly into host memory 7 2004
7,584,260 Method to synchronize and upload an offloaded network stack connection with a network stack 7 2004
7,844,743 Protocol stack that offloads a TCP connection from a host computer to a network interface device 0 2004
7,809,847 Network interface device that can transfer control of a TCP connection to a host CPU 0 2005
7,627,684 Network interface device that can offload data transfer processing for a TCP connection from a host CPU 8 2005
7,620,726 Zero copy method for receiving data by a network interface 7 2005
7,640,364 Port aggregation for network connections that are offloaded to network interface devices 8 2005
8,248,939 Transferring control of TCP connections between hierarchy of processing mechanisms 0 2005
7,738,500 TCP timestamp synchronization for network connections that are offloaded to network interface devices 6 2005
7,664,883 Network interface device that fast-path processes solicited session layer read commands 16 2006
7,694,024 TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism 8 2007
7,664,868 TCP/IP offload network interface device 7 2007
7,853,723 TCP/IP offload network interface device 1 2007
7,673,072 Fast-path apparatus for transmitting data corresponding to a TCP connection 10 2007
7,945,699 Obtaining a destination address so that a network interface device can write network data without headers directly into host memory 0 2008
8,341,286 TCP offload send optimization 0 2009
 
Chelsio Communications, Inc. (11)
7,447,795 Multi-purpose switching network interface controller 5 2002
8,060,644 Intelligent network adaptor with end-to-end flow control 2 2007
7,826,350 Intelligent network adaptor with adaptive direct data placement scheme 6 2007
7,831,720 Full offload of stateful connections, with partial connection offload 4 2008
8,032,655 Configurable switching network interface controller using forwarding engine 0 2008
8,139,482 Method to implement an L4-L7 switch using split connections and an offloading NIC 2 2009
8,213,427 Method for traffic scheduling in intelligent network interface circuitry 1 2009
7,924,840 Virtualizing the operation of intelligent network interface circuitry 4 2009
8,155,001 Protocol offload transmit traffic management 2 2010
8,356,112 Intelligent network adaptor with end-to-end flow control 0 2011
8,339,952 Protocol offload transmit traffic management 0 2012
 
NVIDIA CORPORATION (10)
7,362,772 Network processing pipeline chipset for routing and host packet processing 4 2002
7,324,547 Internet protocol (IP) router residing in a processor chipset 29 2002
8,417,852 Uploading TCP frame data to user buffers and buffers in system memory 0 2003
7,991,918 Transmitting commands and information between a TCP/IP stack and an offload unit 0 2003
7,613,109 Processing data for a TCP connection using an offload unit 4 2003
7,609,696 Storing and accessing TCP connection information 12 2003
7,412,488 Setting up a delegated TCP connection for hardware-optimized processing 2 2003
7,363,572 Editing outbound TCP frames and generating acknowledgements 2 2003
7,420,931 Using TCP/IP offload to accelerate packet filtering 11 2004
7,924,868 Internet protocol (IP) router residing in a processor chipset 0 2007
 
CIRCADENCE CORPORATION (8)
7,975,066 System and method for implementing application functionality within a network infrastructure 0 2006
8,065,399 Automated network infrastructure test and diagnostic system and method therefor 0 2008
8,024,481 System and method for reducing traffic and congestion on distributed interactive simulation networks 0 2008
8,195,823 Dynamic network link acceleration 1 2009
7,962,654 System and method for implementing application functionality within a network infrastructure 0 2010
8,386,641 System and method for implementing application functionality within a network infrastructure 0 2011
8,417,770 Data redirection system and method therefor 0 2011
8,463,935 Data prioritization system and method therefor 0 2011
 
BROADCOM CORPORATION (4)
8,230,090 System and method for TCP offloading and uploading 2002
7,647,414 System and method for managing multiple stack environments 0 2003
8,402,142 System and method for TCP/IP offload independent of bandwidth delay product 0 2007
8,046,482 System and method for managing multiple stack environments 0 2010
 
INTEL-NE, INC. (4)
8,316,156 Method and apparatus for interfacing device drivers to single multi-function adapter 0 2006
7,782,905 Apparatus and method for stateless CRC calculation 8 2006
8,032,664 Method and apparatus for using a single multi-function adapter with different operating systems 2 2010
8,271,694 Method and apparatus for using a single multi-function adapter with different operating systems 2011
 
INTEL CORPORATION (2)
7,305,493 Embedded transport acceleration architecture 5 2002
7,853,957 Doorbell mechanism using protection domains 0 2005
 
ELECTRONICS AND TELECOMMUNICATIONS RESEARCH INSTITUTE (1)
7,818,460 Hardware device and method for transmitting network protocol packet 0 2007
 
TELEFONAKTIEBOLAGET LM ERICSSON (PUBL) (1)
8,312,066 Hash collision resolution with key compression in a MAC forwarding data structure 0 2010

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