[v1,2/2] examples/l2fwd-crypto: add callback handlers
Checks
Commit Message
Register user callback handlers for pre-enqueue and pst-dequeue
for crypto device instance 0 with port 0.
Signed-off-by: Vipin Varghese <vipin.varghese@intel.com>
---
examples/l2fwd-crypto/main.c | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
@@ -255,6 +255,20 @@ struct l2fwd_crypto_statistics crypto_statistics[RTE_CRYPTO_MAX_DEVS];
/* default period is 10 seconds */
static int64_t timer_period = 10 * TIMER_MILLISECOND * 1000;
+static uint16_t dump_crypto(__rte_unused uint8_t dev_id,
+ __rte_unused uint8_t qp_id,
+ __rte_unused struct rte_crypto_op **ops,
+ __rte_unused uint16_t nb_ops,
+ __rte_unused void *cb_arg)
+{
+ if (nb_ops)
+ RTE_LOG(DEBUG, L2FWD, " dev_id (%u) qp_id (%u)"
+ " ops (%p) nb_ops (%u)\n",
+ dev_id, qp_id, ops, nb_ops);
+
+ return nb_ops;
+}
+
/* Print out statistics on packets dropped */
static void
print_stats(void)
@@ -2783,6 +2797,18 @@ main(int argc, char **argv)
(unsigned)cdev_id);
}
+#ifdef RTE_CRYPTODEV_ENQDEQ_CALLBACKS
+ ret = rte_cryptodev_preenq_callback_register(0, 0, dump_crypto, NULL);
+ if (ret != 0)
+ RTE_LOG(ERR, L2FWD, " failed to preenq callback register\n");
+ RTE_LOG(INFO, L2FWD, " preenq callback register success\n");
+
+ ret = rte_cryptodev_pstdeq_callback_register(0, 0, dump_crypto, NULL);
+ if (ret != 0)
+ RTE_LOG(ERR, L2FWD, " failed to pstdeq callback register\n");
+ RTE_LOG(INFO, L2FWD, " pstdeq callback register success\n");
+#endif
+
/* launch per-lcore init on every lcore */
rte_eal_mp_remote_launch(l2fwd_launch_one_lcore, (void *)&options,
CALL_MASTER);
@@ -2791,5 +2817,15 @@ main(int argc, char **argv)
return -1;
}
+#ifdef RTE_CRYPTODEV_ENQDEQ_CALLBACKS
+ ret = rte_cryptodev_preenq_callback_unregister(0, 0, dump_crypto, NULL);
+ if (ret != 0)
+ printf(" faield rte_cryptodev_preenq_callback_unregister\n");
+
+ ret = rte_cryptodev_pstdeq_callback_unregister(0, 0, dump_crypto, NULL);
+ if (ret != 0)
+ printf(" failed rte_cryptodev_pstdeq_callback_unregister\n");
+#endif
+
return 0;
}