协议
状态
在 fuchsia.net.interfaces/interfaces.fidl 中定义
检查和观察网络接口状态。
GetWatcher
初始化接口状态的观察器。
服务器会在接口添加、删除和属性更改发生时加入队列,然后可以通过流水线协议检索相应信息。
请求
名称 | 类型 |
---|---|
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 地址的分配状态。
名称 | 值 | 说明 |
---|---|---|
暂定 |
1 |
正在分配地址,例如正在执行重复地址检测。该地址处于此状态时无法使用(还不能绑定到它或接收发往该地址的数据包)。 RFC 4862 第 5.4 节中介绍了重复地址检测机制 |
已分配 |
2 |
地址被分配给某个接口。 |
不可用 |
3 |
该地址不可用,例如,如果存储该地址的接口处于离线状态。 |
表格
地址
在 fuchsia.net.interfaces/interfaces.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
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 中定义
网络接口的属性。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
fuchsia.net/InterfaceId
|
接口的不透明标识符。即使移除并重新添加设备,其值也不会重复使用。不可变。 |
2 |
addresses |
vector<Address>
|
界面中当前安装的地址。 地址按 Address.addr 进行排序,并且两个地址不能具有相同的 除非创建观察器时将 WatcherOptions.include_non_assigned_addresses 设置为 |
3 |
online |
bool
|
设备已启用,且其物理状态为在线。 |
4 |
device_class |
DeviceClass
|
接口的设备类。不可变。 |
5 |
has_default_ipv4_route |
bool
|
是否存在通过此接口的默认 IPv4 路由。 |
6 |
has_default_ipv6_route |
bool
|
是否存在通过此接口的默认 IPv6 路由。 |
7 |
name |
Name
|
接口的名称。不可变。 |
WatcherOptions
在 fuchsia.net.interfaces/interfaces.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
address_properties_interest |
AddressPropertiesInterest
|
用于注册地址属性兴趣的位字段。 可选;如果不存在,则解释为所有设置为 0 的位。 添加:HEAD
|
2 |
include_non_assigned_addresses |
bool
|
此标记用于确定是仅返回已分配的地址(其中分配状态为 AddressAssignmentState::Assigned ),还是返回所有地址。 可选;如果不存在,则解释为 false。 添加:HEAD
|
联合
DeviceClass 严格
在 fuchsia.net.interfaces/interfaces.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
loopback |
Empty
|
接口为环回接口。 |
2 |
device |
fuchsia.hardware.network/DeviceClass
|
接口的网络设备类。 |
活动严格
在 fuchsia.net.interfaces/interfaces.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
existing |
Properties
|
监控开始时存在的接口的属性。 已设置所有感兴趣的字段和 Properties.id。 |
2 |
added |
Properties
|
在监控过程中添加的接口的属性。 已设置所有感兴趣的字段和 Properties.id。 |
3 |
removed |
fuchsia.net/InterfaceId
|
在观看过程中移除的接口的 ID。 |
4 |
changed |
Properties
|
监视时发生变化的接口的属性。 只有 Properties.id 和已更改的感兴趣字段会使用新值设置。 |
5 |
idle |
Empty
|
哨兵值,表示不会再发送现有事件。 |
PreferredLifecycleInfo 严格
在 fuchsia.net.interfaces/interfaces.fidl 中定义
有关 IP 地址或委托前缀的首选生命周期的信息。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
preferred_until |
zx/Time
|
首选生命周期的结束时间。 如果 RFC 4862 第 2 节中定义了地址的首选生命周期。 根据 RFC 8415 第 6.3 节,使用委托前缀配置的地址的首选生命周期不得长于该前缀的首选生命周期。 必须大于 0。如果为 |
2 |
deprecated |
Empty
|
该地址/前缀已弃用。 除非收到明确请求,或者未分配其他非弃用的地址(如 RFC 4862 第 1 节中所述),否则已弃用的地址不应再用于启动新连接。 根据 RFC 8415 第 6.3 节,使用已弃用的委托前缀配置的地址也必须废弃。 如果地址/前缀的首选生命周期延长,其首选生命周期可以取消弃用。 |
BITS
AddressPropertiesInterest 灵活
类型:uint64
在 fuchsia.net.interfaces/interfaces.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
VALID_UNTIL |
1 | |
PREFERRED_LIFETIME_INFO |
2 |
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
INTERFACE_NAME_LENGTH |
15
|
uint8 |
接口名称的最大长度。 |
别名
名称 | 值 | 说明 |
---|---|---|
名称 |
string [INTERFACE_NAME_LENGTH ] |
以字节序列表示的接口名称。 |