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

用于更改网络接口(添加、删除和接口属性更改)的观察者协议。

观看

挂起 get 以执行接口添加/删除更改。

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

如果在初始化协议服务器端时存在 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

接口的不透明标识符。即使移除并重新添加设备,其值也不会重复使用。不可变。

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

序数变体类型说明
loopback Empty

接口为环回接口。

device fuchsia.hardware.network/DeviceClass

接口的网络设备类。

活动严格

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

序数变体类型说明
existing Properties

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

已设置所有感兴趣的字段和 Properties.id

added Properties

在监控过程中添加的接口的属性。

已设置所有感兴趣的字段和 Properties.id

removed fuchsia.net/InterfaceId

在观看过程中移除的接口的 ID。

changed Properties

监视时发生变化的接口的属性。

只有 Properties.id 和已更改的感兴趣字段会使用新值设置。

idle Empty

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

PreferredLifecycleInfo 严格

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

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

添加数量:9
序数变体类型说明
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 节,使用已弃用的委托前缀配置的地址也必须废弃。

如果地址/前缀的首选生命周期延长,其首选生命周期可以取消弃用。

BITS

AddressPropertiesInterest 灵活

类型:uint64

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

名称说明
1
2

常量

名称类型说明
INTERFACE_NAME_LENGTH 15 uint8

接口名称的最大长度。

别名

名称说明
名称 string[INTERFACE_NAME_LENGTH]

以字节序列表示的接口名称。