From: Anthony Liguori <anthony@codemonkey.ws>
To: Alon Levy <alevy@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 0/2] usb-ccid device (v2)
Date: Tue, 12 Oct 2010 11:21:24 -0500 [thread overview]
Message-ID: <4CB48B04.6040905@codemonkey.ws> (raw)
In-Reply-To: <1218420653.213741286899380859.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com>
On 10/12/2010 11:03 AM, Alon Levy wrote:
> ----- "Anthony Liguori"<anthony@codemonkey.ws> wrote:
>
>
>> On 10/12/2010 07:58 AM, Alon Levy wrote:
>>
>>> This patch adds a new device, it is described in full in the second
>>>
>> patch
>>
>>> intro and also in the documentation in docs. In brief it provides a
>>>
>> standard
>>
>>> smart card reader device.
>>>
>>> The first patch is the configure change and docs.
>>> The second patch contains the actual device, I couldn't figure out a
>>>
>> good
>>
>>> way to split it to ease review.
>>>
>>> v2 changed:
>>> * all QSIMPLEQ turned into fixed sized rings
>>> * all allocated buffers turned into fixed size buffers
>>> * added migration support
>>> * added a message to tell client qemu has migrated to ip:port
>>> * for lack of monitor commands ip:port are 0:0, which causes the
>>>
>> updated
>>
>>> vscclient to connect to one port higher on the same host. will
>>>
>> add monitor
>>
>>> commands in a separate patch. tested with current setup.
>>>
>>>
>> This is way too much magic to live within a device. Devices manage
>> reconnecting themselves during migration. When you create the
>> destination qemu instance, you specify what to connect to.
>>
>> IOW,
>>
>> On the source:
>>
>> qemu -chardev tcp:localhost:1025,id=foo -usbdevice ccid,chardev=foo
>> ...
>>
>> On the destination:
>>
>> qemu -chardev tcp:localhost:1026,id=foo -usbdevice ccid,chardev=foo
>> -incoming tcp:0.0.0.0:1024 ...
>>
>> A connection happens when the device is created.
>>
>> But now I'm even further confused then when I first reviewed it.. If
>>
>> you're now supporting migration, does that mean that you're relying on
>>
>> the daemon to emulate the device?
>>
>>
> Let me try to clarify this. Nothing has changed since the last patch except
> for what's in the notes, i.e. migration support. The device I'm adding is a
> reader. The reader is just a pipe between smart cards and the guest operating
> system. The smart card logic does live outside of this device, and is available
> in the cac_card sources at http://cgit.freedesktop.org/~alon/cac_card/ (all of
> this is in docs/usb_ccid.txt).
>
> So when I speak of vscclient, I'm talking of an application that emulates a smart
> card and initiates a tcp connection to qemu that connects to the usb-ccid device.
> vscclient is also in the cac_card sources.
>
Okay, let me be clear. We shouldn't be doing device emulation outside
of QEMU's source tree--at least, not in this type of context. External
devices present a great deal of challenges and we shouldn't just
approach it in an ad-hoc fashion.
I'm not opposed to passthrough although I'd prefer QEMU to talk to the
device directly instead of going through a daemon.
There's a lot of delicate integration between QEMU and a device and if a
device lives outside of QEMU, it makes it extremely difficult for us to
influence changes to that device to support QEMU new features.
> Regarding the method of reconnection: You are absolutely right that if I have qemu
> connect to the remote instead of the other way around then I remove the need to inform
> vscclient of the new address. But the way it stands requires the client to know the
> address of the destination qemu. I have to inform it somehow. You are saying that
> devices shouldn't know this information? ok, that's why I talked about monitor commands.
> I come from the world of spice - in spice we use monitor commands for this.
And none of that is upstream.
Regards,
Anthony Liguori
> I could
> change this to have qemu connect to vscclient, but I don't see the logic in general -
> sometimes you do want to have a chardev that is listening (the fact that it is implemented
> suggests someone found it useful), if you then migrate you have the same problem I'm
> solving.
>
>
>> Regards,
>>
>> Anthony Liguori
>>
>>
>>> Alon Levy (2):
>>> usb-ccid: add CCID device. add configure option.
>>> usb-ccid: add CCID device (device itself)
>>>
>>> Makefile.objs | 1 +
>>> configure | 12 +
>>> docs/usb-ccid.txt | 115 +++++
>>> hw/usb-ccid.c | 1376
>>>
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++
>>
>>> hw/vscard_common.h | 131 +++++
>>> 5 files changed, 1635 insertions(+), 0 deletions(-)
>>> create mode 100644 docs/usb-ccid.txt
>>> create mode 100644 hw/usb-ccid.c
>>> create mode 100644 hw/vscard_common.h
>>>
>>>
>>>
next prev parent reply other threads:[~2010-10-12 16:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1045788737.212361286898758903.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com>
2010-10-12 16:03 ` [Qemu-devel] [PATCH 0/2] usb-ccid device (v2) Alon Levy
2010-10-12 16:21 ` Anthony Liguori [this message]
2010-10-14 18:37 Robert Relyea
2010-10-14 18:52 ` Anthony Liguori
2010-10-14 22:03 ` Robert Relyea
2010-10-14 22:16 ` Anthony Liguori
2010-10-15 0:16 ` Robert Relyea
[not found] <593949580.216281286900989465.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com>
2010-10-12 16:43 ` Alon Levy
2010-10-12 16:49 ` Anthony Liguori
2010-10-12 17:09 ` Alon Levy
2010-10-12 18:23 ` Anthony Liguori
2010-10-13 11:54 ` Alon Levy
-- strict thread matches above, loose matches on Subject: below --
2010-10-12 12:58 Alon Levy
2010-10-12 13:24 ` Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CB48B04.6040905@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=alevy@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).