diff mbox

[next,v2,14/15] i40e: Update feature flags to reflect newly enabled features

Message ID 20160122002823.18278.12177.stgit@localhost.localdomain
State Superseded
Headers show

Commit Message

Alexander Duyck Jan. 22, 2016, 12:28 a.m. UTC
Recent changes should have enabled support for IPv6 based tunnels and
support for TSO with outer UDP checksums.  As such we can update the
feature flags to reflect that.

In addition we can clean-up the flags that aren't needed such as SCTP and
RXCSUM since having the bits there doesn't add any value.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
---
 drivers/net/ethernet/intel/i40e/i40e_main.c |   16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

Comments

Singhai, Anjali Jan. 22, 2016, 9:15 p.m. UTC | #1
On 1/21/2016 4:28 PM, Alexander Duyck wrote:
> Recent changes should have enabled support for IPv6 based tunnels and
> support for TSO with outer UDP checksums.  As such we can update the
> feature flags to reflect that.
>
> In addition we can clean-up the flags that aren't needed such as SCTP and
> RXCSUM since having the bits there doesn't add any value.
>
> Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
> ---
>   drivers/net/ethernet/intel/i40e/i40e_main.c |   16 ++++++++++------
>   1 file changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
> index e3a903f01d73..1d969acf9517 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_main.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
> @@ -9023,12 +9023,14 @@ 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_RXCSUM	  |
> -				   NETIF_F_SCTP_CRC	  |
> -				   NETIF_F_GSO_UDP_TUNNEL |
> -				   NETIF_F_GSO_GRE	  |
> -				   NETIF_F_TSO		  |
> +	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 |
>   				   0;

TUNNEL_CSUM in this case requires the PF_FLAG check for OUTER_UDP_CSUM 
as well

> 	netdev->features = NETIF_F_SG		       |
> @@ -9050,6 +9052,8 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
>   
>   	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;
>   
>   	/* copy netdev features into list of user selectable features */
>   	netdev->hw_features |= netdev->features;
>
> _______________________________________________
> Intel-wired-lan mailing list
> Intel-wired-lan@lists.osuosl.org
> http://lists.osuosl.org/mailman/listinfo/intel-wired-lan
Alexander Duyck Jan. 22, 2016, 9:34 p.m. UTC | #2
On Fri, Jan 22, 2016 at 1:15 PM, Singhai, Anjali
<anjali.singhai@intel.com> wrote:
>
>
> On 1/21/2016 4:28 PM, Alexander Duyck wrote:
>>
>> Recent changes should have enabled support for IPv6 based tunnels and
>> support for TSO with outer UDP checksums.  As such we can update the
>> feature flags to reflect that.
>>
>> In addition we can clean-up the flags that aren't needed such as SCTP and
>> RXCSUM since having the bits there doesn't add any value.
>>
>> Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
>> ---
>>   drivers/net/ethernet/intel/i40e/i40e_main.c |   16 ++++++++++------
>>   1 file changed, 10 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c
>> b/drivers/net/ethernet/intel/i40e/i40e_main.c
>> index e3a903f01d73..1d969acf9517 100644
>> --- a/drivers/net/ethernet/intel/i40e/i40e_main.c
>> +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
>> @@ -9023,12 +9023,14 @@ 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_RXCSUM         |
>> -                                  NETIF_F_SCTP_CRC       |
>> -                                  NETIF_F_GSO_UDP_TUNNEL |
>> -                                  NETIF_F_GSO_GRE        |
>> -                                  NETIF_F_TSO            |
>> +       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 |
>>                                    0;
>
>
> TUNNEL_CSUM in this case requires the PF_FLAG check for OUTER_UDP_CSUM as
> well

Actually it doesn't.  The hw_enc_features is just a mask.  So if the
device cannot enable TUNNEL_CSUM via the check below, then the feature
will never be exposed to the tunnel anyway.  For hw_features it
matters, but for hw_enc_features it doesn't.

>>         netdev->features = NETIF_F_SG                  |
>> @@ -9050,6 +9052,8 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
>>         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;
>>         /* copy netdev features into list of user selectable features */
>>         netdev->hw_features |= netdev->features;
>>
>> _______________________________________________
>> Intel-wired-lan mailing list
>> Intel-wired-lan@lists.osuosl.org
>> http://lists.osuosl.org/mailman/listinfo/intel-wired-lan
>
>
> _______________________________________________
> Intel-wired-lan mailing list
> Intel-wired-lan@lists.osuosl.org
> http://lists.osuosl.org/mailman/listinfo/intel-wired-lan
diff mbox

Patch

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index e3a903f01d73..1d969acf9517 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -9023,12 +9023,14 @@  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_RXCSUM	  |
-				   NETIF_F_SCTP_CRC	  |
-				   NETIF_F_GSO_UDP_TUNNEL |
-				   NETIF_F_GSO_GRE	  |
-				   NETIF_F_TSO		  |
+	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 |
 				   0;
 
 	netdev->features = NETIF_F_SG		       |
@@ -9050,6 +9052,8 @@  static int i40e_config_netdev(struct i40e_vsi *vsi)
 
 	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;
 
 	/* copy netdev features into list of user selectable features */
 	netdev->hw_features |= netdev->features;