fuchsia.net.interfaces

已新增:7

專家

狀態

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

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

GetWatcher

初始化介面狀態監看工具。

伺服器會將介面新增、刪除和屬性變更排入佇列,接著您可以透過管道的通訊協定擷取這些異動。

  • 要求 options 會指定監看工具的行為。
  • 要求 watcher 將存取權授予「Watcher」。如果伺服器無法分配佇列或佇列已滿,則會關閉佇列。

要求

名稱類型
options WatcherOptions
watcher server_end<Watcher>

Watcher

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

用於變更網路介面的觀測器通訊協定 (新增、刪除及介面屬性變更)。

觀看

請稍候,進行介面新增/刪除變更。

用戶端一次只能呼叫此方法;如果呼叫尚在待處理作業期間,再次呼叫這個方法,便會關閉通訊協定的伺服器端。

如果通訊協定的伺服器端初始化時存在 N 個介面,則此方法的第一個 N 叫用會傳回 Event.existing,後面接著單一 Event.idle,表示所有現有介面皆已傳送。如果要回報的變更,後續的呼叫會立即傳回,或是封鎖直到變更發生為止。

伺服器可能會選擇隱藏屬性變更事件,例如發生多個獨立的屬性變更時。因此,用戶端不能假設他們觀察介面變更的順序,就是變更發生的順序。

  • 回應 event 介面變更事件。

要求

<EMPTY>

回應

名稱類型
event Event

結構

空白

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

<EMPTY>

表情符號

AddressAssignmentState 嚴格

類型:uint32

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

IP 位址的指派狀態。

已新增:HEAD

名稱說明
1

指派位址正在進行中,例如:執行重複的位址偵測。無法在這個狀態下使用位址 (目前無法繫結至該位址或接收目的地為該位址的封包)。

重複地址偵測機制的說明請參閱 RFC 4862 的第 5.4 節

2

系統會將地址指派給介面。

3

無法使用位址,例如保留位址的介面處於離線狀態。

資料表

地址

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

序數欄位類型說明
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

網路介面的屬性。

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

介面的不透明 ID。即使裝置已移除再重新加入,也不會重複使用該值。無法變更。

addresses vector<Address>

介面目前安裝的位址。

地址會在 Address.addr 上排序,且兩個位址不能有相同的 Address.addr 值。

除非將 WatcherOptions.include_non_assigned_addresses 設為 true,否則只有指派的位址才會包含在內。

online bool

裝置已啟用,且裝置已連上網路。

device_class DeviceClass

介面的裝置類別。無法變更。

has_default_ipv4_route bool

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

has_default_ipv6_route bool

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

name Name

介面的名稱。無法變更。

WatcherOptions

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

序數欄位類型說明
address_properties_interest AddressPropertiesInterest

用來註冊位址屬性的位元欄位。

選用;如果沒有,則會解讀為所有位元都會設為 0。

已新增:HEAD
include_non_assigned_addresses bool

判斷是否只傳回指派的地址 (指派狀態為 AddressAssignmentState::Assigned) 或所有地址的標記。

選用;如果沒有,則解讀為 false。

已新增:HEAD

聯合國

DeviceClass 嚴格

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

序數Variant類型說明
loopback Empty

介面是回送。

device fuchsia.hardware.network/DeviceClass

介面的網路裝置類別。

活動嚴格

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

序數Variant類型說明
existing Properties

開始觀看時出現的介面屬性。

已設定所有相關欄位和 Properties.id

added Properties

觀看時新增的介面屬性。

已設定所有相關欄位和 Properties.id

removed fuchsia.net/InterfaceId

觀看時遭到移除的介面 ID。

changed Properties

觀看影片時變更的介面屬性。

只有 Properties.id 和已變更的欄位,才會設為新值。

idle Empty

Sentinel 值表示不會再傳送任何「現有」事件。

PreferredLifetimeInfo 嚴格

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

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

已新增:9
序數Variant類型說明
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

介面名稱的長度上限。

別名

名稱說明
名稱 string[INTERFACE_NAME_LENGTH]

以位元組序列表示的介面名稱。