Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'net-make-udp-tunnel-devices-support-fraglist'

Xin Long says:

====================
net: make udp tunnel devices support fraglist

Like GRE device, UDP tunnel devices should also support fraglist, so
that some protocol (like SCTP) HW GSO that requires NETIF_F_FRAGLIST
in the dev can work. Especially when the lower device support both
NETIF_F_GSO_UDP_TUNNEL and NETIF_F_GSO_SCTP.
====================

Link: https://lore.kernel.org/r/cover.1610704037.git.lucien.xin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+9 -6
+3 -2
drivers/net/bareudp.c
··· 532 532 dev->netdev_ops = &bareudp_netdev_ops; 533 533 dev->needs_free_netdev = true; 534 534 SET_NETDEV_DEVTYPE(dev, &bareudp_type); 535 - dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM; 535 + dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST; 536 536 dev->features |= NETIF_F_RXCSUM; 537 537 dev->features |= NETIF_F_LLTX; 538 538 dev->features |= NETIF_F_GSO_SOFTWARE; 539 - dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_RXCSUM; 539 + dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST; 540 + dev->hw_features |= NETIF_F_RXCSUM; 540 541 dev->hw_features |= NETIF_F_GSO_SOFTWARE; 541 542 dev->hard_header_len = 0; 542 543 dev->addr_len = 0;
+3 -2
drivers/net/geneve.c
··· 1197 1197 SET_NETDEV_DEVTYPE(dev, &geneve_type); 1198 1198 1199 1199 dev->features |= NETIF_F_LLTX; 1200 - dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM; 1200 + dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST; 1201 1201 dev->features |= NETIF_F_RXCSUM; 1202 1202 dev->features |= NETIF_F_GSO_SOFTWARE; 1203 1203 1204 - dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_RXCSUM; 1204 + dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST; 1205 + dev->hw_features |= NETIF_F_RXCSUM; 1205 1206 dev->hw_features |= NETIF_F_GSO_SOFTWARE; 1206 1207 1207 1208 /* MTU range: 68 - (something less than 65535) */
+3 -2
drivers/net/vxlan.c
··· 3283 3283 SET_NETDEV_DEVTYPE(dev, &vxlan_type); 3284 3284 3285 3285 dev->features |= NETIF_F_LLTX; 3286 - dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM; 3286 + dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST; 3287 3287 dev->features |= NETIF_F_RXCSUM; 3288 3288 dev->features |= NETIF_F_GSO_SOFTWARE; 3289 3289 3290 3290 dev->vlan_features = dev->features; 3291 - dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_RXCSUM; 3291 + dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST; 3292 + dev->hw_features |= NETIF_F_RXCSUM; 3292 3293 dev->hw_features |= NETIF_F_GSO_SOFTWARE; 3293 3294 netif_keep_dst(dev); 3294 3295 dev->priv_flags |= IFF_NO_QUEUE;