`
`Summary of Invalidity Analysis of U.S. Patent No. 6,665,725 (“’725 Patent”) in view of
`U.S. Patent No. 6,412,000 (“Riddle”), further in view of WO 97/23076 (“Baker”),
`and further in view of U.S. Patent No. 6,625,150 (“Yu”)
`
`U.S. Patent No. 6,412,000, issued on June 25, 2002, qualifies as prior art to the ’725 Patent under at least Pre-AIA 35 U.S.C. §
`102(e) because it was filed on November 23, 1998, before the June 30, 1999 filing date of the provisional application to which the
`’725 Patent claims priority. Riddle further qualifies as prior art to the ’725 Patent under at least Pre-AIA 35 U.S.C. § 102(e) since a
`U.S. patent has an effective prior art date under pre-AIA 35 U.S.C. §102(e) based on the filing date of an earlier-filed patent
`application if the patent’s relevant subject matter is described in the earlier-filed application, and at least one of the patent’s claims is
`supported by the earlier-filed application’s written description in compliance with pre-AIA 35 U.S.C. §112, first paragraph. The
`application that issued as Riddle was filed on November 23, 1998. Riddle claims priority to U.S. Provisional Patent Application No.
`60/066,864 (“’864 Provisional”), which was filed on November 25, 1997.
`Riddle and the related ’864 Provisional incorporate-by-reference the following patent applications in their entirety:
`•
`U.S. Patent Application No. 09/198,051 (“’051 Application”);
`•
`U.S. Patent Application No. 08/762,828, issued as U.S. Patent No. 5,802,106;
`•
`U.S. Patent Application No. 08/977,642 (“Packer Application”), having attorney docket number 17814-5.10, and issued
`as U.S. Patent No. 6,046,980 (“Packer”); and
`U.S. Patent Application No. 08/742,994, issued as U.S. Patent No. 6,038,216.
`
`•
`
`
`
`WO 97/23076 (“Baker”), published on June 26, 1997, qualifies as prior art to the ’725 Patent under at least Pre-AIA 35 U.S.C.
`§ 102(b) because it was published more than one year before the June 30, 1999 filing date of the provisional application to which the
`’725 Patent claims priority.
`
`
`U.S. Patent No. 6,625,150 (“Yu”), issued on September 23, 2003, qualifies as prior art to the ’725 Patent under at least Pre-
`AIA 35 U.S.C. § 102(e) since a U.S. patent has an effective prior art date under pre-AIA 35 U.S.C. §102(e) based on the filing date of
`an earlier-filed patent application if the patent’s relevant subject matter is described in the earlier-filed application, and at least one of
`the patent’s claims is supported by the earlier-filed application’s written description in compliance with pre-AIA 35 U.S.C. §112, first
`paragraph. The application that issued as Yu was filed on December 16, 1999. Yu claims priority to U.S. Provisional Patent
`Application No. 60/112,859 (“’859 Provisional”), which was filed on December 17, 1998.
`
`
`
`Packet Intelligence Ex. 2017 Page 1 of 142
`
`
`
`EXHIBIT B7
`
`Invalidity of U.S. PATENT NO. 6,665,725 in view of Riddle et al.
`CLAIM LANGUAGE
`Exemplary Citations to Riddle et al.
`INDEPENDENT CLAIM 10
`U.S. Patent No. 6,412,000 (“Riddle”) discloses a method of performing protocol
`specific operations on a packet passing through a connection point on a computer
`network.
`
`10
`
`A method of performing protocol specific
`operations on a packet passing through a
`connection point on a computer network, the
`method comprising:
`
`
`
`
`
`For example:
`
`“The method for automatically classifying heterogeneous packets in a packet
`telecommunications environment of the present invention is implemented in the C
`programming language and is operational on a computer system such as shown in FIG.
`1A. This invention may be implemented in a client-server environment, but a client-
`server environment is not essential. This figure shows a conventional client-server
`computer system which includes a server 20 and numerous clients, one of which is
`shown as client 25. The use of the term "server' is used in the context of the invention,
`wherein the server receives queries from (typically remote) clients, does substantially
`all the processing necessary to formulate responses to the queries, and provides these
`responses to the clients. However, server 20 may itself act in the capacity of a client
`when it accesses remote databases located at another node acting as a database server.
`The hardware configurations are in general standard and will be described only briefly.
`In accordance with known practice, server 20 includes one or more processors 30
`which communicate with a number of peripheral devices via a bus subsystem 32.
`These peripheral devices typically include a Storage Subsystem 35, comprised of a
`memory subsystem 35a and a file storage subsystem 35b holding computer programs
`(e.g., code or instructions) and data, a set of user interface input and output devices 37,
`and an interface to outside networks, which may employ Ethernet, Token Ring, ATM,
`IEEE 802.3, ITU X.25, Serial Link Internet Protocol (SLIP) or the public switched
`telephone network. This interface is shown schematically as a “Network Interface”
`block 40. It is coupled to corresponding interface devices in client computers via a
`network connection 45.” Riddle, 5:53-6:15.
`
`
`
`2
`
`Packet Intelligence Ex. 2017 Page 2 of 142
`
`
`
`EXHIBIT B7
`
`Riddle, Fig. 1A.
`
`
`
`
`
`
`3
`
`Packet Intelligence Ex. 2017 Page 3 of 142
`
`
`
`EXHIBIT B7
`
`
`
`Riddle, Fig. 1B.
`
`“FIG. 1C is illustrative of the internetworking of a plurality of clients such as client 25
`of FIGS. 1A and 1B and a plurality of servers such as server 20 of FIGS. 1A and 1B as
`described herein above. In FIG. 1C, network 60 is an example of a Token Ring or
`frame oriented network. Network 60 links host 61, such as an IBM RS6000 RISC
`WorkStation, which may be running the AIX operating System, to host 62, which is a
`
`
`
`4
`
`Packet Intelligence Ex. 2017 Page 4 of 142
`
`
`
`EXHIBIT B7
`
`personal computer, which may be running Windows 95, IBM OS/2 or a DOS operating
`system, and host 63, which may be an IBM AS/400 computer, which may be running
`the OS/400 operating system. Network 60 is internetworked to network 70 via a system
`gateway which is depicted here as router 75, but which may also be a gateway having a
`firewall or a network bridge. Network 70 is an example of an Ethernet network that
`interconnects host 71, which is a SPARC workstation, which may be running SUNOS
`operating system with host 72, which may be a Digital Equipment VAX6000 computer
`which may be running the VMS operating system.
`Router 75 is a network access point (NAP) of network 70 and network 60. Router 75
`employs a Token Ring adapter and Ethernet adapter. This enables router 75 to interface
`with the two heterogeneous networks. Router 75 is also aware of the Inter-network
`Protocols, such as ICMP and RIP, which are described herein below.” Riddle, 7:10-34.
`“8. A system for automatically classifying traffic in a packet telecommunications
`network, said network having any number of flows, including zero, comprising:
`a plurality of network links upon which said traffic is carried;
`a network routing means, and,
`a processor means operative to:
`parse a packet into a first flow specification, wherein said first flow specification
`contains at least one instance of any one of the following:
`a protocol family designation,
`a direction of packet flow designation,
`a protocol type designation,
`a pair of ports,
`in HTTP protocol packets, a pointer to a MIME type; thereupon,
`match the first flow specification of the parsing step to a plurality of classes
`represented by a plurality of said classification tree type nodes, each said
`classification tree type node having a traffic specification and a mask,
`according to the mask; thereupon,
`if a matching classification tree type node was not found in the matching step,
`associating said first flow specification with one or more newly-created
`classification tree type nodes, thereupon, incorporating said newly created
`classification tree type nodes into said plurality of said classification tree type
`nodes.” Riddle, Claim 8.
`
`
`
`5
`
`Packet Intelligence Ex. 2017 Page 5 of 142
`
`
`
`EXHIBIT B7
`
`10a
`
`(a) receiving the packet;
`
`
`
`Riddle, Fig. 1C.
`
`Riddle discloses this element, for example:
`
`“In a packet communication environment, a method is provided for automatically
`classifying packet flows for use in allocating bandwidth resources by a rule of
`assignment of a service level. The method comprises applying individual instances of
`traffic classification paradigms to packet network flows base on selectable information
`obtained from a plurality of layers of a multi-layered communication protocol in order
`to define a characteristic class, then mapping the flow to the defined traffic class. It is
`useful to note that the automatic classification is sufficiently robust to classify a
`complete enumeration of the possible traffic class.” Riddle, Abstract.
`
`
`“According to the invention, in a packet communication environment, a method is
`provided for automatically classifying packet flows for use in allocating bandwidth
`resources and the like by a rule of assignment of a service level. The method
`comprises applying individual instances of traffic classification paradigms to packet
`
`
`
`6
`
`Packet Intelligence Ex. 2017 Page 6 of 142
`
`
`
`EXHIBIT B7
`
`network flows based on selectable information obtained from a plurality of layers of a
`multi-layered communication protocol in order to define a characteristic class, then
`mapping the flow to the defined traffic class. It is useful to note that the automatic
`classification is sufficiently robust to classify a complete enumeration of the possible
`traffic.
`In the present invention network managers need not know the technical aspects of
`each kind of traffic in order to configure traffic classes and service aggregates bundle
`traffic to provide a convenience to the user, by clarifying processing and enables the
`user to obtain group counts of all parts comprising a service.” Riddle, 4:6-23.
`
`“1. A method for automatically classifying traffic in a packet communications network,
`said network having any number of flows, including zero, comprising the steps of:
`parsing a packet into a first flow specification, wherein said first flow specification
`contains at least one instance of any one of the following:
`a protocol family designation,
`a direction of packet flow designation,
`a protocol type designation,
`a pair of hosts,
`a pair of ports,
`in HTTP protocol packets, a pointer to a MIME type; thereupon,
`matching the first flow specification of the parsing step to a plurality of classes
`represented by a plurality nodes of a classification tree type, each said
`classification tree type node having a traffic specification; thereupon,
`if a matching classification tree type node was not found in the matching step,
`associating said first flow specification with one or more newly-created
`classification tree type nodes, thereupon,
`incorporating said newly-created classification tree type nodes into said plurality of
`classification tree type nodes.” Riddle, claim 1.
`“8. A system for automatically classifying traffic in a packet telecommunications
`network, said network having any number of flows, including zero, comprising:
`a plurality of network links upon which said traffic is carried;
`a network routing means, and,
`a processor means operative to:
`
`
`
`7
`
`Packet Intelligence Ex. 2017 Page 7 of 142
`
`
`
`EXHIBIT B7
`
`parse a packet into a first flow specification, wherein said first flow specification
`contains at least one instance of any one of the following:
`a protocol family designation,
`a direction of packet flow designation,
`a protocol type designation,
`a pair of ports,
`in HTTP protocol packets, a pointer to a MIME type; thereupon,
`match the first flow specification of the parsing step to a plurality of classes
`represented by a plurality of said classification tree type nodes, each said
`classification tree type node having a traffic specification and a mask,
`according to the mask; thereupon,
`if a matching classification tree type node was not found in the matching step,
`associating said first flow specification with one or more newly-created
`classification tree type nodes, thereupon, incorporating said newly created
`classification tree type nodes into said plurality of said classification tree type
`nodes.” Riddle, Claim 8.
`
`
`
`8
`
`Packet Intelligence Ex. 2017 Page 8 of 142
`
`
`
`EXHIBIT B7
`
`
`
`Riddle, Fig. 4A.
`
`“3.2 Automatic Traffic Classification Processing
`FIG. 3 depicts components of a system for automatically classifying traffic according
`to the invention. A traffic tree 302 in which new traffic will be classified under a
`particular member class node. A traffic classifier 304 detects services for incoming
`traffic. Alternatively, the classifier may start with a service and determine the hosts
`using it. A knowledge base 306 contains heuristics for determining traffic classes. The
`knowledge base may be embodied in a file or a relational database. In a particular
`embodiment, the knowledge is contained within a data structure resident in memory. A
`plurality of saved lists 308 stores classified traffic pending incorporation into traffic
`tree 302. In select embodiments, entries for each instance of traffic may be kept. In
`
`
`
`9
`
`Packet Intelligence Ex. 2017 Page 9 of 142
`
`
`
`EXHIBIT B7
`
`alternate embodiments, a copy of an entry and a count of duplicate copies for the entry
`is maintained.” Riddle, 12:27-41.
`
`
`
`
`Riddle, Fig. 3.
`
`To the extent Riddle does not disclose or render obvious, e.g., receiving network data,
`the combination of Riddle in further view of WO 97/23076 (“Baker”) renders obvious
`these claim elements.
`
`“In one preferred form, the system of the present invention may employ a CPU or other
`hardware implementable method for analyzing data from a network in response to
`selectively programmed parsing, filtering, statistics gathering, and display requests.
`
`
`
`10
`
`Packet Intelligence Ex. 2017 Page 10 of 142
`
`
`
`10b
`
`(b) receiving a set of protocol descriptions for a
`plurality of protocols that conform to a layered
`model, a protocol description for a particular
`protocol at a particular layer level including:
`
`EXHIBIT B7
`
`Moreover, the system of the present invention may be incorporated in a network
`device, such as a network analyzer, bridge, router, or traffic generator, including a CPU
`and a plurality of input devices, storage devices, and output devices, wherein frames of
`network data may be received from an associated network, stored in the storage
`devices, and processed by the CPU based upon one or more programmably
`configurable protocol descriptions also stored in the storage devices.” Baker, 4:22-35.
`Riddle discloses this element, for example:
`
`“This invention relates to digital packet telecommunications, and particularly to
`management of network bandwidth based on information ascertainable from multiple
`layers of OSI network model. It is particularly useful in conjunction with bandwidth
`allocation mechanisms employing traffic classification in a digitally-switched packet
`telecommunications environment, as well as in monitoring, security and routing.”
`Riddle, 1:54-61.
`
`“In a packet communication environment, a method is provided for automatically
`classifying packet flows for use in allocating bandwidth resources by a rule of
`assignment of a service level. The method comprises applying individual instances of
`traffic classification paradigms to packet network flows base on selectable information
`obtained from a plurality of layers of a multi-layered communication protocol in order
`to define a characteristic class, then mapping the flow to the defined traffic class. It is
`useful to note that the automatic classification is sufficiently robust to classify a
`complete enumeration of the possible traffic class.” Riddle, Abstract.
`
`
`“According to the invention, in a packet communication environment, a method is
`provided for automatically classifying packet flows for use in allocating bandwidth
`resources and the like by a rule of assignment of a service level. The method
`comprises applying individual instances of traffic classification paradigms to packet
`network flows based on selectable information obtained from a plurality of layers of
`a multi-layered communication protocol in order to define a characteristic class,
`then mapping the flow to the defined traffic class. It is useful to note that the
`automatic classification is sufficiently robust to classify a complete enumeration of
`the possible traffic.
`In the present invention network managers need not know the technical aspects of
`
`
`
`11
`
`Packet Intelligence Ex. 2017 Page 11 of 142
`
`
`
`EXHIBIT B7
`
`each kind of traffic in order to configure traffic classes and service aggregates bundle
`traffic to provide a convenience to the user, by clarifying processing and enables the
`user to obtain group counts of all parts comprising a service.” Riddle, 4:6-23.
`
`
`
`
`
`
`Riddle, Table 2.
`
`“Table 2 depicts components from which Traffic classes may be built.” Riddle, 9:64-
`65.
`“URI A Universal Resource Identifier is the name of the location field in a web
`reference address. It is also called a URL or Universal Resource Locator” Riddle,
`Table 1.
`
`“Network traffic is automatically classified under existing classes, beginning with the
`broadest classes, an inbound traffic class and an outbound traffic class, in protocol
`layer independent categories. For example, a particular instance of traffic may be
`classified according to its transport layer characteristics, e.g., Internet Protocol port
`
`
`
`12
`
`Packet Intelligence Ex. 2017 Page 12 of 142
`
`
`
`EXHIBIT B7
`
`number, as well as its application layer information, e.g., SMTP. Characteristics such
`as MIME types may also be automatically identified. Standard protocols, such as, IPX,
`SNA, and services, such as, SMTP and FTP are recognized for automatic
`classification. Classification is performed to the most specific level determinable. For
`example, in select embodiments, non-IP traffic, such as SNA, may be classified only
`by protocol, whereas Internet Protocol traffic may be classified to the /etc/services
`level. Classification beyond a terminal classification level is detected and prevented.
`For example, in a select embodiment, a class matching “ipx” or “nntp” will not be
`further automatically classified.” Riddle, 10:59-11:9.
`“8. A system for automatically classifying traffic in a packet telecommunications
`network, said network having any number of flows, including zero, comprising:
`a plurality of network links upon which said traffic is carried;
`a network routing means, and,
`a processor means operative to:
`parse a packet into a first flow specification, wherein said first flow specification
`contains at least one instance of any one of the following:
`a protocol family designation,
`a direction of packet flow designation,
`a protocol type designation,
`a pair of ports,
`in HTTP protocol packets, a pointer to a MIME type; thereupon,
`match the first flow specification of the parsing step to a plurality of classes
`represented by a plurality of said classification tree type nodes, each said
`classification tree type node having a traffic specification and a mask,
`according to the mask; thereupon,
`if a matching classification tree type node was not found in the matching step,
`associating said first flow specification with one or more newly-created
`classification tree type nodes, thereupon, incorporating said newly created
`classification tree type nodes into said plurality of said classification tree type
`nodes.” Riddle, Claim 8.
`“If this is so, then in a step 408, an entry is made in a list of identifying characteristics,
`such as protocol type (SAP), IP protocol number, server port, traffic type if known,
`MIME type, a time of occurrence of the traffic.” Riddle, 12:50-53.
`“The present invention provides techniques to automatically classify a plurality of
`heterogeneous packets in a packet telecommunications system for management of
`
`
`
`13
`
`Packet Intelligence Ex. 2017 Page 13 of 142
`
`
`
`EXHIBIT B7
`
`network bandwidth in systems. Such as a private area network, a wide area network or
`an internetwork. Systems according to the present invention enable network managers
`to: automatically define traffic classes, for which policies may then be created for
`specifying service levels for the traffic classes and isolating bandwidth resources
`associated with certain traffic classes.” Riddle, 4:56-65.
`
`To the extent Riddle does not disclose or render obvious, e.g., protocol descriptions for
`a plurality of protocols, the combination of Riddle in further view of Baker renders
`obvious these claim elements.
`
`For example:
`
`“A network interface system and related methods. A single logic control module,
`which may be implemented in hardware or software, is utilized to perform any of a
`number of data manipulation functions including, for example, parsing, filtering, data
`generation or analysis, based upon one or more programmably configurable protocol
`descriptions which may be stored in and retrieved from an associated memory.”
`Baker, Abstract.
`
`“Summary of Invention
`The present invention is directed to improved systems and methods for parsing,
`filtering, generating and analyzing data (or frames of data) transmitted over a data
`communications network. In one particularly innovative aspect of the present
`invention, a single logic control module, which may be implemented in hardware or
`software, is utilized to perform any of a number of data manipulation functions {for
`example, parsing, filtering, data generation or analysis functions) based upon one or
`more programmably configurable protocol descriptions which may be stored in and
`retrieved from an associated memory.” Baker, 3:32-4:6.
`
`“The use of common control logic (i.e. the use of a single logic control module) and
`programmably configurable protocol descriptions allows changes to existing protocols
`to be made and support for new protocols to be added to a system in accordance with
`the present invention through configuration only--without the need for hardware and/or
`software system modifications. Thus, those skilled in the art will appreciate that a
`
`
`
`14
`
`Packet Intelligence Ex. 2017 Page 14 of 142
`
`
`
`EXHIBIT B7
`
`
`
`network interface in accordance with the present invention may be configured and
`reconfigured, if necessary, in a highly efficient and cost effective manner to implement
`numerous data manipulation functions and to accommodate substantial network
`modifications (for example, the use of different data transmission hardware, protocols
`or protocol suites) without necessitating substantial system changes.” Baker, 4:7-21.
`
`“Moreover, the system of the present invention may be incorporated in a network
`device, such as a network analyzer, bridge, router, or traffic generator, including a
`CPU and a plurality of input devices, storage devices, and output devices, wherein
`frames of network data may be received from an associated network, stored in the
`storage devices, and processed by the CPU based upon one or more programmably
`configurable protocol descriptions also stored in the storage devices.” Baker, 4:26-35.
`
`“The system of the present invention may be employed in any system where it is useful
`to be able to examine and 20 perform various operations on contiguous bit-fields in
`data structures, wherein each data structure is composed of predefined fields of one or
`more contiguous bits.” Baker, 6:18-22.
`
`“In the presently preferred embodiment, each of these protocol description records with
`its associated field, statistics, lookup, and filter record information is also written to a
`protocol specific protocol description file (PDF).” Baker, 19:6-10.
`
`
`“Referring now to Fig. 1, a network interface system in accordance with one form of
`the present invention, generally referred to as 10, may be implemented in a network
`device including input devices 12, data storage devices 14, analysis control logic 16 for
`facilitating the input, storage, retrieval, and analysis of network frames, and output
`devices 18 for forwarding frames or displaying or printing the results of analyses. A
`data storage device 14 may include a data file 20 of network frames having n protocol
`data records, wherein each data record contains data stored in a plurality of predefined
`fields. Protocol description files 22 also may be stored in the data storage device 14.
`The protocol description files 22 may include a protocol control record and n field
`subrecords, which together may describe a subset of a network 25 protocol and include
`rules for analyzing that protocol.
`
`
`
`
`15
`
`Packet Intelligence Ex. 2017 Page 15 of 142
`
`
`
`EXHIBIT B7
`
`The network device control logic 16 is capable of retrieving a subset of network frames
`from the input devices 12 or data files 20 which satisfy one or more criteria based upon
`extracted field values and filtering criteria contained in one or more of the protocol
`description files 22. The network device control logic 16 also includes logic for
`determining frame and protocol header lengths, gathering statistics, verification and
`error checking, determining routes, varying values, and formatting output.” Baker
`10:10-35.
`
`
`Baker, Fig. 1.
`
`
`
`
`
`
`16
`
`Packet Intelligence Ex. 2017 Page 16 of 142
`
`
`
`EXHIBIT B7
`
`
`
`Baker, Fig. 3.
`
`“Referring now to Fig. 3, a protocol description file 22 in accordance with one form of
`the present invention may include a protocol control record, and a plurality (n) of field
`data records. In a particularly preferred embodiment, the protocol control record
`(shown below in Table 1) may define the overall structure of a network protocol and
`reference other information relating to the network protocol.
`
`
`
`
`17
`
`Packet Intelligence Ex. 2017 Page 17 of 142
`
`
`
`EXHIBIT B7
`
`
`The field records referenced at bytes 28-31 in the table above are preferably organized
`as shown in Table 2:
`
`
`
`
`18
`
`Packet Intelligence Ex. 2017 Page 18 of 142
`
`
`
`EXHIBIT B7
`
`
`
`
`The statistics records referenced in Table 2, above, at bytes 24-27 are preferably
`organized as shown in Table 3:
`
`
`
`
`19
`
`Packet Intelligence Ex. 2017 Page 19 of 142
`
`
`
`EXHIBIT B7
`
`
`The next protocol lookup records referenced in the field sub-record table (Table 2) at
`bytes 28-31 are preferably organized as shown in Table 4:
`
`
`
`
`
`
`
`Lookup structures can be used for determining the next protocol control record to use,
`terminating protocol processing on illegal values, branching decisions for variable
`length headers or overlapping fields, and for translation of numeric values to
`mnemonic or written language equivalents. This ability to specify branches on field
`values allows protocols with multiple overlapping structures to be specified and parsed
`dynamically.” Baker, 12:25-15:17, Tables 1, 2, 3, and 4.
`
`“In the presently preferred embodiment, the initialization of the system includes a
`determination of the presence of PDF files and the extraction of the protocol and
`associated control record information from all of the PDF files found. The number of
`PDF files is determined, and a ProtocolList is constructed consisting of a sorted vector
`
`
`
`20
`
`Packet Intelligence Ex. 2017 Page 20 of 142
`
`
`
`EXHIBIT B7
`
`of protocol records at least the size of the number of PDF files found. The name of
`each protocol record found is inserted in the ProtocolList. The PDF files are then read
`to memory in the sequence described above for the PDF file writing. The lookup
`records that indicate a next protocol are associated with the appropriate entries in the
`ProtocolList.” Baker, 20:35-21:11.
`
`“The Ethernet protocol definition described above specifies only one possible upper
`level protocol, the Generic Protocol (GP) which is indicated by placing a hexadecimal
`0x8888 value in the protocol type field.” Baker, 21:32-22:1.
`
`
`
`Baker, Tables 12, 13.
`
`“As shown in the attached Appendix, the analysis control logic 16 may be programmed
`in the C++ language, with abstract data types defined for statistics gathering, value
`verification, next protocol determination, filtering, varying values, checksumming and
`
`
`
`
`
`21
`
`Packet Intelligence Ex. 2017 Page 21 of 142
`
`
`
`EXHIBIT B7
`
`route determination capabilities, and protocol control and field records.” Baker, 11:35-
`12:4.
`
`
`
`“
`
`
`
`
`
`22
`
`Packet Intelligence Ex. 2017 Page 22 of 142
`
`
`
`if (stremp(ProtocolName, ProtocolList- > operator{](i).prot()- > filename()) = = 0)
`return(ProtocolList- > operator{|(i).prot());
`return(0);
`
`}
`
`
`
`
`
`23
`
`EXHIBIT B7
`
`} v
`
`oid setup_protocols()
`
`{ U
`
`32 number = 0;
`find_t fileblock;
`
`I [
`
`} Determine numberof protocol definitions that exist by countingfiles
`
`I i
`
`f (_dos_findfirst("*.pdf", ANORMAL, &fileblock) = = 0)
`
`{ +
`
`+number;
`} while(_dos_findnext(&fileblock) = = 0);
`
`{ d
`
`o
`
`Packet Intelligence Ex. 2017 Page 23 of 142
`
`
`
`II
`!{ Open each protocol definitionfile; create a protocol definitionin memory;insertit into the vector
`Il
`if (_dos_findfirst("*pdf", ANORMAL, &fileblock) = = 0)
`
`32 tmp;
`
`
`
`{ F
`
`ILE *fp = fopenifileblock.name, “rb");
`if (fp != 0) && (fileblock.size > 56))
`
`{ U
`
`{ d
`
`o
`
`EXHIBIT B7
`
`II
`I Setup a vector twice the size of the current number with numberfor the grow size
`
`I P
`
`rotocolList = new WCValSortedVector < protocols > {(number*2, number);
`
`
`
`24
`
`Packet Intelligence Ex. 2017 Page 24 of 142
`
`
`
`EXHIBIT B7
`
`fread(&tmp,
`
`sizeof(tmp),
`
`1,
`
`fp); // Get length of protocol name
`
`protocols p(pname,proto);
`free(pname);
`ProtocolList- > insert(p);
`}
`} while(_dos_findnext(&fileblock) = = 0);
`
`}
`
`
`
`$8 “*pname = (S8 *)malloc(tmp);
`fread(pname,
`tmp,
`1,
`fp); /] Get file name
`fclose(fp);
`protocol “proto = new protocol(pname,fileblock.name);
`
`}
`
`
`
`| 2 Do we wantto do something about duplicate protocol names here?
`
`for (U32 ii=0, jj = 1; ii < ProtocolList- > entries(); ii+ +, jj+ +)
`
`{ i
`
`f ((ii != jj) && (stremp( ProtocolList- > operator|}{ii).prot()- > pname(),
`ProtocolList- > operator[]{jj).prot()- > pname()) = = 0))
`ProtocolList- > removeAt(ij);
`
`
`
`25
`
`Packet Intelligence Ex. 2017 Page 25 of 142
`
`
`
`}
`
`protocols data("DATA", 0), pad("PAD”, 0);
`ProtocolList- > find(data, DataPtl);
`ProtocolList- > find(pad, PadPtl);
`DataPtiPtr = DataPtl.prot();
`PadPtiPtr = PadPtl.prot();
`
`{| PUT THIS IN setup_protocols()
`I] PUT THIS IN setup_protocols()
`|| PUT THIS IN setup_protocols()
`I] PUT THIS IN setup_protocols()
`|! PUT THIS IN setup_protocols()
`
`Iisetup_criteria();
`
`/{ filter channels are setup - tie criteria to fields
`
`
`
`26
`
`
`
`
`
`EXHIBIT B7
`
`I I
`
`! Open each protocol definitionfile; create all required data structures
`II
`if (_dos_findfirst("*.pdf", ANORMAL, &fileblock) = = 0)
`
`{ F
`
`ILE *fp = fopent(fileblock.name, rb");
`if (fp != 0) && (fileblock.size > 56))
`
`{ p
`
`// Reads name_length and name
`rotocols p(fp), t;
`if (ProtocolList- > find(p, t) != FALSE)
`
`t.prot()- > get_from_file(fp);
`fclose(fp);
`}
`} while(_dos_findnext(&fileblock) = = 0);
`
`{ d
`
`o
`
`}
`
`Packet Intelligence Ex. 2017 Page 26 of 142
`
`
`
`Strcpy(strrchr(pname,'.'), "\0 ");
`strepy(pname,(strrchripname,'\\')+ 1));
`strcpy(szFileName, (strrchr(szFileName,‘\\")+ 1));
`
`} while(_dos_findnext(&fileblock) = = 0);
`
`
`
`
`
`27
`
`EXHIBIT B7
`
`protoco! “setup_newprotocol(S8* szFileName)
`
`{ U
`
`32 number =0;
`find_tfileblock;
`S8 “pname = (S8 *)malloc(50);
`
`I S
`
`trcpy(pname,szFileName);
`
`I I
`
`l See if there are any protocols
`
`I i
`
`f (_dos_findfirst("*.pdf", ANORMAL,&fileblock) = = 0)
`
`+number;
`
`{ +
`
`{ d
`
`o
`
`“””’
`
`Packet Intelligence Ex. 2017 Page 27 of 142
`
`
`
`EXHIBIT B7
`
`
`
`Baker, 126:20-132:24.
`
`28
`
`Packet Intelligence Ex. 2017 Page 28 of 142
`
`
`
`EXHIBIT B7
`
`
`“[E]ach of these protocol description records with its associated field, statistics,
`lookup, and filter record information is also written to a protocol specific protocol
`description file (PDF).” Baker, 19:7-10.
`
`“As the development of additional control logic, whether implemented in hardware or
`software, may be both time consuming and expensive, it would be highly desirable to
`be able to parse all protocols with a single configurable software (or hardware) module
`so that support for additional protocols could be added to a system without requiring
`substantial modification to the system or its control logic.” Baker, 3:1-8.
`
` A
`
` POSITA would have understood that Baker’s PDFs are protocol descriptions
`provided in a protocol description language. This is because, upon initialization, Baker
`teaches that the system is ab