]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ionic: enable tunnel offloads
authorNeel Patel <neel@pensando.io>
Wed, 26 Oct 2022 14:37:43 +0000 (07:37 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 28 Oct 2022 03:34:13 +0000 (20:34 -0700)
Support stateless offloads for GRE, VXLAN, GENEVE, IPXIP4
and IPXIP6 when the FW supports them.

Signed-off-by: Neel Patel <neel@pensando.io>
Signed-off-by: Shannon Nelson <snelson@pensando.io>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/pensando/ionic/ionic_lif.c
drivers/net/ethernet/pensando/ionic/ionic_txrx.c

index f5d39594ef547f45ffee1f8d6ab6ed7d7c916320..4dd16c487f2b4876f803ca70ae716e7ea97844a3 100644 (file)
@@ -1491,7 +1491,13 @@ static int ionic_init_nic_features(struct ionic_lif *lif)
                   NETIF_F_RXCSUM |
                   NETIF_F_TSO |
                   NETIF_F_TSO6 |
-                  NETIF_F_TSO_ECN;
+                  NETIF_F_TSO_ECN |
+                  NETIF_F_GSO_GRE |
+                  NETIF_F_GSO_GRE_CSUM |
+                  NETIF_F_GSO_IPXIP4 |
+                  NETIF_F_GSO_IPXIP6 |
+                  NETIF_F_GSO_UDP_TUNNEL |
+                  NETIF_F_GSO_UDP_TUNNEL_CSUM;
 
        if (lif->nxqs > 1)
                features |= NETIF_F_RXHASH;
index c03986bf262890deaf3c99f48f78aade2d7b68ba..190681aa7187315aea1184daa3f8bd00deaaf493 100644 (file)
@@ -925,8 +925,12 @@ static int ionic_tx_tso(struct ionic_queue *q, struct sk_buff *skb)
 
        len = skb->len;
        mss = skb_shinfo(skb)->gso_size;
-       outer_csum = (skb_shinfo(skb)->gso_type & SKB_GSO_GRE_CSUM) ||
-                    (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL_CSUM);
+       outer_csum = (skb_shinfo(skb)->gso_type & (SKB_GSO_GRE |
+                                                  SKB_GSO_GRE_CSUM |
+                                                  SKB_GSO_IPXIP4 |
+                                                  SKB_GSO_IPXIP6 |
+                                                  SKB_GSO_UDP_TUNNEL |
+                                                  SKB_GSO_UDP_TUNNEL_CSUM));
        has_vlan = !!skb_vlan_tag_present(skb);
        vlan_tci = skb_vlan_tag_get(skb);
        encap = skb->encapsulation;