sepherosa_gmail.com created this revision.
sepherosa_gmail.com added reviewers: network, adrian, delphij, royger, 
decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com.
sepherosa_gmail.com added a subscriber: freebsd-net-list.

REVISION SUMMARY
  - TCP/IP stack will not do unnecessary IP header checksum for TSO packets
  - Reduce guest load for non-TSO IP packets.

REVISION DETAIL
  https://reviews.freebsd.org/D5099

AFFECTED FILES
  sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c

CHANGE DETAILS
  diff --git a/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c 
b/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  --- a/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  +++ b/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  @@ -172,7 +172,7 @@
    * 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 @@
                            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;

EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: sepherosa_gmail.com, network, adrian, delphij, royger, decui_microsoft.com, 
honzhan_microsoft.com, howard0su_gmail.com
Cc: freebsd-net-list
diff --git a/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c b/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
--- a/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
+++ b/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
@@ -172,7 +172,7 @@
  * 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 @@
 			    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;

_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to