Expand description
IPC transport layer: traits, dispatch enum, and manager.
This module defines the three-level transport hierarchy:
- N1 (TypeSafe): kernel-internal mailbox, same address space, ~3-10 cycles.
- N2 (LockFree): shared-memory SPSC ring with futex notification, ~400-4000 cycles.
- N3 (Mmu): thread migration with PCID-preserving CR3 switch (research track).
The TransportManager selects the appropriate level per silo-pair at
connection creation time using a configurable decision matrix.
Structsยง
- Consumer
- Consumer role marker: can only call
read(). - NicData
Plane - Multi-queue NIC data plane using independent SPSC rings.
- NicRouting
Table - Shared NIC โโ scheduler routing table.
- Producer
- Producer role marker: only this side can call
write(). - Ring
Pair - Per-queue ring pair for multi-queue NIC RSS.
- Routing
Entry - A single entry in the NIC routing table.
- Transport
Cache ๐ - Transport
Capabilities - Describes the capabilities of an IPC transport.
- Transport
Config - User-supplied configuration for transport creation.
- Transport
Create Result - Result of a successful transport creation.
- Transport
Id - Unique identifier for a transport connection.
- Transport
Manager - Central transport manager : selects and creates IPC transports per silo pair.
- Transport
Policy ๐Entry - Policy entry for a single cell in the decision matrix.
- Transport
Stats - Per-transport performance counters.
- Typed
Lock Free Ring - SPSC ring with compile-time role enforcement.
Enumsยง
- IpcError
- Errors from IPC transport operations.
- Transport
Endpoint - A concrete IPC transport endpoint, dispatched via enum (no
dynvtable). - Transport
Level - Isolation level of an IPC transport.
Constantsยง
- CACHE_
SIZE ๐ - DECISION_
MATRIX ๐ - Default decision matrix for Tier ร Tier transport selection.
- MAX_
ROUTES - Maximum number of routing entries.
Traitsยง
- IpcConsumer
- Consumer side : receives messages from the transport.
- IpcNotification
- Notification side : futex-based wakeup for blocking transports.
- IpcProducer
- Producer side : sends messages into the transport.
- IpcTransport
- Core trait for all IPC transports.
Functionsยง
- create_
spsc_ pair - Create a typed SPSC pair returning separate producer and consumer ends.
- ring_
to_ ๐ipc_ error