`
`U.S. DEPARTMENT OF COMMERCE.
`PATENT AND TRADEMARK OFFICE
`FEE RECORD SHEET |
`
`PTO-1556
`
`ft a
`
`"
`
`*U:S. Government Printing Office: 2002-:489-267/69033
`
`. 06/27/2087 HMARZI1
`~ 1 FC:1011
`@2.FCsi1i1
`@3 FC:1311
`@4 FC:1881 -
`65FC: 1262
`
`60880043 11821820
`
`-
`
`-
`
`~ 360.88 OP.
`$08.98 OP
`268.68 OP
`750.88 OP
`56.68 OP.
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 001
`
`
`
`,
`
`.
`
`:
`
`.
`
`PTO/SB/06 (02-07)
`Approvedfor use through 02/28/2007. OMB 0651-0032
`U.S, Patent and Trademark Office: U.S. DEPARTMENT OF COMMERCE
`.
`.
`ork Reduction Act of 1995. no personsare required lo respond to 8 collection of information uniess it displays a valid OMB control number.
`
`PATENT APPLICATION FEE DETERMINATION RECORD
`
`Substitute for Fonn PTO-875
`
`
`
`
`(37 CFR 1,18(a)) TOTAL ©
`
`
`REMAINING pe NUMBER
`
`
`
`
`
` AMENDMENTA
`
`bay+i=a°
`°°aa
`
`
`.
`
`seers[mes[|
`(37 CFR 1,16(n))
`
`If the’specification and drawings exceed 100
`
`
`APPLICATION SIZE
`
`sheets of paper, the application size fea due
`
`FEE
`ts $250 ($125 for small entity) for each
`
`
`
`. additional 50 sheets or fraction thereof. See
`
`-16(S).
`35 U.S.C. 41(a
`
`1
`
`MULTIPLE DEPENDENTCLAIM PRESENT (37 CFR 1.16()))
`
`:
`
`7
`
`
`
`
`* If the difference in column 1 is less than zero, enter “0° in column 2.
`.
`No:
`
`APPLICATION AS AMENDED- PARTII
`
`(Column 1)
`CLAIMS
`
`
`AFTER’
`
`
`AMENDMENT
`
`{Column 2)
`HIGHEST
`
`
`PREVIOUSLY
`
`PAID FOR
`
`(Column3)
`
`PRESENT
`EXTRA
`
`OR
`
`
`
`AOOI-
`
`TIONAL
`
`
`
`
`{17 CFR 1,160)
`
`(37 CFR 1160)
`
`Application Size Fee (37 CFR 1.16(s))
`
`.
`
`
`
`
`+8
`
`a“ By
`
`
`OTHER THAN
`SMALL ENTITY
`
`
`AOOI-
`
`TIONAL
`
`RATE($)
`
`
`
`u
`
`
`
`
`a
`
`FIRST PRESENTATION OF MULTIPLE DEPENDENT CLAIM§(37 CFR 1.16())) TOTAL
`
`
`
`(Column 1)
`
`(Column 3)
`
`(Column 2)
`‘HIGHEST
`NUMBER
`PRESENT
`co
`PREVIOUSLY
`EXTRA
`KE
`P
`2
`PT
`:
`Sl 7 crr 1.160)
`Ofin| ar aWw
` FIRST PRESENTATION OF MULTIPLE DEPENDENT CLAIM§(37 CFR 1.16(j)
`
`REMAINING
`AFTER
`AMENOMENT
`
`Application Size Fee (37 CFR 1.16(s))
`
`=<
`
`,
`
`AOO'L FEE
`
`
`
`* If the entry in column1is less than the entry in column2, write “0” in column 3.
`
`
`
`** if the “HighestNumber Previously Paid For IN THIS SPACE isless than 20, enter °20”.
`*** If the “Highest Number Previously Paid For’ IN THIS SPACE is tess than 3, enter °3".
`
`
`i
`The “Highest Number Previously Paid For (Totat or independent) is the highest number found in the appropriate box in column 1,
`
`
`This collection of information is required by 37 CFR 1.16. The information is required to obtain or retain a benefit by the public which is to file {and by the
`USPTOto process) an application. Confidentiality is govemed by 35 U.S.C. 122 and 37 CFR 1.14. This collection is estimated to take 12 minutes to complete,
`including gathering, preparing, and submitting the completed application form to the USPTO.Timewill vary depending uponthe individual case. Any comments
`on the amountof time you require to complete this form and/or suggestions for reducing this burden, should be sent to the Chief Information Officer, U.S. Patent
`and Trademark Office, U.S. Department of Commerce, P.O. Box1450, Alexandria, VA 22313-1450. DO NOT SEND FEES OR COMPLETED FORMS TO THIS
`ADDRESS. SEND TO: Commissionerfor Patents, P.O. Box 1450, Alexandria, VA 22313-1450.
`
`ifyou needassistancein completing the form,calt1-800-PTO-9199 and select option 2.
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 002
`
`
`
`
`
`OTHER THAN
`SMALL ENTITY
`RATE (8
`BASIC FEE
`:
`é
`Foremusminom|MA|MA
`SEARCH FEE
`(97 CFR 1. 16K), (0), oF (mI)
`EXAMINATION FEE
`(97 CFR 1.16(0). (0). oF (@))
`TOTAL CLAIMS
`
`APPLICATION AS FILED — PART |
`(Column 1)
`(Column 2)
`
`OR
`
`—._
`
`g Pd @Bjzlzlz
`
`on
`
`
`
`
`
`°° 18351
`
`U.S. PTO
`IM
`062507
`UTILITY PATENT APPLICATION TRANSMITTAL
`
`New Nonprovisional Applications Under 37 CFR §
`
`1.
`
`
`
`U.S. PTO
`11/821820
`06/25/2007
`
`Attorney Docket No.
`. ALA-006K
`
`TO THE COMMISSIONER FOR PATENTS:
`
`Transmitted herewith is a patent application identified as follows:
`First-named inventor: Laurence B. Boucher
`Assignee: Alacritech, Inc.
`Filing Date: September 27, 2002
`Title: FAST-PATH APPARATUS FOR TRANSMITTING DATA CORRESPONDING TO A TCP CONNECTION
`
`This application claims the benefit under 35 USC §120of(is a continuation of):
`
`“Fast-Path Apparatus For Receiving Data Corresponding to a TCP Connection”
`Serial No.: 10/260,112
`Filing Date: September 27, 2002
`Atty. Docket: ALA-006G
`Examiner: Jude Jean Gilles
`
`filed
`This application claims the benefit under 35 USC §120 of Application Serial No. 10/260,112,
`September 27, 2002, which in tum claims the benefit under 35 USC §120 of Application Serial No. 10/092,967,
`filed March 6, 2002, which in turn claims the benefit under 35 USC §120 of Application Serial No. 10/023,240,
`filed December 15, 2001, which in turn claims the benefit under 35 USC §120 of Application Serial No.
`09/464,283, filed December 15, 1999, which in turn claims the benefit under 35 USC §120 of Application Serial
`No. 09/439,603, filed November 12, 1999, which in turn claims the benefit under 35 USC §120 of Application
`Serial No. 09/067,544, filed April 27, 1998, which in turn claims the benefit under 35 USC §119 of Provisional
`Application Serial No. 60/061,809, filed October 14, 1997.
`,
`
`This application also claims the benefit under 35 USC §120 of Application Serial No. 09/384,792, filed
`August 27, 1999, which in turn claims the benefit under 35 USC §120 of Application Serial No. 09/141,713, filed
`August 28, 1998, which in turn claims the benefit under 35 USC §119 of Provisional Application Serial No.
`60/098, 296,filed August 27, 1998.
`
`US.
`US.
`US.
`US.
`US.
`US.
`US.
`US.
`US.
`US.
`US.
`
`(X)
`(x)
`
`(X)
`
`:
`
`This application also claims the benefit under 35 U.S.C. §120 of the following:
`09/416,925 (ALA-005), filed October 13, 1999;
`Patent Application Serial No.
`09/514,425 (ALA-007), filed February 28, 2000;
`Patent Application Serial No.
`Patent Application Serial No.
`09/675,484 (ALA-010A), filed September 29, 2000;
`09/675,700 (ALA-010B), filed September 29, 2000;
`Patent Application Seria] No.
`Patent Application Serial No.
`09/789,366 (ALA-013), filed February 20, 2001;
`Patent Application Serial No.
`09/801,488 (ALA-011), filed March 7, 2001;
`09/802,551 (ALA-012), filed March 9, 2001;
`Patent Application Serial No.
`09/802,426 (ALA-014), filed March 9, 2001;
`Patent Application Serial No.
`09/802,550 (ALA-015), filed March 9, 2001;
`Patent Application Serial No.
`09/855,979 (ALA-016), filed March 14, 2001; and
`Patent Application Serial No.
`09/970,124 (ALA-020), filed October 2, 2001.
`Patent Application Serial No.
`
`Nes
`
`The specification contains a statementclaiming priority under 35 USC § 120and claiming the benefit under
`35 U.S.C. §119.
`The entire disclosure of each of the prior applications (10/092,967; 10/023,240; 09/464,283; 09/439,603;
`09/067,544; 09/384,792; 09/141,713; 09/416,925; 09/514,425; 09/675,484; 09/675,700; 09/789,366;
`09/801,488; 09/802,551; 09/802,426; 09/802,550; 09/855,979; 09/970, 124) is considered as being part of the
`disclosure of the accompanying application and is hereby incorporated by reference therein.
`Theentire disclosure of each of the prior provisional applications (60/061 ,809; 60/098,296) is considered as
`being part of the disclosure of the accompanying application and is hereby incorporated by reference therein.
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 003
`
`
`
`Enclosedare:
`
`145
`4
`I
`89
`4
`
`4
`
`x>N
`
`pages Specification
`pages Claims
`page Abstract
`pages Drawings
`pages Declaration/Power of Attorney from prior
`application 10/092,967 (signed - copy)
`pages Declaration/Power of Attorney from prior
`application 10/092,967 (signed - copy)
`page CD Appendix Transmittal Letter
`CD Appendix (two copies) _
`A checkforfiling fee ($1800.00)
`
`Newly Executed Declaration Not Required:
`A newly executed declaration is not filed in this application because, under 37 CFR 1.63(d)(1), a newly executed
`declaration is not required because: prior application contained a declaration as prescribed by 37 CFR 1.63;
`the
`continuation application (this application)is filed by all of the inventors named in the prior application; the specification
`and drawingsin the continuation application (this application) contain no matter that would have been new matter in the
`prior application; and a copy of the executed declaration (there were two) in the prior application is being submitted in the
`continuation application (this application).
`
`Thefiling fee is calculated as follows:
`
`.
`
`CLAIMSAS FILED
`NO. EXTRA
`NO. FILED
`Total Claims Pe $50.00
`Ps
`Independent Claims
`$200.00
`Multiple Dependent Claims(if applicable
`
`$ 50.00
`$ 0.00
`$0.00
`
`
`
`
`
`
`
`
`
`
`
`
`
`[UtilitySearchFee$500.00|
`
`
`
`
`
`
`
`I herebycertify that this is being deposited with the U.S. Postal
`Service “Express Mail Post Office to Addressee” service under.
`37 CFR § 1,10 on the date indicated below andis addressed to:
`ue Patent Application
`ommissionerfor Patents
`P.O. Box 1450
`.
`Alexandria, VA 22313-1450
`By: EE
`Typed Name: Mark Lauer
`
`Respectfully submitted,
`
`By:
`
`Mark Lauer
`Reg. No. 36,578
`6601 Koll Center Parkway
`Suite 245
`Pleasanton, CA 94566
`Phone:
`(925) 484-9295
`Fax:
`(925) 484-9291
`Date: Buz 5ws 7
`
`Express Mail Label No.: EV 406928085 US
`Correspondence Address:
`
`Date of Deposit:YSFP : CUSTOMER NO.24501
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 004
`
`
`
`TO THE ASSISTANT COMMISSIONER FOR PATENTS:
`
`Inventors:
`
`Laurence B. Boucher,etal.
`
`Atty Docket: ALA-006K
`
`Filing Date:
`
`June 25, 2007
`
`Serial No...
`
`Unknown
`
`Title:
`
`FAST-PATH APPARATUS FOR RECEIVING DATA CORRESPONDING TO
`A TCP CONNECTION
`
`Compact Disk Transmittal Letter per 37 CFR _1.52(e)3(i))
`
`Sir:
`
`Transmitted herewith are:
`
`Two Labeled Compact Discs — Recordable (CD-R) — “Copy 1” and “Copy 2,” each in a
`
`CD case and contained in a padded envelope.
`
`The content on the two discs is identical
`
`The machine format is: IBM-PC
`
`The operating system is: MS-Windows
`
`. The creation date of the CDsis: June 21, 2007
`
`The name, date and size of the files on the CDsare listed below:
`
`There are three folders on each disc: 1) CD Appendix A,
`
`2) CD Appendix B, and
`
`3) CD Appendix C.
`
`Folder Appendix A contains twofiles:
`
`CD Appendix A Title Page.txt. Its size is 370 bytes. It was created 6/21/07.
`
`Rev.v. Its size is 84.4KB. It was created (written to disc) 6/21/07.
`
`Folder Appenidix B contains twofiles:
`
`CD Appendix B Title Page.txt. Its size is 495 bytes. It was created 6/21/07.
`
`Microcode.txt. Its size is 105 KB. It was created (written to disc) 6/21/07.
`
`Express Mail No. EV 406928085 US
`
`/
`
`I
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 005
`
`
`
`Folder Appendix C containsthree files:
`
`CD Appendix C Title Page.txt. Its size is 416 bytes. It was created 6/21/07.
`
`atcpsource.wrd.txt. Its size is 778 KB. It was created (written to disc) 6/21/07.
`
`simbasource.wrd.txt. Its size is 262 KB. It was created (written to disc) 6/21/07.
`
`Respectfully submitted,
`
`CERTIFICATE OF MAILING
`I hereby certify that this correspondenceis being deposited with
`Mark Lauer
`the United States Postal Service as Express Mail Label No.
`Reg. No. 36,578
`EV40692808SUSin an envelope addressed to: Box PATENT
`Silicon Edge Law Group LLP
`APPLICATION,Assistant Commissionerfor Patents,
`6601 Koll Center Parkway
`Washington,D.C. 20231, on June 25, 2007.
`Suite 245
`Pleasanton, CA 94566
`
`Date6I? LE Tel: (925) 484-9295
`
`Mark Lauer
`Fax:
`(925) 484-9291
`
`Express Mail No. EV 406928085 US
`
`2
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 006
`
`
`
`ALA-006K
`
`Express Mail No. EV 406928085 US
`
`FAST-PATH APPARATUS FOR TRANSMITTING DATA
`
`CORRESPONDING TO A TCP CONNECTION
`
`Laurence B. Boucher
`
`Stephen E. J. Blightman
`
`Peter K. Craft
`
`David A. Higgen
`
`Clive M. Philbrick
`
`_ Daryl D. Starr
`
`10
`
`15
`
`CROSS-REFERENCE TO RELATED APPLICATIONS
`This application claimsthe benefit under 35 U.S.C. §120 of(is a continuation of) U.S.
`Patent Application Serial No. 10/260,112, entitled “FAST-PATH APPARATUS FOR
`RECEIVING DATA CORRESPONDING TO A TCP CONNECTION,”filed September 27,
`2002, by Laurence B. Boucheret al., which in turn claims the benefit under 35 U.S.C. §120 of
`
`(is a continuation of) U.S. Patent Application Serial No. 10/092,967, entitled “FAST-PATH
`
`APPARATUS FOR RECEIVING DATA CORRESPONDINGTO A TCP CONNECTION,”
`
`filed March 6, 2002, by Laurence B. Boucheret al., which in turn claims the benefit under 35
`
`U.S.C. §120 of (is a continuation-in-part of) U.S. Patent Application Serial No. 10/023,240,
`
`20
`
`entitled “TRANSMIT FAST-PATH PROCESSING ON TCP/IP OFFLOAD NETWORK
`
`INTERFACE DEVICE,”filed December 15, 2001, by Laurence B. Boucheretal., which in
`
`turn claims the benefit under 35 U.S.C. §120 of(is a continuation-in-part of) U.S. Patent
`
`Application Serial No. 09/464,283, now U.S. Patent No. 6,427,173, entitled “INTELLIGENT
`
`NETWORK INTERFACE DEVICE AND SYSTEM FOR ACCELERATED
`
`25
`
`COMMUNICATION”, filed December 15, 1999, by Laurence B. Boucheret al., which in tum
`claims the benefit under 35 U.S.C. §120 of (is a continuation-in-part of) U.S. Patent
`Application Serial No. 09/439,603, now U.S. Patent No. 6,247,060, entitled “INTELLIGENT
`
`NETWORK INTERFACE SYSTEM AND METHOD FOR ACCELERATED PROTOCOL
`
`PROCESSING”,filed November 12, 1999, by Laurence B. Boucheret al., which in turn
`
`30
`
`claims the benefit under 35 U.S.C. §120 of(is a continuation-in-part of) U.S. Patent
`
`Application Serial No. 09/067,544, now U.S. Patent No. 6,226,680, entitled “INTELLIGENT
`
`1
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 007
`
`
`
`ALA-006K
`
`Express Mail No. EV 406928085 US
`
`NETWORK INTERFACE SYSTEM AND METHOD FOR ACCELERATED PROTOCOL
`
`PROCESSING”,filed April 27, 1998, which in turn claims the benefit under 35 U.S.C. §
`
`119(e)(1) of the Provisional Application filed under 35 U.S.C. §111(b)entitled
`
`“INTELLIGENT NETWORK INTERFACE CARD AND SYSTEM FOR PROTOCOL
`PROCESSING,”Serial No. 60/061,809,filed on October 14, 1997.
`
`Application No. 10/260,112 also claims the benefit under 35 U.S.C. §120 of(is a
`
`continuation-in-part of) U.S. Patent Application Serial No. 09/384,792, now U.S. Patent No.
`
`10
`
`6,434,620, entitled “TCP OFFLOAD NETWORK INTERFACEDEVICE,”filed August 27,
`1999, which in turn claims the benefit under 35 U.S.C. §120 of (is a continuation-in-part of)
`U.S. Patent Application Serial No. 09/141,713, now U.S, Patent No. 6,389,479, entitled
`“INTELLIGENT NETWORK INTERFACE DEVICE AND SYSTEM FOR
`ACCELERATED PROTOCOL PROCESSING”,filed August 28, 1998, which both claim the
`
`benefit under 35 U.S.C. § 119(e)(1) of the Provisional Application filed under 35 U.S.C.
`
`§111(b) entitled “INTELLIGENT NETWORK INTERFACE DEVICE AND SYSTEM FOR
`
`15
`
`ACCELERATED COMMUNICATION,”Serial No. 60/098,296, filed August 27, 1998.
`
`Application No. 10/260,112 also claims the benefit under 35 U.S.C. §120 of (is a
`continuation-in-part of) U.S. Patent Application Serial No. 09/416,925, now U.S. Patent No.
`6,470,415, entitled “QUEUE SYSTEM FOR MICROPROCESSORS,”filed October 13, 1999,
`
`(is a continuation-in-part of) U.S. Patent Application Serial No. 09/514,425, now U.S. Patent
`No.6,427,171, entitled “PROTOCOL PROCESSING STACK FOR USE WITH
`
`20
`
`INTELLIGENT NETWORK INTERFACE CARD,”filed February 28, 2000,(is a
`
`continuation-in-part of) U.S. Patent Application Serial No. 09/675,484, now U.S. Patent No.
`
`6,807,581, entitled “INTELLIGENT NETWORK STORAGE INTERFACE SYSTEM,”filed
`
`September 29, 2000,(is a continuation-in-part of) U.S. Patent Application Serial No.
`
`25
`
`09/675,700, entitled “INTELLIGENT NETWORK STORAGEINTERFACEDEVICE,”filed
`
`September 29, 2000,(is a continuation-in-part of) U.S. Patent Application Serial No.
`
`09/789,366, now U.S. Patent No. 6,757,746, entitled “OBTAINING A DESTINATION
`
`ADDRESS SO THAT A NETWORK INTERFACE DEVICE CAN WRITE NETWORK
`
`DATA WITHOUT HEADERSDIRECTLY INTO HOST MEMORY,”filed February 20,
`
`30
`
`2001, (is a continuation-in-part of) U.S. Patent Application Serial No. 09/801,488, now U.S.
`
`Patent No. 6,687,758, entitled “PORT AGGREGATION FOR NETWORK CONNECTIONS
`
`THAT ARE OFFLOADED TO NETWORK INTERFACE DEVICES,”filed March 7, 2001,
`2
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 008
`
`
`
`ALA-006K
`
`Express Mail No. EV 406928085 US
`
`(is a continuation-in-part of) U.S. Patent Application Serial No. 09/802,551, entitled
`“INTELLIGENT NETWORK STORAGEINTERFACESYSTEM,”filed March 9, 2001, (is a
`
`continuation-in-part of) U.S. Patent Application Serial No. 09/802,426,entitled “REDUCING
`
`DELAYS ASSOCIATED WITH INSERTING A CHECKSUM INTO A NETWORK
`
`MESSAGE,”filed March 9, 2001, (is a continuation-in-part of) U.S. Patent Application Serial
`No. 09/802,550, now U.S.Patent No. 6,658,480, entitled “INTELLIGENT NETWORK
`
`INTERFACE SYSTEM AND METHOD FOR ACCELERATED PROTOCOL
`
`PROCESSING,”filed March 9, 2001, (is a continuation-in-part of) U.S. Patent Application
`
`Serial No. 09/855,979, entitled “NETWORK INTERFACE DEVICE EMPLOYING DMA
`
`COMMAND QUEUE,”filed March 14, 2001, (is a continuation-in-part of) U.S. Patent
`
`Application Serial No. 09/970,124, entitled “NETWORK INTERFACE DEVICE THAT
`
`FAST-PATH PROCESSES SOLICITED SESSION LAYER READ COMMANDS,”filed
`
`October 2, 2001.
`
`15
`
`The subject matterof all of the above-identified patent applications (including the
`subject matter in the Microfiche Appendix of U.S. Application Serial No. 09/464,283), and of
`the two above-identified provisional applications, is incorporated by reference herein.
`
`
`REFERENCE TO COMPACT DISC APPENDIX
`
`The Compact Disc Appendix (CD Appendix), whichis a part of the present disclosure,
`
`20
`
`includes three folders, designated CD Appendix A, CD Appendix B, and CD Appendix C on
`
`the compact disc. CD Appendix A contains a hardware description language (verilog code)
`
`description of an embodiment of a receive sequencer. CD Appendix B contains microcode
`
`executed by a processorthat operates in conjunction with the receive sequencer of CD
`Appendix A. CD Appendix C contains a device driver executableon the host as well as ATCP
`code executable on the host. A portion of the disclosure of this patent document contains
`
`25
`
`material (other than any portion ofthe “free BSD”stack included in CD Appendix C) whichis
`
`subject to copyright protection. The copyright ownerof that material has no objection to the
`facsimile reproduction by anyone ofthe patent documentor the patent disclosure, as it appears
`in the Patent and Trademark Office patent files or records, but otherwise reservesall copyright
`
`30
`
`rights.
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 009
`
`
`
`ALA-006K.
`
`Express Mail No. EV 406928085 US
`
`TECHNICAL FIELD
`
`Thepresent invention relates generally to computeror other networks, and more
`
`particularly to processing of information communicated between hosts such as computers
`
`connected to a network.
`
`BACKGROUND
`
`The advantages of network computing are increasingly evident. The convenience and
`efficiencyof providing information, communication or computational powerto individuals at
`their personal computer or other end user devices has led to rapid growthof such network
`
`computing, including internet as well as intranet devices and applications.
`
`Asis well known, most network computer communication is accomplished with the aid of
`a layered software architecture for moving information between host computers connected to
`
`the network. The layers help to segregate information into manageable segments, the general
`
`functions of each layer often based on an international standard called Open Systems
`Interconnection (OSI). OSI sets forth seven processing layers through whichinformation may
`pass whenreceived bya host in order to be presentable to an end user. Similarly, transmission
`of information from a host to the network maypass through those seven processing layers in
`reverse order. Each step of processing and service by a layer may include copying the
`processed information. Another reference modelthat is widely implemented, called TCP/IP
`(TCP stands for transport control protocol, while IP denotes internet protocol) essentially
`employsfive of the seven layers of OSI.
`
`Networks may include, for instance, a high-speed bus such as an Ethernet connection or an
`
`internet connection between disparate local area networks (LANs), each of which includes
`
`multiple hosts, or any of a variety of other known meansfor data transfer between hosts.
`
`According to the OSI standard, physical layers are connected to the network at respective
`hosts, the physical layers providing transmission and receipt of raw data bits via the network.
`A data link layer is serviced by the physical layer of each host, the data link layers providing
`frame division anderror correction to the data received from the physical layers, as well as
`processing acknowledgment framessent by the receiving host. A network layer of each hostis
`
`15
`
`20
`
`25
`
`30
`
`serviced by respective data link layers, the network layers primarily controlling size and
`
`coordination of subnets of packets ofdata.
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 010
`
`
`
`4
`
`ALA-006K.
`
`Express Mail No. EV 406928085.US
`
`A transport layer is serviced by each networklayer and a session layer is serviced by each
`transport layer within each host. Transport layers accept data from their respective session
`layers and split the data into smaller units for transmission to the other host’s transport layer,
`
`which concatenates the data for presentation to respective presentation layers. Session layers
`
`allow for enhanced communication control between the hosts. Presentation layers are serviced
`
`by their respective session layers, the presentation layers translating between data semantics
`
`and syntax which may bepeculiar to each host and standardizedstructures of data
`
`representation. Compression and/or encryption of data may also be accomplishedat the
`presentation level. Application layers are serviced by respective presentation layers, the
`application layers translating between programsparticular to individual hosts and standardized
`
`10
`
`programsfor presentation to either an application or an end user. The TCP/IP standard
`
`includes the lower four layers and application layers, but integrates the functions of session
`
`layers and presentation layers into adjacent layers. Generally speaking, application,
`
`presentation and session layers are defined as upperlayers, while transport, network and data
`
`15
`
`link layers are defined as lowerlayers.
`
`The rules and conventions for each layer are called the protocol of that layer, and since the
`
`protocols and general functions of each layer are roughly equivalentin various hosts,it is
`
`useful to think of communication occurring directly between identical layers of different hosts,
`
`even though these peer layers do not directly communicate without information transferring
`
`20
`
`sequentially through each layer below. Each lowerlayer performsa service for the layer
`
`immediately above it to help with processing the communicated information. Each layer saves
`
`the information for processing and service to the next layer. Dueto the multiplicity of
`
`hardware and software architectures, devices and programs commonly employed, each layeris
`
`necessary to insure that the data can makeit to the intended destination in the appropriate
`
`25
`
`form, regardless of variations in hardware and software that mayintervene.
`
`In preparing data for transmission from a first to a second host, some control data is added
`at each layerofthefirst host regarding the protocolofthat layer, the control data being
`indistinguishable from the original (payload) data for all lower layers of that host. Thus an
`
`application layer attaches an application header to the payload data and sends the combined
`data to the presentation layer of the sending host, which receives the combined data, operates
`
`30
`
`on it and adds a presentation headerto the data, resulting in another combined data packet.
`
`The data resulting from combination of payload data, application header and presentation
`5
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 011
`
`
`
`ALA-006K
`
`a
`
`Express Mail No. EV 406928085 US
`
`headeris then passed to the session layer, which performs required operations including
`
`attaching a session headerto the data and presenting the resulting combination of data to the
`
`transport layer. This process continuesas the information movesto lowerlayers, with a
`transport header, network header and data link headerandtrailer attached to the data at each of
`
`those layers, with each step typically including data moving and copying, before sending the
`
`data as bit packets over the network to the second host.
`
`The receiving host generally performs the converse of the above-described process,
`beginning with receiving the bits from the network, as headers are removed and data processed
`in order from the lowest(physical) layer to the highest (application) layer before transmission
`
`10
`
`to a destination of the receiving host. Each layerof the receiving host recognizes and
`
`manipulates only the headers associated with that layer, since to that layer the higher layer
`
`control data is included with and indistinguishable from the payload data. Multiple interrupts,
`valuable central processing unit (CPU) processing time and repeated data copies mayalso be
`necessary for the receiving host to place the data in an appropriate form atits intended
`
`destination.
`
`The above description of layered protocol processingis simplified, as college-level
`textbooks devoted primarily to this subject are available, such as Computer Networks, Third
`Edition (1996) by Andrew S. Tanenbaum,which is incorporated herein by reference. As
`defined in that book, a computer network is an interconnected collection of autonomous
`
`20
`
`computers, such as internet and intranet devices, including local area networks (LANs), wide:
`
`area networks (WANs), asynchronoustransfer mode (ATM),ring or token ring, wired,
`
`wireless, satellite or other means for providing communication capability between separate
`
`processors. A computeris defined herein to include a device having both logic and memory
`
`functions for processing data, while computers or hosts connected to a networkaresaid to be
`heterogeneousif they function accordingto different operating devices or communicate via
`different architectures.
`
`Asnetworks grow increasingly popular and the information communicated thereby
`
`becomesincreasingly complex and copious, the need for such protocol processing has
`increased. It is estimated that a large fraction ofthe processing power of a host CPU may be
`devoted to controlling protocol processes, diminishing the ability of that CPU to perform other
`
`tasks. Networkinterface cards have been developed to help with the lowest layers, such as the
`
`physical and data link layers. It is also possible to increase protocol processing speed by
`6 -
`
`25
`
`30
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 012
`
`
`
`ALA-006K
`
`.
`
`Express Mail No. EV 406928085 US
`
`simply adding more processing power or CPUsaccording to conventional arrangements. This
`
`solution, however, is both awkward and expensive. But the complexities presented by various
`
`networks, protocols, architectures, operating devices and applications generally require
`
`extensive processing to afford communication capability between various network hosts.
`
`SUMMARYOF THE INVENTION
`
`The current invention provides a device for processing network communication that greatly
`
`increases the speed of that processing and the efficiency oftransferring data being
`
`communicated. The invention has been achieved by questioning the long-standing practice of
`
`10
`
`performing multilayered protocol processing on a general-purpose processor. The protocol
`
`processing methodandarchitecture that results effectively collapses the layers of a connection-
`
`based, layered architecture such as TCP/IP into a single wider layer which is able to send
`
`network data moredirectly to and from a desired location or buffer on a host. This accelerated
`
`processing is provided to a host for both transmitting and receiving data, and so improves
`performance whether oneor both hosts involved in.an exchange of information have such a
`
`15
`
`feature.
`
`The accelerated processing includes employing representative controlinstructions for a
`given messagethat allow data from the message to be processed via a fast-path which accesses
`message data directly at its source or delivers it directly to its intended destination. This fast-
`path bypasses conventional protocol processing of headers that accompany the data. Thefast-
`path employs a specialized microprocessor designed for processing network communication,
`
`20
`
`avoiding the delays andpitfalls of conventional software layer processing, such as repeated
`copying andinterrupts to the CPU. In effect, the fast-path replacesthestates that are
`
`traditionally found in several layers of a conventional network stack with a single state
`
`25
`
`machine encompassing all those layers, in contrast to conventional rules that require rigorous
`
`differentiation and separation of protocol layers. The host retains a sequential protocol
`
`processing stack which can be employed forsetting up a fast-path connection or processing
`message exceptions. The specialized microprocessor and the hostintelligently choose whether
`a given messageor portion of a messageis processed by the microprocessoror the host stack.
`
`30
`
`One embodimentis a method of generating a fast-path response to a packet received onto a
`network interface device where the packet is received over a TCP/IP network connection and
`where the TCP/IP network connectionis identified at least in part by a TCP source port, a TCP
`~
`7
`a
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 013
`
`
`
`ALA-006K
`
`.
`
`Express Mail No. EV 406928085 US
`
`destination port, an IP source address, and an IP destination address. The method comprises:
`
`1) Examining the packet and determining from the packet the TCP source port, the TCP
`destination port, the IP source address, and the IP destination address; 2) Accessing an
`appropriate template header stored on the network interface device. The template header has
`
`TCP fields and IP fields; 3) Employinga finite state machine that implements both TCP
`
`protocol processing and IP protocol processingto fill in the TCP fields and IP fields of the
`
`template header; and 4) Transmitting the fast-path response from the network interface device.
`
`Thefast-path response includesthe filled in template header and a payload. Thefinite state
`
`machine doesnot entail a TCP protocol processing layer and a discrete IP protocol processing
`
`10
`
`layer where the TCP and IP layers are executed oneafter another in sequence. Rather, the
`
`finite state machine covers both TCP andIP protocol processing layers.
`In one embodiment, buffer descriptors that point to packets to be transmitted are pushed
`
`ontoaplurality of transmit queues. A transmit sequencer pops the transmit queues and obtains
`
`the buffer descriptors. The buffer descriptors are then used to retrieve the packets from buffers
`
`where the packets are stored. The retrieved packets are then transmitted from the network
`
`interface device. In one embodiment, there are two transmit queues, one having a higher
`transmission priority than the other. Packets identified by buffer descriptors on the higher
`
`priority transmit queue are transmitted from the network interface device before packets
`identified by the lower priority transmit queue.
`.
`Other structures and methodsare disclosed in the detailed description below. This
`
`20
`
`summary does not purport to define the invention. The invention is defined bythe claims.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG.1 is a plan view diagram ofa device ofthe present invention, including a host
`
`25
`
`computer having a communication-processing device for accelerating network
`
`communication.
`
`FIG. 2 is a diagram of information flow for the host of FIG. 1 in processing network
`communication, including a fast-path, a slow-path anda transfer of connection context
`between the fast and slow-paths.
`
`30
`
`FIG. 3 is a flow chart of message receiving according to the present invention.
`
`FIG. 4A is a diagram of information flow for the host of FIG. 1 receiving a message packet
`
`processed by the slow-path.
`
`CAVIUM-1002
`Cavium, Inc. v. Alacritech, Inc.
`Page 014
`
`
`
`ALA-006K
`
`Express Mail No. EV 406928085 US
`
`FIG.4Bis a diagram ofinformation flow for the host of FIG. | receiving an initial message
`
`packet processed by the fast-path.
`
`FIG. 4C is a diagram of information flow for the host of FIG. 4B receiving a subsequent
`
`message packet processed by the fast-path.
`
`FIG. 4D is a diagram of information flow for the host of FIG. 4C receiving a message
`
`packet havingan error that causes processing to revert to the slow-path:
`
`FIG. 5 is a diagram of information flow for the host of FIG. 1 transmitting a message by
`
`either the fast or slow-paths.
`
`FIG.6 is a diagram of