net/mlx5: add flow jump action
[dpdk.git] / drivers / net / mlx5 / mlx5_rxtx.c
index 35c4cc3..54d410b 100644 (file)
@@ -22,7 +22,6 @@
 #include "mlx5_autoconf.h"
 #include "mlx5_defs.h"
 #include "mlx5.h"
-#include "mlx5_mr.h"
 #include "mlx5_utils.h"
 #include "mlx5_rxtx.h"
 #include "mlx5_rx.h"
@@ -255,10 +254,10 @@ mlx5_set_cksum_table(void)
 
        /*
         * The index should have:
-        * bit[0] = PKT_TX_TCP_SEG
-        * bit[2:3] = PKT_TX_UDP_CKSUM, PKT_TX_TCP_CKSUM
-        * bit[4] = PKT_TX_IP_CKSUM
-        * bit[8] = PKT_TX_OUTER_IP_CKSUM
+        * bit[0] = RTE_MBUF_F_TX_TCP_SEG
+        * bit[2:3] = RTE_MBUF_F_TX_UDP_CKSUM, RTE_MBUF_F_TX_TCP_CKSUM
+        * bit[4] = RTE_MBUF_F_TX_IP_CKSUM
+        * bit[8] = RTE_MBUF_F_TX_OUTER_IP_CKSUM
         * bit[9] = tunnel
         */
        for (i = 0; i < RTE_DIM(mlx5_cksum_table); ++i) {
@@ -293,10 +292,10 @@ mlx5_set_swp_types_table(void)
 
        /*
         * The index should have:
-        * bit[0:1] = PKT_TX_L4_MASK
-        * bit[4] = PKT_TX_IPV6
-        * bit[8] = PKT_TX_OUTER_IPV6
-        * bit[9] = PKT_TX_OUTER_UDP
+        * bit[0:1] = RTE_MBUF_F_TX_L4_MASK
+        * bit[4] = RTE_MBUF_F_TX_IPV6
+        * bit[8] = RTE_MBUF_F_TX_OUTER_IPV6
+        * bit[9] = RTE_MBUF_F_TX_OUTER_UDP
         */
        for (i = 0; i < RTE_DIM(mlx5_swp_types_table); ++i) {
                v = 0;
@@ -306,7 +305,7 @@ mlx5_set_swp_types_table(void)
                        v |= MLX5_ETH_WQE_L4_OUTER_UDP;
                if (i & (1 << 4))
                        v |= MLX5_ETH_WQE_L3_INNER_IPV6;
-               if ((i & 3) == (PKT_TX_UDP_CKSUM >> 52))
+               if ((i & 3) == (RTE_MBUF_F_TX_UDP_CKSUM >> 52))
                        v |= MLX5_ETH_WQE_L4_INNER_UDP;
                mlx5_swp_types_table[i] = v;
        }
@@ -374,11 +373,9 @@ mlx5_queue_state_modify_primary(struct rte_eth_dev *dev,
        struct mlx5_priv *priv = dev->data->dev_private;
 
        if (sm->is_wq) {
-               struct mlx5_rxq_data *rxq = (*priv->rxqs)[sm->queue_id];
-               struct mlx5_rxq_ctrl *rxq_ctrl =
-                       container_of(rxq, struct mlx5_rxq_ctrl, rxq);
+               struct mlx5_rxq_priv *rxq = mlx5_rxq_get(dev, sm->queue_id);
 
-               ret = priv->obj_ops.rxq_obj_modify(rxq_ctrl->obj, sm->state);
+               ret = priv->obj_ops.rxq_obj_modify(rxq, sm->state);
                if (ret) {
                        DRV_LOG(ERR, "Cannot change Rx WQ state to %u  - %s",
                                        sm->state, strerror(errno));
@@ -429,204 +426,3 @@ mlx5_queue_state_modify(struct rte_eth_dev *dev,
        }
        return ret;
 }
-
-/* Generate routines with Enhanced Multi-Packet Write support. */
-MLX5_TXOFF_DECL(full_empw,
-               MLX5_TXOFF_CONFIG_FULL | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(none_empw,
-               MLX5_TXOFF_CONFIG_NONE | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(md_empw,
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(mt_empw,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(mtsc_empw,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(mti_empw,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_INLINE |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(mtv_empw,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(mtiv_empw,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(sc_empw,
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(sci_empw,
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_INLINE |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(scv_empw,
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(sciv_empw,
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(i_empw,
-               MLX5_TXOFF_CONFIG_INLINE |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(v_empw,
-               MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(iv_empw,
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_EMPW)
-
-/* Generate routines without Enhanced Multi-Packet Write support. */
-MLX5_TXOFF_DECL(full,
-               MLX5_TXOFF_CONFIG_FULL)
-
-MLX5_TXOFF_DECL(none,
-               MLX5_TXOFF_CONFIG_NONE)
-
-MLX5_TXOFF_DECL(md,
-               MLX5_TXOFF_CONFIG_METADATA)
-
-MLX5_TXOFF_DECL(mt,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-MLX5_TXOFF_DECL(mtsc,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-MLX5_TXOFF_DECL(mti,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_INLINE |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-
-MLX5_TXOFF_DECL(mtv,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-
-MLX5_TXOFF_DECL(mtiv,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-MLX5_TXOFF_DECL(sc,
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-MLX5_TXOFF_DECL(sci,
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_INLINE |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-
-MLX5_TXOFF_DECL(scv,
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-
-MLX5_TXOFF_DECL(sciv,
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-MLX5_TXOFF_DECL(i,
-               MLX5_TXOFF_CONFIG_INLINE |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-MLX5_TXOFF_DECL(v,
-               MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-MLX5_TXOFF_DECL(iv,
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA)
-
-/* Generate routines with timestamp scheduling. */
-MLX5_TXOFF_DECL(full_ts_nompw,
-               MLX5_TXOFF_CONFIG_FULL | MLX5_TXOFF_CONFIG_TXPP)
-
-MLX5_TXOFF_DECL(full_ts_nompwi,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_VLAN | MLX5_TXOFF_CONFIG_METADATA |
-               MLX5_TXOFF_CONFIG_TXPP)
-
-MLX5_TXOFF_DECL(full_ts,
-               MLX5_TXOFF_CONFIG_FULL | MLX5_TXOFF_CONFIG_TXPP |
-               MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(full_ts_noi,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_SWP | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_VLAN | MLX5_TXOFF_CONFIG_METADATA |
-               MLX5_TXOFF_CONFIG_TXPP | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(none_ts,
-               MLX5_TXOFF_CONFIG_NONE | MLX5_TXOFF_CONFIG_TXPP |
-               MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(mdi_ts,
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_METADATA |
-               MLX5_TXOFF_CONFIG_TXPP | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(mti_ts,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_METADATA |
-               MLX5_TXOFF_CONFIG_TXPP | MLX5_TXOFF_CONFIG_EMPW)
-
-MLX5_TXOFF_DECL(mtiv_ts,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_TSO |
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_VLAN |
-               MLX5_TXOFF_CONFIG_METADATA | MLX5_TXOFF_CONFIG_TXPP |
-               MLX5_TXOFF_CONFIG_EMPW)
-
-/*
- * Generate routines with Legacy Multi-Packet Write support.
- * This mode is supported by ConnectX-4 Lx only and imposes
- * offload limitations, not supported:
- *   - ACL/Flows (metadata are becoming meaningless)
- *   - WQE Inline headers
- *   - SRIOV (E-Switch offloads)
- *   - VLAN insertion
- *   - tunnel encapsulation/decapsulation
- *   - TSO
- */
-MLX5_TXOFF_DECL(none_mpw,
-               MLX5_TXOFF_CONFIG_NONE | MLX5_TXOFF_CONFIG_EMPW |
-               MLX5_TXOFF_CONFIG_MPW)
-
-MLX5_TXOFF_DECL(mci_mpw,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_EMPW |
-               MLX5_TXOFF_CONFIG_MPW)
-
-MLX5_TXOFF_DECL(mc_mpw,
-               MLX5_TXOFF_CONFIG_MULTI | MLX5_TXOFF_CONFIG_CSUM |
-               MLX5_TXOFF_CONFIG_EMPW | MLX5_TXOFF_CONFIG_MPW)
-
-MLX5_TXOFF_DECL(i_mpw,
-               MLX5_TXOFF_CONFIG_INLINE | MLX5_TXOFF_CONFIG_EMPW |
-               MLX5_TXOFF_CONFIG_MPW)