|
@@ -9111,40 +9111,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);
|
|
@@ -9183,12 +9179,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 */
|