diff options
author | jfv <jfv@FreeBSD.org> | 2009-08-24 21:04:51 +0000 |
---|---|---|
committer | jfv <jfv@FreeBSD.org> | 2009-08-24 21:04:51 +0000 |
commit | 91fcf01735145ebd2496ff073dcf063d8b912862 (patch) | |
tree | 825cd7ab62b5ba6772e0f27fc2af63822259db06 | |
parent | 25dbab4fa7cb92811a80ab6e0b34f0fb3451cd78 (diff) | |
download | FreeBSD-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.
-rw-r--r-- | sys/net/if_bridge.c | 13 |
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); } |