Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Apr 2012 14:06:05 +0000 (UTC)
From:      Luigi Rizzo <luigi@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r234185 - head/sys/dev/netmap
Message-ID:  <201204121406.q3CE65in031774@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: luigi
Date: Thu Apr 12 14:06:05 2012
New Revision: 234185
URL: http://svn.freebsd.org/changeset/base/234185

Log:
  Apparently the length field in advanced descriptors
  does not include the CRC irrespective of the setting
  of CRCSTRIP. The 82599 data sheets (sec. 7.1.6) say differently.
  Very strange. Need to check what happens on legacy descriptors,
  but for the time being this restores functionality.

Modified:
  head/sys/dev/netmap/ixgbe_netmap.h

Modified: head/sys/dev/netmap/ixgbe_netmap.h
==============================================================================
--- head/sys/dev/netmap/ixgbe_netmap.h	Thu Apr 12 14:02:59 2012	(r234184)
+++ head/sys/dev/netmap/ixgbe_netmap.h	Thu Apr 12 14:06:05 2012	(r234185)
@@ -474,7 +474,12 @@ ixgbe_netmap_rxsync(struct ifnet *ifp, u
 	 * rxr->next_to_check is set to 0 on a ring reinit
 	 */
 	if (netmap_no_pendintr || force_update) {
-		int crclen = ix_crcstrip ? 0 : 4;
+		/* XXX apparently the length field in advanced descriptors
+		 * does not include the CRC irrespective of the setting
+		 * of CRCSTRIP. The data sheets say differently.
+		 * Very strange.
+		 */
+		int crclen = 0; // ix_crcstrip ? 0 : 4;
 		l = rxr->next_to_check;
 		j = netmap_idx_n2k(kring, l);
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204121406.q3CE65in031774>