Skip to main content

smoltcp_poll_loop

Function smoltcp_poll_loop 

Source
pub fn smoltcp_poll_loop(
    shared: Arc<SharedState>,
    config: PollLoopConfig,
    network_policy: NetworkPolicy,
    dns_config: DnsConfig,
    tls_state: Option<Arc<TlsState>>,
    published_ports: Vec<PublishedPort>,
    max_connections: Option<usize>,
    tokio_handle: Handle,
)
Expand description

Main smoltcp poll loop. Runs on a dedicated OS thread.

Processes guest frames with pre-inspection, drives smoltcp’s TCP/IP stack, and sleeps via poll(2) between events.

§Phases per iteration

  1. Drain guest frames — pop from tx_ring, classify, pre-inspect.
  2. smoltcp egress + maintenance — transmit queued packets, run timers.
  3. Service connections — relay data between smoltcp sockets and proxy tasks (added by later tasks).
  4. Sleeppoll(2) on tx_wake + proxy_wake pipes with smoltcp’s requested timeout.