> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# QRTR Architecture

> Router core, distributed name service, transport abstraction, and network topology.

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

```mermaid theme={null}
flowchart TB
    Core[Router core]
    Routing[Message routing]
    Names[Service discovery]
    Flow[Flow control]
    Tables[Routing tables]
    XPRT[Transport interface]
    Physical[Physical transport]

    Core --> Routing
    Core --> Names
    Core --> Flow
    Core --> Tables
    Core <--> XPRT
    XPRT <--> Physical
```

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.
