linux/drivers/net/ethernet/broadcom
Jesse Gross 5f35227ea3 net: Generalize ndo_gso_check to ndo_features_check
GSO isn't the only offload feature with restrictions that
potentially can't be expressed with the current features mechanism.
Checksum is another although it's a general issue that could in
theory apply to anything. Even if it may be possible to
implement these restrictions in other ways, it can result in
duplicate code or inefficient per-packet behavior.

This generalizes ndo_gso_check so that drivers can remove any
features that don't make sense for a given packet, similar to
netif_skb_features(). It also converts existing driver
restrictions to the new format, completing the work that was
done to support tunnel protocols since the issues apply to
checksums as well.

By actually removing features from the set that are used to do
offloading, it solves another problem with the existing
interface. In these cases, GSO would run with the original set
of features and not do anything because it appears that
segmentation is not required.

CC: Tom Herbert <therbert@google.com>
CC: Joe Stringer <joestringer@nicira.com>
CC: Eric Dumazet <edumazet@google.com>
CC: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by:  Tom Herbert <therbert@google.com>
Fixes: 04ffcb255f ("net: Add ndo_gso_check")
Tested-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-12-26 17:20:56 -05:00
..
bnx2x net: Generalize ndo_gso_check to ndo_features_check 2014-12-26 17:20:56 -05:00
genet Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
b44.c ethernet/broadcom: Use napi_alloc_skb instead of netdev_alloc_skb_ip_align 2014-12-10 13:31:58 -05:00
b44.h b44: use fixed PHY device if we do not find any 2013-12-20 20:48:49 -05:00
bcm63xx_enet.c ethernet/broadcom: Use napi_alloc_skb instead of netdev_alloc_skb_ip_align 2014-12-10 13:31:58 -05:00
bcm63xx_enet.h bcm63xx_enet: add support Broadcom BCM6345 Ethernet 2013-06-13 17:22:08 -07:00
bcmsysport.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
bcmsysport.h net: systemport: log RX buffer allocation and RX/TX DMA failures 2014-11-21 14:46:12 -05:00
bgmac.c net: get rid of SET_ETHTOOL_OPS 2014-05-13 17:43:20 -04:00
bgmac.h bgmac: add support for Northstar SoC (BCM4707, BCM53018) 2014-01-04 20:25:20 -05:00
bnx2_fw.h bnx2: Rebranding bnx2 driver. 2014-06-25 16:27:27 -07:00
bnx2.c bnx2: Correctly receive full sized 802.1ad fragmes 2014-10-01 16:43:45 -04:00
bnx2.h bnx2: Rebranding bnx2 driver. 2014-06-25 16:27:27 -07:00
cnic_defs.h cnic: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
cnic_if.h cnic: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
cnic.c cnic: Update the rcu_access_pointer() usages 2014-10-29 15:07:28 -04:00
cnic.h cnic: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
Kconfig net: systemport: always select FIXED_PHY 2014-12-16 00:57:07 -05:00
Makefile net: systemport: hook SYSTEMPORT driver in the build 2014-04-26 12:57:40 -04:00
sb1250-mac.c net: ethernet: broadcom: drop owner assignment from platform_drivers 2014-10-20 16:21:05 +02:00
tg3.c tg3: tg3_disable_ints using uninitialized mailbox value to disable interrupts 2014-12-22 16:13:32 -05:00
tg3.h tg3: prevent ifup/ifdown during PCI error recovery 2014-09-02 13:02:19 -07:00