After playing with multiple versions of m0n0wall as well as full
FreeBSD installs, different cables and switches, I found the source
of the errors. It appears that under FreeBSD 4.x and 6.x, the sis
driver isn't actually switching the nic to full-duplex when
instructed to. It happily reports that it's been hardcoded to 100
Full, but continues to operate in half-duplex mode. Reverting to
auto-negotiation results in the nic and switch agreeing on 100 Full,
and runs error free.
I'll have to submit a PR I guess.