diff --git a/lib/mldev/rte_mldev.c b/lib/mldev/rte_mldev.c index 196b1850e6..37d71aebc9 100644 --- a/lib/mldev/rte_mldev.c +++ b/lib/mldev/rte_mldev.c @@ -365,6 +365,21 @@ rte_ml_dev_stop(int16_t dev_id) return ret; } +uint16_t +rte_ml_dev_queue_pair_count(int16_t dev_id) +{ + struct rte_ml_dev *dev; + + if (!rte_ml_dev_is_valid_dev(dev_id)) { + RTE_MLDEV_LOG(ERR, "Invalid dev_id = %d", dev_id); + return -EINVAL; + } + + dev = rte_ml_dev_pmd_get_dev(dev_id); + + return dev->data->nb_queue_pairs; +} + int rte_ml_dev_queue_pair_setup(int16_t dev_id, uint16_t queue_pair_id, const struct rte_ml_dev_qp_conf *qp_conf, int socket_id) diff --git a/lib/mldev/rte_mldev.h b/lib/mldev/rte_mldev.h index 634af3d5e1..767f8c2593 100644 --- a/lib/mldev/rte_mldev.h +++ b/lib/mldev/rte_mldev.h @@ -317,6 +317,19 @@ struct rte_ml_dev_qp_conf { */ }; +/** + * Get the number of queue pairs on a specific ML device. + * + * @param dev_id + * The identifier of the device. + * + * @return + * - The number of configured queue pairs. + */ +__rte_experimental +uint16_t +rte_ml_dev_queue_pair_count(int16_t dev_id); + /** * Set up a queue pair for a device. This should only be called when the device is stopped. * diff --git a/lib/mldev/version.map b/lib/mldev/version.map index 84bdd6c300..acf6395b4a 100644 --- a/lib/mldev/version.map +++ b/lib/mldev/version.map @@ -11,6 +11,7 @@ EXPERIMENTAL { rte_ml_dev_init; rte_ml_dev_is_valid_dev; rte_ml_dev_logtype; + rte_ml_dev_queue_pair_count; rte_ml_dev_queue_pair_setup; rte_ml_dev_selftest; rte_ml_dev_socket_id;