The channel to port id map is used by event octeontx to map the received
wqe to the respective ethdev port.

Signed-off-by: Pavan Nikhilesh <pbhagavat...@caviumnetworks.com>
---
 drivers/net/octeontx/octeontx_ethdev.c | 3 +++
 drivers/net/octeontx/octeontx_ethdev.h | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/drivers/net/octeontx/octeontx_ethdev.c 
b/drivers/net/octeontx/octeontx_ethdev.c
index bd24ec330..8e251786b 100644
--- a/drivers/net/octeontx/octeontx_ethdev.c
+++ b/drivers/net/octeontx/octeontx_ethdev.c
@@ -1133,6 +1133,9 @@ octeontx_create(struct rte_vdev_device *dev, int port, 
uint8_t evdev,
                                nic->num_tx_queues);
        PMD_INIT_LOG(DEBUG, "speed %d mtu %d", nic->speed, nic->mtu);
 
+       octeontx_pchan_map[(nic->base_ochan >> 8) & 0x7]
+               [(nic->base_ochan >> 4) & 0xF] = data->port_id;
+
        return data->port_id;
 
 err:
diff --git a/drivers/net/octeontx/octeontx_ethdev.h 
b/drivers/net/octeontx/octeontx_ethdev.h
index c47d4c6d3..0cff13611 100644
--- a/drivers/net/octeontx/octeontx_ethdev.h
+++ b/drivers/net/octeontx/octeontx_ethdev.h
@@ -52,12 +52,18 @@
 #define OCTEONTX_VDEV_NR_PORT_ARG              ("nr_port")
 #define OCTEONTX_MAX_NAME_LEN                  32
 
+#define OCTEONTX_MAX_BGX_PORTS                 4
+#define OCTEONTX_MAX_LMAC_PER_BGX              4
+
 static inline struct octeontx_nic *
 octeontx_pmd_priv(struct rte_eth_dev *dev)
 {
        return dev->data->dev_private;
 }
 
+uint16_t __rte_cache_aligned
+octeontx_pchan_map[OCTEONTX_MAX_BGX_PORTS][OCTEONTX_MAX_LMAC_PER_BGX];
+
 /* Octeontx ethdev nic */
 struct octeontx_nic {
        struct rte_eth_dev *dev;
-- 
2.14.1

Reply via email to