PROTOCOLS
Device
Defined in fuchsia.hardware.interconnect/interconnect.fidl
GetNodeGraph
Returns a list of all nodes and edges between those nodes. Edges are directional, so if an interconnect allows bidirectional traffic, it should be listed twice, once for each direction of traffic flow. Edges must only be specified for directly adjacent nodes.
Request
<EMPTY>
Response
Name | Type |
---|---|
payload |
Device_GetNodeGraph_Result
|
GetPathEndpoints
The paths within the interconnect node graph which see bus traffic and need to have constraints applied to by drivers. Each path will have a device node instantiated for it.
Request
<EMPTY>
Response
Name | Type |
---|---|
payload |
Device_GetPathEndpoints_Result
|
SetNodesBandwidth
Request
Name | Type |
---|---|
nodes |
vector<NodeBandwidth>
|
Response
Name | Type |
---|---|
payload |
Device_SetNodesBandwidth_Result
|
Path
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Represents a path from a node in one interconnect to another.
SetBandwidth
Sets the bandwidth interconnect path.
Request
Name | Type |
---|---|
payload |
BandwidthRequest
|
Response
Name | Type |
---|---|
payload |
Path_SetBandwidth_Result
|
STRUCTS
Device_GetNodeGraph_Response
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Field | Type | Description | Default |
---|---|---|---|
nodes |
vector<Node>
|
No default | |
edges |
vector<Edge>
|
No default |
Device_GetPathEndpoints_Response
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Field | Type | Description | Default |
---|---|---|---|
paths |
vector<PathEndpoints>
|
Paths need not be between adjacent nodes, but a valid path from source node to destination node must exist in the node graph. |
No default |
Device_SetNodesBandwidth_Response
Defined in fuchsia.hardware.interconnect/interconnect.fidl
<EMPTY>
Path_SetBandwidth_Response
Defined in fuchsia.hardware.interconnect/interconnect.fidl
<EMPTY>
TABLES
BandwidthRequest
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
average_bandwidth_bps |
uint64
|
|
2 |
peak_bandwidth_bps |
uint64
|
Edge
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
src_node_id |
uint32
|
Source where bus traffic may originate. |
2 |
dst_node_id |
uint32
|
Destination where bus traffic may travel to. |
3 |
weight |
uint32
|
An optional weight to apply to the edge. Used for calculating the optimal path from between two nodes. If there are multiple paths from one node to another, the path will be calculated by optimizing for the smallest sum of all edge weights along the path. If not provided, the weight is assumed to be 1. |
Node
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
id |
uint32
|
Unique ID that refers to this node in other structs. |
2 |
name |
string:64
|
The name of the node. |
3 |
interconnect_name |
string:64
|
An optional name of the interconnect the node lives on. |
4 |
initial_avg_bandwidth_bps |
uint64
|
Optional average bandwidth value to start with. If not provided, defaults to 0. |
5 |
initial_peak_bandwidth_bps |
uint64
|
Optional peak bandwidth value to start with. If not provided, defaults to 0. |
NodeBandwidth
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
node_id |
uint32
|
Unique ID that refers to the node this bandwidth is requested for. |
2 |
requests |
vector<BandwidthRequest>:64
|
Set of requests for all edges to this node. |
PathEndpoints
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
name |
string:64
|
Name for the path which is used for binding. |
2 |
id |
uint32
|
Id for the path which is used for binding. |
3 |
src_node_id |
uint32
|
Source where bus traffic may originate. |
4 |
dst_node_id |
uint32
|
Destination where bus traffic may travel to. |
UNIONS
Device_GetNodeGraph_Result strict
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Device_GetNodeGraph_Response
|
|
3 |
framework_err |
internal
|
Device_GetPathEndpoints_Result strict
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Device_GetPathEndpoints_Response
|
|
3 |
framework_err |
internal
|
Device_SetNodesBandwidth_Result strict
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Device_SetNodesBandwidth_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Path_SetBandwidth_Result strict
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Path_SetBandwidth_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
CONSTANTS
Name | Value | Type | Description |
---|---|---|---|
EDGES_MAX |
64
|
uint32 |
The largest allowed number of edges from one node to another. |
NAME_MAX_LENGTH |
64
|
uint32 |
The longest allowed length for an interconnect or node name. |
SERVICES
PathService
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Name | Type | Transport |
---|---|---|
path |
fuchsia.hardware.interconnect/Path
|
Channel |
Service
Defined in fuchsia.hardware.interconnect/interconnect.fidl
Name | Type | Transport |
---|---|---|
device |
fuchsia.hardware.interconnect/Device
|
Channel |