IP Library Granted Patent US 10,142,425
Granted Patent B2
US 10,142,425 · App. 15/162,019 · Granted Nov 27, 2018

Session reliability for a redirected USB device

Inventor: Gokul Thiruchengode Vajravel (Bangalore, IN)
Assignee: Wyse Technology L.L.C.
H04L67/141G06F9/45558G06F13/1642H04L67/145G06F2009/45579
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,142,425
App. No.
15/162,019
Granted
Nov 27, 2018
Kind
B2
Abstract

Session reliability can be improved when a USB device is redirected over a remote session. If a remote session is disconnected while a USB device is redirected over the remote session, a server-side agent and a client-side proxy will both receive a session disconnection notification. In response to this session disconnection notification, the agent and the proxy can each queue any I/O requests pertaining to a USB device that was being redirected over the now-disconnected remote session and commence waiting for a specified period of time. If the disconnected remote session is restored within the specified period of time, the agent and the proxy can send the queued I/O requests over the remote session. Otherwise, the agent and proxy can cause the queued I/O requests to be completed with the proper error status or discarded and can take appropriate steps to remove the device from the server and connect the device to the client.

Claims (40)

1. A method, implemented by a client-side proxy in a virtual desktop infrastructure environment, for enabling I/O requests pertaining to a device that is redirected to a server over a remote session to be resumed when the remote session has become disconnected and then restored, the method comprising:

establishing a remote session with an agent on a server;

redirecting a device over the remote session;

detecting that the remote session has been disconnected;

in response to the remote session being disconnected, queueing one or more I/O requests received from the device; and

determining whether the remote session is restored within a specified amount of time such that:

when the remote session is restored within the specified amount of time, the proxy sends the queued I/O requests over the remote session to the agent; and

when the remote session is not restored within the specified amount of time, the proxy discards the queued I/O requests and causes the device to be connected to the client.

2. The method of claim 1 , wherein the device is a unidirectional USB device.

3. The method of claim 1 , wherein detecting that the remote session has been disconnected comprises receiving a session disconnect notification.

4. The method of claim 1 , wherein the specified amount of time comprises a session reconnection time period during which the proxy attempts to restore the remote session.

5. The method of claim 1 , wherein, when the remote session is restored within the specified amount of time, the proxy reconnects the device to the server.

6. The method of claim 5 , wherein reconnecting the device to the server comprises sending device information to the agent.

7. The method of claim 1 , wherein discarding the queued I/O requests comprises completing at least one of the queued I/O requests with an error status.

8. The method of claim 1 , wherein causing the device to be connected to the client comprises initiating a cycle-port I/O control request.

9. A method, implemented by a server-side agent in a virtual desktop infrastructure environment, for enabling I/O requests pertaining to a device that is redirected to the server over a remote session to be resumed when the remote session has become disconnected and then restored, the method comprising:

establishing a remote session with a proxy on a client;

redirecting a device over the remote session;

detecting that the remote session has been disconnected;

in response to the remote session being disconnected, queueing one or more I/O requests directed to the device; and

determining whether the remote session is restored within a specified amount of time such that:

when the remote session is restored within the specified amount of time, the agent sends the queued I/O requests over the remote session to the proxy; and

when the remote session is not restored within the specified amount of time, the agent completes the I/O requests with an error status and initiates a device removal process to remove the redirected device from the server.

10. The method of claim 9 , wherein the device is a unidirectional USB device.

11. The method of claim 9 , wherein detecting that the remote session has been disconnected comprises receiving a session disconnect notification.

12. The method of claim 9 , wherein the specified amount of time comprises a session reconnection time period during which the agent attempts to restore the remote session.

13. The method of claim 9 , wherein, when the remote session is restored within the specified amount of time, the agent determines whether the device is also reconnected over the remote session.

14. The method of claim 13 , wherein determining whether the device is also reconnected over the remote session comprises comparing device information received from the proxy after the remote session is restored to device information that was received from the agent before the remote session was disconnected.

15. The method of claim 9 , wherein, in response to the remote session being disconnected, the agent also instructs a virtual bus driver to cause any new I/O requests directed to the device to be completed with a retry error status.

16. The method of claim 15 , wherein, when the remote session is restored within the specified amount of time, the agent also instructs the virtual bus driver to allow any new I/O requests directed to the device to be processed and forwarded to the agent.

17. A virtual desktop infrastructure environment comprising:

a proxy that is configured to execute on a client; and

an agent that is configured to execute on a server, the proxy and agent interacting to establish a remote session including to redirect a device to the server for use within the remote session;

wherein, when the remote session is disconnected, the proxy and the agent are each configured to enable I/O requests pertaining to the device to be resumed after the remote session is restored by performing the following:

queuing any I/O requests pertaining to the device that are received after the remote session is disconnected;

waiting for a specified amount of time after the remote session is disconnected; and

when the remote session is restored prior to the specified amount of time elapsing, sending the queued I/O requests over the restored remote session.

18. The virtual desktop infrastructure environment of claim 17 , wherein, in response to the remote session being disconnected, the agent is further configured to instruct a virtual bus driver to cause any new I/O requests pertaining to the device that are received during the specified amount of time to be completed with a retry error status.

19. The virtual desktop infrastructure environment of claim 18 , wherein, when the remote session is restored prior to the specified amount of time elapsing, the agent is further configured to instruct the virtual bus driver to cease causing any new I/O requests pertaining to the device to be completed with a retry error status.

20. The virtual desktop infrastructure environment of claim 17 , wherein, when the remote session is not restored prior to the specified amount of time elapsing, the agent completes the I/O requests queued at the server with an error status and removes the device from the server, and the proxy discards the I/O requests queued at the client and causes the device to be connected to the client.

Assignments (16)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
MERGER Recorded May 9, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 059912/0109 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF SEC. INT. IN PATENTS (NOTES) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040026/0710 →
RELEASE OF SEC. INT. IN PATENTS (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0329 →
RELEASE OF SEC. INT. IN PATENTS (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040013/0733 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 039644/0084 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 039719/0889 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Aug 10, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 039643/0953 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2016
From: VAJRAVEL, GOKUL THIRUCHENGODE
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 038688/0333 →
Continuity (1)
Related Publication 20170339234A1 · Nov 23, 2017