fuchsia.overnet.protocol

Added: 16

STRUCTS

BeginTransfer

Defined in fuchsia.overnet.protocol/peer_protocol.fidl

Body for fuchsia.overnet.protocol/StreamControl.begin_transfer.

FieldTypeDescriptionDefault
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.

FieldTypeDescriptionDefault
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 ZirconChannel.

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.

FieldTypeDescriptionDefault
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.

FieldTypeDescriptionDefault
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.

FieldTypeDescriptionDefault
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.

FieldTypeDescriptionDefault
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.

FieldTypeDescriptionDefault
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 ZirconSocket.

No default
socket_type SocketType

Socket options, per zx_socket_create.

No default

StreamId

Defined in fuchsia.overnet.protocol/labels.fidl

Identifies a single overnet stream between two processes on the Overnet mesh.

FieldTypeDescriptionDefault
id uint64 No default

TransferInitiator

Defined in fuchsia.overnet.protocol/peer_protocol.fidl

Body for fuchsia.overnet.protocol/StreamRef.transfer_initiator.

FieldTypeDescriptionDefault
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.

FieldTypeDescriptionDefault
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.

FieldTypeDescriptionDefault
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.

NameValueDescription
0

A datagram oriented socket.

1

A stream oriented socket.

TABLES

ConfigRequest

Defined in fuchsia.overnet.protocol/peer_protocol.fidl

Overall connection configuration request

OrdinalFieldTypeDescription

ConfigResponse

Defined in fuchsia.overnet.protocol/peer_protocol.fidl

Overall connection configuration response - sent as the first response message on the connection stream.

OrdinalFieldTypeDescription

ConnectToServiceOptions

Defined in fuchsia.overnet.protocol/peer_protocol.fidl

Options for service connection formation.

OrdinalFieldTypeDescription

PeerDescription

Defined in fuchsia.overnet.protocol/peer_protocol.fidl

Description of a single node.

OrdinalFieldTypeDescription
services vector<string>

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.

OrdinalFieldTypeDescription
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.

OrdinalVariantTypeDescription
connect_to_service ConnectToService

Request to create a channel to a service exported by this peer.

update_node_description PeerDescription

Update this peers description on the server.

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.

OrdinalVariantTypeDescription

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.

OrdinalVariantTypeDescription
begin_transfer BeginTransfer

A transfer is beginning: the sending node would like to transfer control.

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.

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.

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.

OrdinalVariantTypeDescription
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.

transfer_initiator TransferInitiator

An existing proxy is being transferred to this node. This node should initiate communication with the peer.

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.

OrdinalVariantTypeDescription
channel ChannelHandle

A proxied channel.

socket SocketHandle

A proxied socket.

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.

NameValueDescription
1
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.

NameValueDescription
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.

NameValueDescription
1
2
4
8
16
32
64
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.

NameValueDescription
1
2

CONSTANTS

NameValueTypeDescription
MAX_SERVICE_NAME_LENGTH fuchsia.io/MAX_NAME_LENGTH uint64
TRANSFER_KEY_LENGTH 16 uint32

Length of a transfer key.

ALIASES

NameValueDescription
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.