net/octeontx: add channel to port id mapping
authorPavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Tue, 19 Dec 2017 18:01:44 +0000 (23:31 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 16 Jan 2018 17:47:49 +0000 (18:47 +0100)
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 <pbhagavatula@caviumnetworks.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
drivers/net/octeontx/octeontx_ethdev.c
drivers/net/octeontx/octeontx_ethdev.h
drivers/net/octeontx/rte_pmd_octeontx_version.map

index 7b73817..aa00364 100644 (file)
@@ -27,6 +27,9 @@ struct octeontx_vdev_init_params {
        uint8_t nr_port;
 };
 
+uint16_t
+rte_octeontx_pchan_map[OCTEONTX_MAX_BGX_PORTS][OCTEONTX_MAX_LMAC_PER_BGX];
+
 enum octeontx_link_speed {
        OCTEONTX_LINK_SPEED_SGMII,
        OCTEONTX_LINK_SPEED_XAUI,
@@ -1139,6 +1142,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);
 
+       rte_octeontx_pchan_map[(nic->base_ochan >> 8) & 0x7]
+               [(nic->base_ochan >> 4) & 0xF] = data->port_id;
+
        return data->port_id;
 
 err:
index d787a33..637b92c 100644 (file)
 #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;
 }
 
+extern uint16_t
+rte_octeontx_pchan_map[OCTEONTX_MAX_BGX_PORTS][OCTEONTX_MAX_LMAC_PER_BGX];
+
 /* Octeontx ethdev nic */
 struct octeontx_nic {
        struct rte_eth_dev *dev;
index a70bd19..a3161b1 100644 (file)
@@ -2,3 +2,10 @@ DPDK_17.11 {
 
        local: *;
 };
+
+DPDK_18.02 {
+       global:
+
+       rte_octeontx_pchan_map;
+
+} DPDK_17.11;