net/bnxt: support port representor data path
[dpdk.git] / drivers / net / bnxt / bnxt_txr.c
index 0ed6581..d7e193d 100644 (file)
@@ -9,7 +9,6 @@
 #include <rte_malloc.h>
 
 #include "bnxt.h"
-#include "bnxt_cpr.h"
 #include "bnxt_ring.h"
 #include "bnxt_txq.h"
 #include "bnxt_txr.h"
@@ -57,7 +56,6 @@ int bnxt_init_one_tx_ring(struct bnxt_tx_queue *txq)
 int bnxt_init_tx_ring_struct(struct bnxt_tx_queue *txq, unsigned int socket_id)
 {
        struct bnxt_cp_ring_info *cpr;
-       struct bnxt_cp_ring_info *nqr;
        struct bnxt_tx_ring_info *txr;
        struct bnxt_ring *ring;
 
@@ -101,30 +99,6 @@ int bnxt_init_tx_ring_struct(struct bnxt_tx_queue *txq, unsigned int socket_id)
        ring->vmem_size = 0;
        ring->vmem = NULL;
 
-       if (BNXT_HAS_NQ(txq->bp)) {
-               nqr = rte_zmalloc_socket("bnxt_tx_ring_nq",
-                                        sizeof(struct bnxt_cp_ring_info),
-                                        RTE_CACHE_LINE_SIZE, socket_id);
-               if (nqr == NULL)
-                       return -ENOMEM;
-
-               txq->nq_ring = nqr;
-
-               ring = rte_zmalloc_socket("bnxt_tx_ring_struct",
-                                         sizeof(struct bnxt_ring),
-                                         RTE_CACHE_LINE_SIZE, socket_id);
-               if (ring == NULL)
-                       return -ENOMEM;
-
-               nqr->cp_ring_struct = ring;
-               ring->ring_size = txr->tx_ring_struct->ring_size;
-               ring->ring_mask = ring->ring_size - 1;
-               ring->bd = (void *)nqr->cp_desc_ring;
-               ring->bd_dma = nqr->cp_desc_mapping;
-               ring->vmem_size = 0;
-               ring->vmem = NULL;
-       }
-
        return 0;
 }
 
@@ -157,7 +131,7 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
                                PKT_TX_VLAN_PKT | PKT_TX_OUTER_IP_CKSUM |
                                PKT_TX_TUNNEL_GRE | PKT_TX_TUNNEL_VXLAN |
                                PKT_TX_TUNNEL_GENEVE | PKT_TX_IEEE1588_TMST |
-                               PKT_TX_QINQ_PKT))
+                               PKT_TX_QINQ_PKT) || txq->tx_cfa_action)
                long_bd = true;
 
        nr_bds = long_bd + tx_pkt->nb_segs;
@@ -210,7 +184,7 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
        if (long_bd) {
                txbd->flags_type |= TX_BD_LONG_TYPE_TX_BD_LONG;
                vlan_tag_flags = 0;
-               cfa_action = 0;
+               cfa_action = txq->tx_cfa_action;
                /* HW can accelerate only outer vlan in QinQ mode */
                if (tx_buf->mbuf->ol_flags & PKT_TX_QINQ_PKT) {
                        vlan_tag_flags = TX_BD_LONG_CFA_META_KEY_VLAN_TAG |