On Sat, Apr 30, 2016 at 1:43 AM, Alexander Duyck <adu...@mirantis.com> wrote: > This patch assumes that the mlx4 hardware will ignore existing IPv4/v6 > header fields for length and checksum as well as the length and checksum > fields for outer UDP headers. > > Signed-off-by: Alexander Duyck <adu...@mirantis.com> > --- > drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c > b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c > index 8bd143dda95d..bce37cbfde24 100644 > --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c > +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c > @@ -2358,7 +2358,9 @@ out: > > /* set offloads */ > priv->dev->hw_enc_features |= NETIF_F_IP_CSUM | NETIF_F_RXCSUM | > - NETIF_F_TSO | NETIF_F_GSO_UDP_TUNNEL; > + NETIF_F_TSO | NETIF_F_GSO_UDP_TUNNEL | > + NETIF_F_GSO_UDP_TUNNEL_CSUM | > + NETIF_F_GSO_PARTIAL; > } > > static void mlx4_en_del_vxlan_offloads(struct work_struct *work) > @@ -2368,7 +2370,9 @@ static void mlx4_en_del_vxlan_offloads(struct > work_struct *work) > vxlan_del_task); > /* unset offloads */ > priv->dev->hw_enc_features &= ~(NETIF_F_IP_CSUM | NETIF_F_RXCSUM | > - NETIF_F_TSO | NETIF_F_GSO_UDP_TUNNEL); > + NETIF_F_TSO | NETIF_F_GSO_UDP_TUNNEL | > + NETIF_F_GSO_UDP_TUNNEL_CSUM | > + NETIF_F_GSO_PARTIAL);
I know it is not related to your patch, but is it ok to dynamically modify priv->dev->hw_enc_features every vxlan add/del_port request ? especially on a deferred work ! Shouldn't we at least notify the stack ?