From: Srisivasubramanian Srinivasan <srisivasubramanian.sriniva...@cavium.com>

This patch does the following:
1. Adds the stats callback functions for the cpt vf.
2. Adds the queue pair setup and queue pair release callback
functions for cpt vf.

Signed-off-by: Ankur Dwivedi <ankur.dwiv...@cavium.com>
Signed-off-by: Murthy NSSR <nidadavolu.mur...@cavium.com>
Signed-off-by: Nithin Dabilpuram <nithin.dabilpu...@cavium.com>
Signed-off-by: Ragothaman Jayaraman <ragothaman.jayara...@cavium.com>
Signed-off-by: Srisivasubramanian Srinivasan 
<srisivasubramanian.sriniva...@cavium.com>
---
 drivers/crypto/cpt/cpt_pmd_cryptodev.c |  8 ++---
 drivers/crypto/cpt/cpt_pmd_ops.c       | 63 ++++++++++++++++++++++++++++++++++
 drivers/crypto/cpt/cpt_pmd_ops.h       | 11 ++++++
 3 files changed, 78 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/cpt/cpt_pmd_cryptodev.c 
b/drivers/crypto/cpt/cpt_pmd_cryptodev.c
index 3939b5e..3961ec8 100644
--- a/drivers/crypto/cpt/cpt_pmd_cryptodev.c
+++ b/drivers/crypto/cpt/cpt_pmd_cryptodev.c
@@ -53,10 +53,10 @@
        .dev_close = cpt_pmd_dev_close,
        .dev_infos_get = cptvf_dev_info_get,
 
-       .stats_get = NULL,
-       .stats_reset = NULL,
-       .queue_pair_setup = NULL,
-       .queue_pair_release = NULL,
+       .stats_get = cpt_pmd_stats_get,
+       .stats_reset = cpt_pmd_stats_reset,
+       .queue_pair_setup = cpt_pmd_que_pair_setup,
+       .queue_pair_release = cpt_pmd_que_pair_release,
        .queue_pair_start = NULL,
        .queue_pair_stop = NULL,
        .queue_pair_count = NULL,
diff --git a/drivers/crypto/cpt/cpt_pmd_ops.c b/drivers/crypto/cpt/cpt_pmd_ops.c
index 2f066cb..1c60191 100644
--- a/drivers/crypto/cpt/cpt_pmd_ops.c
+++ b/drivers/crypto/cpt/cpt_pmd_ops.c
@@ -523,6 +523,69 @@ int cpt_pmd_dev_close(struct rte_cryptodev *c_dev)
        }
 }
 
+void
+cpt_pmd_stats_get(struct rte_cryptodev *dev __rte_unused,
+                 struct rte_cryptodev_stats *stats __rte_unused)
+{
+       PMD_INIT_FUNC_TRACE();
+}
+
+void cpt_pmd_stats_reset(struct rte_cryptodev *dev __rte_unused)
+{
+       PMD_INIT_FUNC_TRACE();
+}
+
+int
+cpt_pmd_que_pair_setup(struct rte_cryptodev *dev,
+                      uint16_t que_pair_id,
+                      const struct rte_cryptodev_qp_conf *qp_conf,
+                      int socket_id __rte_unused,
+                      struct rte_mempool *session_pool __rte_unused)
+{
+       struct cpt_vf *cptvf = dev->data->dev_private;
+       cpt_instance_t *instance = NULL;
+       struct rte_pci_device *pci_dev;
+       int ret = -1;
+
+       PMD_INIT_FUNC_TRACE();
+
+       if (dev->data->queue_pairs[que_pair_id] != NULL) {
+               ret = cpt_pmd_que_pair_release(dev, que_pair_id);
+               if (ret)
+                       return ret;
+       }
+
+       if (qp_conf->nb_descriptors > DEFAULT_CMD_QLEN) {
+               PMD_DRV_LOG(INFO, "Number of descriptors too big %d,"
+                           " using default queue length of %d\n",
+                           qp_conf->nb_descriptors, DEFAULT_CMD_QLEN);
+       }
+
+       pci_dev = RTE_DEV_TO_PCI(dev->device);
+
+       if (pci_dev->mem_resource[0].addr == NULL) {
+               PMD_DRV_LOG(ERR, "PCI mem address null");
+               return -EIO;
+       }
+
+       /*
+        * FIXME: We always setup a queue with DEFAULT_CMD_QLEN size
+        * in get_hw_resource.
+        */
+       ret = cptvf_get_resource(cptvf, 0, &instance);
+       if (ret != 0) {
+               PMD_DRV_LOG(ERR, "Error getting instance handle"
+                               " from device %s : ret = %d\n",
+                               dev->data->name, ret);
+               return ret;
+       }
+
+       instance->queue_id = que_pair_id;
+       dev->data->queue_pairs[que_pair_id] = instance;
+
+       return 0;
+}
+
 int
 cpt_pmd_que_pair_release(struct rte_cryptodev *dev, uint16_t que_pair_id)
 {
diff --git a/drivers/crypto/cpt/cpt_pmd_ops.h b/drivers/crypto/cpt/cpt_pmd_ops.h
index 015b4a2..db2024b 100644
--- a/drivers/crypto/cpt/cpt_pmd_ops.h
+++ b/drivers/crypto/cpt/cpt_pmd_ops.h
@@ -58,7 +58,18 @@ int cpt_pmd_dev_config(struct rte_cryptodev *dev 
__rte_unused,
 
 void cptvf_dev_info_get(struct rte_cryptodev *dev,
                          struct rte_cryptodev_info *inf);
+int
+cpt_pmd_que_pair_setup(struct rte_cryptodev *dev,
+                  uint16_t que_pair_id,
+                  const struct rte_cryptodev_qp_conf *qp_conf,
+                  int socket_id,
+                  struct rte_mempool *session_pool);
 
 int cpt_pmd_que_pair_release(struct rte_cryptodev *dev, uint16_t que_pair_id);
 
+void cpt_pmd_stats_get(struct rte_cryptodev *dev,
+                  struct rte_cryptodev_stats *stats);
+
+void cpt_pmd_stats_reset(struct rte_cryptodev *dev);
+
 #endif
-- 
1.9.3

Reply via email to