summaryrefslogtreecommitdiffstats
path: root/drivers/net/macvlan.c
diff options
context:
space:
mode:
authorDimitris Michailidis <dmichail@google.com>2017-08-16 17:34:46 -0400
committerDavid S. Miller <davem@davemloft.net>2017-08-18 19:06:54 -0400
commitf21e5077010acda73a60d85e416d6887d537e506 (patch)
treefd30928b9e7732df7f6f77534b28b8c7e044e327 /drivers/net/macvlan.c
parentd2896116dbc7be7cabd5db414e008aef4a5e0a00 (diff)
macvlan: add offload features for encapsulation
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>
Diffstat (limited to 'drivers/net/macvlan.c')
-rw-r--r--drivers/net/macvlan.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index ca35c6ba7947..d2aea961e0f4 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -835,7 +835,7 @@ static struct lock_class_key macvlan_netdev_addr_lock_key;
835 835
836#define ALWAYS_ON_OFFLOADS \ 836#define ALWAYS_ON_OFFLOADS \
837 (NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_GSO_SOFTWARE | \ 837 (NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_GSO_SOFTWARE | \
838 NETIF_F_GSO_ROBUST) 838 NETIF_F_GSO_ROBUST | NETIF_F_GSO_ENCAP_ALL)
839 839
840#define ALWAYS_ON_FEATURES (ALWAYS_ON_OFFLOADS | NETIF_F_LLTX) 840#define ALWAYS_ON_FEATURES (ALWAYS_ON_OFFLOADS | NETIF_F_LLTX)
841 841
@@ -874,6 +874,7 @@ static int macvlan_init(struct net_device *dev)
874 dev->hw_features |= NETIF_F_LRO; 874 dev->hw_features |= NETIF_F_LRO;
875 dev->vlan_features = lowerdev->vlan_features & MACVLAN_FEATURES; 875 dev->vlan_features = lowerdev->vlan_features & MACVLAN_FEATURES;
876 dev->vlan_features |= ALWAYS_ON_OFFLOADS; 876 dev->vlan_features |= ALWAYS_ON_OFFLOADS;
877 dev->hw_enc_features |= dev->features;
877 dev->gso_max_size = lowerdev->gso_max_size; 878 dev->gso_max_size = lowerdev->gso_max_size;
878 dev->gso_max_segs = lowerdev->gso_max_segs; 879 dev->gso_max_segs = lowerdev->gso_max_segs;
879 dev->hard_header_len = lowerdev->hard_header_len; 880 dev->hard_header_len = lowerdev->hard_header_len;