Skip to content

vms-9951 (scope): exec_socket_* substrate networking seam — design + go/no-go - #801

Merged
baron-3dl merged 1 commit into
mainfrom
work/vms-9951-socket-seam-scope
Aug 27, 2026
Merged

baron-3dl merged 1 commit into
mainfrom
work/vms-9951-socket-seam-scope

Conversation

@baron-3dl

Copy link
Copy Markdown
Contributor

Scope/design phase (no implementation)

CONVERGE #4 (parent vms-1d6): fold src/kernel/vms_bg.c (the Linux-only BGn: INET facility) behind an exec_socket_* substrate seam, mirroring exec_blockdev_*, so the INET logic moves to shared-core with a per-substrate host-socket backend. This PR is the design record + effort estimate + go/no-go for the operator/conductor to decide before the design-change cascade — it changes no code.

Recommendation: GREEN, conservatively scoped

Same size class as the block-device seam if scoped as: the exec_socket_* seam + the (near-mechanical) Linux refactor + a NetBSD backend that is contract-only / type-checked / never-run (exactly as the exec_blockdev_* NetBSD twin is today), with VMS_IOCTL_BG_POLLFD staying a Linux-only rind (no NetBSD kqueue analogue; load-bearing for OpenSSH).

Split out a runnable NetBSD in-executive BGn: into a separate rd item — that's the 2–3× bigger part (async soconnect wait, uio plumbing, TCPIP$DEVICE:/dispatch glue, QEMU proof).

See docs/design-exec-socket-seam.md for the full seam table, the two things that can't cleanly move (getsockopt whitelist + pollfd), the NetBSD in-kernel socket API mapping (verified against pinned NetBSD 10.1 syssrc), the ~600–800 LOC sizing, and the risks.

🤖 Generated with Claude Code

…rking seam

CONVERGE #4 scope/design phase (no implementation). Maps vms_bg.c's Linux
in-kernel socket calls, the exec_blockdev_* seam it mirrors, and the NetBSD
in-kernel socket API (socreate/soconnect/sosend/soreceive), and proposes the
minimal exec_socket_* seam + the shared-core move of vms_bg.c.

GO/NO-GO: GREEN and same size class as the block-device seam IF scoped as
seam + Linux refactor + NetBSD CONTRACT-ONLY twin (per the exec_blockdev
precedent), with VMS_IOCTL_BG_POLLFD staying a Linux-only rind (no NetBSD
kqueue analogue; load-bearing for OpenSSH). A RUNNABLE NetBSD in-executive
BGn: (async soconnect wait, uio plumbing, devtab/dispatch glue, QEMU proof)
is 2-3x bigger -> split into a separate follow-on item.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@baron-3dl
baron-3dl merged commit 1098a95 into main Aug 27, 2026
101 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant