eth: fbnic: support TCP segmentation offload
authorJakub Kicinski <kuba@kernel.org>
Sun, 16 Feb 2025 17:41:09 +0000 (09:41 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 18 Feb 2025 00:54:41 +0000 (16:54 -0800)
commitb0b0f52042acb324cd39fbefb2b1ae83af8f8ae1
tree9f00fd97c9210a7a664b79e716f2e967743982c8
parentb5e489003abcff4b65088d49fce78dcb3cc1ae06
eth: fbnic: support TCP segmentation offload

Add TSO support to the driver. Device can handle unencapsulated or
IPv6-in-IPv6 packets. Any other tunnel stacks are handled with
GSO partial.

Validate that the packet can be offloaded in ndo_features_check.
Main thing we need to check for is that the header geometry can
be expressed in the decriptor fields (offsets aren't too large).

Report number of TSO super-packets via the qstat API.

Link: https://patch.msgid.link/20250216174109.2808351-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
drivers/net/ethernet/meta/fbnic/fbnic_netdev.h
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
drivers/net/ethernet/meta/fbnic/fbnic_txrx.h