通訊協定
RuleWatcherV4
定義於 fuchsia.net.routes/ipv4.fidl
用來處理系統 IPv4 規則表中變更的觀察器通訊協定。
觀看
inging-Get style API 以觀察轉送規則變更。
用戶端一次只能有一則待處理的 Watch
通話。撥號中
Watch
會在要求待處理時執行
關閉
前 N 個事件一律為 existing
,其中 N 是
通訊協定連線至伺服器端時,已存在的 IPv4 規則
初始化。下列事件會idle
表示
existing
事件。此時,客戶已看過所有
且永遠不會再觀察到 existing
事件。
- 回應
events
最多MAX_EVENTS
個事件的向量。
要求
<空白>
回應
名稱 | 類型 |
---|---|
events |
vector<RuleEventV4>[512]
|
RuleWatcherV6
定義於 fuchsia.net.routes/ipv6.fidl
用來處理系統 IPv6 規則表中變更的觀察器通訊協定。
觀看
inging-Get style API 以觀察轉送規則變更。
用戶端一次只能有一則待處理的 Watch
通話。撥號中
Watch
會在要求待處理時執行
關閉
前 N 個事件一律為 existing
,其中 N 是
通訊協定連線至伺服器端時,已存在的 IPv6 規則
初始化。下列事件會idle
表示
existing
事件。此時,客戶已看過所有
且永遠不會再觀察到 existing
事件。
- 回應
events
最多MAX_EVENTS
個事件的向量。
要求
<空白>
回應
名稱 | 類型 |
---|---|
events |
vector<RuleEventV6>[512]
|
狀態
在 fuchsia.net.routes/routes.fidl 中定義的
提供系統轉送狀態的存取權。
GetRouteTableName
根據 ID 取得路徑資料表名稱。
- 要求
table_id
有問題的路徑資料表 ID。
- 回應
table_name
(如果是路徑資料表) 路徑資料表的名稱 沒有名稱,則會傳回空字串。
- 如果路徑資料表不存在,則傳回
NO_TABLE
錯誤。
要求
名稱 | 類型 |
---|---|
table_id |
TableId
|
回應
名稱 | 類型 |
---|---|
payload |
State_GetRouteTableName_Result
|
解決
解析前往目的地的路線。
- 要求
destination
要解析路徑的 IP 位址。如果 未指定的位址 (所有位址皆為零),那麼預設路徑 。destination
的變體會決定 已解析路徑中的 fuchsia.net/IpAddress 欄位。
- 回應
result
包含指向destination
的已解析路徑。
- 如果無法解析
destination
,則傳回「ZX_ERR_ADDRESS_UNREACHABLE
」錯誤。
要求
名稱 | 類型 |
---|---|
destination |
fuchsia.net/IpAddress
|
回應
名稱 | 類型 |
---|---|
payload |
State_Resolve_Result
|
StateV4
定義於 fuchsia.net.routes/ipv4.fidl
提供系統 IPv4 轉送狀態的觀測能力。
GetRuleWatcherV4
初始化 IPv4 規則狀態的看守工具。
- 要求「監看程式」授予
RuleWatcherV4
通訊協定的存取權。 - 要求
watch_options
會指定RuleWatcherV4
的行為。
要求
名稱 | 類型 |
---|---|
watcher |
server_end<RuleWatcherV4>
|
options |
RuleWatcherOptionsV4
|
GetWatcherV4
初始化 IPv4 轉送狀態的看守工具。
- 要求「監看程式」授予
WatcherV4
通訊協定的存取權。 - 要求
watch_options
會指定WatcherV4
的行為。
要求
名稱 | 類型 |
---|---|
watcher |
server_end<WatcherV4>
|
options |
WatcherOptionsV4
|
StateV6
定義於 fuchsia.net.routes/ipv6.fidl
提供系統 IPv6 轉送狀態的觀測能力。
GetRuleWatcherV6
初始化 IPv6 規則狀態的看守工具。
- 要求「監看程式」授予
RuleWatcherV6
通訊協定的存取權。 - 要求
watch_options
會指定RuleWatcherV6
的行為。
要求
名稱 | 類型 |
---|---|
watcher |
server_end<RuleWatcherV6>
|
options |
RuleWatcherOptionsV6
|
GetWatcherV6
初始化 IPv6 轉送狀態的看守工具。
- 要求「監看程式」授予
WatcherV6
通訊協定的存取權。 - 要求
watch_options
會指定WatcherV6
的行為。
要求
名稱 | 類型 |
---|---|
watcher |
server_end<WatcherV6>
|
options |
WatcherOptionsV6
|
WatcherV4
定義於 fuchsia.net.routes/ipv4.fidl
用來處理系統 IPv4 轉送狀態變更的觀察器通訊協定。
觀看
懸掛樣式 API 用於觀察路線轉送變更。
用戶端一次只能有一則待處理的 Watch
通話。撥號中
Watch
會在要求待處理時執行
關閉
前 N 個事件一律為 existing
,其中 N 是
通訊協定的伺服器端
初始化。下列事件會idle
表示
existing
事件。此時,客戶已看過所有
且永遠不會再觀察到 existing
事件。
事件會以最多 MAX_EVENTS
個事件為批次傳回。由於沒有
批量/邊界與內容之間的關係:
非常適合伺服器分割 existing
事件區塊
以便分批取得這些資料用戶端必須將這個 API 視為提供
批次串流,其中批次可用於降低
有些人會將 Cloud Storage 視為檔案系統
但實際上不是
- 回應
events
最多MAX_EVENTS
個事件的向量。
要求
<空白>
回應
名稱 | 類型 |
---|---|
events |
vector<EventV4>[512]
|
WatcherV6
定義於 fuchsia.net.routes/ipv6.fidl
用來處理系統 IPv6 轉送狀態變更的觀察器通訊協定。
觀看
懸掛樣式 API 用於觀察路線轉送變更。
用戶端一次只能有一則待處理的 Watch
通話。撥號中
Watch
會在要求待處理時執行
關閉
前 N 個事件一律為 existing
,其中 N 是
通訊協定的伺服器端
初始化。下列事件會idle
表示
existing
事件。此時,客戶已看過所有
且永遠不會再觀察到 existing
事件。
事件會以最多 MAX_EVENTS
個事件為批次傳回。由於沒有
批量/邊界與內容之間的關係:
非常適合伺服器分割 existing
事件區塊
以便分批取得這些資料用戶端必須將這個 API 視為提供
批次串流,其中批次可用於降低
有些人會將 Cloud Storage 視為檔案系統
但實際上不是
- 回應
events
最多MAX_EVENTS
個事件的向量。
要求
<空白>
回應
名稱 | 類型 |
---|---|
events |
vector<EventV6>[512]
|
結構
全部
在 fuchsia.net.routes/routes.fidl 中定義的
<空白>
介於
在 fuchsia.net.routes/rules.fidl 中定義的
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
start |
uint32
|
範圍開頭 (含首尾)。 |
無預設 |
end |
uint32
|
檢視範圍的結束時間 (包含首尾)。 |
無預設 |
空白
在 fuchsia.net.routes/routes.fidl 中定義的
空白值的預留位置。
<空白>
InstalledRuleV4
定義於 fuchsia.net.routes/ipv4.fidl
已安裝的 IPv4 轉送規則。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
rule_set_priority |
RuleSetPriority
|
規則集是按規則組合的優先順序排序,規則集彼此互不連 而且彼此之間沒有交錯規則 |
無預設 |
rule_index |
RuleIndex
|
規則組合內的規則與規則集會在本機排序 優先,這會定義所有已安裝規則的全域順序。 |
無預設 |
selector |
RuleSelectorV4
|
規則的選取器部分,如果選取器啟用了「免人工管理」 與封包不符 |
無預設 |
action |
RuleAction
|
規則中動作部分,用來說明選取工具時的處理方式 比對封包 |
無預設 |
InstalledRuleV6
定義於 fuchsia.net.routes/ipv6.fidl
已安裝的 IPv6 轉送規則。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
rule_set_priority |
RuleSetPriority
|
規則集是按規則組合的優先順序排序,規則集彼此互不連 而且彼此之間沒有交錯規則 |
無預設 |
rule_index |
RuleIndex
|
規則組合內的規則與規則集會在本機排序 優先,這會定義所有已安裝規則的全域順序。 |
無預設 |
selector |
RuleSelectorV6
|
規則的選取器部分,如果選取器啟用了「免人工管理」 與封包不符 |
無預設 |
action |
RuleAction
|
規則中動作部分,用來說明選取工具時的處理方式 比對封包 |
無預設 |
主要
在 fuchsia.net.routes/routes.fidl 中定義的
<空白>
已標示
在 fuchsia.net.routes/rules.fidl 中定義的
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
mask |
uint32
|
要先套用遮罩,再與 |
無預設 |
between |
Between
|
標示位於指定範圍之間。 |
無預設 |
RouteTargetV4
定義於 fuchsia.net.routes/ipv4.fidl
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
outbound_interface |
fuchsia.net/InterfaceId
|
目標傳出介面的介面 ID。 |
無預設 |
next_hop |
fuchsia.net/Ipv4Address?
|
目標的下一個躍點。如有提供, 必須是單點傳播位址。 |
無預設 |
RouteTargetV6
定義於 fuchsia.net.routes/ipv6.fidl
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
outbound_interface |
fuchsia.net/InterfaceId
|
目標傳出介面的介面 ID。 |
無預設 |
next_hop |
fuchsia.net/Ipv6Address?
|
目標的下一個躍點。如有提供, 必須是單點傳播位址。 |
無預設 |
RouteV4
定義於 fuchsia.net.routes/ipv4.fidl
RouteV4
會指定 IPv4 網路路徑。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
destination |
fuchsia.net/Ipv4AddressWithPrefix
|
路徑的目的地子網路。制定轉送決策時 指定的封包,該路徑的目的地是最長的 將會選取相符的前置字元,並因路徑的 指標。 |
無預設 |
action |
RouteActionV4
|
與這個路徑相符的封包會套用指定動作 具體做法是指示 Kubernetes 建立並維護 一或多個代表這些 Pod 的物件 |
無預設 |
properties |
RoutePropertiesV4
|
IPv4 路徑的其他屬性。 |
無預設 |
RouteV6
定義於 fuchsia.net.routes/ipv6.fidl
RouteV6
會指定 IPv6 網路路徑。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
destination |
fuchsia.net/Ipv6AddressWithPrefix
|
路徑的目的地子網路。制定轉送決策時 指定的封包,該路徑的目的地是最長的 將會選取相符的前置字元,並因路徑的 指標。 |
無預設 |
action |
RouteActionV6
|
與這個路徑相符的封包會套用指定動作 具體做法是指示 Kubernetes 建立並維護 一或多個代表這些 Pod 的物件 |
無預設 |
properties |
RoutePropertiesV6
|
IPv6 路徑的其他屬性。 |
無預設 |
State_GetRouteTableName_Response
在 fuchsia.net.routes/routes.fidl 中定義的
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
table_name |
TableName
|
無預設 |
State_Resolve_Response
在 fuchsia.net.routes/routes.fidl 中定義的
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
result |
Resolved
|
已解決的路徑。 包含「next-hop」的資訊或緊接目的地 也就是路線解析的結果。只有已解決的路徑 能生成有意義的結果 |
無預設 |
已取消標示
在 fuchsia.net.routes/rules.fidl 中定義的
<空白>
無法連上網路
在 fuchsia.net.routes/rules.fidl 中定義的
<空白>
ENUMS
State_GetRouteTableName_Error strict
類型:uint32
在 fuchsia.net.routes/routes.fidl 中定義的
名稱 | 值 | 說明 |
---|---|---|
NO_TABLE |
1 |
資料表
BaseSelector
在 fuchsia.net.routes/rules.fidl 中定義的
可套用至 IPv4 和 IPv6 封包的通用選取器。
如果所有目前欄位都符合 對應的資源
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
locally_generated |
bool
|
如果封包是在本機產生,系統會比對封包。 |
2 |
bound_device |
InterfaceSelector
|
如果封包是以 |
3 |
mark_1_selector |
MarkSelector
|
MARK_1 網域的選取器。 |
4 |
mark_2_selector |
MarkSelector
|
MARK_2 網域的選取器。 |
目的地
在 fuchsia.net.routes/routes.fidl 中定義的
用於說明網路目的地的地址和 ID 集合。
Destination
是「下一個躍點」和轉送封包
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
address |
fuchsia.net/IpAddress
|
目的地的 IP 位址。 |
2 |
mac |
fuchsia.net/MacAddress
|
目的地的 MAC 位址。只有在目的地位於 需要 MAC 位址的連結。 |
3 |
interface_id |
fuchsia.net/InterfaceId
|
可連上目的地的介面 ID。 |
4 |
source_address |
fuchsia.net/IpAddress
|
用來與目的地通訊的偏好本機 IP 位址。 |
EffectiveRouteProperties
在 fuchsia.net.routes/routes.fidl 中定義的
安裝系統中路線的有效屬性。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
metric |
fuchsia.net/RouteMetric
|
路線的有效指標,需視路線的值而定
SpecifiedRouteProperties 。如果 |
InstalledRouteV4
定義於 fuchsia.net.routes/ipv4.fidl
InstalledRouteV4
會指定安裝在以下位置的 IPv4 網路路徑:
系統的路徑表。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
route |
RouteV4
|
路線。 |
2 |
effective_properties |
EffectiveRouteProperties
|
路線的有效屬性。 |
3 |
table_id |
TableId
|
這個路徑所屬的資料表 ID。 |
InstalledRouteV6
定義於 fuchsia.net.routes/ipv6.fidl
InstalledRouteV6
會指定安裝在以下位置的 IPv6 網路路徑:
系統的路徑表。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
route |
RouteV6
|
路線。 |
2 |
effective_properties |
EffectiveRouteProperties
|
路線的有效屬性。 |
3 |
table_id |
TableId
|
這個路徑所屬的資料表 ID。 |
RoutePropertiesV4
定義於 fuchsia.net.routes/ipv4.fidl
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
specified_properties |
SpecifiedRouteProperties
|
路徑的指定屬性。 |
RoutePropertiesV6
定義於 fuchsia.net.routes/ipv6.fidl
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
specified_properties |
SpecifiedRouteProperties
|
路徑的指定屬性。 |
RuleSelectorV4
定義於 fuchsia.net.routes/ipv4.fidl
用來比對封包的規則選取器部分。
如果所有目前欄位都符合 對應的資源
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
from |
fuchsia.net/Ipv4AddressWithPrefix
|
比對封包的來源位址是否來自子網路。 |
2 |
base |
BaseSelector
|
其他在 IP 版本之間常見的選取器。 |
RuleSelectorV6
定義於 fuchsia.net.routes/ipv6.fidl
用來比對封包的規則選取器部分。
如果所有目前欄位都符合 對應的資源
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
from |
fuchsia.net/Ipv6AddressWithPrefix
|
比對封包的來源位址是否來自子網路。 |
2 |
base |
BaseSelector
|
其他在 IP 版本之間常見的選取器。 |
RuleWatcherOptionsV4
定義於 fuchsia.net.routes/ipv4.fidl
序數 | 欄位 | 類型 | 說明 |
---|
RuleWatcherOptionsV6
定義於 fuchsia.net.routes/ipv6.fidl
序數 | 欄位 | 類型 | 說明 |
---|
SpecifiedRouteProperties
在 fuchsia.net.routes/routes.fidl 中定義的
在遷移時明確指定的路線屬性 路徑已建立。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
metric |
SpecifiedMetric
|
路徑的有效指標取決於 。 |
WatcherOptionsV4
定義於 fuchsia.net.routes/ipv4.fidl
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
table_interest |
TableInterest
|
篩選符合「 如未提供,會解讀為 |
WatcherOptionsV6
定義於 fuchsia.net.routes/ipv6.fidl
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
table_interest |
TableInterest
|
篩選符合「 如未提供,會解讀為 |
聯合國
EventV4 彈性
定義於 fuchsia.net.routes/ipv4.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
existing |
InstalledRouteV4
|
開始觀看時已存在的路徑。 |
2 |
idle |
Empty
|
Sentinel 值表示不會再發生 |
3 |
added |
InstalledRouteV4
|
觀看時新增的路線。 |
4 |
removed |
InstalledRouteV4
|
系統在觀看時移除的路線。 |
EventV6 彈性
定義於 fuchsia.net.routes/ipv6.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
existing |
InstalledRouteV6
|
開始觀看時已存在的路徑。 |
2 |
idle |
Empty
|
Sentinel 值表示不會再發生 |
3 |
added |
InstalledRouteV6
|
觀看時新增的路線。 |
4 |
removed |
InstalledRouteV6
|
系統在觀看時移除的路線。 |
介面選取器彈性
在 fuchsia.net.routes/rules.fidl 中定義的
與傳出封包來源介面相符的選取器。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
device_name |
fuchsia.net.interfaces/Name
|
如果名稱相符,系統會比對裝置。 這個名稱不是模式或規則運算式,必須完全符合 挑選規則 |
MarkSelector 彈性
在 fuchsia.net.routes/rules.fidl 中定義的
用於標記值的選取器。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
unmarked |
Unmarked
|
這個標示網域沒有商標。 |
2 |
marked |
Marked
|
解決嚴格問題
在 fuchsia.net.routes/routes.fidl 中定義的
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
direct |
Destination
|
可直接連上要求目的地。 |
2 |
gateway |
Destination
|
可透過閘道連上要求的目的地,因此 下一個躍點就是閘道 |
RouteActionV4 彈性
定義於 fuchsia.net.routes/ipv4.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
forward |
RouteTargetV4
|
將封包轉送至指定的目標。 |
RouteActionV6 彈性
定義於 fuchsia.net.routes/ipv6.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
forward |
RouteTargetV6
|
將封包轉送至指定的目標。 |
RuleAction 彈性
在 fuchsia.net.routes/rules.fidl 中定義的
選取器相符時採取的動作。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
lookup |
TableId
|
在指定的路線表格中尋找路線。如果沒有相符的項目 路線時,查詢會繼續將 下一項規則 |
2 |
unreachable |
Unreachable
|
無法連上網路,這反倒是對於 |
RuleEventV4 彈性
定義於 fuchsia.net.routes/ipv4.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
existing |
InstalledRuleV4
|
開始監控時已存在的規則。 |
2 |
idle |
Empty
|
Sentinel 值表示不會再發生 |
3 |
added |
InstalledRuleV4
|
在觀看期間新增的規則。 |
4 |
removed |
InstalledRuleV4
|
系統在觀看期間移除的規則。 |
RuleEventV6 彈性
定義於 fuchsia.net.routes/ipv6.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
existing |
InstalledRuleV6
|
開始監控時已存在的規則。 |
2 |
idle |
Empty
|
Sentinel 值表示不會再發生 |
3 |
added |
InstalledRuleV6
|
在觀看期間新增的規則。 |
6 |
removed |
InstalledRuleV6
|
系統在觀看期間移除的規則。 |
SpecifiedMetric 嚴格
在 fuchsia.net.routes/routes.fidl 中定義的
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
explicit_metric |
fuchsia.net/RouteMetric
|
路徑的指標會是明確指定的值。 |
2 |
inherited_from_interface |
Empty
|
路徑指標沿用自外送介面 會在路線生命週期中變更這個值時加以追蹤。 如果客戶想卸載 「哪個路線最佳」的責任傳送至系統 |
State_GetRouteTableName_Result strict
在 fuchsia.net.routes/routes.fidl 中定義的
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
State_GetRouteTableName_Response
|
|
2 |
err |
State_GetRouteTableName_Error
|
State_Resolve_Result 嚴格
在 fuchsia.net.routes/routes.fidl 中定義的
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
State_Resolve_Response
|
|
2 |
err |
zx/Status
|
資料表興趣彈性
在 fuchsia.net.routes/routes.fidl 中定義的
指定監看指令碼感興趣的資料表。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
only |
TableId
|
只監控指定表格中的事件。 |
2 |
main |
Main
|
在主要資料表上監控,不用知道資料表 ID。 |
3 |
all |
All
|
所有路徑資料表的觀察。 |
觀測站
名稱 | 值 | 類型 | 說明 |
---|---|---|---|
MAX_EVENTS |
512
|
uint16 |
一次呼叫 新增時間:HEAD
|
MAX_TABLE_NAME_LEN |
255
|
uint64 |
資料表名稱的長度上限。 新增時間:HEAD
|
別名
名稱 | 值 | 說明 |
---|---|---|
RuleIndex |
uint32 |
所提供規則集內的規則索引。 系統會根據索引對同一個 新增時間:HEAD
|
RuleSetPriority |
uint32 |
規則組合的優先順序也會按照這個順序進行線性化。 系統會先執行具有較小 RuleSetPriority 的 新增時間:HEAD
|
TableId |
uint32 |
路徑資料表的 ID。
新增時間:HEAD
|
TableName |
string [MAX_TABLE_NAME_LEN ] |
路徑資料表的名稱。 新增時間:HEAD
|