X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcrypto%2Fvirtio%2Fvirtio_cryptodev.c;h=df88953f6a4242506d4a557a30b2767f19f29323;hb=0a01574db43cb8ed62aa84484a7d3ddca1e74fa4;hp=6f92e997be9c3bbb1dffba7418515fbdd60c3467;hpb=efd3ac6b01dda3e54a518a71b92c31a0344c1074;p=dpdk.git diff --git a/drivers/crypto/virtio/virtio_cryptodev.c b/drivers/crypto/virtio/virtio_cryptodev.c index 6f92e997be..df88953f6a 100644 --- a/drivers/crypto/virtio/virtio_cryptodev.c +++ b/drivers/crypto/virtio/virtio_cryptodev.c @@ -15,6 +15,7 @@ #include "virtio_cryptodev.h" #include "virtqueue.h" #include "virtio_crypto_algs.h" +#include "virtio_crypto_capabilities.h" int virtio_crypto_logtype_init; int virtio_crypto_logtype_session; @@ -58,6 +59,11 @@ static const struct rte_pci_id pci_id_virtio_crypto_map[] = { { .vendor_id = 0, /* sentinel */ }, }; +static const struct rte_cryptodev_capabilities virtio_capabilities[] = { + VIRTIO_SYM_CAPABILITIES, + RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST() +}; + uint8_t cryptodev_virtio_driver_id; #define NUM_ENTRY_SYM_CREATE_SESSION 4 @@ -746,6 +752,7 @@ crypto_virtio_create(const char *name, struct rte_pci_device *pci_dev, hw = cryptodev->data->dev_private; hw->dev_id = cryptodev->data->dev_id; + hw->virtio_dev_capabilities = virtio_capabilities; VIRTIO_CRYPTO_INIT_LOG_DBG("dev %d vendorID=0x%x deviceID=0x%x", cryptodev->data->dev_id, pci_dev->id.vendor_id, @@ -1139,6 +1146,9 @@ virtio_crypto_sym_pad_cipher_param( struct rte_crypto_cipher_xform *cipher_xform) { switch (cipher_xform->algo) { + case RTE_CRYPTO_CIPHER_AES_CBC: + para->algo = VIRTIO_CRYPTO_CIPHER_AES_CBC; + break; default: VIRTIO_CRYPTO_SESSION_LOG_ERR("Crypto: Unsupported " "Cipher alg %u", cipher_xform->algo); @@ -1186,11 +1196,13 @@ virtio_crypto_sym_pad_auth_param( } switch (auth_xform->algo) { + case RTE_CRYPTO_AUTH_SHA1_HMAC: + *algo = VIRTIO_CRYPTO_MAC_HMAC_SHA1; + break; default: VIRTIO_CRYPTO_SESSION_LOG_ERR( "Crypto: Undefined Hash algo %u specified", auth_xform->algo); - *algo = VIRTIO_CRYPTO_NO_MAC; return -1; } @@ -1402,6 +1414,7 @@ virtio_crypto_dev_info_get(struct rte_cryptodev *dev, info->max_nb_queue_pairs = hw->max_dataqueues; info->sym.max_nb_sessions = RTE_VIRTIO_CRYPTO_PMD_MAX_NB_SESSIONS; + info->capabilities = hw->virtio_dev_capabilities; } }