Implement odp_pktio_in_queues(), odp_pktio_pktin_queues(),
and odp_pktio_pktout_queues() functions.

Reviewed-by: Petri Savolainen <petri.savolai...@nokia.com>
Signed-off-by: Matias Elo <matias....@nokia.com>
---
 platform/linux-generic/pktio/dpdk.c | 48 ++++++++++++++++++++++++++++++++++---
 1 file changed, 45 insertions(+), 3 deletions(-)

diff --git a/platform/linux-generic/pktio/dpdk.c 
b/platform/linux-generic/pktio/dpdk.c
index 1df0e90..233c6f8 100644
--- a/platform/linux-generic/pktio/dpdk.c
+++ b/platform/linux-generic/pktio/dpdk.c
@@ -669,6 +669,48 @@ static int dpdk_link_status(pktio_entry_t *pktio_entry)
        return link.link_status;
 }
 
+static int dpdk_in_queues(pktio_entry_t *pktio_entry, odp_queue_t queues[],
+                         int num)
+{
+       int i;
+       int num_queues = pktio_entry->s.num_in_queue;
+
+       if (queues && num > 0) {
+               for (i = 0; i < num && i < num_queues; i++)
+                       queues[i] = pktio_entry->s.in_queue[i].queue;
+       }
+
+       return num_queues;
+}
+
+static int dpdk_pktin_queues(pktio_entry_t *pktio_entry,
+                            odp_pktin_queue_t queues[], int num)
+{
+       int i;
+       int num_queues = pktio_entry->s.num_in_queue;
+
+       if (queues && num > 0) {
+               for (i = 0; i < num && i < num_queues; i++)
+                       queues[i] = pktio_entry->s.in_queue[i].pktin;
+       }
+
+       return num_queues;
+}
+
+static int dpdk_pktout_queues(pktio_entry_t *pktio_entry,
+                             odp_pktout_queue_t queues[], int num)
+{
+       int i;
+       int num_queues = pktio_entry->s.num_out_queue;
+
+       if (queues && num > 0) {
+               for (i = 0; i < num && i < num_queues; i++)
+                       queues[i] = pktio_entry->s.out_queue[i].pktout;
+       }
+
+       return num_queues;
+}
+
 const pktio_if_ops_t dpdk_pktio_ops = {
        .name = "dpdk",
        .init = NULL,
@@ -689,9 +731,9 @@ const pktio_if_ops_t dpdk_pktio_ops = {
        .capability = dpdk_capability,
        .input_queues_config = NULL,
        .output_queues_config = NULL,
-       .in_queues = NULL,
-       .pktin_queues = NULL,
-       .pktout_queues = NULL
+       .in_queues = dpdk_in_queues,
+       .pktin_queues = dpdk_pktin_queues,
+       .pktout_queues = dpdk_pktout_queues
 };
 
 #endif /* ODP_DPDK */
-- 
1.9.1

_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to