Signed-off-by: Nikita Kalyazin <[email protected]>
Reviewed-by: Ilya Maximets <[email protected]>
---
include/odp/api/config.h | 7 ++++++-
platform/linux-generic/include/odp_packet_io_internal.h | 1 +
platform/linux-generic/odp_packet_io.c | 3 +++
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/include/odp/api/config.h b/include/odp/api/config.h
index 302eaf5..b87ed79 100644
--- a/include/odp/api/config.h
+++ b/include/odp/api/config.h
@@ -34,9 +34,14 @@ extern "C" {
#define ODP_CONFIG_POOLS 16
/**
+ * Maximum number of pktio hardware queues
+ */
+#define ODP_CONFIG_PKTIO_QUEUES 32
+
+/**
* Maximum number of queues
*/
-#define ODP_CONFIG_QUEUES 1024
+#define ODP_CONFIG_QUEUES (1024 * ODP_CONFIG_PKTIO_QUEUES)
/**
* Number of scheduling priorities
diff --git a/platform/linux-generic/include/odp_packet_io_internal.h
b/platform/linux-generic/include/odp_packet_io_internal.h
index 353b40d..2eb66bb 100644
--- a/platform/linux-generic/include/odp_packet_io_internal.h
+++ b/platform/linux-generic/include/odp_packet_io_internal.h
@@ -41,6 +41,7 @@ typedef struct {
struct pktio_entry {
const struct pktio_if_ops *ops; /**< Implementation specific methods */
odp_ticketlock_t lock; /**< entry ticketlock */
+ odp_ticketlock_t queue_locks[ODP_CONFIG_PKTIO_QUEUES]; /* queue locks */
int taken; /**< is entry taken(1) or free(0) */
int cls_enabled; /**< is classifier enabled */
odp_pktio_t handle; /**< pktio handle */
diff --git a/platform/linux-generic/odp_packet_io.c
b/platform/linux-generic/odp_packet_io.c
index fa0817a..a1f51e7 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -39,6 +39,7 @@ int odp_pktio_init_global(void)
int id;
odp_shm_t shm;
int pktio_if;
+ int i;
shm = odp_shm_reserve("odp_pktio_entries",
sizeof(pktio_table_t),
@@ -56,6 +57,8 @@ int odp_pktio_init_global(void)
pktio_entry = &pktio_tbl->entries[id - 1];
odp_ticketlock_init(&pktio_entry->s.lock);
+ for (i = 0; i < ODP_CONFIG_PKTIO_QUEUES; i++)
+ odp_ticketlock_init(&pktio_entry->s.queue_locks[i]);
odp_spinlock_init(&pktio_entry->s.cls.lock);
odp_spinlock_init(&pktio_entry->s.cls.l2_cos_table.lock);
odp_spinlock_init(&pktio_entry->s.cls.l3_cos_table.lock);
--
2.5.3
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp