net/qede/base: revise tunnel APIs/structs
[dpdk.git] / drivers / net / mlx5 / mlx5_ethdev.c
index 8be9e77..766fb72 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
@@ -993,7 +995,6 @@ recover:
                struct rxq *rxq = (*priv->rxqs)[i];
                struct rxq_ctrl *rxq_ctrl =
                        container_of(rxq, struct rxq_ctrl, rxq);
-               int sp;
                unsigned int mb_len;
                unsigned int tmp;
 
@@ -1001,10 +1002,9 @@ recover:
                        continue;
                mb_len = rte_pktmbuf_data_room_size(rxq->mp);
                assert(mb_len >= RTE_PKTMBUF_HEADROOM);
-               /* Toggle scattered support (sp) if necessary. */
-               sp = (max_frame_len > (mb_len - RTE_PKTMBUF_HEADROOM));
                /* Provide new values to rxq_setup(). */
-               dev->data->dev_conf.rxmode.jumbo_frame = sp;
+               dev->data->dev_conf.rxmode.jumbo_frame =
+                       (max_frame_len > ETHER_MAX_LEN);
                dev->data->dev_conf.rxmode.max_rx_pkt_len = max_frame_len;
                if (rehash)
                        ret = rxq_rehash(dev, rxq_ctrl);
@@ -1588,7 +1588,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) {