Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F141892877
D54486.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D54486.diff
View Options
diff --git a/share/man/man4/bge.4 b/share/man/man4/bge.4
--- a/share/man/man4/bge.4
+++ b/share/man/man4/bge.4
@@ -29,7 +29,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
.\" THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd August 18, 2017
+.Dd January 5, 2026
.Dt BGE 4
.Os
.Sh NAME
@@ -276,3 +276,11 @@
while the system is up as the kernel is currently unable to cope with a
.Nm
interface disappearing.
+.Pp
+The UDP transmit checksum offloading is disabled by default, see
+.Va dev.bge.%d.forced_udpcsum .
+To avoid problems when the interface is a member of a
+.Xr bridge 4
+interface, all transmit checksum offloading is initially disabled in this case.
+Transmit checksum offloading can be enabled using
+.Xr ifconfig 8 .
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -3721,7 +3721,12 @@
if_setgetcounterfn(ifp, bge_get_counter);
if_setsendqlen(ifp, BGE_TX_RING_CNT - 1);
if_setsendqready(ifp);
- if_sethwassist(ifp, sc->bge_csum_features);
+ /* Initially enable checksum offloading either for all of IPv4, TCP/IPv4
+ * and UDP/IPv4, or for none. This avoids problems when the interface
+ * is added to a bridge.
+ */
+ if (sc->bge_csum_features & CSUM_UDP)
+ if_sethwassist(ifp, sc->bge_csum_features);
if_setcapabilities(ifp, IFCAP_HWCSUM | IFCAP_VLAN_HWTAGGING |
IFCAP_VLAN_MTU);
if ((sc->bge_flags & (BGE_FLAG_TSO | BGE_FLAG_TSO3)) != 0) {
@@ -3732,6 +3737,13 @@
if_setcapabilitiesbit(ifp, IFCAP_VLAN_HWCSUM, 0);
#endif
if_setcapenable(ifp, if_getcapabilities(ifp));
+ /*
+ * Disable TXCSUM capability initially, if UDP checksum offloading is
+ * not enabled. This avoids problems when the interface is added to a
+ * bridge.
+ */
+ if ((sc->bge_csum_features & CSUM_UDP) == 0)
+ if_setcapenablebit(ifp, 0, IFCAP_TXCSUM);
#ifdef DEVICE_POLLING
if_setcapabilitiesbit(ifp, IFCAP_POLLING, 0);
#endif
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Jan 13, 2:43 AM (5 h, 36 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27624256
Default Alt Text
D54486.diff (1 KB)
Attached To
Mode
D54486: bge: disable TXCSUM if UDP transmit checksum offloading is disabled
Attached
Detach File
Event Timeline
Log In to Comment