net/mlx5: separate Tx burst functions to different files
authorMichael Baum <michaelba@nvidia.com>
Mon, 12 Apr 2021 06:32:25 +0000 (06:32 +0000)
committerRaslan Darawsheh <rasland@nvidia.com>
Thu, 15 Apr 2021 06:24:59 +0000 (08:24 +0200)
This patch separates Tx burst function implementations to different
source files, thus allowing them to compile in parallel.

Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/net/mlx5/meson.build
drivers/net/mlx5/mlx5_rxtx.c
drivers/net/mlx5/mlx5_tx.h
drivers/net/mlx5/mlx5_tx_empw.c [new file with mode: 0644]
drivers/net/mlx5/mlx5_tx_mpw.c [new file with mode: 0644]
drivers/net/mlx5/mlx5_tx_nompw.c [new file with mode: 0644]
drivers/net/mlx5/mlx5_tx_txpp.c [new file with mode: 0644]

index fac4728..8740ca5 100644 (file)
@@ -26,6 +26,10 @@ sources = files(
        'mlx5_stats.c',
        'mlx5_trigger.c',
        'mlx5_tx.c',
+       'mlx5_tx_empw.c',
+       'mlx5_tx_mpw.c',
+       'mlx5_tx_nompw.c',
+       'mlx5_tx_txpp.c',
        'mlx5_txq.c',
        'mlx5_txpp.c',
        'mlx5_vlan.c',
index 35c4cc3..7b984ef 100644 (file)
@@ -429,204 +429,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)
index 7a03aaf..7d3ff84 100644 (file)
@@ -242,7 +242,7 @@ uint32_t mlx5_tx_mb2mr_bh(struct mlx5_txq_data *txq, struct rte_mbuf *mb);
 uint32_t mlx5_tx_update_ext_mp(struct mlx5_txq_data *txq, uintptr_t addr,
                               struct rte_mempool *mp);
 
-/* mlx5_rxtx.c */
+/* mlx5_tx_empw.c */
 
 MLX5_TXOFF_PRE_DECL(full_empw);
 MLX5_TXOFF_PRE_DECL(none_empw);
@@ -260,6 +260,8 @@ MLX5_TXOFF_PRE_DECL(i_empw);
 MLX5_TXOFF_PRE_DECL(v_empw);
 MLX5_TXOFF_PRE_DECL(iv_empw);
 
+/* mlx5_tx_nompw.c */
+
 MLX5_TXOFF_PRE_DECL(full);
 MLX5_TXOFF_PRE_DECL(none);
 MLX5_TXOFF_PRE_DECL(md);
@@ -276,6 +278,8 @@ MLX5_TXOFF_PRE_DECL(i);
 MLX5_TXOFF_PRE_DECL(v);
 MLX5_TXOFF_PRE_DECL(iv);
 
+/* mlx5_tx_txpp.c */
+
 MLX5_TXOFF_PRE_DECL(full_ts_nompw);
 MLX5_TXOFF_PRE_DECL(full_ts_nompwi);
 MLX5_TXOFF_PRE_DECL(full_ts);
@@ -285,6 +289,8 @@ MLX5_TXOFF_PRE_DECL(mdi_ts);
 MLX5_TXOFF_PRE_DECL(mti_ts);
 MLX5_TXOFF_PRE_DECL(mtiv_ts);
 
+/* mlx5_tx_mpw.c */
+
 MLX5_TXOFF_PRE_DECL(none_mpw);
 MLX5_TXOFF_PRE_DECL(mci_mpw);
 MLX5_TXOFF_PRE_DECL(mc_mpw);
diff --git a/drivers/net/mlx5/mlx5_tx_empw.c b/drivers/net/mlx5/mlx5_tx_empw.c
new file mode 100644 (file)
index 0000000..81c2dc4
--- /dev/null
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2021 6WIND S.A.
+ * Copyright 2021 Mellanox Technologies, Ltd
+ */
+
+#include "mlx5_tx.h"
+
+/* 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)
diff --git a/drivers/net/mlx5/mlx5_tx_mpw.c b/drivers/net/mlx5/mlx5_tx_mpw.c
new file mode 100644 (file)
index 0000000..bd7d5d2
--- /dev/null
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2021 6WIND S.A.
+ * Copyright 2021 Mellanox Technologies, Ltd
+ */
+
+#include "mlx5_tx.h"
+
+/*
+ * 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)
diff --git a/drivers/net/mlx5/mlx5_tx_nompw.c b/drivers/net/mlx5/mlx5_tx_nompw.c
new file mode 100644 (file)
index 0000000..ad23aab
--- /dev/null
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2021 6WIND S.A.
+ * Copyright 2021 Mellanox Technologies, Ltd
+ */
+
+#include "mlx5_tx.h"
+
+/* 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)
diff --git a/drivers/net/mlx5/mlx5_tx_txpp.c b/drivers/net/mlx5/mlx5_tx_txpp.c
new file mode 100644 (file)
index 0000000..4d2a4c6
--- /dev/null
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2021 6WIND S.A.
+ * Copyright 2021 Mellanox Technologies, Ltd
+ */
+
+#include "mlx5_tx.h"
+
+/* 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)