fuchsia.net.interfaces

添加时间:7

协议

状态

fuchsia.net.interfaces/interfaces.fidl 中定义

网络接口状态检查和观察。

GetWatcher

初始化接口状态的观察器。

服务器将接口添加、删除和属性更改加入队列, 它们发生,之后可通过流水线协议进行检索。

  • 请求 options 指定 Watcher 的行为。
  • 请求 watcher 授予对 Watcher 的访问权限。如果已排队,则关闭 无法分配,或者在服务器尝试分配时队列已满 将事件加入队列。

请求

名称类型
options WatcherOptions
watcher server_end<Watcher>

Watcher

fuchsia.net.interfaces/interfaces.fidl 中定义

用于网络接口更改(添加、删除和 接口属性更改)。

观看

挂起获取接口添加/删除更改的操作。

客户端一次只能调用一个方法;一秒 在某个调用处于待处理状态时调用此方法将导致 关闭协议的服务器端。

如果 协议初始化后,该方法的前 N 次调用 将返回 Event.existing,后跟单个 Event.idle 这表明所有现有接口都已发送。后续调用 如果有要报告的更改,系统会立即返回结果, 直到发生变化

服务器可以选择合并属性更改事件,例如时间 会发生多项独立的属性更改。因此,客户端无法 他们观察接口更改的顺序是 更改发生的顺序。

  • 响应 event 接口更改事件。

请求

<空>

响应

名称类型
event Event

结构体

空白

fuchsia.net.interfaces/interfaces.fidl 中定义

<空>

精英

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

接口的不透明标识符。其值不会重复使用 即使设备被移除后又重新添加也是如此。不可变。

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 中定义

Ordinal变体类型说明
loopback Empty

接口是环回接口。

device fuchsia.hardware.network/DeviceClass

事件严格

fuchsia.net.interfaces/interfaces.fidl 中定义

Ordinal变体类型说明
existing Properties

监控开始时存在的接口的属性。

所有相关字段和 Properties.id 均已设置。

added Properties

观看时添加的接口的属性。

所有相关字段和 Properties.id 均已设置。

removed fuchsia.net/InterfaceId

观看时移除的接口的 ID。

changed Properties

观察过程中发生更改的界面属性。

只有 Properties.id 和感兴趣的字段已更改 新值

idle Empty

哨兵值,表明不会再有现有事件 已发送。

PortClass 柔性环境

fuchsia.net.interfaces/interfaces.fidl 中定义

接口的端口类。

添加时间:22
Ordinal变体类型说明
loopback Empty

接口是环回接口。

device fuchsia.hardware.network/PortClass

接口的网络设备端口类。

PreferredLifetimeInfo 严格

fuchsia.net.interfaces/interfaces.fidl 中定义

有关 IP 地址或委托的首选生命周期的信息 前缀。

添加时间:9
Ordinal变体类型说明
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]

一系列字节的接口名称。