Skip to content
BSD syscall#510

svc · unix #510

__channel_open

Opens a Skywalk user-space channel into a kernel nexus for zero-copy packet I/O.

Prototype

int __channel_open(struct ch_init *init, uint32_t init_len);

Returns: int

Arguments

NameTypeDirDescription
initstruct ch_init-
init_lenuint32_t-

Version history

XNU tagmacOS#
xnu-8792.41.9macOS 13.0 Ventura510
xnu-10002.1.13macOS 14.0 Sonoma510
xnu-11215.1.10macOS 15.0 Sequoia510
xnu-11417.101.15macOS 15.4 Sequoia510
xnu-12377.1.9macOS 26.0 Tahoe510
xnu-10002.41.9510
xnu-10002.61.3510
xnu-10002.81.5510
xnu-10063.101.15510
xnu-10063.121.3510
xnu-10063.141.1510
xnu-11215.41.3510
xnu-11215.61.5510
xnu-11215.81.4510
xnu-11417.121.6510
xnu-11417.140.69510
xnu-12377.101.15510
xnu-12377.41.6510
xnu-12377.61.12510
xnu-12377.81.4510
xnu-8019.80.24510
xnu-8020.101.4510
xnu-8020.121.3510
xnu-8020.140.41510
xnu-8792.61.2510
xnu-8792.81.2510
xnu-8796.101.5510
xnu-8796.121.2510
xnu-8796.141.3510

Notes

Skywalk is xnu's modern networking data path: nexuses (kernel) own packet pools and per-flow rings, channels (user) map those rings via shared memory so processes like Network.framework can DMA packets without a syscall per send. __channel_open takes a nexus uuid plus a channel attribute blob and returns a fd whose mmap region contains tx/rx rings and a metadata segment. Restricted to entitled processes — primarily nettrace, nehelper, and the kernel-side flow switch.

Detection

Highly privileged surface; opens by anything other than Apple's networking daemons should be alerted on. ES has no probe; auditing relies on the syscall number plus the calling code signature.

Related APIs

__channel_get_info__channel_sync__channel_set_opt__nexus_openmmap