Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Aug 2009 21:04:51 +0000 (UTC)
From:      Jack F Vogel <jfv@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r196519 - head/sys/net
Message-ID:  <200908242104.n7OL4pYi006428@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jfv
Date: Mon Aug 24 21:04:51 2009
New Revision: 196519
URL: http://svn.freebsd.org/changeset/base/196519

Log:
  When bridging LRO is causing a problem, the believe
  that it would work as long as all interfaces have TSO
  seems to be false, until the matter gets sorted out
  just disable LRO completely.

Modified:
  head/sys/net/if_bridge.c

Modified: head/sys/net/if_bridge.c
==============================================================================
--- head/sys/net/if_bridge.c	Mon Aug 24 20:41:51 2009	(r196518)
+++ head/sys/net/if_bridge.c	Mon Aug 24 21:04:51 2009	(r196519)
@@ -171,6 +171,11 @@ __FBSDID("$FreeBSD$");
 #define	BRIDGE_IFCAPS_MASK		(IFCAP_TOE|IFCAP_TSO|IFCAP_TXCSUM)
 
 /*
+ * List of capabilities to strip
+ */
+#define	BRIDGE_IFCAPS_STRIP		IFCAP_LRO
+
+/*
  * Bridge interface list entry.
  */
 struct bridge_iflist {
@@ -802,16 +807,10 @@ bridge_mutecaps(struct bridge_softc *sc)
 
 	LIST_FOREACH(bif, &sc->sc_iflist, bif_next) {
 		enabled = bif->bif_ifp->if_capenable;
+		enabled &= ~BRIDGE_IFCAPS_STRIP;
 		/* strip off mask bits and enable them again if allowed */
 		enabled &= ~BRIDGE_IFCAPS_MASK;
 		enabled |= mask;
-		/*
-		 * Receive offload can only be enabled if all members also
-		 * support send offload.
-		 */
-		if ((enabled & IFCAP_TSO) == 0)
-			enabled &= ~IFCAP_LRO;
-
 		bridge_set_ifcap(sc, bif, enabled);
 	}
 



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