svn commit: r209586 - user/jmallett/octeon/sys/mips/cavium/octe

Juli Mallett jmallett at FreeBSD.org
Tue Jun 29 10:21:34 UTC 2010


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++;


More information about the svn-src-user mailing list