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 串流。該串流的通訊協定將為 |
無預設值 |
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 串流。該串流的通訊協定將為 |
無預設值 |
socket_type |
SocketType
|
通訊端選項,每 |
無預設值 |
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 進行通訊的通訊端類型。
| 名稱 | 值 | 說明 |
|---|---|---|
DATAGRAM |
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
單一節點的說明。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
services |
vector<string:255>
|
這個節點發布的服務組合。 |
SignalUpdate
定義於 fuchsia.overnet.protocol/zircon_proxy.fidl
信號狀態更新。這些信號會做為每種控制代碼類型的側管道傳輸,並傳播一些信號位元。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
assert_signals |
Signals
|
更新部分信號 |
UNIONS
PeerMessage strict
定義於 fuchsia.overnet.protocol/peer_protocol.fidl
兩個 Overnet 節點之間的點對點通訊協定。用戶端 QUIC 連線會透過 QUIC 串流 0 將這個 xunion 傳送至伺服器。
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
connect_to_service |
ConnectToService
|
要求建立管道,連至這個對等互連匯出的服務。 |
2 |
update_node_description |
PeerDescription
|
更新伺服器上的這個對等互連說明。 |
4 |
open_transfer |
OpenTransfer
|
開啟轉移的串流。 |
PeerReply strict
定義於 fuchsia.overnet.protocol/peer_protocol.fidl
PeerMessage 的回覆訊息 (如適用)。ConfigResponse 訊息必須已傳送。
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
update_link_status_ack |
Empty
|
確認 UpdateLinkStatus 訊息 |
StreamControl strict
定義於 fuchsia.overnet.protocol/peer_protocol.fidl
串流控制訊息:如果影格類型為 1 (StreamControl),則會傳送此訊息,而非一般的串流影格。TODO: consider defining the stream framing format in FIDL also.
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
begin_transfer |
BeginTransfer
|
轉移作業開始:傳送節點想要轉移控制權。 |
2 |
ack_transfer |
Empty
|
確認 begin_transfer - 傳送者已看到先前傳送的 begin_transfer,並已回應。這應該是常規串流中傳送的最後一則訊息。 |
3 |
end_transfer |
Empty
|
結束轉移:表示排空串流已完成排空。這應該是 drain 串流傳送的最後一則訊息。 |
4 |
shutdown |
zx/Result
|
關閉串流並顯示狀態。 |
StreamRef strict
定義於 fuchsia.overnet.protocol/peer_protocol.fidl
StreamRef 會識別新的代理串流,並詳細說明該串流如何傳送至接收節點。
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
creating |
StreamId
|
系統正在建立新的 Proxy,而 Proxy 的另一端位於傳送節點。這是簡單的情況,我們只需傳達將用於傳輸流量的 QUIC 串流 ID。 |
2 |
transfer_initiator |
TransferInitiator
|
現有 Proxy 正在轉移至這個節點。這個節點應與對等節點啟動通訊。 |
3 |
transfer_waiter |
TransferWaiter
|
現有 Proxy 正在轉移至這個節點。這個節點應等待對等節點聯絡。 |
ZirconHandle strict
定義於 fuchsia.overnet.protocol/zircon_proxy.fidl
要代理的單一控制代碼。系統僅支援部分 Zircon 類型。
| 序數 | Variant | 類型 | 說明 |
|---|---|---|---|
1 |
channel |
ChannelHandle
|
代理管道。 |
2 |
socket |
SocketHandle
|
經 Proxy 處理的通訊端。 |
3 |
event_pair |
EventPairHandle
|
代理的事件組合。 |
BITS
ChannelRights strict
類型:uint32
定義於 fuchsia.overnet.protocol/zircon_proxy.fidl
頻道權利。 Overnet 會將權限視為個別物件類型,以減少透過其線路格式傳輸的內容空間。系統一律會假設轉移權限存在。
| 名稱 | 值 | 說明 |
|---|---|---|
閱讀 |
1 | |
WRITE |
2 |
EventPairRights strict
類型:uint32
定義於 fuchsia.overnet.protocol/zircon_proxy.fidl
EventPair 權限。 Overnet 會將權限視為個別物件類型,以減少透過其線路格式傳輸的內容空間。系統一律會假設轉移權限存在。
| 名稱 | 值 | 說明 |
|---|---|---|
DO_NOT_USE |
2147483648 |
表示嚴格
類型:uint32
定義於 fuchsia.overnet.protocol/zircon_proxy.fidl
可傳播的信號。這些位元刻意選擇與 Zircon 中定義的位元不同,以強制對應程式碼存在,並盡可能降低 Zircon ABI 意外成為 Overnet 通訊協定的機率。
| 名稱 | 值 | 說明 |
|---|---|---|
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
類型:uint32
定義於 fuchsia.overnet.protocol/zircon_proxy.fidl
插槽權利。 Overnet 會將權限視為個別物件類型,以減少透過其線路格式傳輸的內容空間。系統一律會假設轉移權限存在。
| 名稱 | 值 | 說明 |
|---|---|---|
閱讀 |
1 | |
WRITE |
2 |
常數
| 名稱 | 值 | 類型 | 說明 |
|---|---|---|---|
| MAX_SERVICE_NAME_LENGTH |
fuchsia.io/MAX_NAME_LENGTH
|
uint64 |
|
| TRANSFER_KEY_LENGTH |
16
|
uint32 |
轉移金鑰長度。 |
別名
| 名稱 | 值 | 說明 |
|---|---|---|
| TransferKey |
array[TRANSFER_KEY_LENGTH] |
將串流端點從一個節點移至另一個節點時,會使用轉移金鑰。這個 ID 用於識別單一轉移作業,不得重複 (因此由隨機位元組組成),且應在轉移作業結束時捨棄。 |