From af9f623aed9e5af9cbd4c1926be2c7319d6c5d1e Mon Sep 17 00:00:00 2001 From: Autismo Date: Sun, 6 Sep 2026 12:23:35 +0200 Subject: [PATCH] Disable NIC checksum, LSO, and VLAN tags. Gaming Ethernet tune already killed EEE/IM/flow/WoL. Also turn off checksum/LSO and Priority/VLAN. RSS stays on. Do not force Speed/Duplex. --- godbrain_core/reclaim11/README.md | 5 +++-- godbrain_core/reclaim11/ps1/nic_tune.ps1 | 23 ++++++++++++++++++---- godbrain_core/reclaim11/ui/MainWindow.xaml | 2 +- scripts/Test-Reclaim11.ps1 | 16 ++++++++++++++- 4 files changed, 38 insertions(+), 8 deletions(-) diff --git a/godbrain_core/reclaim11/README.md b/godbrain_core/reclaim11/README.md index d2cd974..868e99e 100644 --- a/godbrain_core/reclaim11/README.md +++ b/godbrain_core/reclaim11/README.md @@ -144,8 +144,9 @@ Does **not** delete `xboxgip`. Does **not** remove start=disabled. Restore: `pwsh -File telemetry_cleanse.ps1 -Restore restore.json`. -**Tune NIC** (Ethernet only): EEE/interrupt moderation/flow/WoL off, RSS on, -Rx/Tx **256–512**. Skips VMware host VMnet / Tailscale / Wi-Fi. +**Tune NIC** (Ethernet only): EEE/interrupt moderation/flow/WoL off, +checksum/LSO/VLAN-priority off, RSS on, Rx/Tx **256–512**. Does not +force Speed/Duplex. Skips VMware host VMnet / Tailscale / Wi-Fi. `pwsh -File nic_tune.ps1 -T`. **Latency bake** (Expert, in-Windows): flags are under diff --git a/godbrain_core/reclaim11/ps1/nic_tune.ps1 b/godbrain_core/reclaim11/ps1/nic_tune.ps1 index cd2a620..5fe5377 100644 --- a/godbrain_core/reclaim11/ps1/nic_tune.ps1 +++ b/godbrain_core/reclaim11/ps1/nic_tune.ps1 @@ -1,5 +1,6 @@ -# Gaming NIC tune: disable power-saving / EEE / interrupt moderation, -# set RSS on, bump Rx/Tx buffers. Keyword map, not per-vendor scripts. +# Gaming NIC tune: disable power-saving / EEE / interrupt moderation / +# checksum / LSO / VLAN tags, set RSS on, bump Rx/Tx buffers. +# Keyword map, not per-vendor scripts. Do not force Speed/Duplex. # Physical Ethernet only (skip Wi-Fi, VMware, Tailscale, Bluetooth). # restore.json first. -T is DeviceCleanupCmd-t. Never BFE. @@ -24,22 +25,36 @@ $script:NicSkipDesc = @( "*Kernel Debug*", "*Npcap*", "*TAP-*" ) -# Disable = power / latency junk. Not checksum/LSO (CPU vs packets). +# Disable = power / latency / offload junk. VLAN/priority off (n00b kit; +# anyone on tagged LAN knows how to turn it back). Not Speed/Duplex. $script:NicDisable = @( @{ Keyword = "*EEE"; Display = @("Energy Efficient Ethernet", "EEE") }, @{ Keyword = "*EEELinkAdvertisement"; Display = @("EEE Link Advertisement") }, @{ Keyword = "*InterruptModeration"; Display = @("Interrupt Moderation") }, @{ Keyword = "ITR"; Display = @("Interrupt Moderation Rate") }, @{ Keyword = "*FlowControl"; Display = @("Flow Control") }, + @{ Keyword = "*TCPChecksumOffloadIPv4"; Display = @("TCP Checksum Offload (IPv4)") }, + @{ Keyword = "*TCPChecksumOffloadIPv6"; Display = @("TCP Checksum Offload (IPv6)") }, + @{ Keyword = "*UDPChecksumOffloadIPv4"; Display = @("UDP Checksum Offload (IPv4)") }, + @{ Keyword = "*UDPChecksumOffloadIPv6"; Display = @("UDP Checksum Offload (IPv6)") }, + @{ Keyword = "*IPChecksumOffloadIPv4"; Display = @("IPv4 Checksum Offload") }, + @{ Keyword = "*IPChecksumOffloadIPv6"; Display = @("IPv6 Checksum Offload") }, + @{ Keyword = "*LsoV2IPv4"; Display = @("Large Send Offload V2 (IPv4)") }, + @{ Keyword = "*LsoV2IPv6"; Display = @("Large Send Offload V2 (IPv6)") }, + @{ Keyword = "*LsoV1IPv4"; Display = @("Large Send Offload (IPv4)") }, + @{ Keyword = "*PriorityVLANTag"; Display = @("Packet Priority & VLAN", "Priority & VLAN") }, @{ Keyword = "*PMARPOffload"; Display = @("ARP Offload") }, @{ Keyword = "*PMNSOffload"; Display = @("NS Offload") }, @{ Keyword = "*WakeOnMagicPacket"; Display = @("Wake on Magic Packet", "Wake on magic packet") }, @{ Keyword = "*WakeOnPattern"; Display = @("Wake on Pattern Match", "Wake on pattern match") }, + @{ Keyword = "WakeOnMagicPacketFromS5"; Display = @("Wake On Magic Packet From S5") }, @{ Keyword = "*PacketCoalescing"; Display = @("Packet Coalescing") }, @{ Keyword = "EnableWakeOnLan"; Display = @("Wake on LAN", "Wake On LAN") }, @{ Keyword = "GreenEthernet"; Display = @("Green Ethernet", "GreenEthernet") }, @{ Keyword = "PowerSavingMode"; Display = @("Power Saving Mode", "Ultra Low Power Mode") }, - @{ Keyword = "*IdlePowerDown"; Display = @("Reduce Speed On Power Down", "Auto Disable Gigabit") } + @{ Keyword = "*IdlePowerDown"; Display = @("Reduce Speed On Power Down", "Auto Disable Gigabit") }, + @{ Keyword = "*IdleRestriction"; Display = @("Idle power down restriction") }, + @{ Keyword = "AdaptiveIFS"; Display = @("Adaptive Inter-Frame Spacing") } ) $script:NicEnable = @( diff --git a/godbrain_core/reclaim11/ui/MainWindow.xaml b/godbrain_core/reclaim11/ui/MainWindow.xaml index 6840665..cd31347 100644 --- a/godbrain_core/reclaim11/ui/MainWindow.xaml +++ b/godbrain_core/reclaim11/ui/MainWindow.xaml @@ -189,7 +189,7 @@ - + diff --git a/scripts/Test-Reclaim11.ps1 b/scripts/Test-Reclaim11.ps1 index bc3a5ad..6885e88 100644 --- a/scripts/Test-Reclaim11.ps1 +++ b/scripts/Test-Reclaim11.ps1 @@ -1218,13 +1218,27 @@ $intelProps = @( [pscustomobject]@{ DisplayName = "Energy Efficient Ethernet"; RegistryKeyword = "*EEE"; RegistryValue = @("1"); ValidRegistryValues = @("0", "1") }, [pscustomobject]@{ DisplayName = "Receive Side Scaling"; RegistryKeyword = "*RSS"; RegistryValue = @("0"); ValidRegistryValues = @("0", "1") }, [pscustomobject]@{ DisplayName = "Receive Buffers"; RegistryKeyword = "*ReceiveBuffers"; RegistryValue = @("256"); ValidRegistryValues = @("128", "256", "512", "1024", "2048", "4096") }, - [pscustomobject]@{ DisplayName = "Transmit Buffers"; RegistryKeyword = "*TransmitBuffers"; RegistryValue = @("256"); ValidRegistryValues = @("128", "256", "512", "1024", "2048") } + [pscustomobject]@{ DisplayName = "Transmit Buffers"; RegistryKeyword = "*TransmitBuffers"; RegistryValue = @("256"); ValidRegistryValues = @("128", "256", "512", "1024", "2048") }, + [pscustomobject]@{ DisplayName = "TCP Checksum Offload (IPv4)"; RegistryKeyword = "*TCPChecksumOffloadIPv4"; RegistryValue = @("3"); ValidRegistryValues = @("0", "1", "2", "3") }, + [pscustomobject]@{ DisplayName = "Large Send Offload V2 (IPv4)"; RegistryKeyword = "*LsoV2IPv4"; RegistryValue = @("1"); ValidRegistryValues = @("0", "1") }, + [pscustomobject]@{ DisplayName = "Packet Priority & VLAN"; RegistryKeyword = "*PriorityVLANTag"; RegistryValue = @("3"); ValidRegistryValues = @("0", "1", "2", "3") }, + [pscustomobject]@{ DisplayName = "Speed & Duplex"; RegistryKeyword = "*SpeedDuplex"; RegistryValue = @("0"); ValidRegistryValues = @("0", "6") } ) $nicPlan = Resolve-Reclaim11NicPlan -AdapterName "Ethernet" -Props $intelProps $eee = @($nicPlan | Where-Object { $_.keyword -eq "*EEE" } | Select-Object -First 1) if (-not $eee -or $eee.wanted -ne "0") { throw "Test-Reclaim11: NIC map must disable *EEE" } $rss = @($nicPlan | Where-Object { $_.keyword -eq "*RSS" } | Select-Object -First 1) if (-not $rss -or $rss.wanted -ne "1") { throw "Test-Reclaim11: NIC map must enable *RSS" } +$csum = @($nicPlan | Where-Object { $_.keyword -eq "*TCPChecksumOffloadIPv4" } | Select-Object -First 1) +if (-not $csum -or $csum.wanted -ne "0") { throw "Test-Reclaim11: NIC map must disable TCP checksum offload" } +$lso = @($nicPlan | Where-Object { $_.keyword -eq "*LsoV2IPv4" } | Select-Object -First 1) +if (-not $lso -or $lso.wanted -ne "0") { throw "Test-Reclaim11: NIC map must disable LSO" } +$vlan = @($nicPlan | Where-Object { $_.keyword -eq "*PriorityVLANTag" } | Select-Object -First 1) +if (-not $vlan -or $vlan.wanted -ne "0") { throw "Test-Reclaim11: NIC map must disable Priority/VLAN" } +$spd = @($nicPlan | Where-Object { $_.keyword -eq "*SpeedDuplex" } | Select-Object -First 1) +if ($spd) { throw "Test-Reclaim11: NIC map must not force Speed/Duplex" } +$nicSrcEarly = Get-Content -LiteralPath (Join-Path $ps1 "nic_tune.ps1") -Raw -Encoding UTF8 +if ($nicSrcEarly -match '\*SpeedDuplex') { throw "Test-Reclaim11: nic_tune must not set SpeedDuplex" } $rx = @($nicPlan | Where-Object { $_.keyword -eq "*ReceiveBuffers" } | Select-Object -First 1) if (-not $rx -or $rx.wanted -ne "256") { throw "Test-Reclaim11: NIC Rx already 256 stays in CS2 band" } $fatProps = @(