Skip to main content

Module transport

Module transport 

Source
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().
NicDataPlane
Multi-queue NIC data plane using independent SPSC rings.
NicRoutingTable
Shared NIC โ†โ†’ scheduler routing table.
Producer
Producer role marker: only this side can call write().
RingPair
Per-queue ring pair for multi-queue NIC RSS.
RoutingEntry
A single entry in the NIC routing table.
TransportCache ๐Ÿ”’
TransportCapabilities
Describes the capabilities of an IPC transport.
TransportConfig
User-supplied configuration for transport creation.
TransportCreateResult
Result of a successful transport creation.
TransportId
Unique identifier for a transport connection.
TransportManager
Central transport manager : selects and creates IPC transports per silo pair.
TransportPolicyEntry ๐Ÿ”’
Policy entry for a single cell in the decision matrix.
TransportStats
Per-transport performance counters.
TypedLockFreeRing
SPSC ring with compile-time role enforcement.

Enumsยง

IpcError
Errors from IPC transport operations.
TransportEndpoint
A concrete IPC transport endpoint, dispatched via enum (no dyn vtable).
TransportLevel
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 ๐Ÿ”’