All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [next PATCH 0/2] Clean-up features and add support for IPIP and SIT tunnel offloads
@ 2016-04-02  7:03 Alexander Duyck
  2016-04-02  7:05 ` [Intel-wired-lan] [next PATCH 1/2] i40e/i40evf: Clean up feature flags Alexander Duyck
  2016-04-02  7:06 ` [Intel-wired-lan] [next PATCH 2/2] i40e/i40evf: Add support for IPIP and SIT offloads Alexander Duyck
  0 siblings, 2 replies; 5+ messages in thread
From: Alexander Duyck @ 2016-04-02  7:03 UTC (permalink / raw)
  To: intel-wired-lan

This patch set is meant to help pave the way for the GSO partial changes
that will likely be coming in a couple weeks.  The first patch resolves
some feature issues and makes it so that we can more easily see what
features are supported for each driver and which are not.  The second patch
adds support for IPIP and SIT tunnels where were already supported by the
hardware but were not enabled in the drivers.

---

Alexander Duyck (2):
      i40e/i40evf: Clean up feature flags
      i40e/i40evf: Add support for IPIP and SIT offloads


 drivers/net/ethernet/intel/i40e/i40e_main.c     |   63 +++++++++------------
 drivers/net/ethernet/intel/i40e/i40e_txrx.c     |   24 +++++---
 drivers/net/ethernet/intel/i40evf/i40e_txrx.c   |   24 +++++---
 drivers/net/ethernet/intel/i40evf/i40evf_main.c |   68 ++++++++++++-----------
 4 files changed, 94 insertions(+), 85 deletions(-)

--

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Intel-wired-lan] [next PATCH 1/2] i40e/i40evf: Clean up feature flags
  2016-04-02  7:03 [Intel-wired-lan] [next PATCH 0/2] Clean-up features and add support for IPIP and SIT tunnel offloads Alexander Duyck
@ 2016-04-02  7:05 ` Alexander Duyck
  2016-04-05 20:46   ` Bowers, AndrewX
  2016-04-02  7:06 ` [Intel-wired-lan] [next PATCH 2/2] i40e/i40evf: Add support for IPIP and SIT offloads Alexander Duyck
  1 sibling, 1 reply; 5+ messages in thread
From: Alexander Duyck @ 2016-04-02  7:05 UTC (permalink / raw)
  To: intel-wired-lan

The feature flags list for i40e and i40evf is beginning to become pretty
massive.  I plan to add another 4 or so features to these drivers and
duplicating the flags for each and every flags list is becoming a bit
repetitive.

The primary change here is that we now build our features list around
hw_encap_features.  After that we assign that to vlan_features,
hw_features, and finally map that onto features.  In addition we end up
throwing features onto hw_encap_features that end up having no effect such
as the Rx offloads and SCTP_CRC.  However that should have no impact and
makes things a bit easier for us as hw_encap_features is one of the less
updated features maps available.

For i40evf I went through and sanity checked a few features as well.
Specifically RXCSUM was being set as a read-only feature which didn't make
much sense.  I have updated things so we can clear the NETIF_F_RXCSUM flag
since that is really a software feature and not a hardware one anyway so
disabling it is just a matter of ignoring the result from the hardware.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
---

Testing-hints:
  The only real testing required for this patch is to verify the features
  make sense after the patch has been applied.  Most of the change is to
  deal with things like the fact that we were allowing VLAN filtering to be
  toggled but didn't actually do anything to disable it when it was.

 drivers/net/ethernet/intel/i40e/i40e_main.c     |   61 +++++++++------------
 drivers/net/ethernet/intel/i40evf/i40evf_main.c |   66 +++++++++++------------
 2 files changed, 58 insertions(+), 69 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index d6147f899062..9100d34913a7 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -9110,40 +9110,36 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
 	np = netdev_priv(netdev);
 	np->vsi = vsi;
 
-	netdev->hw_enc_features |= NETIF_F_IP_CSUM	       |
-				   NETIF_F_IPV6_CSUM	       |
-				   NETIF_F_TSO		       |
-				   NETIF_F_TSO6		       |
-				   NETIF_F_TSO_ECN	       |
-				   NETIF_F_GSO_GRE	       |
-				   NETIF_F_GSO_UDP_TUNNEL      |
-				   NETIF_F_GSO_UDP_TUNNEL_CSUM |
+	netdev->hw_enc_features |= NETIF_F_SG			|
+				   NETIF_F_IP_CSUM		|
+				   NETIF_F_IPV6_CSUM		|
+				   NETIF_F_HIGHDMA		|
+				   NETIF_F_SOFT_FEATURES	|
+				   NETIF_F_TSO			|
+				   NETIF_F_TSO_ECN		|
+				   NETIF_F_TSO6			|
+				   NETIF_F_GSO_GRE		|
+				   NETIF_F_GSO_UDP_TUNNEL	|
+				   NETIF_F_GSO_UDP_TUNNEL_CSUM	|
+				   NETIF_F_SCTP_CRC		|
+				   NETIF_F_RXHASH		|
+				   NETIF_F_RXCSUM		|
 				   0;
 
-	netdev->features = NETIF_F_SG		       |
-			   NETIF_F_IP_CSUM	       |
-			   NETIF_F_SCTP_CRC	       |
-			   NETIF_F_HIGHDMA	       |
-			   NETIF_F_GSO_UDP_TUNNEL      |
-			   NETIF_F_GSO_GRE	       |
-			   NETIF_F_HW_VLAN_CTAG_TX     |
-			   NETIF_F_HW_VLAN_CTAG_RX     |
-			   NETIF_F_HW_VLAN_CTAG_FILTER |
-			   NETIF_F_IPV6_CSUM	       |
-			   NETIF_F_TSO		       |
-			   NETIF_F_TSO_ECN	       |
-			   NETIF_F_TSO6		       |
-			   NETIF_F_RXCSUM	       |
-			   NETIF_F_RXHASH	       |
-			   0;
+	if (!(pf->flags & I40E_FLAG_OUTER_UDP_CSUM_CAPABLE))
+		netdev->hw_enc_features ^= NETIF_F_GSO_UDP_TUNNEL_CSUM;
+
+	/* record features VLANs can make use of */
+	netdev->vlan_features |= netdev->hw_enc_features;
 
 	if (!(pf->flags & I40E_FLAG_MFP_ENABLED))
-		netdev->features |= NETIF_F_NTUPLE;
-	if (pf->flags & I40E_FLAG_OUTER_UDP_CSUM_CAPABLE)
-		netdev->features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
+		netdev->hw_features |= NETIF_F_NTUPLE;
+
+	netdev->hw_features |= netdev->hw_enc_features	|
+			       NETIF_F_HW_VLAN_CTAG_TX	|
+			       NETIF_F_HW_VLAN_CTAG_RX;
 
-	/* copy netdev features into list of user selectable features */
-	netdev->hw_features |= netdev->features;
+	netdev->features |= netdev->hw_features | NETIF_F_HW_VLAN_CTAG_FILTER;
 
 	if (vsi->type == I40E_VSI_MAIN) {
 		SET_NETDEV_DEV(netdev, &pf->pdev->dev);
@@ -9182,12 +9178,7 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
 
 	ether_addr_copy(netdev->dev_addr, mac_addr);
 	ether_addr_copy(netdev->perm_addr, mac_addr);
-	/* vlan gets same features (except vlan offload)
-	 * after any tweaks for specific VSI types
-	 */
-	netdev->vlan_features = netdev->features & ~(NETIF_F_HW_VLAN_CTAG_TX |
-						     NETIF_F_HW_VLAN_CTAG_RX |
-						   NETIF_F_HW_VLAN_CTAG_FILTER);
+
 	netdev->priv_flags |= IFF_UNICAST_FLT;
 	netdev->priv_flags |= IFF_SUPP_NOFCS;
 	/* Setup netdev TC information */
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index 9549f0fcdb39..a24966e4873a 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -2318,40 +2318,38 @@ int i40evf_process_config(struct i40evf_adapter *adapter)
 		return -ENODEV;
 	}
 
-	netdev->features |= NETIF_F_HIGHDMA |
-			    NETIF_F_SG |
-			    NETIF_F_IP_CSUM |
-			    NETIF_F_SCTP_CRC |
-			    NETIF_F_IPV6_CSUM |
-			    NETIF_F_TSO |
-			    NETIF_F_TSO6 |
-			    NETIF_F_TSO_ECN |
-			    NETIF_F_GSO_GRE |
-			    NETIF_F_GSO_UDP_TUNNEL |
-			    NETIF_F_RXCSUM |
-			    NETIF_F_GRO;
-
-	netdev->hw_enc_features |= NETIF_F_IP_CSUM	       |
-				   NETIF_F_IPV6_CSUM	       |
-				   NETIF_F_TSO		       |
-				   NETIF_F_TSO6		       |
-				   NETIF_F_TSO_ECN	       |
-				   NETIF_F_GSO_GRE	       |
-				   NETIF_F_GSO_UDP_TUNNEL      |
-				   NETIF_F_GSO_UDP_TUNNEL_CSUM;
-
-	if (adapter->flags & I40EVF_FLAG_OUTER_UDP_CSUM_CAPABLE)
-		netdev->features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
-
-	/* always clear VLAN features because they can change at every reset */
-	netdev->features &= ~(I40EVF_VLAN_FEATURES);
-	/* copy netdev features into list of user selectable features */
-	netdev->hw_features |= netdev->features;
-
-	if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) {
-		netdev->vlan_features = netdev->features;
-		netdev->features |= I40EVF_VLAN_FEATURES;
-	}
+	netdev->hw_enc_features |= NETIF_F_SG			|
+				   NETIF_F_IP_CSUM		|
+				   NETIF_F_IPV6_CSUM		|
+				   NETIF_F_HIGHDMA		|
+				   NETIF_F_SOFT_FEATURES	|
+				   NETIF_F_TSO			|
+				   NETIF_F_TSO_ECN		|
+				   NETIF_F_TSO6			|
+				   NETIF_F_GSO_GRE		|
+				   NETIF_F_GSO_UDP_TUNNEL	|
+				   NETIF_F_GSO_UDP_TUNNEL_CSUM	|
+				   NETIF_F_SCTP_CRC		|
+				   NETIF_F_RXHASH		|
+				   NETIF_F_RXCSUM		|
+				   0;
+
+	if (!(adapter->flags & I40EVF_FLAG_OUTER_UDP_CSUM_CAPABLE))
+		netdev->hw_enc_features ^= NETIF_F_GSO_UDP_TUNNEL_CSUM;
+
+	/* record features VLANs can make use of */
+	netdev->vlan_features |= netdev->hw_enc_features;
+
+	/* Write features and hw_features separately to avoid polluting
+	 * with, or dropping, features that are set when we registgered.
+	 */
+	netdev->hw_features |= netdev->hw_enc_features;
+
+	netdev->features |= netdev->hw_enc_features | I40EVF_VLAN_FEATURES;
+
+	/* disable VLAN features if not supported */
+	if (!(vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN))
+		netdev->features ^= I40EVF_VLAN_FEATURES;
 
 	adapter->vsi.id = adapter->vsi_res->vsi_id;
 


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Intel-wired-lan] [next PATCH 2/2] i40e/i40evf: Add support for IPIP and SIT offloads
  2016-04-02  7:03 [Intel-wired-lan] [next PATCH 0/2] Clean-up features and add support for IPIP and SIT tunnel offloads Alexander Duyck
  2016-04-02  7:05 ` [Intel-wired-lan] [next PATCH 1/2] i40e/i40evf: Clean up feature flags Alexander Duyck
@ 2016-04-02  7:06 ` Alexander Duyck
  2016-04-05 21:52   ` Bowers, AndrewX
  1 sibling, 1 reply; 5+ messages in thread
From: Alexander Duyck @ 2016-04-02  7:06 UTC (permalink / raw)
  To: intel-wired-lan

Looking over the documentation it turns out enabling IPIP and SIT offloads
for i40e is pretty straighforward.  As such I decided to enable them with
this patch.  In my testing I am seeing an improvement of 8 to 10 Gb/s
for IPIP and SIT tunnels with this offload enabled.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
---

Testing-hints:
  All that should be needed is to setup a pair of systems with a tunnel and
  pass traffic over it.  Documentation on how to setup IPIP and SIT tunnels
  can be found at:

  http://www.linuxfoundation.org/collaborate/workgroups/networking/tunneling

 drivers/net/ethernet/intel/i40e/i40e_main.c     |    2 ++
 drivers/net/ethernet/intel/i40e/i40e_txrx.c     |   24 +++++++++++++++--------
 drivers/net/ethernet/intel/i40evf/i40e_txrx.c   |   24 +++++++++++++++--------
 drivers/net/ethernet/intel/i40evf/i40evf_main.c |    2 ++
 4 files changed, 36 insertions(+), 16 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 9100d34913a7..d5f2417c0851 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -9119,6 +9119,8 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
 				   NETIF_F_TSO_ECN		|
 				   NETIF_F_TSO6			|
 				   NETIF_F_GSO_GRE		|
+				   NETIF_F_GSO_IPIP		|
+				   NETIF_F_GSO_SIT		|
 				   NETIF_F_GSO_UDP_TUNNEL	|
 				   NETIF_F_GSO_UDP_TUNNEL_CSUM	|
 				   NETIF_F_SCTP_CRC		|
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index 6bf705add321..0d2a34cec6a9 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -2297,7 +2297,10 @@ static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb,
 		ip.v6->payload_len = 0;
 	}
 
-	if (skb_shinfo(skb)->gso_type & (SKB_GSO_UDP_TUNNEL | SKB_GSO_GRE |
+	if (skb_shinfo(skb)->gso_type & (SKB_GSO_GRE |
+					 SKB_GSO_IPIP |
+					 SKB_GSO_SIT |
+					 SKB_GSO_UDP_TUNNEL |
 					 SKB_GSO_UDP_TUNNEL_CSUM)) {
 		if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL_CSUM) {
 			/* determine offset of outer transport header */
@@ -2439,13 +2442,6 @@ static int i40e_tx_enable_csum(struct sk_buff *skb, u32 *tx_flags,
 						 &l4_proto, &frag_off);
 		}
 
-		/* compute outer L3 header size */
-		tunnel |= ((l4.hdr - ip.hdr) / 4) <<
-			  I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT;
-
-		/* switch IP header pointer from outer to inner header */
-		ip.hdr = skb_inner_network_header(skb);
-
 		/* define outer transport */
 		switch (l4_proto) {
 		case IPPROTO_UDP:
@@ -2456,6 +2452,11 @@ static int i40e_tx_enable_csum(struct sk_buff *skb, u32 *tx_flags,
 			tunnel |= I40E_TXD_CTX_GRE_TUNNELING;
 			*tx_flags |= I40E_TX_FLAGS_UDP_TUNNEL;
 			break;
+		case IPPROTO_IPIP:
+		case IPPROTO_IPV6:
+			*tx_flags |= I40E_TX_FLAGS_UDP_TUNNEL;
+			l4.hdr = skb_inner_network_header(skb);
+			break;
 		default:
 			if (*tx_flags & I40E_TX_FLAGS_TSO)
 				return -1;
@@ -2464,6 +2465,13 @@ static int i40e_tx_enable_csum(struct sk_buff *skb, u32 *tx_flags,
 			return 0;
 		}
 
+		/* compute outer L3 header size */
+		tunnel |= ((l4.hdr - ip.hdr) / 4) <<
+			  I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT;
+
+		/* switch IP header pointer from outer to inner header */
+		ip.hdr = skb_inner_network_header(skb);
+
 		/* compute tunnel header size */
 		tunnel |= ((ip.hdr - l4.hdr) / 2) <<
 			  I40E_TXD_CTX_QW0_NATLEN_SHIFT;
diff --git a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
index 519256bb63e8..07ce8e4e35e0 100644
--- a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
@@ -1564,7 +1564,10 @@ static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb,
 		ip.v6->payload_len = 0;
 	}
 
-	if (skb_shinfo(skb)->gso_type & (SKB_GSO_UDP_TUNNEL | SKB_GSO_GRE |
+	if (skb_shinfo(skb)->gso_type & (SKB_GSO_GRE |
+					 SKB_GSO_IPIP |
+					 SKB_GSO_SIT |
+					 SKB_GSO_UDP_TUNNEL |
 					 SKB_GSO_UDP_TUNNEL_CSUM)) {
 		if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL_CSUM) {
 			/* determine offset of outer transport header */
@@ -1664,13 +1667,6 @@ static int i40e_tx_enable_csum(struct sk_buff *skb, u32 *tx_flags,
 						 &l4_proto, &frag_off);
 		}
 
-		/* compute outer L3 header size */
-		tunnel |= ((l4.hdr - ip.hdr) / 4) <<
-			  I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT;
-
-		/* switch IP header pointer from outer to inner header */
-		ip.hdr = skb_inner_network_header(skb);
-
 		/* define outer transport */
 		switch (l4_proto) {
 		case IPPROTO_UDP:
@@ -1681,6 +1677,11 @@ static int i40e_tx_enable_csum(struct sk_buff *skb, u32 *tx_flags,
 			tunnel |= I40E_TXD_CTX_GRE_TUNNELING;
 			*tx_flags |= I40E_TX_FLAGS_VXLAN_TUNNEL;
 			break;
+		case IPPROTO_IPIP:
+		case IPPROTO_IPV6:
+			*tx_flags |= I40E_TX_FLAGS_VXLAN_TUNNEL;
+			l4.hdr = skb_inner_network_header(skb);
+			break;
 		default:
 			if (*tx_flags & I40E_TX_FLAGS_TSO)
 				return -1;
@@ -1689,6 +1690,13 @@ static int i40e_tx_enable_csum(struct sk_buff *skb, u32 *tx_flags,
 			return 0;
 		}
 
+		/* compute outer L3 header size */
+		tunnel |= ((l4.hdr - ip.hdr) / 4) <<
+			  I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT;
+
+		/* switch IP header pointer from outer to inner header */
+		ip.hdr = skb_inner_network_header(skb);
+
 		/* compute tunnel header size */
 		tunnel |= ((ip.hdr - l4.hdr) / 2) <<
 			  I40E_TXD_CTX_QW0_NATLEN_SHIFT;
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index a24966e4873a..1bb9d61ec171 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -2327,6 +2327,8 @@ int i40evf_process_config(struct i40evf_adapter *adapter)
 				   NETIF_F_TSO_ECN		|
 				   NETIF_F_TSO6			|
 				   NETIF_F_GSO_GRE		|
+				   NETIF_F_GSO_IPIP		|
+				   NETIF_F_GSO_SIT		|
 				   NETIF_F_GSO_UDP_TUNNEL	|
 				   NETIF_F_GSO_UDP_TUNNEL_CSUM	|
 				   NETIF_F_SCTP_CRC		|


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Intel-wired-lan] [next PATCH 1/2] i40e/i40evf: Clean up feature flags
  2016-04-02  7:05 ` [Intel-wired-lan] [next PATCH 1/2] i40e/i40evf: Clean up feature flags Alexander Duyck
@ 2016-04-05 20:46   ` Bowers, AndrewX
  0 siblings, 0 replies; 5+ messages in thread
From: Bowers, AndrewX @ 2016-04-05 20:46 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Alexander Duyck
> Sent: Saturday, April 02, 2016 12:05 AM
> To: intel-wired-lan at lists.osuosl.org; Kirsher, Jeffrey T
> <jeffrey.t.kirsher@intel.com>; alexander.duyck at gmail.com
> Subject: [Intel-wired-lan] [next PATCH 1/2] i40e/i40evf: Clean up feature
> flags
> 
> The feature flags list for i40e and i40evf is beginning to become pretty
> massive.  I plan to add another 4 or so features to these drivers and
> duplicating the flags for each and every flags list is becoming a bit repetitive.
> 
> The primary change here is that we now build our features list around
> hw_encap_features.  After that we assign that to vlan_features,
> hw_features, and finally map that onto features.  In addition we end up
> throwing features onto hw_encap_features that end up having no effect
> such as the Rx offloads and SCTP_CRC.  However that should have no impact
> and makes things a bit easier for us as hw_encap_features is one of the less
> updated features maps available.
> 
> For i40evf I went through and sanity checked a few features as well.
> Specifically RXCSUM was being set as a read-only feature which didn't make
> much sense.  I have updated things so we can clear the NETIF_F_RXCSUM
> flag since that is really a software feature and not a hardware one anyway so
> disabling it is just a matter of ignoring the result from the hardware.
> 
> Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
> ---
> 
> Testing-hints:
>   The only real testing required for this patch is to verify the features
>   make sense after the patch has been applied.  Most of the change is to
>   deal with things like the fact that we were allowing VLAN filtering to be
>   toggled but didn't actually do anything to disable it when it was.
> 
>  drivers/net/ethernet/intel/i40e/i40e_main.c     |   61 +++++++++------------
>  drivers/net/ethernet/intel/i40evf/i40evf_main.c |   66 +++++++++++---------
> ---
>  2 files changed, 58 insertions(+), 69 deletions(-)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Feature flags still make sense with patch applied

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Intel-wired-lan] [next PATCH 2/2] i40e/i40evf: Add support for IPIP and SIT offloads
  2016-04-02  7:06 ` [Intel-wired-lan] [next PATCH 2/2] i40e/i40evf: Add support for IPIP and SIT offloads Alexander Duyck
@ 2016-04-05 21:52   ` Bowers, AndrewX
  0 siblings, 0 replies; 5+ messages in thread
From: Bowers, AndrewX @ 2016-04-05 21:52 UTC (permalink / raw)
  To: intel-wired-lan

> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Alexander Duyck
> Sent: Saturday, April 02, 2016 12:07 AM
> To: intel-wired-lan at lists.osuosl.org; Kirsher, Jeffrey T
> <jeffrey.t.kirsher@intel.com>; alexander.duyck at gmail.com
> Subject: [Intel-wired-lan] [next PATCH 2/2] i40e/i40evf: Add support for IPIP
> and SIT offloads
> 
> Looking over the documentation it turns out enabling IPIP and SIT offloads
> for i40e is pretty straighforward.  As such I decided to enable them with this
> patch.  In my testing I am seeing an improvement of 8 to 10 Gb/s for IPIP and
> SIT tunnels with this offload enabled.
> 
> Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
> ---
> 
> Testing-hints:
>   All that should be needed is to setup a pair of systems with a tunnel and
>   pass traffic over it.  Documentation on how to setup IPIP and SIT tunnels
>   can be found at:
> 
> 
> http://www.linuxfoundation.org/collaborate/workgroups/networking/tunn
> eling
> 
>  drivers/net/ethernet/intel/i40e/i40e_main.c     |    2 ++
>  drivers/net/ethernet/intel/i40e/i40e_txrx.c     |   24 +++++++++++++++------
> --
>  drivers/net/ethernet/intel/i40evf/i40e_txrx.c   |   24 +++++++++++++++-----
> ---
>  drivers/net/ethernet/intel/i40evf/i40evf_main.c |    2 ++
>  4 files changed, 36 insertions(+), 16 deletions(-)

Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
SIT and IPIP tunnels can be created and will pass traffic.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-04-05 21:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-02  7:03 [Intel-wired-lan] [next PATCH 0/2] Clean-up features and add support for IPIP and SIT tunnel offloads Alexander Duyck
2016-04-02  7:05 ` [Intel-wired-lan] [next PATCH 1/2] i40e/i40evf: Clean up feature flags Alexander Duyck
2016-04-05 20:46   ` Bowers, AndrewX
2016-04-02  7:06 ` [Intel-wired-lan] [next PATCH 2/2] i40e/i40evf: Add support for IPIP and SIT offloads Alexander Duyck
2016-04-05 21:52   ` Bowers, AndrewX

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.