US 11,940,938 B2
Hypervisor bridging of different versions of an IO protocol
Matthew H. Fredette, Belmont, MA (US)
Assigned to Dell Products, L.P., Hopkinton, MA (US)
Filed by Dell Products, L.P., Hopkinton, MA (US)
Filed on Jul. 1, 2022, as Appl. No. 17/855,907.
Prior Publication US 2024/0004820 A1, Jan. 4, 2024
Int. Cl. G06F 13/38 (2006.01); G06F 9/455 (2018.01); G06F 13/40 (2006.01)
CPC G06F 13/387 (2013.01) [G06F 9/45545 (2013.01); G06F 9/45558 (2013.01); G06F 13/4027 (2013.01); G06F 2009/45579 (2013.01)] 12 Claims
OG exemplary drawing
 
1. A non-transitory tangible computer readable storage medium having stored thereon a computer program for hypervisor bridging of different versions of an I/O protocol, the computer program including a set of instructions which, when executed by a computer, cause the computer to perform a method comprising the steps of:
receiving, by the hypervisor, a first request from a guest using a first version of the I/O protocol to create a first protocol admin Submission Queue (ASQ) and first protocol admin Completion Queue (ASQ) to be used to handle administrative commands using the first version of the I/O protocol;
in response to receiving the first request, transmitting, by the hypervisor, a second request to a second protocol endpoint using a second version of the I/O protocol to create a second protocol admin Submission Queue (ASQ) and second protocol admin Completion Queue (ACQ) to be used to handle administrative commands using the second version of the I/O protocol;
receiving a confirmation message, from the second protocol endpoint indicating that the second protocol ASQ and second protocol ACQ have been configured;
in response to receiving the confirmation message, changing a status of the first protocol ASQ and the first protocol ACQ to activate the first protocol ASQ and first protocol ACQ;
receiving a third request from the guest using the first version of the I/O protocol to create a first protocol I/O Completion Queue (I/O CQ) to be used to handle I/O operations using the first version of the I/O protocol;
in response to receiving the third request, transmitting, by the hypervisor, a fourth request to the second protocol endpoint using the second version of the I/O protocol to create a second protocol I/O Submission Queue (I/O SQ) and corresponding second protocol I/O Completion Queue (I/O CQ) to be used to handle I/O operations using the second version of the I/O protocol;
receiving a fifth request from the guest using the first version of the I/O protocol to create a first protocol I/O Submission Queue (I/O SQ) to be associated with the first protocol I/O Completion Queue (I/O CQ);
in response to receiving the fifth request:
transmitting a dummy request to the second protocol endpoint using the second version of the I/O protocol;
receiving a response to the dummy request; and
in response to receiving the response to the dummy request, changing a status of the first protocol I/O SQ to activate the first protocol I/O SQ;
receiving, by the hypervisor, a sixth request from the guest using the first version of the I/O protocol to delete the first protocol I/O SQ; and
in response to receiving the fifth request, deactivating the first protocol I/O SQ without deleting the second protocol I/O Submission Queue (I/O SQ).