|
@@ -3762,15 +3762,18 @@ static void nfp_net_netdev_init(struct nfp_net *nn)
|
|
|
}
|
|
|
if (nn->cap & NFP_NET_CFG_CTRL_RSS_ANY)
|
|
|
netdev->hw_features |= NETIF_F_RXHASH;
|
|
|
- if (nn->cap & NFP_NET_CFG_CTRL_VXLAN &&
|
|
|
- nn->cap & NFP_NET_CFG_CTRL_NVGRE) {
|
|
|
+ if (nn->cap & NFP_NET_CFG_CTRL_VXLAN) {
|
|
|
if (nn->cap & NFP_NET_CFG_CTRL_LSO)
|
|
|
- netdev->hw_features |= NETIF_F_GSO_GRE |
|
|
|
- NETIF_F_GSO_UDP_TUNNEL;
|
|
|
- nn->dp.ctrl |= NFP_NET_CFG_CTRL_VXLAN | NFP_NET_CFG_CTRL_NVGRE;
|
|
|
-
|
|
|
- netdev->hw_enc_features = netdev->hw_features;
|
|
|
+ netdev->hw_features |= NETIF_F_GSO_UDP_TUNNEL;
|
|
|
+ nn->dp.ctrl |= NFP_NET_CFG_CTRL_VXLAN;
|
|
|
}
|
|
|
+ if (nn->cap & NFP_NET_CFG_CTRL_NVGRE) {
|
|
|
+ if (nn->cap & NFP_NET_CFG_CTRL_LSO)
|
|
|
+ netdev->hw_features |= NETIF_F_GSO_GRE;
|
|
|
+ nn->dp.ctrl |= NFP_NET_CFG_CTRL_NVGRE;
|
|
|
+ }
|
|
|
+ if (nn->cap & (NFP_NET_CFG_CTRL_VXLAN | NFP_NET_CFG_CTRL_NVGRE))
|
|
|
+ netdev->hw_enc_features = netdev->hw_features;
|
|
|
|
|
|
netdev->vlan_features = netdev->hw_features;
|
|
|
|