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 . The application has been examined. Claims 1-20 are pending.
Priority
Acknowledgment is made of applicant’s claim for foreign priority under 35 U.S.C. 119 (a)-(d). The certified copy has been filed in parent Application No. CN 202111045146.4, filed on 09/07/2021. Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 12/27/2024, 01/22/2025, and 07/08/2025. The submission is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Claim Objections
Claims 7-8, 14-15 are objected to because of the following informalities: lack of terminology consistency
Claim 7, line 3, recites “wireless bandwidth protocol, RDMA over Converged Ethernet (RoCE) version 1 (v1), RoCE version 2 (v2)” and should be changed to -- wireless bandwidth (INFINIBAND) protocol, a RDMA over Converged Ethernet (RoCE) version 1 (v1), a RoCE version 2 (v2) --.
Similar changes are suggested for subsequent claims.
Claim 8, line 3, recites “a first process,;” and should be changed to -- a first process[[,]];--.
Claim 15, line 1, recites “a first host and comprising:” and should be changed to -- a first host [[and]] comprising:--.
Appropriate correction is required.
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 7 and 14 are 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 pre-AIA the applicant regards as the invention.
Claim 7, line 4, is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite because the limitation recites “IWARP" renders the claim to be unclear in that “IWARP” is not initially defined. For examining purposes, Examiner is interpreting “IWARP" to be the “Internet wide area RDMA protocol”.
Claim 14, line 3, is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite because the limitation recites “IWARP" renders the claim to be unclear in that “IWARP” is not initially defined. For examining purposes, Examiner is interpreting “IWARP" to be the “Internet wide area RDMA protocol”.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-20 are rejected under 35 U.S.C. 102(a)(1) as being unpatentable by Makhervaks et al. (2014/0310369, hereinafter Makhervaks).
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 corresponding to the 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) (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 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).
Regarding claim 2, Makhervaks discloses 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 discloses 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 discloses 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 discloses 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 discloses 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 discloses 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 protocol (Makhervaks, para. 25), RDMA over Converged Ethernet (RoCE) version 1 (v1), RoCE version 2 (v2), or 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 corresponding to the 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) (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).
Regarding claim 9, Makhervaks discloses 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 discloses 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 discloses 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 discloses the method of claim 8, further comprising creating, in a memory communicatively coupled to the first network device, the shared send queue (Makhervaks, para. 27).
Regarding claim 13, Makhervaks discloses 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 discloses 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 protocol (Makhervaks, para. 25), RDMA over Converged Ethernet (RoCE) version 1 (v1), RoCE version 2 (v2), or IWARP (Makhervaks, para. 25).
Regarding claim 15, Makhervaks discloses a first network device disposed on a first host and 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 corresponding to the 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) (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).
Regarding claim 16, Makhervaks discloses 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 discloses 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 discloses 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 discloses 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 discloses 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
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Pandit et al. (2016/0026604) discloses the support of the communication of RDMA message packets.
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.
/ANDREW WOO/Examiner, Art Unit 2441