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 .
DETAILED ACTION
Claims 1-20 are pending. claims 1, 10, and 17 are independent. Claims 2-9, 11-16, and 18-20 are dependent.
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 SAH (US 20240414093) hereinafter SAH in view of MUSLEH (US 20220210075) hereinafter MUSLEH.
Regarding claim 1, SAH teaches a system (i.e. a system, [0016]), comprising: a network interface device configured to interface with other network interface devices over a packet-switched network (i.e. sending a data packet, via a network, to each of a plurality of nodes; receiving, in response to the sent data packet, a set of acknowledgement data packets, [0017] and a packet-switched network, [0106]), wherein the network interface device comprises: a buffer configured to buffer packets received from the other network interface devices (i.e. Data captured by the sensing equipment is written to the data buffer and sent by the transmission components of the node, [0008] and receiving a plurality of data packets from a network of the plurality of data packets originating from a plurality of wireless devices, [0018]), congestion control circuitry (i.e. congestion detection logic, [0075]); wherein the senders comprise one or more of the other network interface devices (i.e. the nodes closer to the sender, [0088]).
However, SAH does not explicitly disclose select packets of the buffer based on available capacity of the buffer, and to notify senders of the selected packets of a congestion condition in the network interface device.
However, MUSLEH teaches select packets of the buffer based on available capacity of the buffer, and to notify senders of the selected packets of a congestion condition in the network interface device (i.e. A network interface device can include an egress buffer for a physical or logical egress port with a limited capacity of how many packets and/or size of packets that can be stored prior to transmission. After occupancy of an egress buffer reaches a pre-configured threshold, the network interface device can provide a congestion notification (e.g., marked ECN bit) in one or more packets to indicate congestion to a sender of packets that are stored in the egress buffer, [0013] and selectively send a congestion message to a transmitter based on a fullness level of a buffer that stored the packet and the number of remaining bytes in flow, the switch is to determine whether the buffer is large enough to store the remaining bytes in the flow, [0086]).
Based on SAH in view of MUSLEH, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teaching of MUSLEH to the system of SAH in order to reduce network congestion and packet drops, (MUSLEH, [0003]).
Regarding claim 2, SAH does not explicitly disclose select a number of the packets of the buffer based on the available capacity of the buffer if the available capacity of the buffer is below a maximum threshold; and select all packets of the buffer if the available capacity of the buffer meets the maximum threshold.
However, MUSLEH teaches select a number of the packets of the buffer based on the available capacity of the buffer if the available capacity of the buffer is below a maximum threshold (i.e. The receiver network interface device can determine to not indicate congestion to the sender based on an egress buffer occupancy not meeting and not exceeding a congestion threshold level and [remaining buffer occupancy<(remaining message size to be sent*headroom_threshold)], [0036]); and select all packets of the buffer if the available capacity of the buffer meets the maximum threshold (i.e. after occupancy of an egress buffer reaches a pre-configured threshold, the network interface device can provide a congestion notification (e.g., marked ECN bit) in one or more packets to indicate congestion to a sender of packets that are stored in the egress buffer, [0013] and based on a level of fullness of the egress buffer meeting and/or exceeding a threshold of congestion and the indicated amount of packets or amount of message size planned to be sent in the flow and potentially stored in the egress buffer from a sender, the network interface device can decide whether to send a congestion notification to a sender. For example, if an occupancy level of the egress buffer considering the indicated amount of packets or amount of message size planned to be sent in the flow would not lead to the egress buffer being congested, [0014]). Therefore, the limitations of claim 2 are rejected in the analysis of claim 1 above, and the claim is rejected on that basis.
Regarding claim 3, SAH does not explicitly disclose select the number of the packets of the buffer based on the available capacity of the buffer and a function configured to permit a user to adjust a responsiveness of the congestion control circuitry to changes in the available capacity of the buffer.
However, MUSLEH teaches select the number of the packets of the buffer based on the available capacity of the buffer (i.e. marked ECN bit in one or more packets to indicate congestion to a sender of packets that are stored in the egress buffer, [0013] and an occupancy level of an egress queue associated with a port may be able to store more than threshold 302 and the network interface device can determine to not send a congestion notification to a sender. For example, if an expected number of additional packets for flow B over threshold 302 is overage 306 and overage 306 can be stored in the queue, then the network interface device can determine to not send a congestion notification to the sender of packets of flow B, [0045]) and a function configured to permit a user to adjust a responsiveness of the congestion control circuitry to changes in the available capacity of the buffer (i.e. Sender network interface device 104 can utilize flow information 106, connection information 108, and flow state adjustment described herein in connection with managing congestion notifications generated by one or more other network interface devices, including intermediate network interface device 150, [0019]). Therefore, the limitations of claim 3 are rejected in the analysis of claim 1 above, and the claim is rejected on that basis.
Regarding claim 4, SAH does not explicitly disclose wherein the congestion control circuitry is further configured to: select no packets of the buffer if the available capacity of the buffer is below a minimum threshold.
However, MUSLEH teaches wherein the congestion control circuitry is further configured to: select no packets of the buffer if the available capacity of the buffer is below a minimum threshold (i.e. if an expected number of additional packets for flow B over threshold 302 is overage 306 and overage 306 can be stored in the queue, then the network interface device can determine to not send a congestion notification to the sender of packets of flow B, [0045]). Therefore, the limitations of claim 4 are rejected in the analysis of claim 1 above, and the claim is rejected on that basis.
Regarding claim 5, SAH teaches determine the available capacity of the buffer based on a weighted average available capacity of the buffer and a weighted current available capacity of the buffer (i.e. While the size of the data in the data buffer (buffer length) will vary, a threshold value for the size may be determined and, if exceeded, indicate a network congestion issue which may trigger congestion mitigation. Buffer length is calculated periodically at a predetermined time interval, wherein the predetermined time interval is determined based on the timestamp of the current packet and two associated packets of the current packet and their respective timestamps, [0008] and buffer length is calculated periodically at a predetermined time interval, so as to provide details of congestion as how much packets of Lidar snapshots of images are in queue, and make the data transmission/transfer in an effective manner, [0011]).
Regarding claim 6, SAH teaches a weight of the weighted average available capacity is configurable; and a weight of the weighted current available capacity is configurable (i.e. a buffer size, wherein the buffer size is automatically adjusted to be smaller when the network is congested, [0031]).
Regarding claim 7, SAH does not explicitly disclose a programmable receive packet processing pipeline configured to select the packets of the buffer based on the available capacity of the buffer, and to populate a field in headers of the selected packets with a bit value; an extended receive packet processing pipeline configured to detect the bit values in the headers, and to output information regarding senders of the selected packets; and an extended transmit packet processing pipeline configured to notify the senders of the selected packets of the congestion condition in the network interface device based on the information regarding the senders of the selected packets.
However, MUSLEH teaches a programmable receive packet processing pipeline configured to select the packets of the buffer based on the available capacity of the buffer (i.e. marked ECN bit in one or more packets to indicate congestion to a sender of packets that are stored in the egress buffer, [0013] and Packet processing pipelines 912 can implement access control list (ACL) or packet drops due to queue overflow. Packet processing pipelines 912 can be configured to determine whether to send a congestion notification, [0072]), and to populate a field in headers of the selected packets with a bit value (i.e. Packet processing pipelines 912 can implement access control list (ACL) or packet drops due to queue overflow. Packet processing pipelines 912 can be configured to determine whether to send a congestion notification, [0013]); an extended receive packet processing pipeline configured to detect the bit values in the headers, and to output information regarding senders of the selected packets (i.e. wherein the congestion message comprises one or more of: an Explicit Congestion Control Notification (ECN), [0100]; and an extended transmit packet processing pipeline configured to notify the senders of the selected packets of the congestion condition in the network interface device based on the information regarding the senders of the selected packets (i.e. A congestion notification can be sent to a sender, either directly to sender network interface device 104 or to an endpoint receiver 160 and forwarded to sender network interface device 104, [0035]). Therefore, the limitations of claim 7 are rejected in the analysis of claim 1 above, and the claim is rejected on that basis.
Regarding claim 8, SAH teaches transmit packets to a first one of the other network interface devices at a data rate (i.e. sending a data packet, via a network, to each of a plurality of nodes, [0017]); and receive messages from the first one of the other network interface devices that indicate a congestion condition in the first one of the other network interface devices (i.e. nodes may report attributes of their data buffer (e.g., current utilization rate, high value over a time period, time spent over a threshold during a time period, variation, etc.). Reporting may be performed automatically, such as periodically or upon an event (e.g., data buffer utilization reaching a reporting threshold that is at or below a congestion threshold) or in response to being polled, such as by a peer node or base station. For example, buffer length is calculated periodically at a predetermined time interval, so as to provide details of congestion as how much packets of Lidar snapshots of images are in queue, [0011]); and reduce the data rate based on a number of the messages from the first one of the other network interface devices (i.e. monitoring of network congestion and that further enables a user to adjust the latency and/or video frames per second (FPS). For instance, if the latency is observed to be above 2 seconds, then the user may be allowed to adjust the FPS/RTO via the user interface, [0087]).
Regarding claim 9, SAH does not explicitly disclose wherein the packets comprise remote direct memory access (RDMA) packets.
However, MUSLEH teaches wherein the packets comprise remote direct memory access (RDMA) packets (i.e. remote direct memory access (RDMA), [0067]). Therefore, the limitations of claim 9 are rejected in the analysis of claim 1 above, and the claim is rejected on that basis.
Regarding claim 10, SAH teaches an integrated circuit device (i.e. device, [0078]), comprising: comprising: network input/output (IO) circuitry configured to interface with remote devices over a packet-switched network (i.e. communication interface 310 may comprise, or be comprised by, human input/output interface 312. Communication interface 310 may be configured to communicate directly with a networked component or configured to utilize one or more networks, such as network 320 and/or network 324, [0079]); a packet buffer configured to store packets received from the remote devices by the network IO circuitry (i.e. Data captured by the sensing equipment is written to the data buffer and sent by the transmission components of the nodes, [0008]); wherein the senders comprise one or more of the remote devices (i.e. the nodes closer to the sender, [0088]); congestion control circuitry (i.e. congestion detection logic, [0075]).
However, SAH does not explicitly disclose a data processing unit (DPU); a receive packet processing pipeline configured to process the packets stored in the packet buffer; a transmit packet processing pipeline configured to process packets destined for the remote devices; a packet-based network-on-chip (NoC) configured to interface with the network IO circuit, the packet buffer, the receive packet processing pipeline, and the transmit packet processing pipeline; and select packets of the packet buffer based on an available capacity of the packet buffer, and to notify senders of the selected packets of a congestion condition in the DPU.
However, MUSLEH teaches a data processing unit (DPU) (i.e. data processing unit (DPU), [0090]), a receive packet processing pipeline configured to process the packets stored in the packet buffer (i.e. Memory 908 can be configured to store packets received at ports prior to egress from one or more ports. Packet processing pipelines 912 can determine which port to transfer packets or frames to using a table that maps packet characteristics with an associated output port, [0072]); a transmit packet processing pipeline configured to process packets destined for the remote devices (i.e. Packet processing pipelines 912 can be configured to perform match-action on received packets to identify packet processing rules and next hops using information stored in a ternary content-addressable memory (TCAM) tables or exact match tables, [0072]); a packet-based network-on-chip (NoC) configured to interface with the network IO circuit, the packet buffer, the receive packet processing pipeline and the transmit packet processing pipeline (i.e. the switch can be implemented as a system on chip (SoC) that selectively performs or does not perform congestion control for one or more ingress or egress ports, as described herein. Switch 904 can route packets or frames of any format or in accordance with any specification from any port 902-0 to 902-X to any of ports 906-0 to 906-Y (or vice versa), [0070] and a sender network interface device, the switch, and a destination network interface device and the sender network interface device is to send the packet via the switch to the destination network interface device, [0092]); and select packets of the packet buffer based on an available capacity of the packet buffer, and to notify senders of the selected packets of a congestion condition in the DPU (i.e. A network interface device can include an egress buffer for a physical or logical egress port with a limited capacity of how many packets and/or size of packets that can be stored prior to transmission. After occupancy of an egress buffer reaches a pre-configured threshold, the network interface device can provide a congestion notification (e.g., marked ECN bit) in one or more packets to indicate congestion to a sender of packets that are stored in the egress buffer, [0013] and selectively send a congestion message to a transmitter based on a fullness level of a buffer that stored the packet and the number of remaining bytes in flow, the switch is to determine whether the buffer is large enough to store the remaining bytes in the flow, [0086] and wherein the switch comprises one or more of: an infrastructure processing unit (IPU), data processing unit (DPU), [0090]).
Based on SAH in view of MUSLEH, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teaching of MUSLEH to the system of SAH in order to reduce network congestion and packet drops, (MUSLEH, [0003]).
Regarding claim 11, SAH does not explicitly disclose wherein the DPU further comprises: a processor; memory configured to store instructions and data for the processor; a host interface configured to interface with a host device; and one or more accelerator circuits configured to provide services to the host device, wherein the NoC is further configured to interface with the processor, the memory, the host interface, and the one or more accelerator circuits.
However, MUSLEH teaches wherein the DPU further comprises: a processor; memory configured to store instructions and data for the processor; a host interface configured to interface with a host device; and one or more accelerator circuits configured to provide services to the host device (i.e. data processing unit (DPU) or utilized by an IPU or DPU. An xPU can refer at least to an IPU, DPU, GPU, GPGPU, or other processing units (e.g., accelerator devices). An IPU or DPU can include a network interface with one or more programmable pipelines or fixed function processors to perform offload of operations that could have been performed by a CPU. The IPU or DPU can include one or more memory devices, [0061]), wherein the NoC is further configured to interface with the processor, the memory, the host interface, and the one or more accelerator circuits (i.e. The switch can be implemented as a system on chip (SoC) that selectively performs or does not perform congestion control for one or more ingress or egress ports, as described herein. Switch 904 can route packets or frames of any format or in accordance with any specification from any port 902-0 to 902-X to any of ports 906-0 to 906-Y (or vice versa). One or more of ports 902-0 to 902-X can be connected to a network of one or more interconnected devices. Similarly, one or more of ports 906-0 to 906-Y can be connected to a network of one or more interconnected devices, [0070]). Therefore, the limitations of claim 11 are rejected in the analysis of claim 10 above, and the claim is rejected on that basis.
Regarding claim 13, SAH does not explicitly disclose the network IO circuit comprises a packet buffer crossbar comprising the packet buffer, wherein the packet buffer crossbar is configured to populate headers of the packets of the packet buffer with measures of the available capacity of the buffer; the receive packet processing pipeline comprises a programmable receive packet processing pipeline configured to select the packets of the buffer based on the measures of the available capacity of the buffer, and to populate a field in headers of the selected packets with a bit value; the receive packet processing pipeline further comprises an extended receive packet processing pipeline configured to detect the bit values in the headers, and to output information regarding senders of the selected packets; and the transmit packet processing pipeline is configured to notify the senders of the selected packets of the congestion condition in the DPU based on the information regarding the senders of the selected packets.
However, MUSLEH teaches the network IO circuit comprises a packet buffer crossbar comprising the packet buffer (i.e. a buffer that stored the packet, [0086]), wherein the packet buffer crossbar is configured to populate headers of the packets of the packet buffer with measures of the available capacity of the buffer (i.e. congestion notifications generated by one or more other network interface devices, including intermediate network interface device, [0019] and selectively send a congestion message based on a fullness level of a buffer and indication of remainder of the flow, [0083]); the receive packet processing pipeline comprises a programmable receive packet processing pipeline configured to select the packets of the buffer based on the measures of the available capacity of the buffer (i.e. After occupancy of an egress buffer reaches a pre-configured threshold, the network interface device can provide a congestion notification (e.g., marked ECN bit) in one or more packets to indicate congestion to a sender of packets that are stored in the egress buffer, [0013]), and to populate a field in headers of the selected packets with a bit value (i.e. marked ECN bit in one or more packets, [0013]); the receive packet processing pipeline further comprises an extended receive packet processing pipeline configured to detect the bit values in the headers Packet processing pipelines 912 can be configured to perform match-action on received packets to identify packet processing rules and next hops using information stored in a ternary content-addressable memory (TCAM) tables or exact match tables, [0072]), and to output information regarding senders of the selected packets (i.e. f headers that can be used to communicate information from a sender. For example, communicated information can include one or more of: a total number of packets that belong to an inflight message or flow, an amount of data planned to be sent in the flow, a phase of a larger synchronization communication, and so forth. For example, header 200 includes an IPv6 header. A 20-bit field known as the Flow label (e.g., RFC 3697) can be used to store the communicated information, [0042]); and the transmit packet processing pipeline is configured to notify the senders of the selected packets of the congestion condition in the DPU based on the information regarding the senders of the selected packets selectively send a congestion message to a transmitter based on a fullness level of a buffer that stored the packet and the number of remaining bytes in flow, the switch is to determine whether the buffer is large enough to store the remaining bytes in the flow, [0086]). Therefore, the limitations of claim 13 are rejected in the analysis of claim 10 above, and the claim is rejected on that basis.
Regarding claim 14, SAH does not explicitly disclose wherein the congestion control circuitry is further configured to: select no packets of the packet buffer if the available capacity of the packet buffer is below a minimum threshold; select all packets of the packet buffer if the available capacity of the packet buffer meets a maximum threshold; and select a number of packets of the packet buffer based on the available capacity of the packet buffer if the available capacity of the packet buffer is between the minimum threshold and the maximum threshold. Therefore, the limitations of claim 14 are rejected in the analysis of claim 10 above, and the claim is rejected on that basis.
However, MUSLEH teaches wherein the congestion control circuitry is further configured to: select no packets of the packet buffer if the available capacity of the packet buffer is below a minimum threshold (i.e. if an expected number of additional packets for flow B over threshold 302 is overage 306 and overage 306 can be stored in the queue, then the network interface device can determine to not send a congestion notification to the sender of packets of flow B, [0045]); select all packets of the packet buffer if the available capacity of the packet buffer meets a maximum threshold (i.e. after occupancy of an egress buffer reaches a pre-configured threshold, the network interface device can provide a congestion notification (e.g., marked ECN bit) in one or more packets to indicate congestion to a sender of packets that are stored in the egress buffer, [0013] and based on a level of fullness of the egress buffer meeting and/or exceeding a threshold of congestion and the indicated amount of packets or amount of message size planned to be sent in the flow and potentially stored in the egress buffer from a sender, the network interface device can decide whether to send a congestion notification to a sender. For example, if an occupancy level of the egress buffer considering the indicated amount of packets or amount of message size planned to be sent in the flow would not lead to the egress buffer being congested, [0014]); and select a number of packets of the packet buffer based on the available capacity of the packet buffer if the available capacity of the packet buffer is between the minimum threshold and the maximum threshold (i.e. The receiver network interface device can determine to not indicate congestion to the sender based on an egress buffer occupancy not meeting and not exceeding a congestion threshold level and [remaining buffer occupancy<(remaining message size to be sent*headroom_threshold)], [0036] and if overage 306 is more than a second threshold level, then the network interface device can determine to send a congestion notification to the sender of packets of flow B. For instance, if the packets belonging to flow B are a larger message size or step-phase (e.g., an early AllReduce step) and available queue availability is decreasing, heavy traffic flow in flow B is more likely to behave as an aggressor flow relative to others, and network interface device can send congestion notification to a sender of packets of flow B, [0045]). Therefore, the limitations of claim 14 are rejected in the analysis of claim 10 above, and the claim is rejected on that basis.
Regarding claims 12 and 15-20, the limitations of claims 12 and 15-20 are similar to the limitations of claims 1, 3, 5, 6, 9, and 14. Therefore, the limitations of claims 12 and 15-20 are rejected in the analysis of claims 1, 3, 5, 6, 9, and 14 above, and the claims are rejected on that basis.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
FARROKHBAKHT et al. (US 20240129234), if executed by one or more circuitry of a router, cause the one or more circuitry of the router to: proactively drop a packet and send a negative acknowledgement (NACK) message to a sender based on lack of buffer space for a response associated with the packet and sent from a downstream network interface device that received the packet and also based on one or more of: congestion at a downstream switch or congestion at an endpoint receiver.
RAHMAN et al. (US 20230403233), provide congestion telemetry data for use in CC based on queue depth information that considers one or more other queues that utilize a same egress or output port and, potentially, based on arbiter configurations that allocate egress bandwidth from an egress port according to even or uneven weighting to different queues and associated traffic classes.
Vegesna et al. (US 20210297351), congestion control mechanisms used to determine a degree of congestion at an egress interface of a destination data processing unit (DPU) within a data center network fabric and modify a send window size at a source DPU within the network fabric based on the degree of congestion.
NIKOLAIDIS et al. (US 20210328930), A network interface device can utilize one or more processors or circuitry to predict buffer or queue depth at a predicted time when a sender receives a congestion notification from a receiver based on a rate of buffer occupancy change.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AYELE F WOLDEMARIAM whose telephone number is (571)270-5196. The examiner can normally be reached M_F 8:30AM-5:00PM.
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, Joon H Hwang can be reached at 571-272-4036. 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.
/AW/
AYELE F. WOLDEMARIAM
Examiner
Art Unit 2447
8/3/2026
/SURAJ M JOSHI/Primary Examiner, Art Unit 2447