NETIF_F_GSO_UDP_TUNNEL_CSUM
if ((features & NETIF_F_GSO_UDP_TUNNEL_CSUM) &&
if (!(features & NETIF_F_GSO_UDP_TUNNEL_CSUM)) {
features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
if (features & NETIF_F_GSO_UDP_TUNNEL_CSUM) {
features &= ~NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM |
netdev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL | NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_GSO_GRE_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_GSO_GRE_CSUM |
dev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM)
netdev->features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL | NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_GSO_UDP_TUNNEL;
tso_fts |= NETIF_F_GSO_UDP_TUNNEL | NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM |
netdev->gso_partial_features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM)
NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM |
netdev->gso_partial_features |= NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM)
NETIF_F_GSO_UDP_TUNNEL_CSUM)
NETIF_F_GSO_UDP_TUNNEL_CSUM)
NETIF_F_GSO_UDP_TUNNEL_CSUM)
NETIF_F_GSO_UDP_TUNNEL_CSUM)
NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM |
dev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM;
netdev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM |
netdev->gso_partial_features = NETIF_F_GSO_UDP_TUNNEL_CSUM;
if (features & NETIF_F_GSO_UDP_TUNNEL_CSUM)
NETIF_F_GSO_UDP_TUNNEL_CSUM;
netdev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM);
NETIF_F_GSO_UDP_TUNNEL_CSUM);
NETIF_F_GSO_UDP_TUNNEL_CSUM | NETIF_F_GSO_GRE_CSUM;
NETIF_F_GSO_UDP_TUNNEL | NETIF_F_GSO_UDP_TUNNEL_CSUM |
NETIF_F_GSO_UDP_TUNNEL | NETIF_F_GSO_UDP_TUNNEL_CSUM)
features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
return NETIF_F_GSO_UDP_TUNNEL | NETIF_F_GSO_UDP_TUNNEL_CSUM;
features & NETIF_F_GSO_UDP_TUNNEL_CSUM,
dev->hw_features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
dev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM))
NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM;
netdev->hw_enc_features &= ~NETIF_F_GSO_UDP_TUNNEL_CSUM;
netdev->hw_features &= ~NETIF_F_GSO_UDP_TUNNEL_CSUM;
if (features & NETIF_F_GSO_UDP_TUNNEL_CSUM)
netdev->hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL_CSUM;
netdev->hw_enc_features &= ~NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM);
NETIF_F_GSO_UDP_TUNNEL_CSUM;
NETIF_F_GSO_UDP_TUNNEL_CSUM)
BUILD_BUG_ON(SKB_GSO_UDP_TUNNEL_CSUM != (NETIF_F_GSO_UDP_TUNNEL_CSUM >> NETIF_F_GSO_SHIFT));