net/mlx5: support hardware TSO for VXLAN and GRE
This commit adds support for hardware TSO for tunneled packets. Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
This commit is contained in:
parent
f5fde52051
commit
b247f34601
@ -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
|
||||
|
@ -566,10 +566,18 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n)
|
||||
unsigned int copy_b;
|
||||
uint8_t vlan_sz = (buf->ol_flags &
|
||||
PKT_TX_VLAN_PKT) ? 4 : 0;
|
||||
const uint64_t is_tunneled =
|
||||
buf->ol_flags &
|
||||
(PKT_TX_TUNNEL_GRE |
|
||||
PKT_TX_TUNNEL_VXLAN);
|
||||
|
||||
tso_header_sz = buf->l2_len + vlan_sz +
|
||||
buf->l3_len + buf->l4_len;
|
||||
|
||||
if (is_tunneled && txq->tunnel_en) {
|
||||
tso_header_sz += buf->outer_l2_len +
|
||||
buf->outer_l3_len;
|
||||
}
|
||||
if (unlikely(tso_header_sz >
|
||||
MLX5_MAX_TSO_HEADER))
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user