fuchsia.net.interfaces

新增:7

通訊協定

狀態

定義於 fuchsia.net.interfaces/interfaces.fidl

網路介面狀態檢查與觀察。

GetWatcher

初始化介面狀態的看守工具。

伺服器會將新增、刪除和屬性變更排入佇列, 然後可以透過管道通訊協定擷取。

  • 要求 options 會指定「監看員」的行為。
  • 要求 watcher 將存取權授予「監看員」。已在等候佇列時關閉 無法分配,或在伺服器嘗試時如果佇列已滿 將事件加入佇列。

要求

名稱類型
options WatcherOptions
watcher server_end<Watcher>

Watcher

定義於 fuchsia.net.interfaces/interfaces.fidl

觀察器通訊協定對網路介面的變更 (新增、刪除與 介面屬性變更)。

觀看

等待新增/刪除介面。

用戶端一次只能執行一個方法的呼叫;1 秒鐘 呼叫此方法會導致 用戶端的 IP 位址。

如果伺服器結束時有 N 個介面 初始化通訊協定後,接著執行這個方法的前 N 個叫用 會傳回 Event.existing 以及單一 Event.idle 表示所有現有介面皆已傳送。後續呼叫 如果報表設定變更,系統會立即傳回 直到產生變更為止

伺服器可選擇協調屬性變更事件,例如:時段 發生了多項獨立資源變更時因此,客戶無法 假設他們觀察到介面變更的順序是 變更發生的順序。

  • 回應 event 介面變更事件。

要求

<空白>

回應

名稱類型
event Event

結構

空白

定義於 fuchsia.net.interfaces/interfaces.fidl

<空白>

ENUMS

AddressAssignmentState 嚴格

類型:uint32

定義於 fuchsia.net.interfaces/interfaces.fidl

IP 位址的指派狀態。

新增時間:HEAD

名稱說明
1

正在指派地址,例如地址偵測重複 這裡的資訊在這個狀態下無法使用這個地址 (無法繫結至該位址,或接收目的地封包)。

「重複地址偵測」機制會另行說明 RFC 4862,5.4 節

2

該位址會指派給介面。

3

無法提供網址,例如:如果包含位址的介面 離線。

資料表

地址

定義於 fuchsia.net.interfaces/interfaces.fidl

Ordinal欄位類型說明
addr fuchsia.net/Subnet

位址與前置字串長度。

必填。

valid_until zx/Time

過了此時間之後,地址就會失效。

其值必須大於 0。值為 ZX_TIME_INFINITE 表示地址永遠有效。值為 這正是單調時鐘所得出

做為 zx.Time,值具有 單調時鐘語意、 這代表它在其主機外部沒有意義 無法產生任何意義。

選用:內容仍可能因為不感興趣而遭到忽略。

preferred_lifetime_info PreferredLifetimeInfo

偏好的生命週期資訊。

選用:內容仍可能因為不感興趣而遭到忽略。

新增:9
assignment_state AddressAssignmentState

地址的指派狀態。

必填。

新增時間:HEAD

屬性

定義於 fuchsia.net.interfaces/interfaces.fidl

網路介面的屬性。

Ordinal欄位類型說明
id fuchsia.net/InterfaceId

這是介面的不透明 ID。代碼值不會重複使用 即使裝置在移除後再重新加回也一樣。不可變動。

addresses vector<Address>

介面上目前安裝的位址。

地址是根據 Address.addr 進行排序,但不得包含兩個地址 使用相同的 Address.addr 值。

除非使用監看程式建立上述設定檔,否則只會包含指派的地址 WatcherOptions.include_non_assigned_addresses 已設為 true

online bool

裝置已啟用,且裝置實體處於連線狀態。

device_class DeviceClass

介面的裝置類別。不可變動。

淘汰

替換為 port_class。預定於 2025 年移除。

已移除:23 已淘汰:22
has_default_ipv4_route bool

是否透過這個介面有預設的 IPv4 路徑。

has_default_ipv6_route bool

是否透過這個介面有預設的 IPv6 路徑。

name Name

介面的名稱。不可變動。

port_class PortClass

介面的通訊埠類別。不可變動。

新增日期:22

WatcherOptions

定義於 fuchsia.net.interfaces/interfaces.fidl

Ordinal欄位類型說明
address_properties_interest AddressPropertiesInterest

註冊地址屬性興趣的位元欄位。

選用;否則系統會將所有位元解譯為 0。

新增時間:HEAD
include_non_assigned_addresses bool

用於判斷是否只傳回指派地址的旗標 (其中 指派狀態為 AddressAssignmentState::Assigned) 或 會傳回所有位址。

選用:否則就會解讀為 false

新增時間:HEAD

聯合國

DeviceClass 嚴格

定義於 fuchsia.net.interfaces/interfaces.fidl

OrdinalVariant類型說明
loopback Empty

介面即為回送功能。

device fuchsia.hardware.network/DeviceClass

事件嚴格

定義於 fuchsia.net.interfaces/interfaces.fidl

OrdinalVariant類型說明
existing Properties

開始觀看時所存在的介面屬性。

已設定所有感興趣的欄位和 Properties.id

added Properties

觀看時新增的介面屬性。

已設定所有感興趣的欄位和 Properties.id

removed fuchsia.net/InterfaceId

觀看時移除的介面 ID。

changed Properties

在觀看期間變更的介面屬性。

只有 Properties.id 和已經變更的興趣欄位 都已根據新的值進行設定

idle Empty

Sentinel 值表示不再「現有」事件 已傳送。

PortClass 彈性

定義於 fuchsia.net.interfaces/interfaces.fidl

介面的通訊埠類別。

新增日期:22
OrdinalVariant類型說明
loopback Empty

介面即為回送功能。

device fuchsia.hardware.network/PortClass

介面的網路裝置通訊埠類別。

PreferredLifetimeInfo 嚴格

定義於 fuchsia.net.interfaces/interfaces.fidl

指定 IP 位址或委派的偏好生命週期相關資訊 前置字串。

新增:9
OrdinalVariant類型說明
preferred_until zx/Time

偏好生命週期的結束時間。

如果為 zx.Time,地址/前置字串「不應」視為已淘汰 已經過時。交換「preferred_until」的目的是通知使用者 也就是預期淘汰的期限

偏好的地址效期定義於 RFC 4862 第 2 節

使用委派前置碼設定的位址必須具備偏好的設定 時間不會超過該字串的保留時間 RFC 8415,6.3 節

必須大於 0。如果是 zx.Time.INFINITE,表示偏好的生命週期 沒有期限。

deprecated Empty

位址/前置字串已淘汰。

已淘汰的位址不應再用於啟動 除非明確要求或沒有 會指派未淘汰的地址 (如 RFC 4862 第 1 節)。

使用已淘汰委派的前置碼設定的位址,也必須 已按照 RFC 8415,6.3 節

如果地址/前置字串的優先生命週期為 已延長。

商業智慧

AddressPropertiesInterest 彈性

類型:uint64

定義於 fuchsia.net.interfaces/interfaces.fidl

名稱說明
1
2

觀測站

名稱類型說明
INTERFACE_NAME_LENGTH 15 uint8

介面名稱的長度上限。

ALIASES

名稱說明
名稱 string[INTERFACE_NAME_LENGTH]

做為位元組序列的介面名稱。