[Spice-devel] Announcing usbredir-0.3.2

Hans de Goede hdegoede at redhat.com
Tue Jan 3 08:11:09 PST 2012


Hi,

On 01/03/2012 04:52 PM, Alon Levy wrote:
> On Tue, Jan 03, 2012 at 04:45:11PM +0100, Hans de Goede wrote:
>> Hi,
>>
>> On 01/03/2012 04:36 PM, Alon Levy wrote:
>>> On Tue, Jan 03, 2012 at 04:29:21PM +0100, Hans de Goede wrote:
>>>> Hi All,
>>>>
>>>> I'm happy to announce a new official release of usbredir, version 0.3.2
>>>>
>>>> Changes:
>>>> --------
>>>>
>>>> -Switched to automake/autoconf/libtool based make system (Christophe Fergeau)
>>>>
>>>> -usbredirparser:
>>>>   -limited multi-thread safeness, see README.multi-thread
>>>>   -extend the device_connect packet header with a device_version field
>>>>    This new field is only send / received if both sides have the (new)
>>>>    usb_redir_cap_connect_device_version capability.
>>>
>>> Not related to usbredir protocol specifically, but what is your intended
>>> usage for both the version and the caps? only bump the version in
>>> extreme cases (change of header, reuse of an existing message with a
>>> different meaning) ?
>>
>> There is no version field! There is a free form version string used for logging
>> the version (and type ie usbredirserver versus spice-gtk) of the peer. There
>> is no machine checked version!
>>
>> So the intention is to always stay compatible, only adding new caps when
>> necessary.
>>
>
> Ok, that clarifies it, thanks. I don't believe I'm the only one to draw
> this conclusion, since I can't find any documentation of this intended
> use (looking at the commit adding device_version_bcd).
>
> Another question - where is the free form string you mention, I only see
> uint16_t device_version_bcd.

Ah I understand the confusion now, this new field of the device_connect! message
sends accross the version the SB device reports is its version in its USB device
descriptor.

The free form version string is in the hello packet which each side sends as soon
as the connection between the 2 sides is established. Note that there are
2 different levels of connected here:
1) The 2 sides of the usbredir channel are connected
2) A device is connected to the channel on the usb host side

When 1) is established both sides send a hello packet, when 2) happens
a device_connect message is send from the usbredirhost to the usbredirguest
(which can happen multiple times during the lifetime of 1).

Regards,

Hans


More information about the Spice-devel mailing list