aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/bge/if_bgereg.h
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2010-08-22 01:39:09 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2010-08-22 01:39:09 +0000
commit35f945cd6212e8add6ec14f1b134ae9516a45e61 (patch)
tree6d8c9fc6692f5e86cb3109fc34f63d5169199e74 /sys/dev/bge/if_bgereg.h
parent7e32f79a4499e8b0f5c01bc31bdefd701b1422d7 (diff)
downloadsrc-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.h2
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;