crypto/dpaa2_sec: support IPv6 tunnel for protocol offload
[dpdk.git] / drivers / crypto / scheduler / scheduler_pmd_ops.c
index a74216a..cf70218 100644 (file)
@@ -322,6 +322,8 @@ scheduler_pmd_info_get(struct rte_cryptodev *dev,
 {
        struct scheduler_ctx *sched_ctx = dev->data->dev_private;
        uint32_t max_nb_sess = 0;
+       uint16_t headroom_sz = 0;
+       uint16_t tailroom_sz = 0;
        uint32_t i;
 
        if (!dev_info)
@@ -342,12 +344,26 @@ scheduler_pmd_info_get(struct rte_cryptodev *dev,
                        if (max_nb_sess == 0 || dev_max_sess < max_nb_sess)
                                max_nb_sess = slave_info.sym.max_nb_sessions;
                }
+
+               /* Get the max headroom requirement among slave PMDs */
+               headroom_sz = slave_info.min_mbuf_headroom_req >
+                               headroom_sz ?
+                               slave_info.min_mbuf_headroom_req :
+                               headroom_sz;
+
+               /* Get the max tailroom requirement among slave PMDs */
+               tailroom_sz = slave_info.min_mbuf_tailroom_req >
+                               tailroom_sz ?
+                               slave_info.min_mbuf_tailroom_req :
+                               tailroom_sz;
        }
 
        dev_info->driver_id = dev->driver_id;
        dev_info->feature_flags = dev->feature_flags;
        dev_info->capabilities = sched_ctx->capabilities;
        dev_info->max_nb_queue_pairs = sched_ctx->max_nb_queue_pairs;
+       dev_info->min_mbuf_headroom_req = headroom_sz;
+       dev_info->min_mbuf_tailroom_req = tailroom_sz;
        dev_info->sym.max_nb_sessions = max_nb_sess;
 }
 
@@ -374,8 +390,7 @@ scheduler_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id)
 /** Setup a queue pair */
 static int
 scheduler_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
-       const struct rte_cryptodev_qp_conf *qp_conf, int socket_id,
-       struct rte_mempool *session_pool)
+       const struct rte_cryptodev_qp_conf *qp_conf, int socket_id)
 {
        struct scheduler_ctx *sched_ctx = dev->data->dev_private;
        struct scheduler_qp_ctx *qp_ctx;
@@ -403,7 +418,7 @@ scheduler_pmd_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
                 * must be big enough for all the drivers used.
                 */
                ret = rte_cryptodev_queue_pair_setup(slave_id, qp_id,
-                               qp_conf, socket_id, session_pool);
+                               qp_conf, socket_id);
                if (ret < 0)
                        return ret;
        }
@@ -506,7 +521,7 @@ scheduler_pmd_sym_session_clear(struct rte_cryptodev *dev,
        }
 }
 
-struct rte_cryptodev_ops scheduler_pmd_ops = {
+static struct rte_cryptodev_ops scheduler_pmd_ops = {
                .dev_configure          = scheduler_pmd_config,
                .dev_start              = scheduler_pmd_start,
                .dev_stop               = scheduler_pmd_stop,