macvlan: add offload features for encapsulation
authorDimitris Michailidis <dmichail@google.com>
Wed, 16 Aug 2017 21:34:46 +0000 (14:34 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Aug 2017 23:06:54 +0000 (16:06 -0700)
Currently macvlan devices do not set their hw_enc_features making
encapsulated Tx packets resort to SW fallbacks. Add encapsulation GSO
offloads to ->features as is done for the other GSOs and set
->hw_enc_features.

Signed-off-by: Dimitris Michailidis <dmichail@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/macvlan.c

index ca35c6ba794723f2fbac1eac79613e80beeb018a..d2aea961e0f410e8d2bd1e41c0af8a4fce23950c 100644 (file)
@@ -835,7 +835,7 @@ static struct lock_class_key macvlan_netdev_addr_lock_key;
 
 #define ALWAYS_ON_OFFLOADS \
        (NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_GSO_SOFTWARE | \
-        NETIF_F_GSO_ROBUST)
+        NETIF_F_GSO_ROBUST | NETIF_F_GSO_ENCAP_ALL)
 
 #define ALWAYS_ON_FEATURES (ALWAYS_ON_OFFLOADS | NETIF_F_LLTX)
 
@@ -874,6 +874,7 @@ static int macvlan_init(struct net_device *dev)
        dev->hw_features        |= NETIF_F_LRO;
        dev->vlan_features      = lowerdev->vlan_features & MACVLAN_FEATURES;
        dev->vlan_features      |= ALWAYS_ON_OFFLOADS;
+       dev->hw_enc_features    |= dev->features;
        dev->gso_max_size       = lowerdev->gso_max_size;
        dev->gso_max_segs       = lowerdev->gso_max_segs;
        dev->hard_header_len    = lowerdev->hard_header_len;