net/mlx5: add enhanced multi-packet send for ConnectX-5
[dpdk.git] / drivers / net / mlx5 / mlx5_ethdev.c
index 8be9e77..dd5fe5c 100644 (file)
@@ -696,7 +696,9 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
        if (priv->tso)
                info->tx_offload_capa |= DEV_TX_OFFLOAD_TCP_TSO;
        if (priv->tunnel_en)
-               info->tx_offload_capa |= DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM;
+               info->tx_offload_capa |= (DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM |
+                                         DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
+                                         DEV_TX_OFFLOAD_GRE_TNL_TSO);
        if (priv_get_ifname(priv, &ifname) == 0)
                info->if_index = if_nametoindex(ifname);
        /* FIXME: RETA update/query API expects the callee to know the size of
@@ -1588,7 +1590,11 @@ priv_select_tx_function(struct priv *priv)
 {
        priv->dev->tx_pkt_burst = mlx5_tx_burst;
        /* Select appropriate TX function. */
-       if (priv->mps && priv->txq_inline) {
+       if (priv->mps == MLX5_MPW_ENHANCED) {
+               priv->dev->tx_pkt_burst =
+                       mlx5_tx_burst_empw;
+               DEBUG("selected Enhanced MPW TX function");
+       } else if (priv->mps && priv->txq_inline) {
                priv->dev->tx_pkt_burst = mlx5_tx_burst_mpw_inline;
                DEBUG("selected MPW inline TX function");
        } else if (priv->mps) {