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 Proxy 串流。該串流的通訊協定將為 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

代理的事件組合。

欄位類型說明預設
rights EventPairRights

授予這個帳號代碼的權限。

無預設值
stream_ref StreamRef

為傳送這個事件組合而建立的 Overnet Proxy 串流。這個串流不會傳送任何酬載,但傳輸和信號控制訊息會依據所有控制代碼類型使用的正常 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

經 Proxy 處理的通訊端。

欄位類型說明預設
rights SocketRights

授予這個帳號代碼的權限。

無預設值
stream_ref StreamRef

為傳送這個通訊端而建立的 Overnet Proxy 串流。該串流的通訊協定將為 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

這項轉移作業的耗盡串流。舊 Proxy 端緩衝處理的訊息會透過這個單向 QUIC 串流傳送,且應在處理新端點的任何訊息「之前」處理。

無預設值
new_destination_node NodeId

這個 Proxy 的對等節點 ID,我們應與其聯絡。請注意,這可能是接收這則訊息的同一個節點。

無預設值
transfer_key TransferKey

用於識別這項擁有權轉移作業的金鑰。

無預設值

TransferWaiter

定義於 fuchsia.overnet.protocol/peer_protocol.fidl

fuchsia.overnet.protocol/StreamRef.transfer_waiter 的主體。

欄位類型說明預設
stream_id StreamId

這項轉移作業的耗盡串流。舊 Proxy 端緩衝處理的訊息會透過這個單向 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 傳送至伺服器。

序數Variant類型說明
connect_to_service ConnectToService

要求建立管道,連至這個對等互連匯出的服務。

update_node_description PeerDescription

更新伺服器上的這個對等互連說明。

open_transfer OpenTransfer

開啟轉移的串流。

PeerReply strict

定義於 fuchsia.overnet.protocol/peer_protocol.fidl

PeerMessage 的回覆訊息 (如適用)。ConfigResponse 訊息必須已傳送。

序數Variant類型說明

StreamControl strict

定義於 fuchsia.overnet.protocol/peer_protocol.fidl

串流控制訊息:如果影格類型為 1 (StreamControl),則會傳送此訊息,而非一般的串流影格。TODO: consider defining the stream framing format in FIDL also.

序數Variant類型說明
begin_transfer BeginTransfer

轉移作業開始:傳送節點想要轉移控制權。

ack_transfer Empty

確認 begin_transfer - 傳送者已看到先前傳送的 begin_transfer,並已回應。這應該是常規串流中傳送的最後一則訊息。

end_transfer Empty

結束轉移:表示排空串流已完成排空。這應該是 drain 串流傳送的最後一則訊息。

shutdown zx/Result

關閉串流並顯示狀態。

StreamRef strict

定義於 fuchsia.overnet.protocol/peer_protocol.fidl

StreamRef 會識別新的代理串流,並詳細說明該串流如何傳送至接收節點。

序數Variant類型說明
creating StreamId

系統正在建立新的 Proxy,而 Proxy 的另一端位於傳送節點。這是簡單的情況,我們只需傳達將用於傳輸流量的 QUIC 串流 ID。

transfer_initiator TransferInitiator

現有 Proxy 正在轉移至這個節點。這個節點應與對等節點啟動通訊。

transfer_waiter TransferWaiter

現有 Proxy 正在轉移至這個節點。這個節點應等待對等節點聯絡。

ZirconHandle strict

定義於 fuchsia.overnet.protocol/zircon_proxy.fidl

要代理的單一控制代碼。系統僅支援部分 Zircon 類型。

序數Variant類型說明
channel ChannelHandle

代理管道。

socket SocketHandle

經 Proxy 處理的通訊端。

event_pair EventPairHandle

代理的事件組合。

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 strict

類型: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]

將串流端點從一個節點移至另一個節點時,會使用轉移金鑰。這個 ID 用於識別單一轉移作業,不得重複 (因此由隨機位元組組成),且應在轉移作業結束時捨棄。