STRUCTS
BeginTransfer
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Body for fuchsia.overnet.protocol/StreamControl.begin_transfer.
Field | Type | Description | Default |
---|---|---|---|
new_destination_node |
NodeId
|
The new owner of this stream endpoint. |
No default |
transfer_key |
TransferKey
|
A key to identify this transfer of ownership. |
No default |
ChannelHandle
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
A proxied channel.
Field | Type | Description | Default |
---|---|---|---|
rights |
ChannelRights
|
The handle rights that are given to this handle. |
No default |
stream_ref |
StreamRef
|
The Overnet proxy stream that was created to carry this channel.
The protocol over said stream will be a |
No default |
ConnectToService
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Create a new stream, labelled stream_id
, to communicate with the
advertised service service_name
.
Field | Type | Description | Default |
---|---|---|---|
service_name |
string:255
|
Which service to connect to. |
No default |
stream_ref |
StreamRef
|
On which QUIC stream will this service connection be formed. |
No default |
rights |
ChannelRights
|
The channel rights for this connection. |
No default |
options |
ConnectToServiceOptions
|
Ancillary options for this connection. |
No default |
Empty
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
<EMPTY>
EventPairHandle
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
A proxied eventpair.
Field | Type | Description | Default |
---|---|---|---|
rights |
EventPairRights
|
The handle rights that are given to this handle. |
No default |
stream_ref |
StreamRef
|
The Overnet proxy stream that was created to carry this eventpair. No payloads will be sent over this stream, however transport and signal control messages will be per the normal StreamControl/SignalUpdate protocols used for all handle types. |
No default |
NodeId
Defined in fuchsia.overnet.protocol/labels.fidl
Address of a node on the overlay network.
Field | Type | Description | Default |
---|---|---|---|
id |
uint64
|
No default |
OpenTransfer
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Create a new stream, labelled stream_id
, to finalize the transfer
labelled transfer_key
.
Field | Type | Description | Default |
---|---|---|---|
stream_id |
StreamId
|
On which QUIC stream will this service connection be formed. |
No default |
transfer_key |
TransferKey
|
Transfer key tracking the transfer. |
No default |
SocketHandle
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
A proxied socket.
Field | Type | Description | Default |
---|---|---|---|
rights |
SocketRights
|
The handle rights that are given to this handle. |
No default |
stream_ref |
StreamRef
|
The Overnet proxy stream that was created to carry this socket.
The protocol over said stream will be a |
No default |
socket_type |
SocketType
|
Socket options, per |
No default |
StreamId
Defined in fuchsia.overnet.protocol/labels.fidl
Identifies a single overnet stream between two processes on the Overnet mesh.
Field | Type | Description | Default |
---|---|---|---|
id |
uint64
|
No default |
TransferInitiator
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Body for fuchsia.overnet.protocol/StreamRef.transfer_initiator.
Field | Type | Description | Default |
---|---|---|---|
stream_id |
StreamId
|
The drain stream for this transfer. Buffered messages from the old proxy end will be sent via this unidirectional QUIC stream and should be processed prior to processing any messages from the new endpoint. |
No default |
new_destination_node |
NodeId
|
The peer node id for this proxy that we should reach out to. Note that this may be the same node that receives this message. |
No default |
transfer_key |
TransferKey
|
A key to identify this transfer of ownership. |
No default |
TransferWaiter
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Body for fuchsia.overnet.protocol/StreamRef.transfer_waiter.
Field | Type | Description | Default |
---|---|---|---|
stream_id |
StreamId
|
The drain stream for this transfer. Buffered messages from the old proxy end will be sent via this unidirectional QUIC stream and should be processed prior to processing any messages from the new endpoint. |
No default |
transfer_key |
TransferKey
|
A key to identify this transfer of ownership. |
No default |
ZirconChannelMessage
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
A single message proxied from a Zircon channel over an Overnet stream.
Field | Type | Description | Default |
---|---|---|---|
bytes |
vector<uint8>:65536
|
Bytes part of the payload. |
No default |
handles |
vector<ZirconHandle>:64
|
Handles part of the payload. |
No default |
ENUMS
SocketType strict
Type: uint32
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
The type of socket being communicated via fuchsia.overnet.protocol/SocketHandle.
Name | Value | Description |
---|---|---|
DATAGRAM |
0 |
A datagram oriented socket. |
STREAM |
1 |
A stream oriented socket. |
TABLES
ConfigRequest
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Overall connection configuration request
Ordinal | Field | Type | Description |
---|
ConfigResponse
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Overall connection configuration response - sent as the first response message on the connection stream.
Ordinal | Field | Type | Description |
---|
ConnectToServiceOptions
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Options for service connection formation.
Ordinal | Field | Type | Description |
---|
PeerDescription
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Description of a single node.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
services |
vector<string:255>
|
The set of services published by this node. |
SignalUpdate
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
Signal state updates. Transported as a side channel for each handle type, these propagate some signal bits.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
assert_signals |
Signals
|
Update some signals |
UNIONS
PeerMessage strict
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Peer-to-peer protocol between two Overnet nodes. Client QUIC connections send this xunion to servers over QUIC stream 0.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
connect_to_service |
ConnectToService
|
Request to create a channel to a service exported by this peer. |
2 |
update_node_description |
PeerDescription
|
Update this peers description on the server. |
4 |
open_transfer |
OpenTransfer
|
Open a transfered stream. |
PeerReply strict
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Reply messages for PeerMessage, where appropriate. The ConfigResponse message must have been sent already.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
update_link_status_ack |
Empty
|
Acknowledge an UpdateLinkStatus message |
StreamControl strict
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
Stream control message: sent instead of usual stream frames if the frame type is 1 (StreamControl). TODO: consider defining the stream framing format in FIDL also.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
begin_transfer |
BeginTransfer
|
A transfer is beginning: the sending node would like to transfer control. |
2 |
ack_transfer |
Empty
|
Acknowledge a begin_transfer - the sender has seen a previously sent begin_transfer, and responded to it. This should be the last message sent on a regular stream. |
3 |
end_transfer |
Empty
|
End a transfer - signal that a drain stream has finished draining. This should be the last message sent on a drain stream. |
4 |
shutdown |
zx/Status
|
Shutdown the stream with some status. |
StreamRef strict
Defined in fuchsia.overnet.protocol/peer_protocol.fidl
A StreamRef identifies a new proxied stream, and details how that stream will come to be on the receiving node.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
creating |
StreamId
|
A new proxy is being created, and the other end of the proxy is on the sending node. This is the simple case, and we just communicate the QUIC stream ID that will be used to carry traffic. |
2 |
transfer_initiator |
TransferInitiator
|
An existing proxy is being transferred to this node. This node should initiate communication with the peer. |
3 |
transfer_waiter |
TransferWaiter
|
An existing proxy is being transferred to this node. This node should await contact from the peer. |
ZirconHandle strict
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
A single handle to be proxied. Not all Zircon types are supported.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
channel |
ChannelHandle
|
A proxied channel. |
2 |
socket |
SocketHandle
|
A proxied socket. |
3 |
event_pair |
EventPairHandle
|
A proxied eventpair. |
BITS
ChannelRights strict
Type: uint32
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
Channel rights. Overnet treats rights as per-object type, to reduce the space of things that can be communicated over its wire format. Transfer rights are always assumed present.
Name | Value | Description |
---|---|---|
READ |
1 | |
WRITE |
2 |
EventPairRights strict
Type: uint32
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
EventPair rights. Overnet treats rights as per-object type, to reduce the space of things that can be communicated over its wire format. Transfer rights are always assumed present.
Name | Value | Description |
---|---|---|
DO_NOT_USE |
2147483648 |
Signals strict
Type: uint32
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
Signals that can be propagated. These are deliberately chosen to be different bits than defined in Zircon, to force mapping code to exist, and minimize the chance that Zircon ABI accidentally becomes Overnet protocol.
Name | Value | Description |
---|---|---|
USER_0 |
1 | |
USER_1 |
2 | |
USER_2 |
4 | |
USER_3 |
8 | |
USER_4 |
16 | |
USER_5 |
32 | |
USER_6 |
64 | |
USER_7 |
128 |
SocketRights strict
Type: uint32
Defined in fuchsia.overnet.protocol/zircon_proxy.fidl
Socket rights. Overnet treats rights as per-object type, to reduce the space of things that can be communicated over its wire format. Transfer rights are always assumed present.
Name | Value | Description |
---|---|---|
READ |
1 | |
WRITE |
2 |
CONSTANTS
Name | Value | Type | Description |
---|---|---|---|
MAX_SERVICE_NAME_LENGTH |
fuchsia.io/MAX_NAME_LENGTH
|
uint64 |
|
TRANSFER_KEY_LENGTH |
16
|
uint32 |
Length of a transfer key. |
ALIASES
Name | Value | Description |
---|---|---|
TransferKey |
array [TRANSFER_KEY_LENGTH ] |
A transfer key is used when moving a stream endpoint from one node to another. It identifies a single transfer, should be unique (so, made from random bytes), and should be discarded at the end of the transfer. |