mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
nfp: support VxLAN inner TSO with GSO_PARTIAL offload
VxLAN belongs to UDP-based encapsulation protocol. Inner TSO for VxLAN packet with udpcsum requires offloading of outer header csum. The device doesn't support outer header csum offload. However, inner TSO for VxLAN with udpcsum can still work with GSO_PARTIAL offload, which means outer udp csum computed by stack and inner tcp segmentation finished by hardware. Thus, the patch enable features "NETIF_F_GSO_UDP_TUNNEL_CSUM" and "NETIF_F_GSO_PARTIAL" and set gso_partial_features. Signed-off-by: Fei Qin <fei.qin@corigine.com> Signed-off-by: Yinjun Zhang <yinjun.zhang@corigine.com> Signed-off-by: Louis Peens <louis.peens@corigine.com> Signed-off-by: Simon Horman <simon.horman@corigine.com> Link: https://lore.kernel.org/r/20220430231150.175270-1-simon.horman@corigine.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
a313f858ed
commit
ae664d9d85
@ -2259,8 +2259,12 @@ static void nfp_net_netdev_init(struct nfp_net *nn)
|
||||
if (nn->cap & NFP_NET_CFG_CTRL_RSS_ANY)
|
||||
netdev->hw_features |= NETIF_F_RXHASH;
|
||||
if (nn->cap & NFP_NET_CFG_CTRL_VXLAN) {
|
||||
if (nn->cap & NFP_NET_CFG_CTRL_LSO)
|
||||
netdev->hw_features |= NETIF_F_GSO_UDP_TUNNEL;
|
||||
if (nn->cap & NFP_NET_CFG_CTRL_LSO) {
|
||||
netdev->hw_features |= NETIF_F_GSO_UDP_TUNNEL |
|
||||
NETIF_F_GSO_UDP_TUNNEL_CSUM |
|
||||
NETIF_F_GSO_PARTIAL;
|
||||
netdev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM;
|
||||
}
|
||||
netdev->udp_tunnel_nic_info = &nfp_udp_tunnels;
|
||||
nn->dp.ctrl |= NFP_NET_CFG_CTRL_VXLAN;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user