`
`
`
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`
`
`
`WISTRON CORPORATION
`Petitioner
`
`v.
`
`ALACRITECH, INC.
`Patent Owner
`
`
`
`Case IPR. No. IPR2018-00329
`U.S. Patent No. 7,673,072
`Title: FAST-PATH APPARATUS FOR TRANSMITTING DATA
`CORRESPONDING TO A TCP CONNECTION
`
`Petition For Inter Partes Review of U.S. Patent No. 7,673,072 Under
`35 U.S.C. §§ 311-319 and 37 C.F.R. §§ 42.1-.80, 42.100-.123
`
`
`
`
`
`
`
`
`
`
`
`
`
`Mail Stop “PATENT BOARD”
`Patent Trial and Appeal Board
`U.S. Patent and Trademark Office
`P.O. Box 1450
`Alexandria, VA 22313-1450
`
`
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`TABLE OF CONTENTS
`
`b)
`
`1.
`2.
`
`3.
`
`4.
`
`5.
`6.
`7.
`
`8.
`9.
`
`Page
`INTRODUCTION ......................................................................................... 1
`REQUIREMENTS FOR PETITION FOR INTER PARTES
`REVIEW ........................................................................................................ 1
`2.1. Grounds for Standing (37 C.F.R. § 42.104(a)) ................................... 1
`2.2. Notice of Lead and Backup Counsel and Service Information ........... 1
`2.3. Notice of Real-Parties-in-Interest (37 C.F.R. § 42.8(b)(1)) ................ 2
`2.4. Notice of Related Matters (37 C.F.R. § 42.8(b)(2)) ............................ 2
`2.5. Fee for Inter Partes Review ................................................................ 5
`2.6. Proof of Service ................................................................................... 5
`IDENTIFICATION OF CLAIMS BEING CHALLENGED
`(§42.104(B)) .................................................................................................. 5
`a)
`U.S. Pat. No. 5,768,618, to Erickson, titled “Method for
`Performing Sequence of Actions in Device Connected
`to Computer in Response to Specified Values Being
`Written Into Snooped Sub Portions of Address Space,”
`filed on Dec. 21, 1995 and issued on June 16, 1998
`(Ex.1005, “Erickson”) in view of ............................................. 5
`Computer Networks, A. Tanenbaum, 3rd ed. (1996)
`(Ex.1006, “Tanenbaum96”). ..................................................... 6
`BACKGROUND OF THE TECHNOLOGY ................................................ 6
`4.1. TCP/IP ................................................................................................. 6
`4.2. UDP/IP .............................................................................................. 10
`4.3. Protocol Offload ................................................................................ 10
`OVERVIEW OF THE 072 PATENT .......................................................... 12
`072 PATENT PROSECUTION HISTORY ................................................ 16
`CLAIM CONSTRUCTION ........................................................................ 16
`7.1. Applicable Law ................................................................................. 16
`7.2. Construction of Claim Terms ............................................................ 17
`PERSON HAVING ORDINARY SKILL IN THE ART ........................... 19
`DESCRIPTION OF THE PRIOR ART ...................................................... 19
`9.1. Tanenbaum96: A. Tanenbaum, Computer Networks, 3rd ed.
`(1996) ................................................................................................ 20
`9.2. U.S. Patent No. 5,768,618 (“Erickson”) ........................................... 23
`9.3. Motivations To Combine Erickson and Tanenbaum96 .................... 26
`10. GROUND #1: CLAIMS 1–21 ARE UNPATENTABLE AS
`OBVIOUS OVER ERICKSON IN VIEW OF TANENBAUM96 ............. 30
`
`
`
`ii
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`10.1. Claim 1 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 30
`10.2. Claim 2 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 45
`10.3. Claim 3 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 50
`10.4. Claim 4 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 53
`10.5. Claim 5 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 56
`10.6. Claim 6 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 56
`10.7. Claim 7 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 57
`10.8. Claim 8 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 59
`10.9. Claim 9 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 59
`10.10. Claim 10 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 63
`10.11. Claim 11 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 66
`10.12. Claim 12 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 66
`10.13. Claim 13 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 67
`10.14. Claim 14 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 68
`10.15. Claim 15 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 69
`10.16. Claim 16 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 72
`10.17. Claim 17 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 73
`10.18. Claim 18 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 74
`10.19. Claim 19 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 74
`10.20. Claim 20 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 75
`
`
`
`iii
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`10.21. Claim 21 is unpatentable as obvious over Erickson in view of
`Tanenbaum96 .................................................................................... 75
`11. CONCLUSION ............................................................................................ 76
`
`
`
`
`
`
`
`iv
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`Exhibit #
`
`Exhibit List
`
`Description
`
`Ex.1001 U.S. Patent No. 7,673,072
`
`Ex.1002 Prosecution File History of U.S. Patent No. 7,673,072
`
`Ex.1003 Declaration of Robert Horst Declaration
`
`Ex.1004 Curriculum Vitae of Robert Horst
`
`Ex.1005 U.S. Patent No. 5,768,618 (“Erickson”)
`Ex.1006 Tanenbaum, Andrew S., Computer Networks, Prentice-Hall, Inc., New
`Jersey (1996). (“Tanenbaum96”)
`Ex.1007 Transmission Control Protocol, “Darpa Internet Protocol
`Specification”, RFC: 793, Sept. 1981. (“RFC 793”)
`Ex.1008 Stevens, W. Richard, TCP/IP Illustrated Volume 1: The Protocols,
`Addison-Wesley (1994). (“Stevens1”)
`
`Ex.1009
`
`Lilinkamp, J., Mandell. R. and Padlipsky, M., “Proposed Host-Front
`End Protocol”, Network Working Group Request for Comments: 929,
`Dec. 1984. (“RFC 929”)
`
`Ex.1010 Reserved
`Ex.1011 Declaration of Rice Majors regarding Tanenbaum, Andrew S.,
`Computer Network
`
`Ex.1012 Reserved
`Ex.1013 Stevens, W. Richard and Gary R. Wright, TCP/IP Illustrated Volume
`2: The Implementation, Addison-Wesley (1995). (“Stevens2”)
`Ex.1014 Touch, J., “TCP Control Block Interdependence”, Network Working
`Group Request for Comments: 2140, April 1997. (“RFC 2140”)
`
`Ex.1015
`
`Thia, Y.H., Woodside, C.M., “A Reduced Operation Protocol Engine
`(ROPE) for a Multiple-Layer Bypass Architecture”, Protocols for High
`Speed Networks (Dordrecht), 1995. (“Thia”)
`
`
`
`v
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`Exhibit #
`
`Ex.1016
`
`Description
`
`Biersack, E. W., Rütsche E., “Demultiplexing on the ATM Adapter:
`Experiments with Internet Protocols in User Space”, Journal on High
`Speed Networks, Vol. 5, No. 2, May 1996. (“Biersack”)
`
`Ex.1017
`
`Rütsche, E., Kaiserswerth, M., “TCP/IP on the Parallel Protocol
`Engine”, Proceedings, IFIP Conference on High Performance
`Networking, Liege (Belgium), Dec. 1992. (“Rütsche92”)
`Ex.1018 Rütsche, E., “The Architecture of a Gb/s Multimedia Protocol
`Adapter”, Computer Communication Review, 1993. (“Rütsche93”)
`
`Ex.1019
`
`Padlipsky, M. A., “A Proposed Protocol for Connecting Host
`Computers to Arpa-Like Networks Via Directly-Connected Front End
`Processors”, Network Working Group RFC #647, Nov. 1974. (“RFC
`647”)
`
`Ex.1020 U.S. Patent No. 5,619,650 (“Bach”)
`
`Ex.1021 U.S. Patent No. 5,915,124 (“Morris”)
`
`Ex.1022
`
`Ex.1023
`
`Ex.1024
`
`Cooper, E.C., et al., “Protocol Implementation on the Nectar
`Communication Processor”, School of Computer Science, Carnegie
`Mellon University, Sept. 1990. (“Cooper”)
`
`Kung, H.T., et al., “A Host Interface Architecture for High-Speed
`Networks”, School of Computer Science, Carnegie Mellon University
`and Network Systems Corporation. (“Kung”)
`
`Exhibit D to Declaration of Dr. Gregory L. Chesson in Support of
`Microsoft’s Opposition to Alacritech’s Motion for Preliminary
`Injunction: “Protocol Engine Handbook”, Protocol Engines
`Incorporated, Oct. 1990. (“Chesson”)
`
`Ex.1025
`
`Kanakia, H., Cheriton, D.R., “The VMP Network Adapter Board
`(NAB): High-Performance Network Communication for
`Multiprocessors”, Communications Architectures & Protocols,
`Stanford University, Aug. 1988. (“Kanakia”)
`Ex.1026 Kung, H.T., Cooper, E.C., et al., “Network-Based Multicomputers: An
`Emerging Parallel Architectures”, School of Computer Science,
`
`
`
`vi
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`Exhibit #
`
`Description
`Carnegie Mellon University. (“Kung and Cooper”)
`
`Ex.1027
`
`Ex.1028
`
`Dalton, C., et al., “Afterburner: Architectural Support for High-
`Performance Protocols”, Networks & Communications Laboratories,
`HP Laboratories Bristol, July 1993. (“Dalton”)
`
`Murphy, E., Hayes, S., Enders, M., TCP/IP Tutorial and Technical
`Overview Fifth Edition, Prentice-Hall, Inc. New Jersey, (1995).
`(“Murphy”)
`
`Ex.1029
`
`MacLean, A.R., Barvick, S. E., “An Outboard Processor for High
`Performance Implementation of Transport Layer Protocols”, IEEE
`Globecom ’91, Phoenix, AZ, Dec. 1991. (“MacLean”)
`Ex.1030 Clark, D.D., et al., “An Analysis of TCP Processing Overhead”, IEEE
`Communications Magazine, June 1989. (“Clark”)
`Ex.1031 U.S. Provisional Application 60/061,809 (“Alacritech 1997
`Provisional Application”)
`
`Ex.1032
`
`Ex.1033
`
`Ex.1034
`
`Ex.1035
`
`Culler, E.C., et al., “Parallel Computing on the Berkeley NOW”,
`Computer Science Division, University of California, Berkeley.
`(“Culler”)
`
`“Gigabit Ethernet Technical Brief: Achieving End-to-End
`Performance”, Alteon Networks, Inc. First Edition, Sept. 1996.
`(“Alteon”)
`
`Smith, J.A., Primmer, M., “Tachyon: A Gigabit Fibre Channel
`Protocol Chip”, Hewlett-Packard Journal, Article 12, Oc. 1996.
`(“Smith”)
`
`Patterson, D.A., Hennessy, J.L., Computer Architecture: A
`Quantitative Approach, Morgan Kaufmann Publishers, Inc., San
`Mateo, CA (1990). (“Patterson”)
`
`Ex.1036
`
`Internet Protocol, “Darpa Internet Protocol Specification”, RFC: 791,
`Sept. 1981. (“RFC 791”)
`Ex.1037- Reserved
`
`
`
`vii
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`Exhibit #
`Ex.1039
`Ex.1040 Alacritech’s Opening Claim Construction Brief (Alacritech, Inc. v.
`Dell Inc, Intel Corporation, et al.)
`
`Description
`
`Ex.1041-
`Ex. 1081 Reserved
`Ex.1082 Alacritech’s Infringement Contentions For Intel Ex. 2 - 072 (Intel) LR
`3-1 Infringement Chart
`
`
`
`
`
`
`
`viii
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`1.
`
`INTRODUCTION
`
`Pursuant to 35 U.S.C. §§ 311-319 and 37 C.F.R. §§ 42.1-.80, 42.100-.123,
`
`Wistron Corporation (“Petitioner” or “Wistron”) hereby petitions the Patent Trial
`
`and Appeal Board to institute an inter partes review of claims 1–21 of U.S. Patent
`
`No. 7,673,072, titled “Fast-Path Apparatus For Transmitting Data Corresponding
`
`to a TCP Connection” (Ex.1001, the “072 Patent”), and cancel those claims as
`
`unpatentable.
`
`2.
`
`REQUIREMENTS FOR PETITION FOR INTER PARTES REVIEW
`
`2.1. Grounds for Standing (37 C.F.R. § 42.104(a))
`
`Petitioner certifies that (1) the 072 Patent is available for inter partes review
`
`and, (2) if the Board grants the accompanying Motion for Joinder, Petitioner is not
`
`barred or estopped from requesting inter partes review of the challenged claims of
`
`the 072 Patent on the grounds identified herein.
`
`This Petition is accompanied by a Motion for Joinder under 35 U.S.C.
`
`§315(c) and 37 C.F.R. §§ 42.22 and 42.122(b). The Motion seeks to join this
`
`petition to instituted IPR2017-01406 filed by Intel Corporation and later joined by
`
`Cavium, Inc.
`
`2.2. Notice of Lead and Backup Counsel and Service Information
`
`Pursuant to 37 C.F.R. §§ 42.8(b)(3), 42.8(b)(4), and 42.10(a), Petitioner
`
`provides the following designation of Lead and Back-Up counsel.
`
`1
`
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`Lead Counsel
`Benjamin E. Weed
`Reg. No. 65,939
`K&L Gates LLP
`70 W. Madison St., Suite 3100
`Chicago, IL 60602
`benjamin.weed.PTAB@klgates.com
`T: (312) 781-7166
`F: (312) 827-8152
`
`Back-Up Counsel
`Erik J. Halverson
`Reg. No. 73,552
`K&L Gates LLP
`70 W. Madison St., Suite 3100
`Chicago, IL 60602
`erik.halverson@klgates.com
`T: (312) 807-4240
`F: (312) 345-8529
`
`
`
`Petitioner consents to service by electronic mail. Pursuant to 37 C.F.R. §
`
`42.10(b), a Power of Attorney for Petitioner is attached.
`
`2.3. Notice of Real-Parties-in-Interest (37 C.F.R. § 42.8(b)(1))
`
`Petitioner—and co-defendants in the below mentioned district court
`
`litigation, SMS InfoComm Corporation and Wiwynn Corporation—are the real-
`
`parties-in-interest with regard to this Petition. No other parties exercised or could
`
`have exercised control over this Petition; no other parties funded or directed this
`
`Petition. See Office Patent Trial Practice Guide, 77 Fed. Reg. 48759-60.
`
`2.4. Notice of Related Matters (37 C.F.R. § 42.8(b)(2))
`
`Petitioner identifies the following district court proceedings involving the
`
`072 patent:
`
`• Alacritech, Inc. v. CenturyLink, Inc., 2:16-cv-00693-JRG-RSP (E.D. Tex.);
`
`• Alacritech, Inc. v. Wistron Corp., 2:16-cv-00692-JRG-RSP (E.D. Tex.);
`
`• Alacritech, Inc. v. Dell Inc., 2:16-cv-00695-RWS-RSP (E.D. Tex.).
`
`
`
`2
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`
`
`Petitioner identifies the following administrative proceedings involving the
`
`072 patent:
`
`• Intel Corp., v. Alacritech, Inc., IPR2017-01406;
`
`• Intel Corp., v. Alacritech, Inc., IPR2017-01705;
`
`• Cavium, Inc. v. Alacritech, Inc., IPR2017-01707;
`
`• Cavium, Inc. v. Alacritech, Inc., IPR2017-01732.
`
`The patent family to which the ’072 patent belongs contains 21 additional
`
`U.S. patents:
`
`• U.S. Patent Application No. 10/260,112 (filed Sept. 27, 2002, issued Jul.
`
`26, 2007 as U.S. Patent No. 7,237,036);
`
`• U.S. Patent Application No. 10/092,967 (filed Mar. 6, 2002, issued Jul. 8,
`
`2003 as U.S. Patent No. 6,591,302);
`
`• U.S. Patent Application No. 10/023,240 (filed Dec. 17, 2001, issued Nov.
`
`15, 2005 as U.S. Patent No. 6,965,941);
`
`• U.S. Patent Application No. 09/970,124 (filed Oct. 2, 2001, issued Oct. 17,
`
`2006 as U.S. Patent No. 7,124,205);
`
`• U.S. Patent Application No. 09/855,979 (filed May 14, 2001, issued Nov.
`
`7, 2006 as U.S. Patent No. 7,133,940);
`
`• U.S. Patent Application No. 09/802,426 (filed Mar. 9, 2001, issued May 9,
`
`2006 as U.S. Patent No. 7,042,898);
`
`
`
`3
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`• U.S. Patent Application No. 09/802,550 (filed Mar. 9, 2001, issued Dec. 2,
`
`2003 as U.S. Patent No. 6,658,480);
`
`• U.S. Patent Application No. 09/802,551 (filed Mar. 9, 2001, issued Jul. 11,
`
`2006 as U.S. Patent No. 7,076,568);
`
`• U.S. Patent Application No. 09/801,488 (filed Mar. 7, 2001, issued Feb. 3,
`
`2004 as U.S. Patent No. 6,687,758);
`
`• U.S. Patent Application No. 09/789,366 (filed Feb. 20, 2001, issued Jun.
`
`29, 2004 as U.S. Patent No. 6,757,746);
`
`• U.S. Patent Application No. 09/675,700 (filed Sept. 29, 2000, issued Dec.
`
`31, 2013 as U.S. Patent No. 8,621,101);
`
`• U.S. Patent Application No. 09/675,484 (filed Sept. 29, 2000, issued Oct.
`
`19, 2004 as U.S. Patent No. 6,807,581);
`
`• U.S. Patent Application No. 09/514,425 (filed Feb. 28, 2000, issued Jul.
`
`30, 2002 as U.S. Patent No. 6,427,171);
`
`• U.S. Patent Application No. 09/464,283 (filed Dec. 15, 1999, issued Jul.
`
`30, 2002 as U.S. Patent No. 6,427,173);
`
`• U.S. Patent Application No. 09/439,603 (filed Nov. 12, 1999, issued Jun.
`
`12, 2001 as U.S. Patent No. 6,247,060);
`
`• U.S. Patent Application No. 09/416,925 (filed Oct. 13, 1999, issued Oct.
`
`22, 2002 as U.S. Patent No. 6,470,415);
`
`
`
`4
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`• U.S. Patent Application No. 09/384,792 (filed Aug. 27, 1999, issued Aug.
`
`13, 2002 as U.S. Patent No. 6,434,620);
`
`• U.S. Patent Application No. 09/141,713 (filed Aug. 28, 1998, issued May
`
`14, 2002 as U.S. Patent No. 6,389,479);
`
`• U.S. Provisional Patent Application No. 60/098,296 (expired);
`
`• U.S. Patent Application No. 09/067,544 (filed Apr. 27, 1998, issued May
`
`1, 2001 as U.S. Patent No. 6,226,680);
`
`• U.S. Provisional Patent Application No. 60/061,809 (expired).
`
`2.5. Fee for Inter Partes Review
`
`The Director is authorized to charge the fee specified by 37 C.F.R. §
`
`42.15(a), and any other required fees, to Deposit Account No. 02–1818. Please
`
`indicate docket number 1156441.00082 on the account statement.
`
`2.6. Proof of Service
`
`Proof of service of this Petition on the Patent Owner at the correspondence
`
`address of record for the 072 Patent is attached.
`
`3.
`
`IDENTIFICATION OF CLAIMS BEING CHALLENGED (§42.104(B))
`
`Ground #1: Claims 1–21 of the 072 Patent are invalid under (pre-AIA) 35
`
`U.S.C. § 103(a) on the ground that they are obvious over:
`
`a)
`
`U.S. Pat. No. 5,768,618, to Erickson, titled “Method for
`
`Performing Sequence of Actions in Device Connected to
`
`
`
`5
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`Computer in Response to Specified Values Being Written Into
`
`Snooped Sub Portions of Address Space,” filed on Dec. 21,
`
`1995 and issued on June 16, 1998 (Ex.1005, “Erickson”) in
`
`view of
`
`b)
`
`Computer Networks, A. Tanenbaum, 3rd ed. (1996) (Ex.1006,
`
`“Tanenbaum96”).
`
`4.
`
`BACKGROUND OF THE TECHNOLOGY
`
`This section provides a brief background on the technology at issue,
`
`focusing on the TCP, UDP and IP protocols and offloading protocol processing
`
`from a host computer to a network interface card (NIC). Petitioner’s declarant Dr.
`
`Horst provides a more thorough tutorial on the technology and discusses the state
`
`of the art as well. Ex. 1003, Horst Decl. at Section V.
`
`4.1. TCP/IP
`
`The 072 Patent relates to network interface device that provides a “fast path”
`
`that avoids protocol processing TCP/IP packets. Ex.1001, 072 Patent at Abstract.
`
`TCP/IP stands for Transmission Control Protocol/Internet Protocol. TCP/IP
`
`is the main protocol used for Internet communications—Web pages are served
`
`using TCP/IP. By October 14, 1996, the critical date of the 072 Patent, TCP/IP was
`
`one of the most popular wide area networking protocols. TCP/IP was standardized
`
`in a series of publicly available Request for Comments (RFCs) published by the
`
`
`
`6
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`Internet Engineering Task Force, including RFC 793, entitled “Transmission
`
`Control Protocol.” Ex. 1007, RFC 793.
`
`TCP/IP consists of two parts: (1) Transmission Control Protocol (TCP),
`
`which provides virtual bi-directional connections that provide guaranteed in-order,
`
`error-free delivery of arbitrary amounts of data between programs running on
`
`different computers over the internet; and (2) Internet Protocol (IP), which
`
`provides delivery of datagrams (IP packets) to any routable Internet address,
`
`without any reliability or ordering guarantees. TCP/IP can be transmitted over a
`
`variety of physical media (e.g. Ethernet). Ex.1003, Horst Decl. at ¶¶24-31.
`
`TCP runs on “top” of IP by first dividing application data to be transmitted
`
`into segments that become the data payloads of TCP packets and concatenating
`
`each payload with a TCP header to form a TCP packet, a process called TCP
`
`segmentation. TCP/IP then places the resulting TCP packet (TCP header +
`
`payload) into the data payload of an IP packet by concatenating the TCP packet (IP
`
`data payload) with an IP header.
`
`Shown in the figure below, in typical TCP/IP processing, a packet is built
`
`from the top down, i.e., each layer encapsulates what it receives from the layer
`
`above by concatenating a header. When receiving a packet from the network, the
`
`layers work in reverse, with each layer stripping its header and providing the
`
`resulting packet to the layer above. Separate entities typically perform each layer
`
`
`
`7
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`of the protocol processing. The collection of entities for processing the various
`
`layers is often called a “protocol stack.” Ex.1003, Horst Decl. at ¶¶27-31.
`
`
`Ex. 1008, Stevens11 at .034.
`
`
`
`Starting from the lowest layer, the MAC layer (e.g., Ethernet) handles the
`
`actual transmission on a physical medium (e.g. Ethernet cables). The header of this
`
`layer includes a MAC address that is the address of a network interface on a local
`
`area network. Ex.1003, Horst Decl. at ¶¶28-29.
`
`
`1 Ex.1008, Stevens, W. Richard, TCP/IP Illustrated, Vol. 1, The Protocols.
`
`Addison-Welsey Publishing Company, 1994 at .007-.008 (“Stevens1”)
`
`
`
`8
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`Next is the Internet layer (IP layer). The IP header includes source and
`
`destination IP addresses for identifying a computer at each end of the connection.
`
`Ex.1003, Horst Decl. at ¶30.
`
`Above the IP layer is the TCP layer. The TCP header includes “port
`
`numbers,” corresponding to the end points (e.g. client or server programs) sending
`
`and receiving data. For example, the usual port number for World Wide Web
`
`(HTTP) servers is port 80. Ex.1003, Horst Decl. at ¶31.
`
`Considerable
`
`information must be
`
`tracked
`
`to guarantee
`
`reliable
`
`communication and to maintain an open TCP connection, including sequence
`
`numbers, acknowledgement numbers, the sliding windows, TCP, IP and MAC
`
`addresses and more. Typically, the state information needed to maintain a TCP
`
`connection is held in a connection record also called the Transmission Control
`
`Block (TCB) in RFC 793. Ex.1007, RFC 793 at .024.
`
`The combination of an IP address and TCP port number is called a “socket.”
`
`A TCP connection can be formed with a pair of sockets—one for the source and
`
`another for the destination. Establishing a connection over TCP is sometimes
`
`called “opening a socket.” To open a socket, an IP address and TCP port for an
`
`application endpoint at the other end of the connection are specified by the
`
`application opening the socket.
`
`
`
`9
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`Each user application typically has one or more areas of host memory in
`
`which it can (1) place data for transmission so that the protocol stack can retrieve
`
`it, encapsulate it in packets, and transmit it, and (2) receive data from the network
`
`placed there by the protocol stack (after stripping the MAC, IP and TCP headers
`
`from the packet).
`
`Free implementations of TCP/IP were widely available. Ex. 1003, Horst
`
`Decl. ¶26. One such implementation is the subject of a widely-used textbook,
`
`Wright, Gary R., and W. Richard Stevens. Ex. 1013, TCP/IP Illustrated. Vol. 2.,
`
`The Implementation Addison-Wesley Professional, 1995, .960-.968. (“Stevens2”),
`
`which describes and presents the source code for the Berkeley TCP/IP
`
`implementation distributed with the 4.x BSD Unix system. Id. at .023.
`
`4.2. UDP/IP
`
`Internet Protocol supports a second transport-layer protocol, the User
`
`Datagram Protocol (UDP). UDP is a connectionless protocol with no reliability or
`
`ordering guarantees. It is often used by client-server applications that use one
`
`request and one response instead of going to the trouble of establishing a
`
`continuing connection. Like TCP, UDP uses source and destination IP addresses
`
`and port numbers to identify the end points on the network. Ex.1006,
`
`Tanenbaum96 at .560.
`
`4.3. Protocol Offload
`
`
`
`10
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`Protocol processing requires several operations on the data. To increase
`
`performance and reduce the demands on a host computer, many prior art solutions
`
`offload some (partial offload), or all (full offload), of this processing to a separate
`
`device, e.g., a network interface controller (NIC). Ex.1003, Horst Decl. at ¶¶48¬
`
`54.
`
`As early as 1974, front-end protocol offload was already being considered
`
`for standardization as described in request-for-comments RFC 647, which
`
`describes a broad consensus that front-ending (i.e. protocol offloading) was
`
`desirable. Ex.1003, Horst Decl. ¶ 49-50. RFC 929, published in 1984, describes
`
`several motivations for offloading protocol processing to an outboard processor:
`
`There are
`
`two
`
`fundamental motivations
`
`for doing outboard
`
`processing. One is to conserve the Hosts’ resources (CPU cycles and
`
`memory) in a resource sharing intercomputer network, by offloading
`
`as much of the required networking software from the Hosts to
`
`Outboard Processing Environments (or “Network Front-Ends”) as
`
`possible. The other is to facilitate procurement of implementations of
`
`the various intercomputer networking protocols for the several types
`
`of Host in play in a typical heterogeneous intercomputer network, by
`
`employing common implementations in the OPE. A third motivation,
`
`
`
`11
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`of basing a network security approach on trusted mandatory OPEs,
`
`will not be dealt with here, but is at least worthy of mention.
`
`Ex.1009, RFC 929 at .002. Ex.1003, Horst Decl. ¶ 51. RFC 929 identifies many
`
`protocols for offloading, including TCP and UDP. Ex.1009, RFC 929 at .015-.016.
`
`Ex.1003, Horst Decl. ¶ 52.
`
`Between the publication of RFC 929 in 1984 and the October 14, 1996
`
`critical date for the 1997 provisional application to which the 072 Patent claims
`
`priority, a great deal of work was published in the area of protocol offloading.
`
`Ex.1003, Horst Decl. ¶¶53-54. This work specifically teaches the alleged
`
`inventions claimed in the 072 Patent.
`
`5. OVERVIEW OF THE 072 PATENT
`
`The 072 Patent relates to offloading TCP protocol processing from a host
`
`onto an “intelligent” network interface card (INIC). Ex.1001, 072 Patent at
`
`Abstract. The INIC permits two modes of operation: a “fast path” (illustrated in
`
`red, below) in which protocol processing from the physical layer through the TCP
`
`layer is performed on the INIC, and a “slow path” (illustrated in blue, below) in
`
`which network frames are handed to the host at the MAC layer and passed up
`
`through the host protocol stack conventionally. The concept is illustrated in Fig.
`
`24, shown and described below:
`
`
`
`12
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`
`
`The INIC uses a “connection context” to determine which “path” should be
`
`
`
`used for a received packet. A “connection context” is defined by the source and
`
`destination addresses of the IP and TCP headers. Ex.1001, 072 Patent at 31:7-22.
`
`The host may create the context by processing an initial request packet, e.g., as part
`
`of opening a connection. Id. at 10:19-22. The connection context for a packet is
`
`checked against a list. If the connection context is on the list, the packet is fast-
`
`pathed; otherwise it is slow-pathed. Id.
`
`All of the independent claims of the 072 Patent are directed to transmit
`
`processing. Each requires that data be transferred to a network interface device,
`
`that the network interface device divides the data into segments, creates headers for
`
`
`
`13
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`the segments from a template header, and that the headers are prepended to the
`
`segments to form transmit packets. Ex. 1001, 072 Patent, at 33:35-63.
`
`The three independent claims are substantially similar to each other:
`
`1. A method comprising:
`
`9. A method comprising:
`
`15. A method comprising:
`
`establishing, at a host
`
`
`
`establishing, at a
`
`computer, a transport
`
`layer connection,
`
`computer, a Transmission
`
`Control Protocol (TCP)
`
`connection
`
`including creating a
`
`creating, at a computer, a
`
`corresponding to a
`
`context that includes
`
`context including protocol
`
`context that includes
`
`protocol header
`
`information and status
`
`status information and
`
`information for the
`
`information for a network
`
`Internet Protocol (IP)
`
`connection;
`
`connection, the protocol
`
`addresses and TCP ports
`
`information providing a
`
`for the connection;
`
`template header for the
`
`network connection;
`
`transferring the protocol
`
`transferring the protocol
`
`transferring the context to
`
`header information to an
`
`information and status
`
`an interface device;
`
`interface device;
`
`information to an
`
`interface device;
`
`14
`
`
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`transferring data from the
`
`transferring data from the
`
`transferring data from the
`
`network host to the
`
`computer to the interface
`
`network host to the
`
`interface device,
`
`device,
`
`interface device;
`
`after transferring the
`
`after transferring the
`
`
`
`protocol header
`
`protocol information and
`
`information to the
`
`status information to the
`
`interface device;
`
`interface device;
`
`dividing, by the interface
`
`dividing, by the interface
`
`dividing, by the interface
`
`device, the data into
`
`device, the data into
`
`device, the data into
`
`segments;
`
`segments;
`
`segments;
`
`creating headers for the
`
`creating headers for the
`
`creating headers for the
`
`segments, by the interface
`
`segments, by the interface
`
`segments, by the interface
`
`device, from a template
`
`device, from the template
`
`device, from a template
`
`header containing the
`
`header;
`
`header that includes the IP
`
`protocol header
`
`information; and
`
`addresses and TCP ports;
`
`and
`
`prepending the headers to
`
`prepending the headers to
`
`prepending the headers to
`
`the segments to form
`
`the segments to form
`
`the segments to form
`
`transmit packets.
`
`packets; and
`
`transmit packets.
`
`
`
`
`
`transmitting the packets
`
`
`
`15
`
`
`
`Petition for Inter Partes Review of U.S. Patent No. 7,673,072
`
`on a network.
`
`
`
`The dependent claims include transferring status information during the
`
`same operation as transferring header information (claim 2), creating headers that
`
`include status information (claims 3, 9, 10, 17), creating headers from protocol
`
`header information that includes TCP ports and IP headers (claims 4, 11) or a
`
`MAC address (claims 5, 12, 18, 19), using a descriptor for an application buffer in
`
`host memory (claims 6, 13, 20), and receiving packets and updating status (claims
`
`7, 14, 21).
`
`6.
`
`072 PATENT PROSECUTION HISTORY
`
`On June 25,