[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [virtio-dev] [PATCH v18 1/2] virtio-crypto: Add virtio
From: |
Gonglei (Arei) |
Subject: |
Re: [Qemu-devel] [virtio-dev] [PATCH v18 1/2] virtio-crypto: Add virtio crypto device specification |
Date: |
Wed, 17 May 2017 09:18:38 +0000 |
>
>
> On Sat, Apr 22, 2017 at 02:23:50PM +0800, Gonglei wrote:
> > +Dataq requests for both session and stateless modes are as follows:
> > +
> > +\begin{lstlisting}
> > +struct virtio_crypto_op_data_req_mux {
> > + struct virtio_crypto_op_header header;
> > +
> > + union {
> > + struct virtio_crypto_sym_data_req sym_req;
> > + struct virtio_crypto_hash_data_req hash_req;
> > + struct virtio_crypto_mac_data_req mac_req;
> > + struct virtio_crypto_aead_data_req aead_req;
> > + struct virtio_crypto_sym_data_req_stateless
> sym_stateless_req;
> > + struct virtio_crypto_hash_data_req_stateless
> hash_stateless_req;
> > + struct virtio_crypto_mac_data_req_stateless
> mac_stateless_req;
> > + struct virtio_crypto_aead_data_req_stateless
> aead_stateless_req;
> > + } u;
> > +};
> > +\end{lstlisting}
>
> Halil touched on this in the discussion: this spec uses a C-like struct
> syntax but does not define whether unions really affect sizeof(mystruct)
> like they would in C or whether you just mean that any of the union
> fields can be used. This distinction is important so device and driver
> authors understand the exact memory layout of requests and responses.
>
> Please include an explanation about the meaning of "union" in the text.
>
Halil has different opinion in other thread, I replied.
I'll wait for his new response about it. Thanks!
> > +Session mode MAC service requests are as follows:
> > +
> > +\begin{lstlisting}
> > +struct virtio_crypto_mac_para {
> > + struct virtio_crypto_hash_para hash;
> > +};
> > +
> > +struct virtio_crypto_mac_data_req {
> > + /* Device-readable part */
> > + struct virtio_crypto_mac_para para;
> > + /* Source data */
> > + u8 src_data[src_data_len];
> > +
> > + /* Device-writable part */
> > + /* Hash result data */
> > + u8 hash_result[hash_result_len];
> > + struct virtio_crypto_inhdr inhdr;
> > +};
> > +\end{lstlisting}
> > +
> > +Each data request uses virtio_crypto_mac_data_req structure to store
> information
>
> "Each request uses the virtio_crypto_mac_data_req structure to store
> information"
>
OK.
> > +Session mode requests of symmetric algorithm are as follows:
> > +
> > +\begin{lstlisting}
> > +struct virtio_crypto_sym_data_req {
> > + union {
> > + struct virtio_crypto_cipher_data_req cipher;
> > + struct virtio_crypto_alg_chain_data_req chain;
> > + } u;
> > +
> > + /* Device-readable part */
> > +
> > + /* See above VIRTIO_CRYPTO_SYM_OP_* */
> > + le32 op_type;
> > + le32 padding;
> > +};
> > +\end{lstlisting}
> > +
> > +Each data request uses virtio_crypto_sym_data_req structure to store
> information
>
> s/virtio_crypto_sym_data_req structure/the virtio_crypto_sym_data_req
> structure/
OK.
Thanks,
-Gonglei