diff --git a/hosts/skydick/datapool.nix b/hosts/skydick/datapool.nix index 08a56e8..0d90092 100644 --- a/hosts/skydick/datapool.nix +++ b/hosts/skydick/datapool.nix @@ -474,28 +474,19 @@ "hosts allow" = "10.0. 127. 10.253."; "hosts deny" = "ALL"; - # SMB Multichannel advertising. `server multi channel support` - # below tells smbd to honour multichannel requests; the - # `interfaces` directive advertises CAPABILITIES to the client - # so it knows to open multiple TCP streams. The capability tag - # format is: - # ;capability=,speed= - # Flags: - # RSS — NIC has receive-side scaling (multi-queue), so - # multiple client→server streams will spread across - # cores on the server. macOS Sequoia uses this hint - # to open up to 32 channels per session. - # DYNAMIC — loopback only; client should not use for traffic. - # speed= is informational, advertised back to the client so it - # can prefer fast paths if multiple are offered. 80 Gbps = bond - # aggregate of 2× 40 GbE LACP slaves. - # - # Even though bond40g is a single LACP-managed device, the LACP - # layer3+4 xmit hash distributes the multichannel TCP streams - # across both slaves transparently. Net effect ≈ 2-4× SMB - # throughput vs a single channel, no client-side config needed. - "interfaces" = "lo;capability=DYNAMIC,speed=1 10.0.1.1;capability=RSS,speed=80000000000"; - "bind interfaces only" = "yes"; + # SMB Multichannel: just enable the feature. Earlier attempt to + # advertise RSS+speed via the `interfaces` directive (commit + # 4f21721) used the format `lo;capability=DYNAMIC,speed=1 ...` + # but Samba's parser split on semicolons too aggressively and + # tried to resolve `capability=DYNAMIC` as a hostname (logged + # "interpret_string_addr_internal: getaddrinfo failed for name + # capability=DYNAMIC"), which corrupted the interfaces table + # and broke auth (rpcd_classic crash-looped on disconnected + # endpoints, smbd rejected all client auth as `Authentication + # error`). Reverted 2026-05-16. Clients still get multichannel + # support via `server multi channel support`; they just open + # one channel by default without the RSS hint. Re-enable + # capability advertising only with a verified working syntax. "server multi channel support" = "yes"; "map to guest" = "never";