svn commit: r295298 - head/sys/dev/hyperv/netvsc

Sepherosa Ziehau sephe at FreeBSD.org
Fri Feb 5 05:01:03 UTC 2016


Author: sephe
Date: Fri Feb  5 05:01:02 2016
New Revision: 295298
URL: https://svnweb.freebsd.org/changeset/base/295298

Log:
  hyperv/hn: Enable IP header checksum offloading
  
  So that:
  - TCP/IP stack will not do unnecessary IP header checksum for TSO
    packets.
  - Reduce guest load for non-TSO IP packets.
  
  Reviewed by:	adrian
  Approved by:	adrian (mentor)
  MFC after:	1 week
  Sponsored by:	Microsoft OSTC
  Differential Revision:	https://reviews.freebsd.org/D5099

Modified:
  head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c

Modified: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
==============================================================================
--- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c	Fri Feb  5 04:10:04 2016	(r295297)
+++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c	Fri Feb  5 05:01:02 2016	(r295298)
@@ -172,7 +172,7 @@ struct hn_txdesc {
  * Windows releases.
  */
 #define HN_CSUM_ASSIST_WIN8	(CSUM_TCP)
-#define HN_CSUM_ASSIST		(CSUM_UDP | CSUM_TCP)
+#define HN_CSUM_ASSIST		(CSUM_IP | CSUM_UDP | CSUM_TCP)
 
 /* XXX move to netinet/tcp_lro.h */
 #define HN_LRO_HIWAT_MAX				65535
@@ -867,6 +867,9 @@ hn_start_locked(struct ifnet *ifp, int l
 			    rppi->per_packet_info_offset);
 
 			csum_info->xmit.is_ipv4 = 1;
+			if (m_head->m_pkthdr.csum_flags & CSUM_IP)
+				csum_info->xmit.ip_header_csum = 1;
+
 			if (m_head->m_pkthdr.csum_flags & CSUM_TCP) {
 				csum_info->xmit.tcp_csum = 1;
 				csum_info->xmit.tcp_header_offset = 0;


More information about the svn-src-head mailing list