DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This is in response to the amendments filed 03/27/2026. Claims 1-20 are pending.
Response to Arguments
Applicant’s arguments with respect to claims 1-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
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 of this title, 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.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Makhervaks et al. (2014/0310369, hereinafter Makhervaks) and in view of Tanimoto (2014/0362867).
Regarding claim 1, Makhervaks discloses a system comprising:
a first network device disposed on a first host (Makhervaks discloses that the network controller 110 (network device) (via SSQ management engine 112) is configured to manage transmission and reception of messages between the host 102 and destination devices 120A-N) (Makhervaks, para. 25) configured to:
obtain, from a shared send queue, a first remote direct memory access (RDMA) data transmission message of a first process (Makhervaks discloses that the posting of the WQE to the shared send queue and to use the control information (process), data descriptor(s), and reliable communication channel descriptor to generate a protocol message (RDMA data transmission message)) (Makhervaks, para. 21);
send a first packet comprising the first RDMA data transmission message (Makhervaks discloses that the message may be segmented into a sequence of packets (first packet) for transmission from the host communication device to a destination device) (Makhervaks, para. 48) and a first identifier (Makhervaks discloses that the posting of the WQE to the shared send queue and to use the control information (process), data descriptor(s) (first identifier), and reliable communication channel descriptor to generate a protocol message) (Makhervaks, para. 21);
receive a second packet comprising the first identifier and a feedback message (Makhervaks discloses that the packets are acknowledged, and a transmission associated with a WQE may complete when all packets (second packet) associated with a message have been sent and receipt acknowledged (feedback message) by the destination device) (Makhervaks, para. 42), wherein the feedback message indicates a completion status of the first RDMA data transmission message (Makhervaks discloses that the positive acknowledgement may indicate that sent packet was received accurately by the destination device) (Makhervaks, para. 46); and
notify, based on the first identifier and the feedback message, the first process of the completion status (Makhervaks discloses that the positive acknowledgement may indicate (notify) that sent packet was received accurately by the destination device) (Makhervaks, para. 46); and
a second network device disposed on a second host (Makhervaks discloses that the network system of one or more hosts may communicate with one or more destination devices over a network) (Makhervaks, para. 2), communicatively coupled to the first network device configured to:
receive, from the first network device, the first packet (Makhervaks discloses that the packet(s) may be acknowledged, and a transmission associated with a WQE may be complete when all packets associated with the message have been sent and receipt acknowledged the destination device(s)) (Makhervaks, para. 38); and
send, to the first network device based on the first packet, the second packet (Makhervaks discloses that the packet(s) may be acknowledged, and a transmission associated with a WQE may complete when all packets associated with the message have been sent and receipt acknowledged the destination device(s)) (Makhervaks, para. 38).
Makhervaks does not explicitly disclose send a first packet comprising a first identifier that identifies the first process among a plurality of processes sharing the shared send queue.
In analogous art, Tanimoto teaches send a first packet comprising a first identifier (Tanimoto discloses that the packet includes information indicating a packet length, a destination buffer ID, a destination node ID, a source buffer ID that may be a source process ID, a source node ID, a type value, a sequence number, and a payload) (Tanimoto, para. 44) that identifies the first process among a plurality of processes sharing the shared send queue (Tanimoto discloses that the buffer 107 is a shared receive buffer (e.g., SRQ); that when the node ID and process ID exists, the processing unit 129 transmit a request to retransmit the packet to a transmission process identified by the process ID) (Tanimoto, para. 38, 68).
Therefore, it would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention to take the teachings of Tanimoto related to sending a packet comprising an identifier that identifies the process with sharing the shared send queue and to combine with Makhervaks in order to increase the efficiency of retransmitting packets when overflow occurs form the shared receive buffer (Tanimoto, para. 78).
Regarding claim 2, Makhervaks and Tanimoto disclose the system of claim 1, wherein the first packet and the second packet further comprise a second identifier identifying the first RDMA data transmission message from second RDMA data transmission messages of the first process (Makhervaks discloses that the application with data to transmit may post a work queue element (WQE) to the shared send queue 316; each WQE includes a descriptor (identifier) configured to identify the respective data to be transmitted) (Makhervaks, para. 41), and wherein the first network device is further configured to further notify, based on the second identifier, the first process of the completion status (Makhervaks discloses that the communication device 302 monitors pending completion bits for each SSQ transmit history information store entry and marks (notify) completion in the order corresponding to a work queue element posting order in the shared send queue) (Makhervaks, para. 34).
Regarding claim 3, Makhervaks and Tanimoto disclose the system of claim 1, wherein the first network device is further configured to:
obtain, from the shared send queue, a second work request of the first process and describing the first RDMA data transmission message (Makhervaks discloses that the application has data to send to a destination endpoint, where the application generates a work request, which includes control information describing message type and message attributes, descriptors that indicate a location in memory where data to be transmitted is stored, an amount of data to be transmitted, a designator corresponding to a reliable communication channel to be used, and/or a designator indicating a destination device that is to receive the message) (Makhervaks, para. 44; Fig. 4A-4B); and
obtain, based on the second work request, the first RDMA data transmission message (Makhervaks discloses that the message may be segmented into a sequence of packets for transmission from the host communication device to a destination device) (Makhervaks, para. 48).
Regarding claim 4, Makhervaks and Tanimoto disclose the system of claim 1, wherein the first network device is further configured to:
determine, from first completion queues based on the first identifier, a second completion queue corresponding to the first process (Makhervaks discloses that the WQE stores 320A-M are configured to facilitate WQE completions when the completion order of the WQEs posted to the SSQ 316 corresponds to the transmission order of the messages on the communication channel and per destination basis) (Makhervaks, para. 38); and
write, based on the feedback message, a work completion element into the second completion queue (Makhervaks discloses that the posting a work queue element (WQEx) corresponding to the work request to shared send queue, wherein the WQEx includes a reliable communication channel and a reliable communication channel identifier, a location in a transmit (write) history information store associated with the SSQ to be allocated for the WQEx) (Makhervaks, para. 45), wherein the work completion element describes the completion status (Makhervaks discloses that the WQE stores 320A-M are configured to facilitate WQE completions when the completion order of the WQEs posted to the SSQ 316 corresponds to the transmission order of the messages on the communication channel and per destination basis) (Makhervaks, para. 38).
Regarding claim 5, Makhervaks and Tanimoto disclose the system of claim 1, wherein the first network device is further configured to create, in a memory coupled to the first network device, the shared send queue (Makhervaks, para. 27).
Regarding claim 6, Makhervaks and Tanimoto disclose the system of claim 1, wherein before sending the first packet, the first network device is further configured to encapsulate the first identifier into a third packet comprising the first RDMA data transmission message to obtain the first packet (Makhervaks discloses that the WQE posted to a shared send queue includes a descriptor (encapsulated identifier) configured to associate the WQE with a reliable communication channel that should be used for transmitting the identified message (third packet)) (Makhervaks, para. 20).
Regarding claim 7, Makhervaks and Tanimoto disclose the system of claim 6, wherein the first network device is further configured to obtain the first packet according to an RDMA protocol (Makhervaks, para. 25), and wherein the RDMA protocol comprises a wireless bandwidth (INFINIBAND) protocol (Makhervaks, para. 25), a RDMA over Converged Ethernet (RoCE) version 1 (v1), a RoCE version 2 (v2), or Internet wide area RDMA protocol (IWARP) (Makhervaks, para. 25).
Regarding claim 8, Makhervaks discloses a method wherein the method comprises:
obtaining, from a shared send queue, a first remote direct memory access (RDMA) data transmission message of a first process (Makhervaks discloses that the posting of the WQE to the shared send queue and to use the control information (process), data descriptor(s), and reliable communication channel descriptor to generate a protocol message (RDMA data transmission message)) (Makhervaks, para. 21);
sending, to a second network device disposed on a second host, a first packet comprising the first RDMA data transmission message (Makhervaks discloses that the message may be segmented into a sequence of packets (first packet) for transmission from the host communication device to a destination device) (Makhervaks, para. 48) and a first identifier (Makhervaks discloses that the posting of the WQE to the shared send queue and to use the control information (process), data descriptor(s) (first identifier), and reliable communication channel descriptor to generate a protocol message) (Makhervaks, para. 21);
receiving, from the second network device based on the first packet, a second packet comprising the first identifier and a feedback message (Makhervaks discloses that the packets are acknowledged and a transmission associated with a WQE may complete when all packets (second packet) associated with a message have been sent and receipt acknowledged (feedback message) by the destination device) (Makhervaks, para. 42), wherein the feedback message indicates a completion status of the first RDMA data transmission message (Makhervaks discloses that the positive acknowledgement may indicate that sent packet was received accurately by the destination device) (Makhervaks, para. 46); and
notifying, based on the first identifier and the feedback message, the first process of the completion status (Makhervaks discloses that the positive acknowledgement may indicate (notify) that sent packet was received accurately by the destination device) (Makhervaks, para. 46).
Makhervaks does not explicitly disclose sending, to a second network device disposed on a second host, a first packet comprising a first identifier that identifies the first process among a plurality of processes sharing the shared send queue.
In analogous art, Tanimoto teaches sending, to a second network device disposed on a second host, a first packet comprising a first identifier (Tanimoto discloses that the packet includes information indicating a packet length, a destination buffer ID, a destination node ID, a source buffer ID that may be a source process ID, a source node ID, a type value, a sequence number, and a payload) (Tanimoto, para. 44) that identifies the first process among a plurality of processes sharing the shared send queue (Tanimoto discloses that the buffer 107 is a shared receive buffer (e.g., SRQ); that when the node ID and process ID exists, the processing unit 129 transmit a request to retransmit the packet to a transmission process identified by the process ID) (Tanimoto, para. 38, 68).
Therefore, it would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention to take the teachings of Tanimoto related to sending a packet comprising an identifier that identifies the process with sharing the shared send queue and to combine with Makhervaks in order to increase the efficiency of retransmitting packets when overflow occurs form the shared receive buffer (Tanimoto, para. 78).
Regarding claim 9, Makhervaks and Tanimoto disclose the method of claim 8, wherein the first packet and the second packet further comprise a second identifier identifying the first RDMA data transmission message from second RDMA data transmission messages of the first process (Makhervaks discloses that the application with data to transmit may post a work queue element (WQE) to the shared send queue 316; each WQE includes a descriptor (identifier) configured to identify the respective data to be transmitted) (Makhervaks, para. 41), and wherein notifying the first process of the completion status comprises further notifying, based on the second identifier, the first process of the completion status (Makhervaks discloses that the communication device 302 monitors pending completion bits for each SSQ transmit history information store entry and marks (notify) completion in the order corresponding to a work queue element posting order in the shared send queue) (Makhervaks, para. 34).
Regarding claim 10, Makhervaks and Tanimoto disclose the method of claim 8, wherein obtaining the first RDMA data transmission message comprises:
obtaining, from the shared send queue, a second work request of the first process and describing the first RDMA data transmission message (Makhervaks discloses that the application has data to send to a destination endpoint, where the application generates a work request, which includes control information describing message type and message attributes, descriptors that indicate a location in memory where data to be transmitted is stored, an amount of data to be transmitted, a designator corresponding to a reliable communication channel to be used, and/or a designator indicating a destination device that is to receive the message) (Makhervaks, para. 44; Fig. 4A-4B); and
further obtaining, based on the second work request, the first RDMA data transmission message (Makhervaks discloses that the message may be segmented into a sequence of packets for transmission from the host communication device to a destination device) (Makhervaks, para. 48).
Regarding claim 11, Makhervaks and Tanimoto disclose the method of claim 8, further comprising:
determining, from first completion queues based on the first identifier, a second completion queue corresponding to the first process (Makhervaks discloses that the WQE stores 320A-M are configured to facilitate WQE completions when the completion order of the WQEs posted to the SSQ 316 corresponds to the transmission order of the messages on the communication channel and per destination basis) (Makhervaks, para. 38); and
writing, based on the feedback message, a work completion element into the second completion queue (Makhervaks discloses that the posting a work queue element (WQEx) corresponding to the work request to shared send queue, wherein the WQEx includes a reliable communication channel and a reliable communication channel identifier, a location in a transmit (write) history information store associated with the SSQ to be allocated for the WQEx) (Makhervaks, para. 45) to notify the first process of the completion status (Makhervaks discloses that the WQE stores 320A-M are configured to facilitate WQE completions when the completion order of the WQEs posted to the SSQ 316 corresponds to the transmission order of the messages on the communication channel and per destination basis) (Makhervaks, para. 38).
Regarding claim 12, Makhervaks and Tanimoto disclose the method of claim 8, further comprising creating, in a memory, the shared send queue (Makhervaks, para. 27).
Regarding claim 13, Makhervaks and Tanimoto disclose the method of claim 8, wherein before sending the first packet, the method further comprises encapsulating the first identifier into a third packet comprising the first RDMA data transmission message to obtain the first packet (Makhervaks discloses that the WQE posted to a shared send queue includes a descriptor (encapsulated identifier) configured to associate the WQE with a reliable communication channel that should be used for transmitting the identified message (third packet)) (Makhervaks, para. 20).
Regarding claim 14, Makhervaks and Tanimoto disclose the method of claim 13, further comprising further obtaining the first packet according to an RDMA protocol (Makhervaks, para. 25), wherein the RDMA protocol comprises a wireless bandwidth (INFINIBAND) protocol (Makhervaks, para. 25), a RDMA over Converged Ethernet (RoCE) version 1 (v1), a RoCE version 2 (v2), or Internet wide area RDMA protocol (IWARP) (Makhervaks, para. 25).
Regarding claim 15, Makhervaks discloses a first network device disposed on a first host comprising:
a first memory (Makhervaks, para. 27) configured to store instructions; and
a processor (Makhervaks, para. 24) coupled to the first memory and configured to execute the instructions to cause the first network device to:
obtain, from a shared send queue, a first remote direct memory access (RDMA) data transmission message of a first process (Makhervaks discloses that the posting of the WQE to the shared send queue and to use the control information (process), data descriptor(s), and reliable communication channel descriptor to generate a protocol message (RDMA data transmission message)) (Makhervaks, para. 21);
send, to a second network device, a first packet comprising the first RDMA data transmission message (Makhervaks discloses that the message may be segmented into a sequence of packets (first packet) for transmission from the host communication device to a destination device) (Makhervaks, para. 48) and a first identifier (Makhervaks discloses that the posting of the WQE to the shared send queue and to use the control information (process), data descriptor(s) (first identifier), and reliable communication channel descriptor to generate a protocol message) (Makhervaks, para. 21);
receive, from the second network device based on the first packet, a second packet comprising the first identifier and a feedback message (Makhervaks discloses that the packets are acknowledged, and a transmission associated with a WQE may complete when all packets (second packet) associated with a message have been sent and receipt acknowledged (feedback message) by the destination device) (Makhervaks, para. 42), wherein the feedback message indicates a completion status of the first RDMA data transmission message (Makhervaks discloses that the positive acknowledgement may indicate that sent packet was received accurately by the destination device) (Makhervaks, para. 46); and
notify, based on the first identifier and the feedback message, the first process of the completion status (Makhervaks discloses that the positive acknowledgement may indicate (notify) that sent packet was received accurately by the destination device) (Makhervaks, para. 46).
Makhervaks does not explicitly disclose send, to a second network device, a first packet comprising a first identifier that identifies the first process among a plurality of processes sharing the shared send queue.
In analogous art, Narayan teaches send, to a second network device, a first packet comprising a first identifier (Tanimoto discloses that the packet includes information indicating a packet length, a destination buffer ID, a destination node ID, a source buffer ID that may be a source process ID, a source node ID, a type value, a sequence number, and a payload) (Tanimoto, para. 44) that identifies the first process among a plurality of processes sharing the shared send queue (Tanimoto discloses that the buffer 107 is a shared receive buffer (e.g., SRQ); that when the node ID and process ID exists, the processing unit 129 transmit a request to retransmit the packet to a transmission process identified by the process ID) (Tanimoto, para. 38, 68).
Therefore, it would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention to take the teachings of Tanimoto related to sending a packet comprising an identifier that identifies the process with sharing the shared send queue and to combine with Makhervaks in order to increase the efficiency of retransmitting packets when overflow occurs form the shared receive buffer (Tanimoto, para. 78).
Regarding claim 16, Makhervaks and Tanimoto disclose the first network device of claim 15, wherein the first packet and the second packet further comprise a second identifier identifying the first RDMA data transmission message from second RDMA data transmission messages of the first process (Makhervaks discloses that the application with data to transmit may post a work queue element (WQE) to the shared send queue 316; each WQE includes a descriptor (identifier) configured to identify the respective data to be transmitted) (Makhervaks, para. 41), and wherein the processor is further configured to execute the instructions to cause the first network device to further notify, based on the second identifier, the first process of the completion status (Makhervaks discloses that the communication device 302 monitors pending completion bits for each SSQ transmit history information store entry and marks (notify) completion in the order corresponding to a work queue element posting order in the shared send queue) (Makhervaks, para. 34).
Regarding claim 17, Makhervaks and Tanimoto disclose the first network device of claim 15, wherein the processor is further configured to execute the instructions to cause the first network device to:
obtain, from the shared send queue, a second work request of the first process that describes the first RDMA data transmission message (Makhervaks discloses that the application has data to send to a destination endpoint, where the application generates a work request, which includes control information describing message type and message attributes, descriptors that indicate a location in memory where data to be transmitted is stored, an amount of data to be transmitted, a designator corresponding to a reliable communication channel to be used, and/or a designator indicating a destination device that is to receive the message) (Makhervaks, para. 44; Fig. 4A-4B); and
obtain, based on the second work request, the first RDMA data transmission message (Makhervaks discloses that the message may be segmented into a sequence of packets for transmission from the host communication device to a destination device) (Makhervaks, para. 48).
Regarding claim 18, Makhervaks and Tanimoto disclose the first network device of claim 15, wherein the processor is further configured to execute the instructions to cause the first network device to:
determine, from first completion queues based on the first identifier, a second completion queue corresponding to the first process (Makhervaks discloses that the WQE stores 320A-M are configured to facilitate WQE completions when the completion order of the WQEs posted to the SSQ 316 corresponds to the transmission order of the messages on the communication channel and per destination basis) (Makhervaks, para. 38); and
write, based on the feedback message, a work completion element into the second completion queue (Makhervaks discloses that the posting a work queue element (WQEx) corresponding to the work request to shared send queue, wherein the WQEx includes a reliable communication channel and a reliable communication channel identifier, a location in a transmit (write) history information store associated with the SSQ to be allocated for the WQEx) (Makhervaks, para. 45), wherein the work completion element describes the completion status (Makhervaks discloses that the WQE stores 320A-M are configured to facilitate WQE completions when the completion order of the WQEs posted to the SSQ 316 corresponds to the transmission order of the messages on the communication channel and per destination basis) (Makhervaks, para. 38).
Regarding claim 19, Makhervaks and Tanimoto disclose the first network device of claim 15, wherein the processor is further configured to execute the instructions to cause the first network device to create, in a second memory communicatively coupled to the first network device, the shared send queue (Makhervaks, para. 27).
Regarding claim 20, Makhervaks and Tanimoto disclose the first network device of claim 15, wherein before sending the first packet, the processor is further configured to execute the instructions to cause the first network device to encapsulate, according to an RDMA protocol (Makhervaks, para. 25), the first identifier into a third packet comprising the first RDMA data transmission message to obtain the first packet (Makhervaks discloses that the WQE posted to a shared send queue includes a descriptor (encapsulated identifier) configured to associate the WQE with a reliable communication channel that should be used for transmitting the identified message (third packet)) (Makhervaks, para. 20), and wherein the RDMA protocol comprises a wireless bandwidth (INFINIBAND) protocol (Makhervaks, para. 25), an RDMA over Converged Ethernet (RoCE) protocol using an aggregated Ethernet version 1 (RoCE1), an RoCE protocol using an aggregated Ethernet version 2 (RoCE2), or an Internet wide area RDMA protocol (IWARP) (Makhervaks, para. 25).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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 ANDREW WOO whose telephone number is (571)270-7521. The examiner can normally be reached Telework 9:00AM-6:00PM | IFP M-F 9:00AM-6: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, Umar Cheema can be reached at 571-270-3037. 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.
/A.W./Examiner, Art Unit 2458
/UMAR CHEEMA/Supervisory Patent Examiner, Art Unit 2458