bbdev: allow operation type enum for growth
Updated the enum for rte_bbdev_op_type to allow to keep ABI compatible for enum insertion while adding padded maximum value for array need. Removing RTE_BBDEV_OP_TYPE_COUNT and instead exposing RTE_BBDEV_OP_TYPE_SIZE_MAX. Signed-off-by: Nicolas Chautru <nicolas.chautru@intel.com> Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
This commit is contained in:
parent
383049f179
commit
e70212cc24
@ -521,7 +521,7 @@ test_bbdev_op_pool(void)
|
||||
rte_mempool_free(mp);
|
||||
|
||||
TEST_ASSERT((mp = rte_bbdev_op_pool_create("Test_INV",
|
||||
RTE_BBDEV_OP_TYPE_COUNT, size, cache_size, 0)) == NULL,
|
||||
RTE_BBDEV_OP_TYPE_SIZE_MAX, size, cache_size, 0)) == NULL,
|
||||
"Failed test for rte_bbdev_op_pool_create: "
|
||||
"returned value is not NULL for invalid type");
|
||||
|
||||
|
@ -2429,13 +2429,13 @@ run_test_case_on_device(test_case_function *test_case_func, uint8_t dev_id,
|
||||
|
||||
/* Find capabilities */
|
||||
const struct rte_bbdev_op_cap *cap = info.drv.capabilities;
|
||||
for (i = 0; i < RTE_BBDEV_OP_TYPE_COUNT; i++) {
|
||||
do {
|
||||
if (cap->type == test_vector.op_type) {
|
||||
capabilities = cap;
|
||||
break;
|
||||
}
|
||||
cap++;
|
||||
}
|
||||
} while (cap->type != RTE_BBDEV_OP_NONE);
|
||||
TEST_ASSERT_NOT_NULL(capabilities,
|
||||
"Couldn't find capabilities");
|
||||
|
||||
|
@ -94,10 +94,7 @@ Deprecation Notices
|
||||
``RTE_ETH_EVENT_IPSEC_SA_BYTE_HARD_EXPIRY`` and
|
||||
``RTE_ETH_EVENT_IPSEC_SA_PKT_HARD_EXPIRY`` in DPDK 22.11.
|
||||
|
||||
* bbdev: ``RTE_BBDEV_OP_TYPE_COUNT`` terminating the ``rte_bbdev_op_type``
|
||||
enum will be deprecated and instead use fixed array size when required
|
||||
to allow for future enum extension.
|
||||
Will extend API to support new operation type ``RTE_BBDEV_OP_FFT`` as per
|
||||
* bbdev: Will extend API to support new operation type ``RTE_BBDEV_OP_FFT`` as per
|
||||
this `RFC <https://patches.dpdk.org/project/dpdk/list/?series=22111>`__.
|
||||
New members will be added in ``rte_bbdev_driver_info`` to expose
|
||||
PMD queue topology inspired by
|
||||
|
@ -428,6 +428,10 @@ ABI Changes
|
||||
|
||||
* ethdev: enum ``RTE_FLOW_ACTION`` was affected by deprecation procedure.
|
||||
|
||||
* bbdev: enum ``rte_bbdev_op_type`` was affected to remove ``RTE_BBDEV_OP_TYPE_COUNT``
|
||||
and to allow for futureproof enum insertion a padded ``RTE_BBDEV_OP_TYPE_SIZE_MAX``
|
||||
macro is added.
|
||||
|
||||
* eventdev: Added ``evtim_drop_count`` field
|
||||
to ``rte_event_timer_adapter_stats`` structure.
|
||||
|
||||
|
@ -1040,7 +1040,7 @@ main(int argc, char **argv)
|
||||
void *sigret;
|
||||
struct app_config_params app_params = def_app_config;
|
||||
struct rte_mempool *ethdev_mbuf_mempool, *bbdev_mbuf_mempool;
|
||||
struct rte_mempool *bbdev_op_pools[RTE_BBDEV_OP_TYPE_COUNT];
|
||||
struct rte_mempool *bbdev_op_pools[RTE_BBDEV_OP_TYPE_SIZE_MAX];
|
||||
struct lcore_conf lcore_conf[RTE_MAX_LCORE] = { {0} };
|
||||
struct lcore_statistics lcore_stats[RTE_MAX_LCORE] = { {0} };
|
||||
struct stats_lcore_params stats_lcore;
|
||||
|
@ -23,6 +23,8 @@
|
||||
|
||||
#define DEV_NAME "BBDEV"
|
||||
|
||||
/* Number of supported operation types in *rte_bbdev_op_type*. */
|
||||
#define BBDEV_OP_TYPE_COUNT 5
|
||||
|
||||
/* BBDev library logging ID */
|
||||
RTE_LOG_REGISTER_DEFAULT(bbdev_logtype, NOTICE);
|
||||
@ -890,10 +892,10 @@ rte_bbdev_op_pool_create(const char *name, enum rte_bbdev_op_type type,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (type >= RTE_BBDEV_OP_TYPE_COUNT) {
|
||||
if (type >= BBDEV_OP_TYPE_COUNT) {
|
||||
rte_bbdev_log(ERR,
|
||||
"Invalid op type (%u), should be less than %u",
|
||||
type, RTE_BBDEV_OP_TYPE_COUNT);
|
||||
type, BBDEV_OP_TYPE_COUNT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -1125,7 +1127,7 @@ rte_bbdev_op_type_str(enum rte_bbdev_op_type op_type)
|
||||
"RTE_BBDEV_OP_LDPC_ENC",
|
||||
};
|
||||
|
||||
if (op_type < RTE_BBDEV_OP_TYPE_COUNT)
|
||||
if (op_type < BBDEV_OP_TYPE_COUNT)
|
||||
return op_types[op_type];
|
||||
|
||||
rte_bbdev_log(ERR, "Invalid operation type");
|
||||
|
@ -48,6 +48,13 @@ extern "C" {
|
||||
/* LDPC: Maximum number of Code Blocks in Transport Block.*/
|
||||
#define RTE_BBDEV_LDPC_MAX_CODE_BLOCKS (256)
|
||||
|
||||
/*
|
||||
* Maximum size to be used to manage the enum rte_bbdev_op_type
|
||||
* including padding for future enum insertion.
|
||||
* The enum values must be explicitly kept smaller or equal to this padded maximum size.
|
||||
*/
|
||||
#define RTE_BBDEV_OP_TYPE_SIZE_MAX 8
|
||||
|
||||
/** Flags for turbo decoder operation and capability structure */
|
||||
enum rte_bbdev_op_td_flag_bitmasks {
|
||||
/** If sub block de-interleaving is to be performed. */
|
||||
@ -741,14 +748,17 @@ struct rte_bbdev_op_cap_ldpc_enc {
|
||||
uint16_t num_buffers_dst;
|
||||
};
|
||||
|
||||
/** Different operation types supported by the device */
|
||||
/** Different operation types supported by the device.
|
||||
* The related macro RTE_BBDEV_OP_TYPE_SIZE_MAX can be used as an absolute maximum for
|
||||
* notably sizing array while allowing for future enumeration insertion.
|
||||
*/
|
||||
enum rte_bbdev_op_type {
|
||||
RTE_BBDEV_OP_NONE, /**< Dummy operation that does nothing */
|
||||
RTE_BBDEV_OP_TURBO_DEC, /**< Turbo decode */
|
||||
RTE_BBDEV_OP_TURBO_ENC, /**< Turbo encode */
|
||||
RTE_BBDEV_OP_LDPC_DEC, /**< LDPC decode */
|
||||
RTE_BBDEV_OP_LDPC_ENC, /**< LDPC encode */
|
||||
RTE_BBDEV_OP_TYPE_COUNT, /**< Count of different op types */
|
||||
/* Note: RTE_BBDEV_OP_TYPE_SIZE_MAX must be larger or equal to maximum enum value */
|
||||
};
|
||||
|
||||
/** Bit indexes of possible errors reported through status field */
|
||||
|
Loading…
Reference in New Issue
Block a user