diff options
author | Pyun YongHyeon <yongari@FreeBSD.org> | 2010-08-22 01:39:09 +0000 |
---|---|---|
committer | Pyun YongHyeon <yongari@FreeBSD.org> | 2010-08-22 01:39:09 +0000 |
commit | 35f945cd6212e8add6ec14f1b134ae9516a45e61 (patch) | |
tree | 6d8c9fc6692f5e86cb3109fc34f63d5169199e74 /sys/dev/bge/if_bgereg.h | |
parent | 7e32f79a4499e8b0f5c01bc31bdefd701b1422d7 (diff) | |
download | src-35f945cd6212e8add6ec14f1b134ae9516a45e61.tar.gz src-35f945cd6212e8add6ec14f1b134ae9516a45e61.zip |
It seems all Broadcom controllers have a bug that can generate UDP
datagrams with checksum value 0 when TX UDP checksum offloading is
enabled. Generating UDP checksum value 0 is RFC 768 violation.
Even though the probability of generating such UDP datagrams is
low, I don't want to see FreeBSD boxes to inject such datagrams
into network so disable UDP checksum offloading by default. Users
still override this behavior by setting a sysctl variable or loader
tunable, dev.bge.%d.forced_udpcsum.
I have no idea why this issue was not reported so far given that
bge(4) is one of the most commonly used controller on high-end
server class systems. Thanks to andre@ who passed the PR to me.
PR: kern/104826
Notes
Notes:
svn path=/head/; revision=211596
Diffstat (limited to 'sys/dev/bge/if_bgereg.h')
-rw-r--r-- | sys/dev/bge/if_bgereg.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/bge/if_bgereg.h b/sys/dev/bge/if_bgereg.h index 6664d5b7e567..6970a3d60da4 100644 --- a/sys/dev/bge/if_bgereg.h +++ b/sys/dev/bge/if_bgereg.h @@ -2644,6 +2644,8 @@ struct bge_softc { int bge_link_evt; /* pending link event */ int bge_timer; int bge_forced_collapse; + int bge_forced_udpcsum; + int bge_csum_features; struct callout bge_stat_ch; uint32_t bge_rx_discards; uint32_t bge_tx_discards; |