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
| Field | Type | Description | Default |
|---|---|---|---|
aggregated_bandwidth |
vector<AggregatedBandwidth>
|
No default |
Path_SetBandwidth_Response
Defined in fuchsia.hardware.interconnect/interconnect.fidl
<EMPTY>
TABLES
AggregatedBandwidth
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 |
average_bandwidth_bps |
uint64
|
The computed aggregate average bandwidth value, derived from requests. |
3 |
peak_bandwidth_bps |
uint64
|
The computed aggregate peak bandwidth value, derived from requests. |
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. |
Metadata
Defined in fuchsia.hardware.interconnect/interconnect.fidl
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
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. |
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 |