fuchsia.hardware.qualcomm.router

QRTR related APIs for QRTR clients and servers.

Provides APIs for drivers wishing to communicate to the remote QRTR nodes as clients. Provides APIs for QRTR transport layer driver to connect to QRTR driver.

Added: HEAD

PROTOCOLS

QrtrClientConnection

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

The connection used between a QRTR client and the QRTR driver.

GetSignals

Retrieves the signals eventpair.

  • response signals an eventpair that is signalled with SIGNAL_READABLE and SIGNAL_WRITABLE when read and write buffers are available, respectively.

Request

<EMPTY>

Response

NameType
payload QrtrClientConnection_GetSignals_Result

Read

Reads a QRTR frame via the connection.

Only one read request can be performed at a time.

  • src_node_id: Source node ID of the QRTR frame.
  • src_port: Source port of the QRTR frame.
  • data: QRTR payload.
  • Errors:
    • WOULD_BLOCK: Cannot read; should wait in non-blocking mode.
    • ALREADY_PENDING: More than one read operation is pending in blocking mode.
    • INTERNAL_ERROR: Unexpected QRTR error.

Request

<EMPTY>

Response

NameType
payload QrtrClientConnection_Read_Result

Write

Writes a QRTR frame.

Only one write request can be performed at a time.

  • Errors:
    • WOULD_BLOCK: Cannot write; should wait in non-blocking mode.
    • ALREADY_PENDING: More than one write operation is pending in blocking mode.
    • REMOTE_NODE_UNAVAILABLE: Target node unavailable.
    • INTERNAL_ERROR: Unexpected QRTR error.

Request

NameType
dst_node_id NodeId
dst_port PortId
data vector<uint8>

Response

NameType
payload QrtrClientConnection_Write_Result

QrtrConnector

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

Vends client connections with no access constraints in QRTR.

GetConnection

Gets a new connection from QRTR.

If port is specificed in options, creates a connection with target port. Otherwise, assigns a random port for the connection.

  • Errors:
    • INTERNAL_ERROR: Unexpected QRTR error.

Request

NameType
options ConnectionOptions
proxy server_end:QrtrClientConnection

Response

NameType
payload QrtrConnector_GetConnection_Result

QrtrTransportChannel

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

The channel for a transport driver that communicates with the remote processor and the QRTR driver.

Every message is preambled by a QRTR header, consult the appropriate specification for format.

Read

Reads a QRTR frame from a transport driver.

Blocks until an inbound frame is ready to be consumed. Only one read request can be performed at a time.

  • data: QRTR frame.
  • Errors:
    • ALREADY_PENDING: More than one read operation is pending.
    • INTERNAL_ERROR: Unexpected QRTR error.

Request

<EMPTY>

Response

NameType
payload QrtrTransportChannel_Read_Result

Write

Writes a QRTR frame to a transport driver.

Only one write request can be performed at a time.

  • Errors:
    • ALREADY_PENDING: More than one write operation is pending.
    • INTERNAL_ERROR: Unexpected QRTR error.

Request

NameType
data vector<uint8>

Response

NameType
payload QrtrTransportChannel_Write_Result

QrtrTransportConnector

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

Used by a transport driver that communicates with a remote processor to establish a new channel to the QRTR driver.

EstablishConnection

Establishes a channel.

Child drivers should only estabilsh one connection to the QRTR driver.

Request

NameType
proxy client_end:QrtrTransportChannel

Response

NameType
payload QrtrTransportConnector_EstablishConnection_Result

STRUCTS

QrtrClientConnection_GetSignals_Response resource

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

FieldTypeDescriptionDefault
signals handle<eventpair> No default

QrtrClientConnection_Read_Response

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

FieldTypeDescriptionDefault
src_node_id NodeId No default
src_port PortId No default
data vector<uint8> No default

QrtrClientConnection_Write_Response

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

<EMPTY>

QrtrConnector_GetConnection_Response

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

<EMPTY>

QrtrTransportChannel_Read_Response

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

FieldTypeDescriptionDefault
data vector<uint8> No default

QrtrTransportChannel_Write_Response

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

<EMPTY>

QrtrTransportConnector_EstablishConnection_Response

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

<EMPTY>

ENUMS

Error flexible

Type: uint32

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

Error codes for QRTR operations.

NameValueDescription
1

Internal error in QRTR.

2

Returned by blocking QrtrClientConnection.Read and QrtrClientConnection.Write due to resource constraints.

3

Remote node unavailable.

4

Port is already bound.

5

Operation is not supported.

6

Returned by non-blocking QrtrClientConnection.Read and QrtrClientConnection.Write.

TABLES

ConnectionOptions

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

Connection Options used by QrtrConnector.

OrdinalFieldTypeDescription
blocking bool

Blocking mode

Optional. Intepreted as true if absent.

port PortId

Request to reserve a Port when creating the connection.

Optional.

UNIONS

QrtrClientConnection_GetSignals_Result strict resource

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

OrdinalVariantTypeDescription
response QrtrClientConnection_GetSignals_Response
framework_err internal

QrtrClientConnection_Read_Result strict

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

OrdinalVariantTypeDescription
response QrtrClientConnection_Read_Response
err Error
framework_err internal

QrtrClientConnection_Write_Result strict

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

OrdinalVariantTypeDescription
response QrtrClientConnection_Write_Response
err Error
framework_err internal

QrtrConnector_GetConnection_Result strict

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

OrdinalVariantTypeDescription
response QrtrConnector_GetConnection_Response
err Error
framework_err internal

QrtrTransportChannel_Read_Result strict

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

OrdinalVariantTypeDescription
response QrtrTransportChannel_Read_Response
err Error
framework_err internal

QrtrTransportChannel_Write_Result strict

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

OrdinalVariantTypeDescription
response QrtrTransportChannel_Write_Response
err Error
framework_err internal

QrtrTransportConnector_EstablishConnection_Result strict

Defined in fuchsia.hardware.qualcomm.router/qrtr.fidl

OrdinalVariantTypeDescription
response QrtrTransportConnector_EstablishConnection_Response
err Error
framework_err internal

CONSTANTS

NameValueTypeDescription
SIGNAL_READABLE 16777216 uint32

Signal asserted on event handle when the QrtrClientConnection.Read method can return data.

SIGNAL_WRITABLE 33554432 uint32

Signal asserted on event handle when the QrtrClientConnection.Write method can accept data.

ALIASES

NameValueDescription
NodeId int32
PortId int32