Skip to main content
QRTR splits its work into a router core and a transport interface. This separation lets the routing logic stay independent of whether data moves over Shared Memory / RPM or another physical link.

Router layers

The router core maintains three key pieces of state:
  • Routing table – Maps destination addresses to the transport or link used to reach them.
  • Service table – Tracks which services are registered and where they are located.
  • Remote port table – Keeps track of remote endpoints and the information needed to deliver messages to them.
The transport interface abstracts the physical link. It provides the core with packet read/write operations and reports when data is available or when space is available to write. The core updates its tables in response to control-path events (node status, service registration, client connections) and uses the transport interface to move packets.

Network topology

In a multi-processor system, each processor is a node. Nodes are connected through transports, and the router forwards messages between them. The network can have multiple paths between nodes, and the router selects the best route based on its routing table.

Control path

Control messages propagate system-wide events between routers. These events include node status changes, service registrations, client connections, and flow-control notifications. The control path is separate from normal data delivery, so routing and service-discovery state can converge as the network changes.

Initialization

When a transport comes up, it registers its interface with the router core. Once the core has a usable transport, local ports and services can be created. A remote service becomes addressable after its service registration has propagated through the control path.