协议
状态
在 fuchsia.net.interfaces/interfaces.fidl 中定义
网络接口状态检查和观察。
GetWatcher
初始化接口状态的观察器。
服务器将接口添加、删除和属性更改加入队列, 它们发生,之后可通过流水线协议进行检索。
请求
名称 | 类型 |
---|---|
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 地址的分配状态。
名称 | 值 | 说明 |
---|---|---|
暂定 |
1 |
正在分配地址,例如:地址重复检测 文档。此状态下无法使用该地址 (尚无法绑定至该域,也无法接收发往它的数据包)。 如需了解重复地址检测机制,请参阅 RFC 4862,第 5.4 节 |
已分配 |
2 |
该地址分配给了接口。 |
目前无法购买 |
3 |
地址不可用,例如如果包含该地址的接口 处于离线状态。 |
表
地址
在 fuchsia.net.interfaces/interfaces.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
addr |
fuchsia.net/Subnet
|
地址和前缀长度。 必填。 |
2 |
valid_until |
zx/Time
|
地址的失效时间。 其值必须大于 0。值为 作为 可选;可能因为不感兴趣而省略。 |
3 |
preferred_lifetime_info |
PreferredLifetimeInfo
|
首选生命周期信息。 可选;可能因为不感兴趣而省略。 添加时间:9
|
4 |
assignment_state |
AddressAssignmentState
|
地址的分配状态。 必填。 添加时间:HEAD
|
属性
在 fuchsia.net.interfaces/interfaces.fidl 中定义
网络接口的属性。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
fuchsia.net/InterfaceId
|
接口的不透明标识符。其值不会重复使用 即使设备被移除后又重新添加也是如此。不可变。 |
2 |
addresses |
vector<Address>
|
当前在接口上安装的地址。 地址按照 Address.addr 排序,两个地址不能有
相同的 除非使用
WatcherOptions.include_non_assigned_addresses 设为 |
3 |
online |
bool
|
设备已启用,其物理状态处于在线状态。 |
4 |
device_class |
DeviceClass
|
接口的设备类。不可变。 弃用已替换为 已移除:23 已弃用:22
|
5 |
has_default_ipv4_route |
bool
|
是否存在通过此接口的默认 IPv4 路由。 |
6 |
has_default_ipv6_route |
bool
|
是否存在通过此接口的默认 IPv6 路由。 |
7 |
name |
Name
|
接口的名称。不可变。 |
8 |
port_class |
PortClass
|
接口的端口类。不可变。 添加时间:22
|
WatcherOptions
在 fuchsia.net.interfaces/interfaces.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
address_properties_interest |
AddressPropertiesInterest
|
用于注册地址属性的位字段。 可选;如果不存在,则解释为所有设置为 0 的位。 添加时间:HEAD
|
2 |
include_non_assigned_addresses |
bool
|
用于确定是否仅返回已分配的地址的标志(其中 分配状态为 AddressAssignmentState::Assigned)或 返回所有地址 可选;如果不存在,则解释为 false。 添加时间:HEAD
|
联合体
DeviceClass 严格
在 fuchsia.net.interfaces/interfaces.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
loopback |
Empty
|
接口是环回接口。 |
2 |
device |
fuchsia.hardware.network/DeviceClass
|
事件严格
在 fuchsia.net.interfaces/interfaces.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
existing |
Properties
|
监控开始时存在的接口的属性。 所有相关字段和 Properties.id 均已设置。 |
2 |
added |
Properties
|
观看时添加的接口的属性。 所有相关字段和 Properties.id 均已设置。 |
3 |
removed |
fuchsia.net/InterfaceId
|
观看时移除的接口的 ID。 |
4 |
changed |
Properties
|
观察过程中发生更改的界面属性。 只有 Properties.id 和感兴趣的字段已更改 新值 |
5 |
idle |
Empty
|
哨兵值,表明不会再有现有事件 已发送。 |
PortClass 柔性环境
在 fuchsia.net.interfaces/interfaces.fidl 中定义
接口的端口类。
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
loopback |
Empty
|
接口是环回接口。 |
2 |
device |
fuchsia.hardware.network/PortClass
|
接口的网络设备端口类。 |
PreferredLifetimeInfo 严格
在 fuchsia.net.interfaces/interfaces.fidl 中定义
有关 IP 地址或委托的首选生命周期的信息 前缀。
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
preferred_until |
zx/Time
|
首选生命周期的结束日期。 如果 地址的首选生命周期在 RFC 4862 第 2 节。 使用委托前缀配置的地址必须具有 生命周期长度不会超过前缀的生命周期 RFC 8415 第 6.3 节。 必须大于 0。如果为 |
2 |
deprecated |
Empty
|
地址/前缀已弃用。 已弃用的地址不应再用于启动 建立新的连接(除非明确请求), 系统会分配尚未弃用的地址(如 RFC 4862 第 1 节)。 使用已弃用的委托前缀配置的地址也必须 根据 RFC 8415 第 6.3 节。 如果地址/前缀的首选生命周期是 扩展。 |
位
AddressPropertiesInterest 灵活
类型:uint64
在 fuchsia.net.interfaces/interfaces.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
VALID_UNTIL |
1 | |
PREFERRED_LIFETIME_INFO |
2 |
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
INTERFACE_NAME_LENGTH |
15
|
uint8 |
接口名称的最大长度。 |
ALIASES
名称 | 值 | 说明 |
---|---|---|
名称 |
string [INTERFACE_NAME_LENGTH ] |
一系列字节的接口名称。 |