TXCSUM on bge0 breaks bridging

Damian Gerow dgerow at afflictions.org
Sun Apr 24 15:39:17 PDT 2005


Someone just helped me through a bridging problem I was having, and I
thought I'd throw the problem out to the list to see if it's a bug, or at
least, for archival purposes.

I have a machine that I'm using as a workstation, that I would also like to
use to bridge a home LAN.  It has two interfaces: bge and fxp.

    bge0 -> 172.19.206.56
    fxp0 -> ipless

When I bridged the two interfaces, the workstation could only talk on the
bge side of the network, not the fxp side.  Note that any device on either
side of the network could speak to the other side.

Some initial debugging:

    # sysctl net.link.ether.bridge
    net.link.ether.bridge.version: 031224
    net.link.ether.bridge.debug: 0
    net.link.ether.bridge.ipf: 0
    net.link.ether.bridge.ipfw: 0
    net.link.ether.bridge.copy: 0
    net.link.ether.bridge.ipfw_drop: 0
    net.link.ether.bridge.ipfw_collisions: 0
    net.link.ether.bridge.packets: 2687590
    net.link.ether.bridge.dropped: 0
    net.link.ether.bridge.predict: 70
    net.link.ether.bridge.enable: 1
    net.link.ether.bridge.config: fxp0 bge0
    #

I tcpdump'ed on the fxp interface, and could see a device nab an address via
DHCP, and an ARP to the device from my workstation seemed to work, but I
could not ping it.  It was pointed out to me that the fxp does off-board
checksumming, and what would happen if I disabled the one on bge0?  Well, it
fixed the problem.

I can have TXCSUM enabled *only* on fxp0, not on bge0: so long as TXCSUM is
disabled on bge0, irregardless of the state of fxp0, I can talk to any
device attached to fxp0.


More information about the freebsd-stable mailing list