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:49:52 -0500 [thread overview]
Message-ID: <4CB491B0.3050104@codemonkey.ws> (raw)
In-Reply-To: <1422376658.217751286901819957.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com>
On 10/12/2010 11:43 AM, Alon Levy wrote:
> ----- "Anthony Liguori"<anthony@codemonkey.ws> wrote:
>
>
>> 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.
>>
> There are two devices:
> smart card reader, aka CCID device - emulated inside qemu. Submitted.
> smart card - emulated outside of qemu. Fully available, open source separate project.
>
And how does the smart card state get migrated during migration? How do
you keep it synced with QEMU?
I don't understand the use-case behind this. Is this so that a local
physical smart card can be passed through to a guest from a Spice client
and when migration happens, the QEMU instance connects back to the Spice
client? So the device is never actually migrated?
Regards,
Anthony Liguori
next prev parent reply other threads:[~2010-10-12 16:50 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <593949580.216281286900989465.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com>
2010-10-12 16:43 ` [Qemu-devel] [PATCH 0/2] usb-ccid device (v2) Alon Levy
2010-10-12 16:49 ` Anthony Liguori [this message]
2010-10-12 17:09 ` Alon Levy
2010-10-12 18:23 ` Anthony Liguori
2010-10-13 11:54 ` Alon Levy
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] <1045788737.212361286898758903.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com>
2010-10-12 16:03 ` Alon Levy
2010-10-12 16:21 ` Anthony Liguori
-- 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=4CB491B0.3050104@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).