Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Feb 2009 15:55:01 +0000 (UTC)
From:      Doug Rabson <dfr@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r188486 - user/dfr/xenhvm/6/sys/dev/xen/netfront
Message-ID:  <200902111555.n1BFt1Ad029807@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dfr
Date: Wed Feb 11 15:55:01 2009
New Revision: 188486
URL: http://svn.freebsd.org/changeset/base/188486

Log:
  Enable checksum offload.

Modified:
  user/dfr/xenhvm/6/sys/dev/xen/netfront/netfront.c

Modified: user/dfr/xenhvm/6/sys/dev/xen/netfront/netfront.c
==============================================================================
--- user/dfr/xenhvm/6/sys/dev/xen/netfront/netfront.c	Wed Feb 11 15:22:01 2009	(r188485)
+++ user/dfr/xenhvm/6/sys/dev/xen/netfront/netfront.c	Wed Feb 11 15:55:01 2009	(r188486)
@@ -76,6 +76,8 @@ __FBSDID("$FreeBSD$");
 
 #include "xenbus_if.h"
 
+#define XN_CSUM_FEATURES	(CSUM_TCP | CSUM_UDP)
+
 #define GRANT_INVALID_REF	0
 
 #define NET_TX_RING_SIZE __RING_SIZE((netif_tx_sring_t *)0, PAGE_SIZE)
@@ -493,11 +495,6 @@ talk_to_backend(device_t dev, struct net
 		message = "writing feature-rx-notify";
 		goto abort_transaction;
 	}
-	err = xenbus_printf(xbt, node, "feature-no-csum-offload", "%d", 1);
-	if (err) {
-		message = "writing feature-no-csum-offload";
-		goto abort_transaction;
-	}
 	err = xenbus_printf(xbt, node, "feature-sg", "%d", 1);
 	if (err) {
 		message = "writing feature-sg";
@@ -1366,10 +1363,10 @@ xn_start_locked(struct ifnet *ifp) 
 		    mfn, GNTMAP_readonly);
 		tx->gref = sc->grant_tx_ref[id] = ref;
 		tx->size = new_m->m_pkthdr.len;
-#if 0
-		tx->flags = (skb->ip_summed == CHECKSUM_HW) ? NETTXF_csum_blank : 0;
-#endif
-		tx->flags = 0;
+		if (new_m->m_pkthdr.csum_flags & CSUM_DELAY_DATA)
+			tx->flags = NETTXF_csum_blank | NETTXF_data_validated;
+		else
+			tx->flags = 0;
 		new_m->m_next = NULL;
 		new_m->m_nextpkt = NULL;
 
@@ -1734,11 +1731,9 @@ create_netdev(device_t dev)
     	ifp->if_mtu = ETHERMTU;
     	ifp->if_snd.ifq_maxlen = NET_TX_RING_SIZE - 1;
 	
-#ifdef notyet
     	ifp->if_hwassist = XN_CSUM_FEATURES;
     	ifp->if_capabilities = IFCAP_HWCSUM;
     	ifp->if_capenable = ifp->if_capabilities;
-#endif    
 	
     	ether_ifattach(ifp, np->mac);
     	callout_init(&np->xn_stat_ch, CALLOUT_MPSAFE);



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