协议
RuleWatcherV4
在 fuchsia.net.routes/ipv4.fidl 中定义
用于系统 IPv4 规则表中更改的观察器协议。
观看
用于观察路由规则更改的 Hanging-Get 样式 API。
客户端一次只能有一个待处理的 Watch
调用。正在呼叫
在请求已处于待处理状态时执行 Watch
,则会导致协议
关闭。
前 N 个事件始终为 existing
,其中 N 是
当协议服务器端
。以下事件将 idle
,表示
existing
个事件。此时,客户已经观看了
状态,并且永远不会再观察到 existing
事件。
- 响应
events
最多包含MAX_EVENTS
个事件的矢量。
请求
<空>
响应
名称 | 类型 |
---|---|
events |
vector<RuleEventV4>[512]
|
RuleWatcherV6
在 fuchsia.net.routes/ipv6.fidl 中定义
用于系统 IPv6 规则表中更改的观察器协议。
观看
用于观察路由规则更改的 Hanging-Get 样式 API。
客户端一次只能有一个待处理的 Watch
调用。正在呼叫
在请求已处于待处理状态时执行 Watch
,则会导致协议
关闭。
前 N 个事件始终为 existing
,其中 N 是
当协议服务器端
。以下事件将 idle
,表示
existing
个事件。此时,客户已经观看了
状态,并且永远不会再观察到 existing
事件。
- 响应
events
最多包含MAX_EVENTS
个事件的矢量。
请求
<空>
响应
名称 | 类型 |
---|---|
events |
vector<RuleEventV6>[512]
|
状态
在 fuchsia.net.routes/routes.fidl 中定义
提供对系统的路由状态的访问权限。
GetRouteTableName
根据 ID 获取路由表名称。
- 向
table_id
请求相关路由表的 ID。
- 响应
table_name
路由表的名称(如果路由表) 无名称,则返回空字符串。
- 如果路由表不存在,则会发生
NO_TABLE
错误。
请求
名称 | 类型 |
---|---|
table_id |
TableId
|
响应
名称 | 类型 |
---|---|
payload |
State_GetRouteTableName_Result
|
解决
解析到目的地的路由。
- 请求
destination
作为路由解析目标的 IP 地址。如果 未指定地址(全部为零),则默认路由将 返回。destination
的变体决定了 已解析路由中的 fuchsia.net/IpAddress 字段。
- 响应
result
包含到destination
的已解析路由。
- 如果
destination
无法解析,则会发生ZX_ERR_ADDRESS_UNREACHABLE
错误。
请求
名称 | 类型 |
---|---|
destination |
fuchsia.net/IpAddress
|
响应
名称 | 类型 |
---|---|
payload |
State_Resolve_Result
|
StateV4
在 fuchsia.net.routes/ipv4.fidl 中定义
提供对系统的 IPv4 路由状态的可观测性。
GetRuleWatcherV4
初始化 IPv4 规则状态的观察器。
- 请求“watcher”授予对
RuleWatcherV4
协议的访问权限。 - 请求
watch_options
指定RuleWatcherV4
的行为。
请求
名称 | 类型 |
---|---|
watcher |
server_end<RuleWatcherV4>
|
options |
RuleWatcherOptionsV4
|
GetWatcherV4
初始化 IPv4 路由状态的观察器。
- 请求“watcher”授予对
WatcherV4
协议的访问权限。 - 请求
watch_options
指定WatcherV4
的行为。
请求
名称 | 类型 |
---|---|
watcher |
server_end<WatcherV4>
|
options |
WatcherOptionsV4
|
StateV6
在 fuchsia.net.routes/ipv6.fidl 中定义
提供对系统的 IPv6 路由状态的可观测性。
GetRuleWatcherV6
初始化 IPv6 规则状态的观察器。
- 请求“watcher”授予对
RuleWatcherV6
协议的访问权限。 - 请求
watch_options
指定RuleWatcherV6
的行为。
请求
名称 | 类型 |
---|---|
watcher |
server_end<RuleWatcherV6>
|
options |
RuleWatcherOptionsV6
|
GetWatcherV6
初始化 IPv6 路由状态的观察器。
- 请求“watcher”授予对
WatcherV6
协议的访问权限。 - 请求
watch_options
指定WatcherV6
的行为。
请求
名称 | 类型 |
---|---|
watcher |
server_end<WatcherV6>
|
options |
WatcherOptionsV6
|
WatcherV4
在 fuchsia.net.routes/ipv4.fidl 中定义
用于系统 IPv4 路由状态变化的观察器协议。
观看
用于观察路由更改的 Hanging-Get 样式 API。
客户端一次只能有一个待处理的 Watch
调用。正在呼叫
在请求已处于待处理状态时执行 Watch
操作会导致协议
关闭。
前 N 个事件始终为 existing
,其中 N 是
当协议服务器端
。以下事件将 idle
,表示
existing
个事件。此时,客户已经观看了
状态,并且永远不会再观察到 existing
事件。
系统会最多批量返回 MAX_EVENTS
个事件。没有任何
批量大小/边界与其内容之间的相关性:
完全适合服务器拆分 existing
事件块,
进行训练。客户端应将此 API 视为
事件流,即使用批处理来减少
系统。
- 响应
events
最多包含MAX_EVENTS
个事件的矢量。
请求
<空>
响应
名称 | 类型 |
---|---|
events |
vector<EventV4>[512]
|
WatcherV6
在 fuchsia.net.routes/ipv6.fidl 中定义
用于系统 IPv6 路由状态变化的观察器协议。
观看
用于观察路由更改的 Hanging-Get 样式 API。
客户端一次只能有一个待处理的 Watch
调用。正在呼叫
在请求已处于待处理状态时执行 Watch
,则会导致协议
关闭。
前 N 个事件始终为 existing
,其中 N 是
当协议服务器端
。以下事件将 idle
,表示
existing
个事件。此时,客户已经观看了
状态,并且永远不会再观察到 existing
事件。
系统会最多批量返回 MAX_EVENTS
个事件。没有任何
批量大小/边界与其内容之间的相关性:
完全适合服务器拆分 existing
事件块,
进行训练。客户端应将此 API 视为
事件流,即使用批处理来减少
系统。
- 响应
events
最多包含MAX_EVENTS
个事件的矢量。
请求
<空>
响应
名称 | 类型 |
---|---|
events |
vector<EventV6>[512]
|
结构体
全部
在 fuchsia.net.routes/routes.fidl 中定义
<空>
介于
在 fuchsia.net.routes/rules.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
start |
uint32
|
范围的起始值(含边界值)。 |
无默认设置 |
end |
uint32
|
范围(含边界值)的值。 |
无默认设置 |
空白
在 fuchsia.net.routes/routes.fidl 中定义
空值的占位符。
<空>
InstalledRuleV4
在 fuchsia.net.routes/ipv4.fidl 中定义
已安装的 IPv4 路由规则。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
rule_set_priority |
RuleSetPriority
|
规则集按规则集优先级排序,规则集不相交 它们之间没有交错规则 |
无默认设置 |
rule_index |
RuleIndex
|
规则集中的规则与规则集一起在本地排序 优先级,这定义了所有已安装规则的全局顺序。 |
无默认设置 |
selector |
RuleSelectorV4
|
规则的选择器部分,如果选择器 与数据包不匹配。 |
无默认设置 |
action |
RuleAction
|
规则的操作部分,描述在发生选择器时应执行的操作部分 与数据包匹配。 |
无默认设置 |
InstalledRuleV6
在 fuchsia.net.routes/ipv6.fidl 中定义
已安装的 IPv6 路由规则。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
rule_set_priority |
RuleSetPriority
|
规则集按规则集优先级排序,规则集不相交 它们之间没有交错规则 |
无默认设置 |
rule_index |
RuleIndex
|
规则集中的规则与规则集一起在本地排序 优先级,这定义了所有已安装规则的全局顺序。 |
无默认设置 |
selector |
RuleSelectorV6
|
规则的选择器部分,如果选择器 与数据包不匹配。 |
无默认设置 |
action |
RuleAction
|
规则的操作部分,描述在发生选择器时应执行的操作部分 与数据包匹配。 |
无默认设置 |
主要
在 fuchsia.net.routes/routes.fidl 中定义
<空>
已标记
在 fuchsia.net.routes/rules.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
mask |
uint32
|
在与 |
无默认设置 |
between |
Between
|
该标记位于指定范围之间。 |
无默认设置 |
RouteTargetV4
在 fuchsia.net.routes/ipv4.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
outbound_interface |
fuchsia.net/InterfaceId
|
目标的出站接口的接口 ID。 |
无默认设置 |
next_hop |
fuchsia.net/Ipv4Address?
|
目标的可选下一个跃点。地址(如提供) 必须是单播地址。 |
无默认设置 |
RouteTargetV6
在 fuchsia.net.routes/ipv6.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
outbound_interface |
fuchsia.net/InterfaceId
|
目标的出站接口的接口 ID。 |
无默认设置 |
next_hop |
fuchsia.net/Ipv6Address?
|
目标的可选下一个跃点。地址(如提供) 必须是单播地址。 |
无默认设置 |
RouteV4
在 fuchsia.net.routes/ipv4.fidl 中定义
RouteV4
指定 IPv4 网络路由。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
destination |
fuchsia.net/Ipv4AddressWithPrefix
|
路由的目标子网。制定移交决策时 对于给定数据包,其目标形成时间最长的路由 系统将选择匹配前缀,路线的 指标。 |
无默认设置 |
action |
RouteActionV4
|
与此路由匹配的数据包将应用指定操作 。 |
无默认设置 |
properties |
RoutePropertiesV4
|
IPv4 路由的其他属性。 |
无默认设置 |
RouteV6
在 fuchsia.net.routes/ipv6.fidl 中定义
RouteV6
指定 IPv6 网络路由。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
destination |
fuchsia.net/Ipv6AddressWithPrefix
|
路由的目标子网。制定移交决策时 对于给定数据包,其目标形成时间最长的路由 系统将选择匹配前缀,路线的 指标。 |
无默认设置 |
action |
RouteActionV6
|
与此路由匹配的数据包将应用指定操作 。 |
无默认设置 |
properties |
RoutePropertiesV6
|
IPv6 路由的其他属性。 |
无默认设置 |
State_GetRouteTableName_Response
在 fuchsia.net.routes/routes.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
table_name |
TableName
|
无默认设置 |
State_Resolve_Response
在 fuchsia.net.routes/routes.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
result |
Resolved
|
已解析的路由。 包含“下一个跃点”的信息或直接目标 即路线解析产生的结果。已解析的路由 在所请求目的地的上下文中有意义。 |
无默认设置 |
已取消标记
在 fuchsia.net.routes/rules.fidl 中定义
<空>
无法连接
在 fuchsia.net.routes/rules.fidl 中定义
<空>
精英
State_GetRouteTableName_Error 严格
类型:uint32
在 fuchsia.net.routes/routes.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
NO_TABLE |
1 |
表
BaseSelector
在 fuchsia.net.routes/rules.fidl 中定义
可同时应用于 IPv4 和 IPv6 数据包的常用选择器。
如果呈现的所有字段都与 相应的属性
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
locally_generated |
bool
|
当且仅当数据包是本地生成的时才匹配数据包。 |
2 |
bound_device |
InterfaceSelector
|
当且仅当数据包通过 |
3 |
mark_1_selector |
MarkSelector
|
MARK_1 网域的选择器。 |
4 |
mark_2_selector |
MarkSelector
|
MARK_2 网域的选择器。 |
目的地
在 fuchsia.net.routes/routes.fidl 中定义
描述广告网络目标的地址和标识符的集合。
Destination
是“下一个跃点”用于路由数据包
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
address |
fuchsia.net/IpAddress
|
目的地的 IP 地址。 |
2 |
mac |
fuchsia.net/MacAddress
|
目的地的 MAC 地址。仅当目的地位于 链接。 |
3 |
interface_id |
fuchsia.net/InterfaceId
|
可访问目的地的接口标识符。 |
4 |
source_address |
fuchsia.net/IpAddress
|
用于与目标位置通信的首选本地 IP 地址。 |
EffectiveRouteProperties
在 fuchsia.net.routes/routes.fidl 中定义
系统中安装的路线的有效属性。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
metric |
fuchsia.net/RouteMetric
|
路由的有效指标,取决于路由的
SpecifiedRouteProperties。如果 |
InstalledRouteV4
在 fuchsia.net.routes/ipv4.fidl 中定义
InstalledRouteV4
指定安装在
系统路由表
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
route |
RouteV4
|
路线。 |
2 |
effective_properties |
EffectiveRouteProperties
|
路线的有效属性。 |
3 |
table_id |
TableId
|
此路由所属表的 ID。 |
InstalledRouteV6
在 fuchsia.net.routes/ipv6.fidl 中定义
InstalledRouteV6
指定安装在
系统路由表
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
route |
RouteV6
|
路线。 |
2 |
effective_properties |
EffectiveRouteProperties
|
路线的有效属性。 |
3 |
table_id |
TableId
|
此路由所属表的 ID。 |
RoutePropertiesV4
在 fuchsia.net.routes/ipv4.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
specified_properties |
SpecifiedRouteProperties
|
路线的指定属性。 |
RoutePropertiesV6
在 fuchsia.net.routes/ipv6.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
specified_properties |
SpecifiedRouteProperties
|
路线的指定属性。 |
RuleSelectorV4
在 fuchsia.net.routes/ipv4.fidl 中定义
用于匹配数据包的规则的选择器部分。
如果呈现的所有字段都与 相应属性。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
from |
fuchsia.net/Ipv4AddressWithPrefix
|
匹配数据包的来源地址是否来自子网。 |
2 |
base |
BaseSelector
|
其他 IP 版本通用的选择器。 |
RuleSelectorV6
在 fuchsia.net.routes/ipv6.fidl 中定义
用于匹配数据包的规则的选择器部分。
如果呈现的所有字段都与 相应属性。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
from |
fuchsia.net/Ipv6AddressWithPrefix
|
匹配数据包的来源地址是否来自子网。 |
2 |
base |
BaseSelector
|
其他 IP 版本通用的选择器。 |
RuleWatcherOptionsV4
在 fuchsia.net.routes/ipv4.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|
RuleWatcherOptionsV6
在 fuchsia.net.routes/ipv6.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|
SpecifiedRouteProperties
在 fuchsia.net.routes/routes.fidl 中定义
在生成 路由已创建。
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
metric |
SpecifiedMetric
|
路由的有效指标将由下列任一值决定 。 |
WatcherOptionsV4
在 fuchsia.net.routes/ipv4.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
table_interest |
TableInterest
|
过滤表上与“ 如果不存在,则解读为 |
WatcherOptionsV6
在 fuchsia.net.routes/ipv6.fidl 中定义
序数 | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
table_interest |
TableInterest
|
过滤表上与“ 如果不存在,则解读为 |
联合体
EventV4 柔性环境
在 fuchsia.net.routes/ipv4.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
existing |
InstalledRouteV4
|
监控开始时已经存在的路线。 |
2 |
idle |
Empty
|
哨兵值,表明不会再有 |
3 |
added |
InstalledRouteV4
|
在观看时添加的路线。 |
4 |
removed |
InstalledRouteV4
|
观看时删除的路线。 |
EventV6 柔性环境
在 fuchsia.net.routes/ipv6.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
existing |
InstalledRouteV6
|
监控开始时已经存在的路线。 |
2 |
idle |
Empty
|
哨兵值,表明不会再有 |
3 |
added |
InstalledRouteV6
|
在观看时添加的路线。 |
4 |
removed |
InstalledRouteV6
|
观看时删除的路线。 |
InterfaceSelector 柔性
在 fuchsia.net.routes/rules.fidl 中定义
与传出数据包的源接口匹配的选择器。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
device_name |
fuchsia.net.interfaces/Name
|
当名称匹配时匹配设备。 该名称不是模式或正则表达式,而是需要与 要选择的规则 |
MarkSelector 柔性
在 fuchsia.net.routes/rules.fidl 中定义
要用于标记值的选择器。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
unmarked |
Unmarked
|
该商标域名没有标志。 |
2 |
marked |
Marked
|
已解决严格
在 fuchsia.net.routes/routes.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
direct |
Destination
|
可以直接到达所请求的目的地。 |
2 |
gateway |
Destination
|
可以通过网关到达请求的目的地,因此 下一个跃点是网关 |
RouteActionV4 柔性环境
在 fuchsia.net.routes/ipv4.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
forward |
RouteTargetV4
|
将数据包转发到指定目标。 |
RouteActionV6 柔性
在 fuchsia.net.routes/ipv6.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
forward |
RouteTargetV6
|
将数据包转发到指定目标。 |
RuleAction 灵活
在 fuchsia.net.routes/rules.fidl 中定义
在选择器匹配时,规则的操作。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
lookup |
TableId
|
在指定的路由表中查找路由。如果没有匹配的 路由,查询会继续考虑 下一条规则。 |
2 |
unreachable |
Unreachable
|
无法访问返回网络。这与如果使用 |
RuleEventV4 柔性环境
在 fuchsia.net.routes/ipv4.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
existing |
InstalledRuleV4
|
观看开始时就已存在的规则。 |
2 |
idle |
Empty
|
哨兵值,表明不会再有 |
3 |
added |
InstalledRuleV4
|
观看时添加的规则。 |
4 |
removed |
InstalledRuleV4
|
观看时删除的规则。 |
RuleEventV6 柔性环境
在 fuchsia.net.routes/ipv6.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
existing |
InstalledRuleV6
|
观看开始时就已存在的规则。 |
2 |
idle |
Empty
|
哨兵值,表明不会再有 |
3 |
added |
InstalledRuleV6
|
观看时添加的规则。 |
6 |
removed |
InstalledRuleV6
|
观看时删除的规则。 |
SpecifiedMetric
在 fuchsia.net.routes/routes.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
explicit_metric |
fuchsia.net/RouteMetric
|
该路由的指标将是此明确指定的值。 |
2 |
inherited_from_interface |
Empty
|
该路由的指标继承自其出站接口,并且 将跟踪该值在整个路线生命周期内的变化。 如果客户端希望分流 并负责“哪条路线最佳”发送到系统。 |
State_GetRouteTableName_Result 严格
在 fuchsia.net.routes/routes.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
State_GetRouteTableName_Response
|
|
2 |
err |
State_GetRouteTableName_Error
|
State_Resolve_Result 严格
在 fuchsia.net.routes/routes.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
State_Resolve_Response
|
|
2 |
err |
zx/Status
|
TableInterest 柔性环境
在 fuchsia.net.routes/routes.fidl 中定义
指定观察者感兴趣的表。
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
only |
TableId
|
仅监控指定表中的事件。 |
2 |
main |
Main
|
在不知道表格 ID 的情况下在主表格上观看。 |
3 |
all |
All
|
监视所有路由表。 |
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
MAX_EVENTS |
512
|
uint16 |
一次调用 添加时间:HEAD
|
MAX_TABLE_NAME_LEN |
255
|
uint64 |
表名称的最大长度。 添加时间:HEAD
|
别名
名称 | 值 | 说明 |
---|---|---|
RuleIndex |
uint32 |
提供的规则集中规则的索引。 同一 添加时间:HEAD
|
RuleSetPriority |
uint32 |
规则集的优先级,所有规则集都会以此为基础进行线性化。 RuleSetPriority 较小的 添加时间:HEAD
|
TableId |
uint32 |
路由表的 ID。
添加时间:HEAD
|
TableName |
string [MAX_TABLE_NAME_LEN ] |
路由表的名称。 添加时间:HEAD
|