vms-9951 (scope): exec_socket_* substrate networking seam — design + go/no-go - #801
Merged
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope/design phase (no implementation)
CONVERGE #4 (parent vms-1d6): fold
src/kernel/vms_bg.c(the Linux-onlyBGn:INET facility) behind anexec_socket_*substrate seam, mirroringexec_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 theexec_blockdev_*NetBSD twin is today), withVMS_IOCTL_BG_POLLFDstaying 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 (asyncsoconnectwait,uioplumbing,TCPIP$DEVICE:/dispatch glue, QEMU proof).See
docs/design-exec-socket-seam.mdfor the full seam table, the two things that can't cleanly move (getsockoptwhitelist + 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