Bug 203476

Summary: [net] [igb] not optimal checksum processing
Product: Base System Reporter: dmitry2004
Component: kernAssignee: freebsd-net (Nobody) <net>
Status: Closed Overcome By Events    
Severity: Affects Some People CC: erj, kbowling, shurd
Priority: --- Keywords: IntelNetworking, patch
Version: 10.2-STABLE   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Patch for if_igb.h none

Description dmitry2004 2015-10-01 16:52:55 UTC
Created attachment 161607 [details]
Patch for if_igb.h

igb driver declare in sys/dev/e1000/if_igb.c:
  ifp->if_hwassist support (CSUM_TCP|CSUM_UDP|CSUM),

but in sys/dev/e1000/if_igb.h:
 #define CSUM_OFFLOAD (CSUM_IP|CSUM_TCP|CSUM_UDP|CSUM_SCTP)

this difference results = the not optimal in igb_tx_ctx_setup() in sys/dev/e1000/if_igb.c for packets other than TCP|UDP|SCTP.


And i think not work TCP, UDP, SCTP offload for IPv6 (not check), then send IPv6 TCP or UDP network stack sets flags CSUM_TCP_IPV6 or CSUM_UDP_IPV6, but in if_hwassist no CSUM_TCP_IPV6|CSUM_UDP_IPV6.

Hardware support it.

http://www.intel.com/content/dam/doc/product-brief/82576-gbe-controller-brief.pdf
Comment 1 Kevin Bowling freebsd_committer freebsd_triage 2021-05-03 02:27:26 UTC
The way this works in the FreeBSD 12+ driver looks correct with respect to your patch.  If you want to review the current settings take a look at isc_tx_csum_flags in if_em.c.