Any insights on the USB redirection part of the SunRay protocol?

87 views
Skip to first unread message

Nick M

unread,
Oct 10, 2010, 2:37:00 PM10/10/10
to jOpenRay
I started my own attempt at implementing a VirtualBox RDP <-> SunRay
connector. I am primarily interested in USB redirection and
forwarding; I am interested in any insights into that part of the ALP
protocol. I started deciphering some of the utdevmgr protocol, but of
course UDP traffic is still the hard nut to crack. But I would love
any tips and hints to help along from fellow tinkerers.

Just released some proof-of-concept code at http://lens.sf.net, just
for gfx traffic. It still has flow control issues, too. So it's not
really usable by anyone else but me...

jOpenRay code was heavily consulted (not borrowed, though), thanks a
lot for your work! I tried to keep the ALP part of the project as
modular as I can, maybe making it into a reusable library eventually.

Cheers!
Nick

Guillaume Maillard

unread,
Oct 11, 2010, 6:03:19 AM10/11/10
to jope...@googlegroups.com
Hi,

I think you pushed the "deciphering" to its limits,
to go further we need the specs... something we could
have under NDA if Sun was still Sun...

To buy a SunRay is now a real challenge :)

About USB, I think Sun engineers had no other choice than
encapsulating the RAW USB traffic in UDP packet.
If you find a way to know what is the RAW USB traffic sent
it will not take long to understand how it is encapsulated...

Regards,
Guillaume



2010/10/10 Nick M <ube...@gmail.com>

nikiwaibel

unread,
Oct 11, 2010, 9:45:16 AM10/11/10
to jOpenRay
you may want to look at
http://softray.sourceforge.net/Main_Page
http://softray.sourceforge.net/ALP
on which i've tried to consolidate all info.

feel free to add a wiki user and contribute!

niki

On Oct 10, 8:37 pm, Nick M <uber...@gmail.com> wrote:
> I started my own attempt at implementing a VirtualBox RDP <-> SunRay
> connector. I am primarily interested in USB redirection and
> forwarding; I am interested in any insights into that part of the ALP
> protocol. I started deciphering some of the utdevmgr protocol, but of
> course UDP traffic is still the hard nut to crack. But I would love
> any tips and hints to help along from fellow tinkerers.
>
> Just released some proof-of-concept code athttp://lens.sf.net, just

Nick M

unread,
Oct 11, 2010, 11:03:14 PM10/11/10
to jOpenRay
Hi, Niki, your Softray Wiki page was my other primary protocol
information source so far. Thanks a lot for your work, your write-up
was great! Did you use the resources from http://www.leonerd.org.uk/sunray/?
I was going to add a couple of things to the Wiki, but kind of too
lazy to register, heh.

Guillaume, I agree with your hunch that raw USB data must be sent
directly by SRSS. The USB spec defines a pretty standard unified
format for all its data, so hopefully it should be easy to pick out in
network traffic.

I wonder mainly about flow control and lossless data transfer - USB is
supposed to be reliable like TCP; sending the data over UDP without
losing it seems like a challenging task. That to me seems like the
primary source of complications in SunRay packet format.

Cheers!
Nick

On Oct 11, 9:45 am, nikiwaibel <niki.wai...@gmail.com> wrote:
> you may want to look athttp://softray.sourceforge.net/Main_Pagehttp://softray.sourceforge.net/ALP

Niki Waibel

unread,
Oct 12, 2010, 6:46:17 PM10/12/10
to jope...@googlegroups.com
On Tue, Oct 12, 2010 at 05:03, Nick M <ube...@gmail.com> wrote:
> Hi, Niki, your Softray Wiki page was my other primary protocol
> information source so far. Thanks a lot for your work, your write-up
> was great!

that's good news. although i had no more time to develop the java
client, i hoped that someone could use my protocol findings.

> Did you use the resources from http://www.leonerd.org.uk/sunray/?

not at all. i've started long time ago looking at the (unencrypted)
protocol. then i thought (a) to improve my java skills and (b) to see
if i got things right regarding the protocol: write a software client.
at that time, suns soft client did not exist.

> I was going to add a couple of things to the Wiki, but kind of too
> lazy to register, heh.

please add things you know. it is crazy, if such info is distributed
in serveral places -- even worse, if it is on someones harddisk only.

unfort, i did not come as far to get to the ALDP (Appliance Link
Device Protocol).

> Guillaume, I agree with your hunch that raw USB data must be sent
> directly by SRSS. The USB spec defines a pretty standard unified
> format for all its data, so hopefully it should be easy to pick out in
> network traffic.

the ALDP should be fairly easy to get.

> I wonder mainly about flow control and lossless data transfer - USB is
> supposed to be reliable like TCP; sending the data over UDP without
> losing it seems like a challenging task. That to me seems like the
> primary source of complications in SunRay packet format.

i am not 100% sure, but it may be that you have to check
utdevmgrd 7011/tcp # SUNWut device manager
maybe all usb related traffic is over tcp. i've never traced that part.

good luck, nick -- and pls contribute.
niki

Reply all
Reply to author
Forward
0 new messages