Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Jun 2010 10:21:34 +0000 (UTC)
From:      Juli Mallett <jmallett@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r209586 - user/jmallett/octeon/sys/mips/cavium/octe
Message-ID:  <201006291021.o5TALYPl092899@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jmallett
Date: Tue Jun 29 10:21:34 2010
New Revision: 209586
URL: http://svn.freebsd.org/changeset/base/209586

Log:
  Check RXCSUM before setting checksum-valid flags on a packet.  Probably not
  very useful, but why not?

Modified:
  user/jmallett/octeon/sys/mips/cavium/octe/ethernet-rx.c

Modified: user/jmallett/octeon/sys/mips/cavium/octe/ethernet-rx.c
==============================================================================
--- user/jmallett/octeon/sys/mips/cavium/octe/ethernet-rx.c	Tue Jun 29 10:13:32 2010	(r209585)
+++ user/jmallett/octeon/sys/mips/cavium/octe/ethernet-rx.c	Tue Jun 29 10:21:34 2010	(r209586)
@@ -317,11 +317,15 @@ void cvm_oct_tasklet_rx(void *context, i
 			if ((ifp->if_flags & IFF_UP)) {
 				m->m_pkthdr.rcvif = ifp;
 
-				if ((work->word2.s.not_IP || work->word2.s.IP_exc || work->word2.s.L4_error))
+				if ((ifp->if_capenable & IFCAP_RXCSUM) != 0) {
+					if ((work->word2.s.not_IP || work->word2.s.IP_exc || work->word2.s.L4_error))
+						m->m_pkthdr.csum_flags = 0; /* XXX */
+					else {
+						m->m_pkthdr.csum_flags = CSUM_IP_CHECKED | CSUM_IP_VALID | CSUM_DATA_VALID | CSUM_PSEUDO_HDR;
+						m->m_pkthdr.csum_data = 0xffff;
+					}
+				} else {
 					m->m_pkthdr.csum_flags = 0; /* XXX */
-				else {
-					m->m_pkthdr.csum_flags = CSUM_IP_CHECKED | CSUM_IP_VALID | CSUM_DATA_VALID | CSUM_PSEUDO_HDR;
-					m->m_pkthdr.csum_data = 0xffff;
 				}
 
 				ifp->if_ipackets++;



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