DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Applicant's arguments filed 01/12/2026 have been fully considered but they are not persuasive.
Applicant argues that the amendments to claim 1 render the 112(f) claim interpretation no longer applicable. In response to the argument, Examiner respectfully agrees. The 112(f) claim interpretation is withdrawn.
Applicant argues that the amendments to the claims overcome the 112(b) rejections. In response to the argument, Examiner respectfully agrees in-part. The argument is partially persuasive as most of the 112(b) rejections are overcome. Although Claim 8 has been amended, Claim 8 is still rejected under 112(b) as the previous issue has not been resolved.
Applicant argues that the amendments to Claim 16 overcome the 101 software pe se rejections. In response to the argument, Examiner respectfully agrees. The 101 software pe se rejections are withdrawn.
Applicant argues that the prior art Lee does not teach on “wherein a first one of the match-action tables comprises first instructions for generation of test packets for the packet processing flow, a second one of the match-action tables comprises second instructions to provide test rules associated with the packet processing flow, and a third one of the match-action tables comprises third instructions to perform verification of the test of the packet processing flow based on the test rules and using the test packets”. In response to the argument, Examiner respectfully disagrees.
The term “match action table” is recited/defined in the claim as comprising “instructions”. The term table is not further defined and is interpreted, as recited in the claim, as instructions. Lee teaches on a programmable packet engine that is configured (includes instructions) to generate test packets using packet templates and using rules (instructions, logic) to test the system and verification of the tests using a packet classifier that utilizes a table of match action entries (instructions). Lee teaches on instructions to generate packets, instructions to test the system and instructions to verify tests. Therefore, Lee teaches on the BRI of these limitations.
Lee teaches wherein a first one of the match-action tables comprises first instructions for generation of test packets for the packet processing flow, See Lee, Col 15 ln 31-67, configuring a programmable packet engine to emulate a network tester and generate traffic to at least one DUT. A processor of the network tester can generate at least one template packet for use by the programmable packet engine in generating a plurality of packets. The template packet can be an arbitrary packet, and can be of any size, payload, protocol, etc. The processor can generate template packets and inject the template packet into an ingress port of the programmable packet engine for packet stream generation. Col 16 ln 6-27, The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port.
a second one of the match-action tables comprises second instructions to provide test rules associated with the packet processing flow under test, See Lee, Col 16 ln 6-27, The racetrack streams continuously loopback through ingress-egress of the racetrack port to increase a number and/or variety of test packets. The packets can traverse the racetrack in the racetrack port at line rate or at another desired rate, which can be achieved by using a queue shaper (shaping Q of FIG. 5) at traffic manager or a meter at match action unit (MAU). The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port. Also see Col 16-17: MAU meter control of test packet rate.
and a third one of the match-action tables comprises third instructions to perform verification of the test of the packet processing flow based on the test rules and using the test packets. See Lee, Col 26 ln 4-59, For receive-side and transmit-side verification, a packet classifier of the network tester uses a table of match-action entries, with an entry matching on a set of header fields, identifying packets that matches on the entry ( e.g., fits a value or within a range of values) and applies an action on those packets. The actions applied can be, for example, receive or transmit packet and byte counting, sending the packets to the processor for further processing or stateful analysis in the packet engine data plane, determining difference between time stamp in a received packet and a current time stamp, determining deviations from expected values in a header field of a packet. The table of match action entries can be configured to perform a classifier or classifier table.
Please see rejection below in view of:
Claim(s) 1-2, 4-6, 8-20 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by US 11,595,289 B2 (Lee).
Claim(s) 3, 7 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 11,595,289 B2 (Lee) in view of US 2022/0045940 A1 (Subrahmanya).
Claim Rejections - 35 USC § 112
112(b):
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
Claim 8 is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 8 is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being incomplete for omitting essential steps, such omission amounting to a gap between the steps. See MPEP § 2172.01. The omitted steps are: test packet transmitted to the third one of the match-action table. Claim 8 recites "wherein the third one of the match-action tables is to loop an individual one of the test packets back to the first one of the match-action tables … ". This renders the claim unclear as Claim 8 depends from Claim 1 and there are no previous limitations for a test packet transmitted to the third one of the match-action table such that the test packet is looped back to the first one of the match-action table from the third one of the match-action table.
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless - (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1-2, 4-6, 8-20 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by US 11,595,289 B2 (Lee).
Regarding Claim 1:
Lee teaches A system comprising one or more processors and associated with a network element (ie. programmable packet engine) to perform a test of a packet processing flow (Col 18 ln 23-41, Fig 6, At 602, template packets are generated at processor. At 604, the template packets are provided to a programmable packet engine. For example, the template packets can be received through a processor port of the network tester. Col 4 ln 19-21 Network tester devices are traffic generation and measurement devices that are used for the testing of connected devices and/or connected networks.), the one or more processors to perform instructions of a plurality of match-action tables, (Col 9 ln 56-64, one or more match action units (MAUs) of egress processing pipeline 142 can perform or implement packet modifier 210 by determining if a packet belongs to a stream and/or port and if so, performing an action of modifying a particular header field or fields of a test packet. Control plane 125 can program MAUs to perform the match and action. One example match-action operation can be if a packet belongs to stream A, increment the destination IP address up to a maximum value. Col 16 ln 6-27, The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port.)
wherein a first one of the match-action tables comprises first instructions for generation of test packets for the packet processing flow, (Col 15 ln 31-67, configuring a programmable packet engine to emulate a network tester and generate traffic to at least one DUT. A processor of the network tester can generate at least one template packet for use by the programmable packet engine in generating a plurality of packets. The template packet can be an arbitrary packet, and can be of any size, payload, protocol, etc. The processor can generate template packets and inject the template packet into an ingress port of the programmable packet engine for packet stream generation.) A programmable packet engine is configured to generate test packets using packet templates (instructions).
a second one of the match-action tables comprises second instructions to provide test rules associated with the packet processing flow under test, (Col 16 ln 6-27, The racetrack streams continuously loopback through ingress-egress of the racetrack port to increase a number and/or variety of test packets. The packets can traverse the racetrack in the racetrack port at line rate or at another desired rate, which can be achieved by using a queue shaper (shaping Q of FIG. 5) at traffic manager or a meter at match action unit (MAU). The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port. Also see Col 16-17: MAU meter control of test packet rate.)
and a third one of the match-action tables comprises third instructions to perform verification of the test of the packet processing flow based on the test rules and using the test packets. (Col 26 ln 4-59, For receive-side and transmit-side verification, a packet classifier of the network tester uses a table of match-action entries, with an entry matching on a set of header fields, identifying packets that matches on the entry ( e.g., fits a value or within a range of values) and applies an action on those packets. The actions applied can be, for example, receive or transmit packet and byte counting, sending the packets to the processor for further processing or stateful analysis in the packet engine data plane, determining difference between time stamp in a received packet and a current time stamp, determining deviations from expected values in a header field of a packet. The table of match action entries can be configured to perform a classifier or classifier table.) Verification of the test is performed by the packet classifier of the network tester.
Regarding Claim 2:
Lee teaches on the invention of Claim 1 as described.
Lee teaches wherein the first one of the match-action tables is to receive a trigger from a host controller (ie. processor of the network tester) of the system, the trigger comprising a template test packet to enable first individual ones of the test packets for the packet processing flow. (Col 15 ln 33-A processor of the network tester can generate at least one template packet for use by the programmable packet engine in generating a plurality of packets. The template packet can be an arbitrary packet, and can be of any size, payload, protocol, etc. The processor can generate template packets and inject the template packet into an ingress port of the programmable packet engine for packet stream generation. Col 15-16: generation of multiple test packets from the template packet.)
Regarding Claim 4:
Lee teaches on the invention of Claim 1 as described.
Lee teaches wherein the one or more processors (ie. network tester) is further to use source code or configuration associated with a packet processing flow to generate the first one of the match-action tables, the second one of the match-action tables and the third one of the match-action tables. (Col 13 ln 42-50, Fig 4, Packet engine data plane 410 covers three programmable packet engine components: media access control (MAC), traffic manager (TM), and parser/deparser and match-action units (PARDE/MAU). MAC can provide for port configuration and statistic reading. TM can control multicast tree and queue shaper configuration for aggregation and transmission of test packets at a configured transmit rate. PARDE/MAU can be configured by a P4 or Python file to perform parsing and deparsing and match-actions.) Programmable Packet Engine is located on the Network Tester.
Regarding Claim 5:
Lee teaches on the invention of Claim 1 as described.
Lee teaches wherein the first one of the match-action tables is to receive a trigger (ie. received packet stream and specified configuration) and is configured to generate the test packets based in part on a modification of a template test packet, the modification to change one or more of packet field properties, register values, or destination ports, destination match-action tables of the template test packet. (Fig 6, Col 18 ln 45-56, a network tester configured to perform packet modification at an egress pipeline of a programmable packet engine. A packet stream can be received at an egress pipeline of an output port of the programmable packet engine. The output port ( e.g., egress pipeline) can include an egress pipeline configured as a packet modifier. The packet modifier modifies packets to generate test packets according to a configuration specified by a control plane or a user. Col 18-19 ln 66-67, 1-16 modifying destinations, ports.)
Regarding Claim 6:
Lee teaches on the invention of Claim 1 as described.
Lee teaches wherein the third instructions to perform the verification of the test is to verify one or more of a register value, an output port, or packet field properties that may be modified using one of the second instructions (Col 26 ln 4-59, For receive-side and transmit-side verification, a packet classifier of the network tester uses a table of match-action entries, with an entry matching on a set of header fields, identifying packets that matches on the entry ( e.g., fits a value or within a range of values) and applies an action on those packets. The actions applied can be, for example, receive or transmit packet and byte counting, sending the packets to the processor for further processing or stateful analysis in the packet engine data plane, determining difference between time stamp in a received packet and a current time stamp, determining deviations from expected values in a header field of a packet. The table of match action entries can be configured to perform a classifier or classifier table.) and is to indicate a result of the verification of the test to a host controller (ie. processor). (Col 21-22 ln 67, 1-3, The timestamps for the packets can be maintained locally in the network tester and reported to the processor or remote controller based on a particular event/condition or periodically. Col 25 ln 62-64, Based on data generated by the classifiers, the network tester can provide a report on the statistics of the received stream. Col 28 ln 37-41, For example, a classifier can count packets that fit certain criteria and update a counter of packets that fit that criteria. At 1010, a report can be generated to indicate packets or distribution of packets that meet classification.)
Regarding Claim 8:
Lee teaches on the invention of Claim 1 as described.
Lee teaches wherein the third one of the match-action tables is to loop an individual one of the test packets back to the first one of the match-action tables and wherein a subsequent one of the test packets is generated based in part on the individual one of the test packets. (Col 16 ln 6-27, The racetrack streams continuously loopback through ingress-egress of the racetrack port to increase a number and/or variety of test packets. The packets can traverse the racetrack in the racetrack port at line rate or at another desired rate, which can be achieved by using a queue shaper (shaping Q of FIG. 5) at traffic manager or a meter at match action unit (MAU). The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port. Also see Col 16-17: MAU meter control of test packet rate.)
Regarding Claim 9:
Lee teaches on the invention of Claim 1 as described.
Lee teaches wherein aspects of the plurality of the match-action tables are limited by capabilities of the at least one execution unit (ie. network tester) and further hardware of the system (ie. a packet generator) is used to generate the test packets, to provide the rules associated with the packet processing flow, and to perform the verification of the test based on the rules under the test and using the test packets. (Col 18 ln 23-41, Fig 6, At 602, template packets are generated at processor. At 604, the template packets are provided to a programmable packet engine. For example, the template packets can be received through a processor port of the network tester. In addition, or alternative to the process providing template packets, based on configuration by a control plane, a packet generator can generator one or more packets and inject the packets into the racetrack stream. At 610, packets from the racetrack port are copied into an egress pipeline to generate packet stream.)
Regarding Claim 10:
Lee teaches on the invention of Claim 1 as described.
Lee teaches a host controller (ie. processor of the network tester) to be associated with source code or configuration that is based in part on a packet processing flow to be tested, the source code or configuration to provide at least the rules of the second one of the match-action tables for the network element. (Col 13 ln 42-50, Fig 4, Packet engine data plane 410 covers three programmable packet engine components: media access control (MAC), traffic manager (TM), and parser/deparser and match-action units (PARDE/MAU). MAC can provide for port configuration and statistic reading. TM can control multicast tree and queue shaper configuration for aggregation and transmission of test packets at a configured transmit rate. PARDE/MAU can be configured by a P4 or Python file to perform parsing and deparsing and match-actions.) Programmable Packet Engine is located on the Network Tester and coupled to the processor.
Regarding Claim 11:
Lee teaches on the invention of Claim 10 as described.
Lee teaches wherein the source code or configuration is also used to generate the first one of the match tables to enable the generation of the test packets or is also used to generate the third one of the match-action tables to enable the verification of the test packets based on the rules under the test. (Col 5 ln 34-40 The network tester can be configured to test at least the following various network conditions, including: network performance (e.g., the capability of configuring ports at different speeds, packet sizes, etc.), network congestion (e.g., packets dropped and/or delayed), network latency and jitter, validation of network topology (e.g., load balancing), control plane verification. Col 13 ln 42-50, Fig 4, Packet engine data plane 410 covers three programmable packet engine components: media access control (MAC), traffic manager (TM), and parser/deparser and match-action units (PARDE/MAU). PARDE/MAU can be configured by a P4 or Python file to perform parsing and deparsing and match-actions.)
Regarding Claim 12:
Lee teaches on the invention of Claim 1 as described.
Lee teaches one or more interfaces associated with a host controller (ie. processor of the network tester) to receive source code or configuration based in part on the packet processing flow to be tested and to receive a result from the verification of the test, wherein the source code or configuration, once complied or applied provide the instructions for the network element. (Col 6 ln 40-51, Network tester 10 can receive input through an alphanumeric input device ( e.g., keyboard or touch screen interface) and or a cursor control device communicating user input information and command selections. Network tester 10 also includes a programmable packet engine 100 including a plurality of input and/or output ports 115. Col 7 ln 42-52, FIG. 2A, the programmable packet engine 100 includes (1) physical ports 115 that receive data messages from, and transmit data messages to, devices outside of the programmable packet engine, (2) a data-plane forwarding circuit ("data plane") 120 that perform the forwarding operations of the programmable packet engine 100 (e.g., that receive data messages and forward the data messages to other devices), and (3) a control-plane circuit ("control plane") 125 that provides a configuration interface for configuring the forwarding behavior of the data plane forwarding circuit. Col 21-22 ln 67, 1-3, The timestamps for the packets can be maintained locally in the network tester and reported to the processor or remote controller based on a particular event/condition or periodically.)
Regarding Claim 13:
Lee teaches At least one circuit (ie. Network tester) to be associated with a host controller (ie. processor of the Network tester) and to enable a network element (ie. programmable packet engine) to perform a test of packet processing flow in a network, (Col 18 ln 23-41, Fig 6, At 602, template packets are generated at processor. At 604, the template packets are provided to a programmable packet engine. For example, the template packets can be received through a processor port of the network tester. Col 4 ln 19-21 Network tester devices are traffic generation and measurement devices that are used for the testing of connected devices and/or connected networks.) the at least one circuit to perform instructions of a plurality of match-action tables, (Col 9 ln 56-64, one or more match action units (MAUs) of egress processing pipeline 142 can perform or implement packet modifier 210 by determining if a packet belongs to a stream and/or port and if so, performing an action of modifying a particular header field or fields of a test packet. Control plane 125 can program MAUs to perform the match and action. One example match-action operation can be if a packet belongs to stream A, increment the destination IP address up to a maximum value.)
wherein a first one of the match-action tables comprises first instructions for generation of test packets for the packet processing flow, (Col 15 ln 31-67, configuring a programmable packet engine to emulate a network tester and generate traffic to at least one DUT. A processor of the network tester can generate at least one template packet for use by the programmable packet engine in generating a plurality of packets. The template packet can be an arbitrary packet, and can be of any size, payload, protocol, etc. The processor can generate template packets and inject the template packet into an ingress port of the programmable packet engine for packet stream generation. Col 16 ln 6-27, The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port.) A programmable packet engine is configured to generate test packets using packet templates (instructions).
a second one of the match-action tables comprises second instructions to provide test rules associated with the packet processing flow, (Col 16 ln 6-27, The racetrack streams continuously loopback through ingress-egress of the racetrack port to increase a number and/or variety of test packets. The packets can traverse the racetrack in the racetrack port at line rate or at another desired rate, which can be achieved by using a queue shaper (shaping Q of FIG. 5) at traffic manager or a meter at match action unit (MAU). The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port. Also see Col 16-17: MAU meter control of test packet rate.)
and a third one of the match-action tables comprises third instructions to perform verification of the test based on the test rules and using the test packets. (Col 26 ln 4-59, For receive-side and transmit-side verification, a packet classifier of the network tester uses a table of match-action entries, with an entry matching on a set of header fields, identifying packets that matches on the entry ( e.g., fits a value or within a range of values) and applies an action on those packets. The actions applied can be, for example, receive or transmit packet and byte counting, sending the packets to the processor for further processing or stateful analysis in the packet engine data plane, determining difference between time stamp in a received packet and a current time stamp, determining deviations from expected values in a header field of a packet. The table of match action entries can be configured to perform a classifier or classifier table.) Verification of the test is performed by the packet classifier of the network tester.
Regarding Claim 14:
Lee teaches on the invention of claim 13 as described.
Lee teaches wherein the at least one circuit is further to process source code or configuration in the host controller, is further to provide the rules, based in part on the source code or configuration, the rules to be part of the second one of the match-action tables. (Col 13 ln 42-50, Fig 4, Packet engine data plane 410 covers three programmable packet engine components: media access control (MAC), traffic manager (TM), and parser/deparser and match-action units (PARDE/MAU). MAC can provide for port configuration and statistic reading. TM can control multicast tree and queue shaper configuration for aggregation and transmission of test packets at a configured transmit rate. PARDE/MAU can be configured by a P4 or Python file to perform parsing and deparsing and match-actions.) Programmable Packet Engine is located on the Network Tester.
Regarding Claim 15:
Lee teaches on the invention of claim 14 as described.
Lee teaches wherein the source code or configuration is also used to generate the first one of the match tables to enable the generation of the test packets, or is also used to generate the third one of the match-action tables to enable the verification of the test packets based on the rules under the test. (Col 5 ln 34-40 The network tester can be configured to test at least the following various network conditions, including: network performance (e.g., the capability of configuring ports at different speeds, packet sizes, etc.), network congestion (e.g., packets dropped and/or delayed), network latency and jitter, validation of network topology (e.g., load balancing), control plane verification. Col 13 ln 42-50, Fig 4, Packet engine data plane 410 covers three programmable packet engine components: media access control (MAC), traffic manager (TM), and parser/deparser and match-action units (PARDE/MAU). PARDE/MAU can be configured by a P4 or Python file to perform parsing and deparsing and match-actions.)
Regarding Claim 16:
Lee teaches A host controller comprising one or more circuits (ie. processor of the Network tester) to enable a network element (ie. programmable packet engine) to perform a test of packet processing flow in a network, (Col 18 ln 23-41, Fig 6, At 602, template packets are generated at processor. At 604, the template packets are provided to a programmable packet engine. For example, the template packets can be received through a processor port of the network tester. Col 4 ln 19-21 Network tester devices are traffic generation and measurement devices that are used for the testing of connected devices and/or connected networks.) the host controller to provide a trigger to at least one circuit to cause the at least one circuit to perform instructions of a plurality of match-action tables, (Col 9 ln 56-64, one or more match action units (MAUs) of egress processing pipeline 142 can perform or implement packet modifier 210 by determining if a packet belongs to a stream and/or port and if so, performing an action of modifying a particular header field or fields of a test packet. Control plane 125 can program MAUs to perform the match and action. One example match-action operation can be if a packet belongs to stream A, increment the destination IP address up to a maximum value.)
wherein a first one of the match-action tables comprises first instructions for generation of test packets for the packet processing flow, (Col 15 ln 31-67, configuring a programmable packet engine to emulate a network tester and generate traffic to at least one DUT. A processor of the network tester can generate at least one template packet for use by the programmable packet engine in generating a plurality of packets. The template packet can be an arbitrary packet, and can be of any size, payload, protocol, etc. The processor can generate template packets and inject the template packet into an ingress port of the programmable packet engine for packet stream generation. Col 16 ln 6-27, The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port.) A programmable packet engine is configured to generate test packets using packet templates (instructions).
a second one of the match-action tables comprises second instructions to provide test rules associated with the packet processing flow, (Col 16 ln 6-27, The racetrack streams continuously loopback through ingress-egress of the racetrack port to increase a number and/or variety of test packets. The packets can traverse the racetrack in the racetrack port at line rate or at another desired rate, which can be achieved by using a queue shaper (shaping Q of FIG. 5) at traffic manager or a meter at match action unit (MAU). The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port. Also see Col 16-17: MAU meter control of test packet rate.)
and a third one of the match-action tables comprises third instructions to perform verification of the test based on the test rules and using the test packets. (Col 26 ln 4-59, For receive-side and transmit-side verification, a packet classifier of the network tester uses a table of match-action entries, with an entry matching on a set of header fields, identifying packets that matches on the entry ( e.g., fits a value or within a range of values) and applies an action on those packets. The actions applied can be, for example, receive or transmit packet and byte counting, sending the packets to the processor for further processing or stateful analysis in the packet engine data plane, determining difference between time stamp in a received packet and a current time stamp, determining deviations from expected values in a header field of a packet. The table of match action entries can be configured to perform a classifier or classifier table.) Verification of the test is performed by the packet classifier of the network tester.
Regarding Claim 17:
Lee teaches on the invention of claim 16 as described.
Lee teaches wherein the host controller (ie. processor of the network tester) is further enabled for one or more of: receiving an indication of a result of the verification of the test, (Col 21-22 ln 67, 1-3, The timestamps for the packets can be maintained locally in the network tester and reported to the processor or remote controller based on a particular event/condition or periodically.) providing an interface to receive source code or configuration that is based in part on the packet processing flow to be tested, (Col 6 ln 40-51, Network tester 10 can receive input through an alphanumeric input device ( e.g., keyboard or touch screen interface) and or a cursor control device communicating user input information and command selections. Network tester 10 also includes a programmable packet engine 100 including a plurality of input and/or output ports 115. Col 7 ln 42-52, FIG. 2A, the programmable packet engine 100 includes (1) physical ports 115 that receive data messages from, and transmit data messages to, devices outside of the programmable packet engine, (2) a data-plane forwarding circuit ("data plane") 120 that perform the forwarding operations of the programmable packet engine 100 (e.g., that receive data messages and forward the data messages to other devices), and (3) a control-plane circuit ("control plane") 125 that provides a configuration interface for configuring the forwarding behavior of the data plane forwarding circuit.)
or storing the source code or configuration based in part on the packet processing flow to be tested. (Col 21 ln 48-51, the state information injected into the packets is stored within the network tester, along with information identifying the packets corresponding to the injected state information. Col 29 ln 50-54, Memory subsystem 1220 represents the main memory of system 1200 and provides storage for code to be executed by processor 1210, or data values to be used in executing a routine.)
Regarding Claim 18:
Lee teaches A method for testing a packet processing flow for a network element, (Col 18 ln 23-41, Fig 6, At 602, template packets are generated at processor. At 604, the template packets are provided to a programmable packet engine. For example, the template packets can be received through a processor port of the network tester. Col 4 ln 19-21 Network tester devices are traffic generation and measurement devices that are used for the testing of connected devices and/or connected networks.) the method comprising:
providing at least one execution unit to be associated with the network element to perform a test of the packet processing flow by performing instructions of a plurality of match-action tables; (Col 9 ln 56-64, one or more match action units (MAUs) of egress processing pipeline 142 can perform or implement packet modifier 210 by determining if a packet belongs to a stream and/or port and if so, performing an action of modifying a particular header field or fields of a test packet. Control plane 125 can program MAUs to perform the match and action. One example match-action operation can be if a packet belongs to stream A, increment the destination IP address up to a maximum value.)
generating, using a first one of the match-action tables that comprises first instructions, test packets for the packet processing flow; (Col 15 ln 31-67, configuring a programmable packet engine to emulate a network tester and generate traffic to at least one DUT. A processor of the network tester can generate at least one template packet for use by the programmable packet engine in generating a plurality of packets. The template packet can be an arbitrary packet, and can be of any size, payload, protocol, etc. The processor can generate template packets and inject the template packet into an ingress port of the programmable packet engine for packet stream generation. Col 16 ln 6-27, The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port.) A programmable packet engine is configured to generate test packets using packet templates (instructions).
providing, using a second one of the match-action tables that comprises second instructions, test rules associated with the packet processing flow; (Col 16 ln 6-27, The racetrack streams continuously loopback through ingress-egress of the racetrack port to increase a number and/or variety of test packets. The packets can traverse the racetrack in the racetrack port at line rate or at another desired rate, which can be achieved by using a queue shaper (shaping Q of FIG. 5) at traffic manager or a meter at match action unit (MAU). The programmable packet engine and/or processor of the network tester include logic regarding the ordering of the sequence of packets and tracks the sequence of packets in the racetrack port. Also see Col 16-17: MAU meter control of test packet rate.)
and performing, using a third one of the match-action tables that comprises third instructions, verification of the test based on the test rules and using the test packets. (Col 26 ln 4-59, For receive-side and transmit-side verification, a packet classifier of the network tester uses a table of match-action entries, with an entry matching on a set of header fields, identifying packets that matches on the entry ( e.g., fits a value or within a range of values) and applies an action on those packets. The actions applied can be, for example, receive or transmit packet and byte counting, sending the packets to the processor for further processing or stateful analysis in the packet engine data plane, determining difference between time stamp in a received packet and a current time stamp, determining deviations from expected values in a header field of a packet. The table of match action entries can be configured to perform a classifier or classifier table.) Verification of the test is performed by the packet classifier of the network tester.
Regarding Claim 19:
Lee teaches on the invention of claim 18 as described.
Lee teaches receiving, in the first one of the match-action tables, a trigger comprising a template test packet from a host controller; providing at least one first one of the test packets for the packet processing flow based in part on the trigger and the template test packet; and providing at least one second one of the test packets based in part on a modification of the first one of the test packets. (Fig 6, Col 18 ln 45-56, a network tester configured to perform packet modification at an egress pipeline of a programmable packet engine. A packet stream can be received at an egress pipeline of an output port of the programmable packet engine. The output port ( e.g., egress pipeline) can include an egress pipeline configured as a packet modifier. The packet modifier modifies packets to generate test packets according to a configuration specified by a control plane or a user. Col 18-19 ln 66-67, 1-16 modifying destinations, ports.)
Regarding Claim 20:
Lee teaches on the invention of claim 18 as described.
Lee teaches receiving, in the first one of the match-action tables, a trigger (ie. receiving packet stream) comprising a template test packet from a host controller; (Fig 6, Col 18 ln 45-56, a network tester configured to perform packet modification at an egress pipeline of a programmable packet engine. A packet stream can be received at an egress pipeline of an output port of the programmable packet engine. The output port ( e.g., egress pipeline) can include an egress pipeline configured as a packet modifier. The packet modifier modifies packets to generate test packets according to a configuration specified by a control plane or a user.)
wherein the generating comprises providing the template packet as a first one of the test packets and comprises modifying packet field properties, register values, destination ports, or destination match-action tables of the template test packet to provide a second one of the test packets. (Fig 6, Col 18 ln 45-56, a network tester configured to perform packet modification at an egress pipeline of a programmable packet engine. The packet modifier modifies packets to generate test packets according to a configuration specified by a control plane or a user. Col 18-19 ln 66-67, 1-16 modifying destinations, ports.)
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 3, 7 is/are rejected under 35 U.S.C. 103 as being unpatentable over US 11,595,289 B2 (Lee) in view of US 2022/0045940 A1 (Subrahmanya).
Regarding Claim 3:
Lee teaches on the invention of Claim 1 as described.
Lee teaches wherein the test comprises capability, in at least part of the instructions, for conditional actions (Col 9 ln 61-62, Control plane 125 can program MAUs to perform the match and action. Col 28 ln 18-45, A configuration file can be provided (e.g., P4 file). At 1104, a classifier can be configured to identify or process packets that match classification criteria. The classification criteria can be specified in the configuration file. For example, a match-action unit can be configured as a classifier. For example, the configuration file can specify forwarding to a buffer or queue of packets that meet certain criteria to the CPU and inspection. At 1108, an update of a count of packets matching classification criteria can occur. For example, a classifier can count packets that fit certain criteria and update a counter of packets that fit that criteria.)
Lee teaches on conditional actions of the MAUs (Col 28 ln 18-45). However, Lee is silent on wherein the test comprises capability, in at least part of the instructions, for conditional actions to transfer control between the plurality of match-action tables.
Subrahmanya teaches, in the same field of endeavor, on a match-action pipeline can be implemented via a packet processing circuit of a network appliance that processes a plurality of network traffic flows, Abstract.
Subrahmanya also teaches conditional actions to transfer control between the plurality of match-action tables. (Fig 5, The match-action units 501, 502, 503 of the match-action pipeline 500 are programmed to perform "match-action" operations in which a match unit performs a lookup using at least a portion of the PHY and an action unit performs an action based on an output from the match unit. In an embodiment, a PHY generated at the parser is passed through each of the match-action units in the match-action pipeline in series and each match-action unit implements a match-action operation.)
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention, to modify Lee per Subrahmanya to include conditional actions to transfer control between the plurality of match-action tables. This would have been advantages as discussed above, as this would provide the modified system with a flow of independent actions between tables as desired which allows more flexibility with implementation of the testing.
Regarding Claim 7:
Lee teaches on the invention of Claim 1 as described.
Lee teaches wherein the first one of the match-action tables is to generate a full coverage of packets field properties for the test by the test packets. (Col 9 ln 56-64, one or more match action units (MAUs) of egress processing pipeline 142 can perform or implement packet modifier 210 by determining if a packet belongs to a stream and/or port and if so, performing an action of modifying a particular header field or fields of a test packet. Control plane 125 can program MAUs to perform the match and action. One example match-action operation can be if a packet belongs to stream A, increment the destination IP address up to a maximum value. Col 19 ln 24-31, For a given stream-port combination, one or more modifiers can be created for one or more fields. A client can specify a field when creating a modifier. A field can be a part of a network protocol header (e.g., Ethernet, IPv4, IPv6, TCP, UDP, VLAN tags, Internet Control Message Protocol (ICMP), address resolution protocol (ARP)). A packet modifier can modify the field according to the modification scheme.)
Lee teaches on multiple MAUs and on pipelines of the MAUs (Col 17 ln 31-42). However, Lee does not explicitly teach on forwarding test packets between the MAUs. Lee is silent on wherein the test packets are to be forwarded to the second one of the match-action tables for application of the rules, and wherein the test packets are to be forwarded to the third one of the match-action tables for the verification.
Subrahmanya teaches on wherein the test packets are to be forwarded to the second one of the match-action tables for application of the rules, and wherein the test packets are to be forwarded to the third one of the match-action tables for the verification. (Fig 5, The match-action units 501, 502, 503 of the match-action pipeline 500 are programmed to perform "match-action" operations in which a match unit performs a lookup using at least a portion of the PHY and an action unit performs an action based on an output from the match unit. In an embodiment, a PHY generated at the parser is passed through each of the match-action units in the match-action pipeline in series and each match-action unit implements a match-action operation.)
It would have been obvious to a person having ordinary skill in the art before the effective filing date of the claimed invention, to modify Lee per Subrahmanya to include wherein the test packets are to be forwarded to the second one of the match-action tables for application of the rules, and wherein the test packets are to be forwarded to the third one of the match-action tables for the verification. This would have been advantages as discussed above, as this would provide the modified system with a flow of independent actions between tables as desired which allows more flexibility with implementation of the testing.
Conclusion & Contact Information
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to RACHEL J HACKENBERG whose telephone number is (571)272-5417. The examiner can normally be reached 9am-5pm M-F.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Glenton B Burgess can be reached at (571)272-3949. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/RACHEL J HACKENBERG/Primary Examiner, Art Unit 2454