summaryrefslogtreecommitdiffstats
path: root/sys/net/if_bridge.c
diff options
context:
space:
mode:
authorjfv <jfv@FreeBSD.org>2009-08-24 21:04:51 +0000
committerjfv <jfv@FreeBSD.org>2009-08-24 21:04:51 +0000
commit91fcf01735145ebd2496ff073dcf063d8b912862 (patch)
tree825cd7ab62b5ba6772e0f27fc2af63822259db06 /sys/net/if_bridge.c
parent25dbab4fa7cb92811a80ab6e0b34f0fb3451cd78 (diff)
downloadFreeBSD-src-91fcf01735145ebd2496ff073dcf063d8b912862.zip
FreeBSD-src-91fcf01735145ebd2496ff073dcf063d8b912862.tar.gz
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.
Diffstat (limited to 'sys/net/if_bridge.c')
-rw-r--r--sys/net/if_bridge.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c
index f1a79cb..d3a55fd 100644
--- a/sys/net/if_bridge.c
+++ b/sys/net/if_bridge.c
@@ -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);
}
OpenPOWER on IntegriCloud