From: Bogdan Pricope <bogdan.pric...@linaro.org> Enables advanced usecases where heterogeneous settings are needed on input queues of the same interface.
Signed-off-by: Bogdan Pricope <bogdan.pric...@linaro.org> --- /** Email created from pull request 660 (bogdanPricope:api_next_pktin_queue_pr) ** https://github.com/Linaro/odp/pull/660 ** Patch: https://github.com/Linaro/odp/pull/660.patch ** Base sha: 9b2b5a9695ad66977c964c83691cd2fef4c45b85 ** Merge commit sha: da35db9bd3845097376d2b1ba5459bd8a88f0199 **/ platform/linux-generic/odp_packet_io.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c index 7759f83e4..094e34f2b 100644 --- a/platform/linux-generic/odp_packet_io.c +++ b/platform/linux-generic/odp_packet_io.c @@ -1470,11 +1470,20 @@ int odp_pktin_queue_config(odp_pktio_t pktio, snprintf(name, sizeof(name), "odp-pktin-%i-%i", pktio_id, i); - if (param->classifier_enable) + if (param->classifier_enable) { odp_queue_param_init(&queue_param); - else - memcpy(&queue_param, ¶m->queue_param, - sizeof(odp_queue_param_t)); + } else { + const odp_queue_param_t *qparam; + + if (param->queue_param_mode == + ODP_PKTIN_QUEUE_PARAM_MODE_BASIC) + qparam = ¶m->queue_param; + else + qparam = param->queue_params + i; + + odp_memcpy(&queue_param, qparam, + sizeof(odp_queue_param_t)); + } queue_param.type = ODP_QUEUE_TYPE_PLAIN;