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 .
Claim Rejections - 35 USC § 112
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.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-20 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.
Regarding claims 1 and 14, claim the limitations TCP operation in “…perform a single TCP operation…”. It is not clear from the disclosure what TCP operation entails to or it is not explicitly defined in the disclosure what TCP operations refers to in order to enable a person having ordinary skill in the art understand and determine the limits and bounds of the claims.
Regarding claim 14, claims “ …(wherein N is an integer greater than or equal to 2)…”. It is not clear if this limitation being in parenthesis is just a mere explanation of the accumulation step without being limiting or is part of the claim. If it is intended to limit the claim, examiner suggests making it stand by itself outside of the parenthesis.
-Claim 14 further claims “…performing a TCP operation for the Nth TCP event after the second time point…”.
The instant disclosure discloses
“[0007] A network interface device according to an example embodiment of the present disclosure includes: a first table configured to accumulate at least two TCP events sequentially for a first TCP connection, from a first time point to a second time point; and a TCP processing logic configured to perform a single TCP operation for the at least two TCP events after the second time point has elapsed”
The disclosure above discloses the 1st to -Nth event are lumped and one operation representing all the events is performed.
However, the claim seems to claim that one TCP operation is performed only for the Nth event disregarding all the other events. The disclosure is not explicitly clear on this characterization. It is not clear that the TCP operation is performed only for the Nth event disregarding all the other events hence determining the limits and bounds of the claims in light of the disclosure difficult hence rendering the claims indefinite.
Regarding claim 10 and 11, the claim claims “…control information…”. This phrase is not explicitly defined in the disclosure to enable a person having ordinary in the art to ascertain the meaning of the phrase to determine the limits and bounds of the claim.
Regarding claim 11, and 18, the claims claim “transmission control block”. This phrase is not explicitly defined in the disclosure to enable a person having ordinary in the art to ascertain the meaning of the phrase to determine the limits and bounds of the claim.
Regarding claim 13, It claims “13. A server device comprising the network interface device of claim 1”. It is not clear if this claim depends on independent claim 1 or is independent claim by itself.
Claim Rejections - 35 USC § 103
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) 1-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Li (US pg. no. 20230029796), further in view of Makineni (US pg. no. 20110090920).
Regarding claim 1. Li discloses a network interface device (fig. 2 smart NIC) comprising:
a first table configured to accumulate at least two TCP events sequentially for a first TCP connection, from a first time point to a second time point (fig. 2 and [0040], [0044], [0045], [0046], and [0052-0053] discloses [0040] S201: The smart network interface card (device) preprocesses a received first packet (TCP event) to obtain a coalescing message (accumulating received TCP) of the first packet…In light of the instant application stated in [0022] reception of packet from network corresponds to TCP event. [0044] For example, when the first connection is a TCP connection, the coalescing message may include metadata, and the metadata may include a quintet, a TCP sequence number (SN) (sequentially received packet), and the like… [0045] S202: The smart network interface card coalesces the first packet into a first queue (table) based on the coalescing message, where the first queue is used to coalesce packets of the first connection. [0046] A plurality of queues (for plurality of connections) may be set in the smart network interface card. Each queue in the plurality of queues may be used to coalesce a plurality of packets from the network… The first queue may be any queue in the plurality of queues that is used to coalesce the packets of the first connection… [0052] S203: When a preset condition is met, the smart network interface card processes, based on a context of the first connection, a plurality of packets coalesced in the first queue to obtain a second packet to be transmitted (TCP operation) to the host. [0053] The preset condition may include any one of the following: coalescing duration reaches specified duration (gap between the first time and the second time); and
Li further inherently discloses a TCP processing logic (fig. 2 discloses smart NIC component of NIC corresponds to this component) configured to perform a single TCP operation for the at least two TCP events after the second time point has elapsed ([0052] S203: When a preset condition is met, the smart network interface card processes, based on a context of the first connection, a plurality of packets coalesced in the first queue to obtain a second packet to be transmitted (TCP operation) to the host. [0053] The preset condition may include any one of the following: coalescing duration reaches specified duration (gap between the first time and the second time).
But, Li dos not explicitly disclose:
a TCP processing logic configured to perform a single TCP operation for the at least two TCP events after the second time point has elapsed.
However, in the same field of endeavor, Makineni discloses a TCP processing logic configured to perform a single TCP operation for the at least two TCP events after the second time point has elapsed ([0015] Eventually (e.g., after a coalescing window ends), as shown in FIG. 1C, the controller 100 (TCP processing engine) may write the headers 110a of the coalesced packet and the flow's descriptor to memory 102. The controller 100 may then signal an interrupt ( single TCP operation)to initiate receive processing (e.g., network and/or transport layer processing) of the coalesced packet 110. For example, TCP receive processing can include reassembly, reordering, generation of ACKs, navigating the TCP state machine for a flow that corresponds to TCP operation), and so forth; the process combines 256 the payloads of packets in the same flow and prepares 258 a single TCP segment header and a single IP header for the combined payloads. An interrupt may then be generated (TCP operation) to initiate processing of the coalesced packet by a TCP/IP stack; [0009] The system also includes a network interface controller (NIC) (a.k.a. network adapter) 100 that receives packets from a network. Instead of writing each received packet into memory 102 for subsequent processing, the controller 100 features logic 112 that coalesces packets. This logic 112 combines the TCP payloads of different packets belonging to the same flow and prepares a single TCP header and a single IP header for the combined TCP payloads. The combination of the IP header, TCP header, and combined TCP payloads forms a single coalesced packet. The protocol stack can, thus, perform receiving processing for fewer but larger packets, reducing the per packet processing penalty incurred).
Therefore, it would have been obvious to a person having ordinary skill in the art at the time of the invention was effectively filed to combine the teaching of Li with Makineni. The modification would allow a network interface controller (NIC) (a.k.a. network adapter) that receives packets from a network. Instead of writing each received packet into memory for subsequent processing, the controller coalesces packets by combining the TCP payloads of different packets belonging to the same flow and prepares a single TCP header and a single IP header for the combined TCP payloads. The combination of the IP header, TCP header, and combined TCP payloads forms a single coalesced packet. The protocol stack can, thus, perform receiving processing for fewer but larger packets, reducing the per packet processing penalty incurred (Makineni[0009]).
Regarding claim 2. The combination discloses network interface device of claim 1.
Makineni discloses, wherein the at least two TCP events is sequentially updated to a first entry of the first table (fig. 3 and [0020] discloses the coalesce circuitry 206 may implement coalescing in a variety of ways. For example, as shown in FIG. 3, the circuitry 206 may build a table 212 that tracks on-going coalescing. As illustrated, such a table 212 may associate a flow ID (e.g., a TCP/IP tuple or hash of a TCP/IP tuple) with the starting byte sequence number of a packet (sequentially updated), a number of payload bytes, an address of a packet descriptor, an address of a payload buffer, and an address of a header buffer; [0016] After the coalesce window expires, the controller 100 prepares headers, writes the descriptors to memory, signals an interrupt at the end of the interrupt moderation time, and clears data used to coalesce packets during the preceding window. The coalescing process then begins anew. The entry before expiration of window corresponds to first entry).
Regarding claim 3. The combination discloses network interface device of claim 2.
Makineni discloses, wherein the first entry comprises a valid bit field configured to store a valid bit indicating whether the corresponding TCP event among the at least two TCP events has been updated ([0016] discloses after the coalesce window expires, the controller 100 prepares headers, writes the descriptors to memory, signals an interrupt at the end of the interrupt moderation time, and clears data (data corresponds to valid bit) used to coalesce packets during the preceding window. The coalescing process then begins anew. The information entry before expiration of window that indicates that updated information corresponds to valid bit entry; [0020] The table 212 may also tally the number of packets being coalesced for the flow, the number of ACK segments coalesced, and may store an aging counter (valid bit) to support "descriptor aging" to close idle descriptors before the end of a coalesce window).
Regarding claim 4. The combination discloses network interface device of claim 3.
Makineni discloses, wherein the valid bit is reset when an event information for the at least two TCP events is delivered to the TCP processing logic [(0016] after the coalesce window expires (an event information for the at least two TCP events is delivered), the controller 100 prepares headers, writes the descriptors to memory, signals an interrupt at the end of the interrupt moderation time, and clears data (reset) used to coalesce packets during the preceding window. The coalescing process then begins anew. The entry before expiration of window corresponds to first entry. The cleared information that indicates the window expired and a new one started corresponds to reset valid bit; [0020] The table 212 may also tally the number of packets being coalesced for the flow, the number of ACK segments coalesced, and may store an aging counter (valid bit) to support "descriptor aging" to close idle descriptors before the end of a coalesce window).
Regarding claim 5. The combination discloses network interface device of claim 1.
Makineni discloses, wherein the TCP processing logic is configured to receive and process a last occurring TCP event among the at least two TCP events from the first table (fig. 3 and [0020]-[0021] discloses the coalesce circuitry 206 may implement coalescing in a variety of ways. For example, as shown in FIG. 3, the circuitry 206 may build a table 212 that tracks on-going coalescing. [0021] The table 212 data for a given flow is modified as coalescing progresses. For example, the number of bytes may be adjusted to reflect additional bytes of a newly combined payload (a last occurring TCP event). Similarly, the number of payloads coalesced may be incremented with each additional TCP payload combined. The table 212 data can be used to prepare a header for coalesced packets and prepare the corresponding descriptor. Again, the table 212 data may be cleared, for example, after the end of a coalescing window).
Regarding claim 6. The combination discloses network interface device of claim 1.
Makineni discloses, further comprising: a second table configured to store a TCP processing result for the at least two TCP events of the TCP processing logic (fig. 1C Nic 100 comprising table 112 (first table). The NIC storage of packet when received from network or to be sent to the network corresponds to a second table).
Regarding claim 7. The combination discloses network interface device of claim 6.
Makineni discloses, further comprising: a first memory including the first table and the second table accessed by input/output ports that are different from each other ((fig. 1C Nic 100 comprising table 212 (first table). The NIC storage of packet when received from network or to be sent to the network corresponds to a second table that is accessed by the input/output ports).
Regarding claim 8. The combination discloses network interface device of claim 6.
Makineni discloses, further comprising: a first memory including the first table; and a second memory including the second table (fig. 1C Nic 100 comprising table 212 (first table). The NIC storage of packet when received from network or to be sent to the network corresponds to a second table. It is obvious to a person having ordinary skill in tha art that the a component can have a plurality of memory to store distinct information).
Regarding claim 9. The combination discloses network interface device of claim 6.
Makineni discloses, wherein the second table comprises more types of TCP parameter fields than the first table (fig. 1C Nic 100 comprising table 212 (first table). The NIC storage of packet when received from network or to be sent to the network corresponds to a second table that may store different number of parameters).
Regarding claim 10. The combination discloses network interface device of claim 6.
Makineni discloses further comprising: a TCP control manager configured to schedule an event information of the first table and a control information of the second table and deliver the event information and the control information to the TCP processing logic ([0009] Instead of writing each received packet into memory 102 for subsequent processing, the controller 100 features logic 112 that coalesces packets. This logic 112 combines the TCP payloads of different packets belonging to the same flow and prepares a single TCP header and a single IP header for the combined TCP payloads. The combination of the IP header, TCP header, and combined TCP payloads forms a single coalesced packet. The different parameters of information of packets to be coalesced can be stored in different storages. Fig. 3, If the two distinct tables used to store information of table 212 of fig. 3, instead of one table, one of the table can correspond to the first table and the second table can correspond to the second table and generating correcponding information to logic 112 to batch the packets and the component corresponds to TCP control manager. The system is capable of storing information of table 212 in two distinct tables).
Regarding claim 11. The combination discloses network interface device of claim 10.
Makineni discloses, wherein the control information is delivered to the TCP control manager in the form of a transmission control block (Fig. 3, If the two distinct tables used to store information of table 212 of fig. 3, instead of one table, one of the table can correspond to the first table and the second table can correspond to the second table and generating correcponding information to logic 112 to batch the packets and the component corresponds to TCP control manager. The system is capable of storing information of table 212 in two distinct tables. The information transmitted from the second table corresponds to transmission control block).
Regarding claim 12. The combination discloses network interface device of claim 1.
Li discloses wherein the TCP processing logic is configured to perform TCP operations for a TCP event of the first TCP connection input at a third time point and a TCP event of a second TCP connection input at a fourth time point simultaneously ([0045] S202: The smart network interface card (TCP processing logic) coalesces the first packet into a first queue (first table) based on the coalescing message, where the first queue is used to coalesce packets of the first connection. [0046] A plurality of queues (for plurality of connections) may be set in the smart network interface card. Each queue (each table) in the plurality of queues may be used to coalesce a plurality of packets from the network… The first queue may be any queue in the plurality of queues that is used to coalesce the packets of the first connection…… [0052] S203: When a preset condition is met, the smart network interface card processes, based on a context of the first connection, a plurality of packets coalesced in the first queue to obtain a second packet to be transmitted (TCP operation) to the host. [0053] The preset condition may include any one of the following: coalescing duration reaches specified duration (gap between the first time and the second time. Each duration corresponding to specific queue corresponds to time point).
Regarding claim 13. Li discloses a server device comprising the network interface device of claim 1 (fig.2 discloses smart NIC. The device comprising the smart NIC corresponds to server).
Regarding claim 14. Li discloses an operation method of a network interface device, the method comprising:
accumulating a first TCP event through an Nth TCP event (wherein N is an integer greater than or equal to 2) sequentially received from a first time point to a second time point for a first TCP connection into a first entry of a first table of the network interface device by an event handler of the network interface device (in light of the instant application stated as “[0007] A network interface device according to an example embodiment of the present disclosure includes: a first table configured to accumulate at least two TCP events sequentially for a first TCP connection, from a first time point to a second time point; and a TCP processing logic configured to perform a single TCP operation for the at least two TCP events after the second time point has elapsed”), Li in [0007] discloses fig. 2 and [0040], [0044], [0045], [0046], and [0052-0053] discloses [0040] S201: The smart network interface card (device) preprocesses a received first packet (TCP event) to obtain a coalescing message (accumulating received TCP) of the first packet…In light of the instant application stated in [0022] reception of packet from network corresponds to TCP event. [0044] For example, when the first connection is a TCP connection, the coalescing message may include metadata, and the metadata may include a quintet, a TCP sequence number (SN) (sequentially received packet), and the like… [0045] S202: The smart network interface card coalesces the first packet into a first queue (table) based on the coalescing message, where the first queue is used to coalesce packets of the first connection. [0046] A plurality of queues (for plurality of connections) may be set in the smart network interface card. Each queue in the plurality of queues may be used to coalesce a plurality of packets from the network… The first queue may be any queue in the plurality of queues that is used to coalesce the packets of the first connection… [0052] S203: When a preset condition is met, the smart network interface card processes, based on a context of the first connection, a plurality of packets coalesced in the first queue to obtain a second packet to be transmitted (TCP operation) to the host. [0053] The preset condition may include any one of the following: coalescing duration reaches specified duration (gap between the first time and the second time)and
Li inherently discloses performing a TCP operation for the Nth TCP event after the second time point by a TCP processing logic of the network interface device (in light of the instant application stated as “[0007] A network interface device according to an example embodiment of the present disclosure includes: a first table configured to accumulate at least two TCP events sequentially for a first TCP connection, from a first time point to a second time point; and a TCP processing logic configured to perform a single TCP operation for the at least two TCP events after the second time point has elapsed”). Li in [0007] discloses coalescing the first packet into a first queue based on the coalescing message of the first packet, where the first queue is used to coalesce packets of the first connection to which the first packet belongs, for example, the first queue is used to coalesce a plurality of packets of the first connection or a plurality of packets of a same message type of the first connection, and the first connection is a connection in which a stateful service is located; when a preset condition (for example, coalescing duration reaches specified duration or a quantity of coalesced packets reaches a preset threshold) is met, processing, based on a context of the first connection, a plurality of packets coalesced in the first queue to obtain a second packet, where the context of the first connection is an updated context obtained after a previous second packet of the first connection is obtained; and transmitting the second packet to the host; [0052] S203: discloses When a preset condition is met, the smart network interface card processes, based on a context of the first connection, a plurality of packets coalesced in the first queue to obtain a second packet to be transmitted (TCP operation) to the host. [0053] The preset condition may include any one of the following: coalescing duration (gap between the first and the reaches specified duration (gap between the first time and the second time).
But, Li does not explicitly disclose: performing a TCP operation for the Nth TCP event after the second time point by a TCP processing logic of the network interface device.
However, in the same field of endeavor, Makineni discloses performing a TCP operation for the Nth TCP event after the second time point by a TCP processing logic of the network interface device ([0015] Eventually (e.g., after a coalescing window ends), as shown in FIG. 1C, the controller 100 (TCP processing engine) may write the headers 110a of the coalesced packet and the flow's descriptor to memory 102. The controller 100 may then signal an interrupt ( single TCP operation)to initiate receive processing (e.g., network and/or transport layer processing) of the coalesced packet 110. For example, TCP receive processing can include reassembly, reordering, generation of ACKs, navigating the TCP state machine for a flow that corresponds to TCP operation), and so forth; the process combines 256 the payloads of packets in the same flow and prepares 258 a single TCP segment header and a single IP header for the combined payloads. An interrupt may then be generated (TCP operation) to initiate processing of the coalesced packet by a TCP/IP stack; [0009] The system also includes a network interface controller (NIC) (a.k.a. network adapter) 100 that receives packets from a network. Instead of writing each received packet into memory 102 for subsequent processing, the controller 100 features logic 112 that coalesces packets. This logic 112 combines the TCP payloads of different packets belonging to the same flow and prepares a single TCP header and a single IP header for the combined TCP payloads. The combination of the IP header, TCP header, and combined TCP payloads forms a single coalesced packet. The protocol stack can, thus, perform receiving processing for fewer but larger packets, reducing the per packet processing penalty incurred).
Therefore, it would have been obvious to a person having ordinary skill in the art at the time of the invention was effectively filed to combine the teaching of Li with Makineni. The modification would allow a network interface controller (NIC) (a.k.a. network adapter) that receives packets from a network. Instead of writing each received packet into memory for subsequent processing, the controller coalesces packets by combining the TCP payloads of different packets belonging to the same flow and prepares a single TCP header and a single IP header for the combined TCP payloads. The combination of the IP header, TCP header, and combined TCP payloads forms a single coalesced packet. The protocol stack can, thus, perform receiving processing for fewer but larger packets, reducing the per packet processing penalty incurred (Makineni[0009]).
Regarding claim 15. The combination discloses method of claim 14.
Makineni discloses , further comprising: omitting a TCP operation for a TCP event received prior to the Nth TCP event among any of the first TCP event through the Nth TCP event by the TCP processing logic ([0009] discloses a network interface controller (NIC) (a.k.a. network adapter) that receives packets from a network. Instead of writing (TCP operation) each received packet into memory for subsequent processing, the controller coalesces packets by combining the TCP payloads of different packets belonging to the same flow and prepares a single TCP header and a single IP header for the combined TCP payloads. The combination of the IP header, TCP header, and combined TCP payloads forms a single coalesced packet (TCP operation of all coalesced packet is omitted and only one operation representing the batched packets is done). The protocol stack can, thus, perform receiving processing for fewer but larger packets, reducing the per packet processing penalty incurred).
Regarding claim 16. The combination discloses method of claim 14.
Makineni discloses, further comprising: delivering the result of a TCP operation for the Nth TCP event to a first entry of a second table of the network interface device by the TCP processing logic (([0009] discloses a network interface controller (NIC) (a.k.a. network adapter) that receives packets from a network. Instead of writing (TCP operation) each received packet into memory for subsequent processing, the controller coalesces packets by combining the TCP payloads of different packets belonging to the same flow and prepares a single TCP header and a single IP header for the combined TCP payloads. The combination of the IP header, TCP header, and combined TCP payloads forms a single coalesced packet. The protocol stack can, thus, perform receiving processing for fewer but larger packets, reducing the per packet processing penalty incurred. The storage used to store coalesced data before sending to memory corresponds to second table; [0020] The table 212 may also tally the number of packets being coalesced for the flow to later pass that information to the TCP/IP stack the number of ACK segments coalesced, and may store an aging counter (that may correspond to validity bit) to support "descriptor aging" (described below) used to close idle descriptors before the end of a coalesce window).
Regarding claim 17. The combination discloses method of claim 14.
Makineni discloses, wherein, the sequentially accumulating the first through the Nth TCP events to the first entry comprises, setting a valid bit indicating whether the corresponding TCP event among the first through the Nth TCP events has been updated on a valid bit field of the first entry by the event handler ([0016] discloses after the coalesce window expires, the controller 100 prepares headers, writes the descriptors to memory, signals an interrupt at the end of the interrupt moderation time, and clears data (data corresponds to valid bit) used to coalesce packets during the preceding window. The coalescing process then begins anew. The information entry before expiration of window that indicates that updated information corresponds to valid bit entry).
Regarding claim 18. The method of claim 14,
wherein, the performing a TCP operation for the Nth TCP event by the TCP processing logic comprises:
delivering the Nth TCP event stored in the first table and a transmission control block stored in a second table of the network interface device to the TCP processing logic by a TCP control manager of the network interface device (fig. 3 discloses table 212 storing parameters to TCP events to be coalesced. The table cand be divided in to two tables that corresponds to th first and the second table. Storing information in different tables and fetching the information that would have been stored in one table from different tables is an obvious variation. Information in one of the table corresponds to TCP event and information in the other table corresponds to transmission control block; [0009] discloses a network interface controller (NIC) (a.k.a. network adapter) that receives packets from a network. Instead of writing (TCP operation) each received packet into memory for subsequent processing, the controller coalesces packets by combining the TCP payloads of different packets belonging to the same flow and prepares a single TCP header and a single IP header for the combined TCP payloads. The combination of the IP header, TCP header, and combined TCP payloads forms a single coalesced packet (TCP operation of all coalesced packet is omitted and only one operation representing the batched packets is done). The protocol stack can, thus, perform receiving processing for fewer but larger packets, reducing the per packet processing penalty incurred);
applying a TCP algorithm for the Nth TCP event based on the Nth TCP event and the transmission control block by the TCP processing logic ([0009] discloses a network interface controller (NIC) (a.k.a. network adapter) that receives packets from a network. Instead of writing (TCP operation) each received packet into memory for subsequent processing, the controller coalesces packets by combining the TCP payloads of different packets belonging to the same flow and prepares a single TCP header and a single IP header for the combined TCP payloads. The combination of the IP header, TCP header, and combined TCP payloads forms a single coalesced packet (TCP operation of all coalesced packet is omitted and only one operation representing the batched packets is done). The protocol stack can, thus, perform receiving processing for fewer but larger packets, reducing the per packet processing penalty incurred); and
updating a transmission control block stored in the second table as the result of applying the TCP algorithm for the Nth TCP event by the TCP processing logic (fig. 3 discloses table 212 storing parameters to TCP events to be coalesced. The table cand be divided in to two tables that corresponds to th first and the second table. Storing information in different tables and fetching the information that would have been stored in one table from different tables is an obvious variation. Information in one of the table corresponds to TCP event and information in the other table corresponds to transmission control block. Updating the information in corresponding tables within coalescing window corresponds to updating).
Regarding claim 19. The method of claim 14, further comprising:
performing a TCP operation for a TCP event of a second TCP connection simultaneously by the TCP processing logic, when performing a TCP operation for the Nth TCP event ((fig. 2 and [0040], [0044], [0045], [0046], and [0052-0053] discloses [0040] S201: The smart network interface card (device) preprocesses a received first packet (TCP event) to obtain a coalescing message (accumulating received TCP) of the first packet…In light of the instant application stated in [0022] reception of packet from network corresponds to TCP event. [0044] For example, when the first connection is a TCP connection, the coalescing message may include metadata, and the metadata may include a quintet, a TCP sequence number (SN) (sequentially received packet), and the like… [0045] S202: The smart network interface card coalesces the first packet into a first queue (first table) based on the coalescing message, where the first queue is used to coalesce packets of the first connection. [0046] A plurality of queues (for plurality of connections) may be set in the smart network interface card. Each queue in the plurality of queues may be used to coalesce a plurality of packets from the network… The first queue may be any queue in the plurality of queues that is used to coalesce the packets of the first connection… [0052] S203: When a preset condition is met, the smart network interface card processes, based on a context of the first connection, a plurality of packets coalesced in the first queue to obtain a second packet to be transmitted (TCP operation) to the host. [0053] The preset condition may include any one of the following: coalescing duration reaches specified duration (gap between the first time and the second time. The system is capable of processing other queues corresponding to other connections together with connection of the first queue).
Regarding claim 20. The combination discloses method of claim 14,
Makineni further discloses comprising: updating an (N+1)th TCP event for the first TCP connection to the first entry by the event handler simultaneously with performing a TCP operation for the Nth TCP event for the first TCP connection by the TCP processing logic ((fig. 2 and [0040], [0044], [0045], [0046], and [0052-0053] discloses [0040] S201: The smart network interface card (device) preprocesses a received first packet (TCP event) to obtain a coalescing message (accumulating received TCP) of the first packet…In light of the instant application stated in [0022] reception of packet from network corresponds to TCP event. [0044] For example, when the first connection is a TCP connection, the coalescing message may include metadata, and the metadata may include a quintet, a TCP sequence number (SN) (sequentially received packet), and the like… [0045] S202: The smart network interface card coalesces the first packet into a first queue (first table) based on the coalescing message, where the first queue is used to coalesce packets of the first connection. [0046] A plurality of queues (for plurality of connections) may be set in the smart network interface card. Each queue in the plurality of queues may be used to coalesce a plurality of packets from the network… The first queue may be any queue in the plurality of queues that is used to coalesce the packets of the first connection… [0052] S203: When a preset condition is met, the smart network interface card processes, based on a context of the first connection, a plurality of packets coalesced in the first queue to obtain a second packet to be transmitted (TCP operation) to the host. [0053] The preset condition may include any one of the following: coalescing duration reaches specified duration (gap between the first time and the second time. The system is capable of processing other queues corresponding to other connections together with connection of the first queue independently; [0021] The table 212 data for a given flow is modified as coalescing progresses. For example, the number of bytes may be adjusted to reflect additional bytes of a newly combined payload. Similarly, the number of payloads coalesced may be incremented with each additional TCP payload combined).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MESSERET F. GEBRE whose telephone number is (571)272-8272. The examiner can normally be reached 9:00 am-5:30PM.
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, Oscar Louie can be reached at 5712701684. 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.
/MESSERET F GEBRE/Primary Examiner, Art Unit 2445