fuchsia.overnet.protocol

新增:16

STRUCTS

BeginTransfer

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

fuchsia.overnet.protocol/StreamControl.begin_transfer 的正文。

字段类型说明默认
new_destination_node NodeId

此流端点的新所有者。

无默认应用
transfer_key TransferKey

用于标识此所有权转移的密钥。

无默认应用

ChannelHandle

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

代理渠道。

字段类型说明默认
rights ChannelRights

授予此标识名的标识名权限。

无默认应用
stream_ref StreamRef

为承载此频道而创建的 Overnet 代理流。通过该流传输的协议将为 ZirconChannel。

无默认应用

ConnectToService

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

创建一个名为 stream_id 的新数据流,以便与通告的服务 service_name 进行通信。

字段类型说明默认
service_name string:255

要连接到哪项服务。

无默认应用
stream_ref StreamRef

此服务连接将在哪个 QUIC 流上形成。

无默认应用
rights ChannelRights

此连接的频道权限。

无默认应用
options ConnectToServiceOptions

此连接的辅助选项。

无默认应用

空白

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

<EMPTY>

EventPairHandle

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

代理的 eventpair。

字段类型说明默认
rights EventPairRights

授予此标识名的标识名权限。

无默认应用
stream_ref StreamRef

为承载此事件对而创建的 Overnet 代理流。此数据流不会发送任何载荷,但传输和信号控制消息将按照用于所有句柄类型的常规 StreamControl/SignalUpdate 协议进行。

无默认应用

NodeId

在 fuchsia.overnet.protocol/labels.fidl 中定义

叠加网络上节点的地址。

字段类型说明默认
id uint64 无默认应用

OpenTransfer

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

创建名为 stream_id 的新数据流,以完成名为 transfer_key 的转移作业。

字段类型说明默认
stream_id StreamId

此服务连接将在哪个 QUIC 流上形成。

无默认应用
transfer_key TransferKey

跟踪转移作业的转移作业密钥。

无默认应用

SocketHandle

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

代理套接字。

字段类型说明默认
rights SocketRights

授予此标识名的标识名权限。

无默认应用
stream_ref StreamRef

为承载此套接字而创建的 Overnet 代理流。通过该数据流传输的协议将为 ZirconSocket。

无默认应用
socket_type SocketType

套接字选项(每个 zx_socket_create)。

无默认应用

StreamId

在 fuchsia.overnet.protocol/labels.fidl 中定义

标识 Overnet 网格上两个进程之间的单个 Overnet 流。

字段类型说明默认
id uint64 无默认应用

TransferInitiator

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

fuchsia.overnet.protocol/StreamRef.transfer_initiator 的正文。

字段类型说明默认
stream_id StreamId

此转移作业的漏极流。来自旧代理端的缓冲消息将通过此单向 QUIC 流发送,并且应在处理来自新端点的任何消息之前进行处理。

无默认应用
new_destination_node NodeId

我们应联系的此代理的对等节点 ID。 请注意,此节点可能是接收此消息的同一节点。

无默认应用
transfer_key TransferKey

用于标识此所有权转移的密钥。

无默认应用

TransferWaiter

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

fuchsia.overnet.protocol/StreamRef.transfer_waiter 的正文。

字段类型说明默认
stream_id StreamId

此转移作业的漏极流。来自旧代理端的缓冲消息将通过此单向 QUIC 流发送,并且应在处理来自新端点的任何消息之前进行处理。

无默认应用
transfer_key TransferKey

用于标识此所有权转移的密钥。

无默认应用

ZirconChannelMessage

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

通过 Overnet 流从 Zircon 通道代理的单条消息。

字段类型说明默认
bytes vector<uint8>:65536

载荷的字节部分。

无默认应用
handles vector<ZirconHandle>:64

处理部分载荷。

无默认应用

枚举

SocketType strict

类型:uint32

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

通过 fuchsia.overnet.protocol/SocketHandle 进行通信的套接字类型。

名称值说明
0

面向数据报的套接字。

1

面向流的套接字。

TABLES

ConfigRequest

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

总体连接配置请求

序数字段类型说明

ConfigResponse

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

总体连接配置响应 - 作为连接流上的第一个响应消息发送。

序数字段类型说明

ConnectToServiceOptions

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

服务连接形成选项。

序数字段类型说明

PeerDescription

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

单个节点的说明。

序数字段类型说明
services vector<string:255>

此节点发布的服务集。

SignalUpdate

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

信号状态更新。 这些信号作为每种句柄类型的边信道传输,会传播一些信号位。

序数字段类型说明
assert_signals Signals

更新一些信号

UNIONS

PeerMessage strict

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

两个 Overnet 节点之间的点对点协议。 客户端 QUIC 连接通过 QUIC 流 0 将此 xunion 发送到服务器。

序数变体类型说明
connect_to_service ConnectToService

请求创建到此对等方导出的服务的通道。

update_node_description PeerDescription

更新服务器上此对等方的说明。

open_transfer OpenTransfer

打开已转移的直播。

PeerReply strict

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

PeerMessage 的回复消息(如适用)。 ConfigResponse 消息必须已发送。

序数变体类型说明

StreamControl strict

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

数据流控制消息:如果帧类型为 1 (StreamControl),则发送此消息,而不是通常的数据流帧。 TODO: consider defining the stream framing format in FIDL also.

序数变体类型说明
begin_transfer BeginTransfer

转移开始:发送节点想要转移控制权。

ack_transfer Empty

确认 begin_transfer - 发送者已看到之前发送的 begin_transfer 并对其做出了响应。 这应该是常规数据流中发送的最后一条消息。

end_transfer Empty

结束传输 - 发出信号,表明排空流已完成排空。 这应该是排空流上发送的最后一条消息。

shutdown zx/Result

关闭具有某种状态的流。

StreamRef strict

在 fuchsia.overnet.protocol/peer_protocol.fidl 中定义

StreamRef 用于标识新的代理流,并详细说明该流将如何在接收节点上生成。

序数变体类型说明
creating StreamId

系统正在创建一个新代理,该代理的另一端位于发送节点上。这是一种简单的情况,我们只需传达将用于承载流量的 QUIC 流 ID。

transfer_initiator TransferInitiator

现有代理正在转移到此节点。此节点应发起与对等节点的通信。

transfer_waiter TransferWaiter

现有代理正在转移到此节点。此节点应等待来自对等节点的联系。

ZirconHandle strict

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

要代理的单个句柄。 并非所有 Zircon 类型都受支持。

序数变体类型说明
channel ChannelHandle

代理渠道。

socket SocketHandle

代理套接字。

event_pair EventPairHandle

代理的 eventpair。

BITS

ChannelRights strict

类型:uint32

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

频道权限。 Overnet 将权限视为每个对象类型,以减少可通过其网络格式进行通信的内容空间。系统始终假定存在转移权限。

名称值说明
1
2

EventPairRights strict

类型:uint32

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

EventPair 权限。 Overnet 将权限视为每个对象类型,以减少可通过其网络格式进行通信的内容空间。系统始终假定存在转移权限。

名称值说明
2147483648

信号严格

类型:uint32

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

可传播的信号。 这些位是特意选择的,与 Zircon 中定义的位不同,目的是强制存在映射代码,并最大限度地降低 Zircon ABI 意外成为 Overnet 协议的可能性。

名称值说明
1
2
4
8
16
32
64
128

SocketRights 严格执行

类型:uint32

在 fuchsia.overnet.protocol/zircon_proxy.fidl 中定义

套接字权限。 Overnet 将权限视为每个对象类型,以减少可通过其网络格式进行通信的内容空间。系统始终假定存在转移权限。

名称值说明
1
2

常量

名称值类型说明
MAX_SERVICE_NAME_LENGTH fuchsia.io/MAX_NAME_LENGTH uint64
TRANSFER_KEY_LENGTH 16 uint32

转移密钥的长度。

别名

名称值说明
TransferKey array[TRANSFER_KEY_LENGTH]

将流端点从一个节点移至另一个节点时,会使用转移密钥。它用于标识单次传输,应具有唯一性(因此由随机字节组成),并且应在传输结束时舍弃。