[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 00/12] virtio-crypto: introduce framework and
From: |
Gonglei (Arei) |
Subject: |
Re: [Qemu-devel] [PATCH v6 00/12] virtio-crypto: introduce framework and device emulation |
Date: |
Mon, 10 Oct 2016 08:48:58 +0000 |
Oooops, incorrect git branch...
NACK, I will resend v6.
Regards,
-Gonglei
> -----Original Message-----
> From: Gonglei (Arei)
> Sent: Monday, October 10, 2016 4:44 PM
> To: address@hidden; address@hidden
> Cc: Luonengjun; address@hidden; address@hidden;
> address@hidden; address@hidden; Huangweidong (C); Wubin (H);
> address@hidden; address@hidden; address@hidden; Claudio
> Fontana; address@hidden; address@hidden; Zhoujian (jay, Euler);
> Hanweidong (Randy); Huangpeng (Peter); address@hidden;
> address@hidden; Gonglei (Arei)
> Subject: [PATCH v6 00/12] virtio-crypto: introduce framework and device
> emulation
>
> The virtio crypto is a virtual crypto device as well as a kind
> of virtual hardware accelerator for virtual machines. The
> encryption and decryption requests are placed in the data
> queue and handled by the real crypto accelerators finally.
> The second queue is the control queue used to create or
> destroy sessions for symmetric algorithms and control
> some advanced features in the future. The virtio crypto
> device provides the following crypto services: CIPHER,
> MAC, HASH, AEAD etc.
>
> TODO:
> - add vhost-user as a high performance cryptodev backend.
> - more crypto services support.
> - mirgration support.
>
> Changes since v5:
> - rebase the patch 14 in v5, using the correct at the beginning of whole
> patch
> serials. [Eric]
> - perfect algorithm chain support in patch 12.
> - more friendly error handler in both controlq and dataq.
> - drop patch "virtio-crypto: emulate virtio crypto as a legacy device by
> default"
> because
> we shouldn't support transitional virtio devices any more. [Michael]
> - drop patch "virtio-crypto-test: add qtest case for virtio-crypto" because
> libqtest doesn't support virtio-1.0 device yet.
> - rebase the patch set based on Michael's pull request:
> [PULL 00/33] virtio, pc: fixes and features
>
> Changes since v4: (Thanks to Stefan)
> - drop scatter-gather I/O identification in virtio crypto spec and
> corresponding
> code [Stefan]
> - remove qcrypto perfix for cryptdov stuff [Stefan]
> - use virtio_error() in virtio-crypto device's functions. [Stefan]
> - fix endianness handling. [Stefan]
> - use VMSTATE_VIRTIO_DEVICE() instead of calling register_savevm().
> [Stefan]
> - redefine DPRINTF in virtio-crypto.h [Stefan]
> - fix some typos [Stefan]
> - fix other farraginous problems suggested by Stefan.
>
> Changes since v3:
> - rename cryptodev-gcrypt to cryptodev-buitlin. [Daniel]
> - move cryptodev stuff from crypto/ directory to backends/ directory
> in order to keep the crypto subsystem influence by syetem
> emulators. [Daniel]
> - emulate virtio-crypto device as a legacy device by default in patch 11
> - introduce virtio-crypto qtest case in patch 12
> - add myself as cryptdoev backends mainatainer and vitio-crypto
> co-maintainer in patch 13
> - add CRT support for cryptodev-builtin, it based on my previous crypto
> patch serial queued by Daniel.
> https://lists.gnu.org/archive/html/qemu-devel/2016-09/msg06607.html
> - add queue_index for qcrypto_cryptodev_backend_sym_close_session()
>
> Changes since v2:
> According to Daniel's comments:
> - drop cryptodev kernel module as a cryptodev backend
> - rename crypto stuff to cryptodev stuff
> - change some files' license to GPLv2+
> - remove cryptodev command line instead of QOM to define the cryptodev
> backend
> - rename all functions and structures in crypto sub-directory.
> - add full inline documentation for cryptodev.h
> And:
> - drop crypto-queue.c [Paolo]
> - merge some patches
>
> Great thanks to Daniel and Paolo. Please review again, thanks!
>
> Changes since v1:
> - rmmove mixed endian-ness handler for virtio-crypto device, just
> use little-endian. [mst]
> - add sg list support according virtio-crypto spec v10 (will be posted soon).
> - fix a memory leak in session handler.
> - add a feature page link in qemu.org
> (http://qemu-project.org/Features/VirtioCrypto)
> - fix some trivial problems, sush as 's/Since 2.7/Since 2.8/g' in
> qapi-schema.json
> - rebase the latest qemu master tree.
>
>
> This patch series realize the framework and emulation of a new
> virtio crypto device, which is similar with virtio net device.
>
> - I introduce the cryptodev backend as the client of virtio crypto device
> which can be realized by different methods, such as
> cryptodev-backend-gcrypt in my series,
> vhost-crypto kernel module, vhost-user etc.
> - The patch set abides by the virtio crypto speccification.
> - The virtio crypto support symmetric algorithms (including CIPHER and
> algorithm chainning)
> at present, except HASH, MAC and AEAD services.
> - unsupport hot plug/unplug cryptodev backend at this moment.
>
> Firstly build QEMU with libgcrypt cryptography support.
>
> QEMU can then be started using the following parameters:
>
> qemu-system-x86_64 \
> [...] \
> -object cryptodev-backend-builtin,id=cryptodev0 \
> -device virtio-crypto-pci,id=crypto0,cryptodev=cryptodev0 \
> [...]
>
> The front-end linux kernel driver (Experimental at present) is publicly
> accessible
> from:
>
> https://github.com/gongleiarei/virtio-crypto-linux-driver.git
>
> After insmod virtio-crypto.ko, you can use cryptodev-linux test the crypto
> function
> in the guest. For example:
>
> linux-guest:/home/gonglei/cryptodev-linux/tests # ./cipher -
> requested cipher CRYPTO_AES_CBC, got cbc(aes) with driver
> virtio_crypto_aes_cbc
> AES Test passed
> requested cipher CRYPTO_AES_CBC, got cbc(aes) with driver
> virtio_crypto_aes_cbc
> requested cipher CRYPTO_AES_CBC, got cbc(aes) with driver
> virtio_crypto_aes_cbc
> Test passed
>
> QEMU code also can be accessible from:
>
> https://github.com/gongleiarei/qemu.git
>
> branch virtio-crypto
>
> For more information, please see:
> http://qemu-project.org/Features/VirtioCrypto
>
> Gonglei (12):
> virtio-crypto: introduce virtio_crypto.h
> cryptodev: introduce a new cryptodev backend
> virtio-crypto: add virtio crypto device emulation
> virtio-crypto-pci: add virtio crypto pci support
> virtio-crypto: set capacity of algorithms supported
> virtio-crypto: add control queue handler
> virtio-crypto: add data queue processing handler
> cryptodev: introduce an unified wrapper for crypto operation
> virtio-crypto: add myself as virtio-crypto and cryptodev backends
> maintainer
> virtio-crypto: perfect algorithms chainning support
> virtio-crypto: emulate virtio crypto as a legacy device by default
> virtio-crypto-test: add qtest case for virtio-crypto
>
> MAINTAINERS | 13 +
> backends/Makefile.objs | 1 +
> backends/cryptodev-builtin.c | 351 +++++++++++
> backends/cryptodev.c | 28 +-
> docs/specs/pci-ids.txt | 2 +
> hw/virtio/Makefile.objs | 2 +
> hw/virtio/virtio-crypto-pci.c | 79 +++
> hw/virtio/virtio-crypto.c | 821
> +++++++++++++++++++++++++
> hw/virtio/virtio-pci.h | 15 +
> include/hw/pci/pci.h | 2 +
> include/hw/virtio/virtio-crypto.h | 96 +++
> include/standard-headers/linux/virtio_crypto.h | 390 ++++++++++++
> include/standard-headers/linux/virtio_ids.h | 2 +-
> include/sysemu/cryptodev.h | 26 +-
> qemu-options.hx | 18 +
> tests/Makefile.include | 3 +
> tests/virtio-crypto-test.c | 427 +++++++++++++
> 17 files changed, 2266 insertions(+), 10 deletions(-)
> create mode 100644 backends/cryptodev-builtin.c
> create mode 100644 hw/virtio/virtio-crypto-pci.c
> create mode 100644 hw/virtio/virtio-crypto.c
> create mode 100644 include/hw/virtio/virtio-crypto.h
> create mode 100644 include/standard-headers/linux/virtio_crypto.h
> create mode 100644 tests/virtio-crypto-test.c
>
> --
> 1.7.12.4
>
- [Qemu-devel] [PATCH v6 00/12] virtio-crypto: introduce framework and device emulation, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 12/12] virtio-crypto-test: add qtest case for virtio-crypto, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 06/12] virtio-crypto: add control queue handler, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 10/12] virtio-crypto: perfect algorithms chainning support, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 01/12] virtio-crypto: introduce virtio_crypto.h, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 02/12] cryptodev: introduce a new cryptodev backend, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 08/12] cryptodev: introduce an unified wrapper for crypto operation, Gonglei, 2016/10/10
- Re: [Qemu-devel] [PATCH v6 00/12] virtio-crypto: introduce framework and device emulation,
Gonglei (Arei) <=
- [Qemu-devel] [PATCH v6 05/12] virtio-crypto: set capacity of algorithms supported, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 11/12] virtio-crypto: emulate virtio crypto as a legacy device by default, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 04/12] virtio-crypto-pci: add virtio crypto pci support, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 07/12] virtio-crypto: add data queue processing handler, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 03/12] virtio-crypto: add virtio crypto device emulation, Gonglei, 2016/10/10
- [Qemu-devel] [PATCH v6 09/12] virtio-crypto: add myself as virtio-crypto and cryptodev backends maintainer, Gonglei, 2016/10/10
- Re: [Qemu-devel] [PATCH v6 00/12] virtio-crypto: introduce framework and device emulation, Eric Blake, 2016/10/10