fuchsia.net.routes

添加时间:7

协议

RuleWatcherV4

fuchsia.net.routes/ipv4.fidl 中定义

用于系统 IPv4 规则表中更改的观察器协议。

添加时间:HEAD

观看

用于观察路由规则更改的 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 规则表中更改的观察器协议。

添加时间:HEAD

观看

用于观察路由规则更改的 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 错误。
添加时间:HEAD

请求

名称类型
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 路由状态的可观测性。

添加时间:HEAD

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 路由状态的可观测性。

添加时间:HEAD

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 路由状态变化的观察器协议。

添加时间:HEAD

观看

用于观察路由更改的 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 路由状态变化的观察器协议。

添加时间:HEAD

观看

用于观察路由更改的 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 中定义

空值的占位符。

添加时间:HEAD

<空>

InstalledRuleV4

fuchsia.net.routes/ipv4.fidl 中定义

已安装的 IPv4 路由规则。

添加时间:HEAD

字段类型说明默认
rule_set_priority RuleSetPriority

规则集按规则集优先级排序,规则集不相交 它们之间没有交错规则

无默认设置
rule_index RuleIndex

规则集中的规则与规则集一起在本地排序 优先级,这定义了所有已安装规则的全局顺序。

无默认设置
selector RuleSelectorV4

规则的选择器部分,如果选择器 与数据包不匹配。

无默认设置
action RuleAction

规则的操作部分,描述在发生选择器时应执行的操作部分 与数据包匹配。

无默认设置

InstalledRuleV6

fuchsia.net.routes/ipv6.fidl 中定义

已安装的 IPv6 路由规则。

添加时间:HEAD

字段类型说明默认
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 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 网络路由。

添加时间:HEAD

字段类型说明默认
destination fuchsia.net/Ipv4AddressWithPrefix

路由的目标子网。制定移交决策时 对于给定数据包,其目标形成时间最长的路由 系统将选择匹配前缀,路线的 指标。

无默认设置
action RouteActionV4

与此路由匹配的数据包将应用指定操作 。

无默认设置
properties RoutePropertiesV4

IPv4 路由的其他属性。

无默认设置

RouteV6

fuchsia.net.routes/ipv6.fidl 中定义

RouteV6 指定 IPv6 网络路由。

添加时间:HEAD

字段类型说明默认
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 中定义

名称说明
1

BaseSelector

fuchsia.net.routes/rules.fidl 中定义

可同时应用于 IPv4 和 IPv6 数据包的常用选择器。

如果呈现的所有字段都与 相应的属性

添加时间:HEAD

序数字段类型说明
locally_generated bool

当且仅当数据包是本地生成的时才匹配数据包。

bound_device InterfaceSelector

当且仅当数据包通过 SO_BINDTODEVICE 发送时匹配数据包。

mark_1_selector MarkSelector

MARK_1 网域的选择器。

mark_2_selector MarkSelector

MARK_2 网域的选择器。

目的地

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

描述广告网络目标的地址和标识符的集合。

Destination 是“下一个跃点”用于路由数据包

序数字段类型说明
address fuchsia.net/IpAddress

目的地的 IP 地址。

mac fuchsia.net/MacAddress

目的地的 MAC 地址。仅当目的地位于 链接。

interface_id fuchsia.net/InterfaceId

可访问目的地的接口标识符。

source_address fuchsia.net/IpAddress

用于与目标位置通信的首选本地 IP 地址。

EffectiveRouteProperties

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

系统中安装的路线的有效属性。

添加时间:HEAD

序数字段类型说明
metric fuchsia.net/RouteMetric

路由的有效指标,取决于路由的 SpecifiedRouteProperties。如果 specified_metricexplicit_metric,则此值与提供的值相同; 如果 specified_metricinherited_from_interface,则此值将 是接口的路由指标

InstalledRouteV4

fuchsia.net.routes/ipv4.fidl 中定义

InstalledRouteV4 指定安装在 系统路由表

添加时间:HEAD

序数字段类型说明
route RouteV4

路线。

effective_properties EffectiveRouteProperties

路线的有效属性。

table_id TableId

此路由所属表的 ID。

InstalledRouteV6

fuchsia.net.routes/ipv6.fidl 中定义

InstalledRouteV6 指定安装在 系统路由表

添加时间:HEAD

序数字段类型说明
route RouteV6

路线。

effective_properties EffectiveRouteProperties

路线的有效属性。

table_id TableId

此路由所属表的 ID。

RoutePropertiesV4

fuchsia.net.routes/ipv4.fidl 中定义

序数字段类型说明
specified_properties SpecifiedRouteProperties

路线的指定属性。

RoutePropertiesV6

fuchsia.net.routes/ipv6.fidl 中定义

序数字段类型说明
specified_properties SpecifiedRouteProperties

路线的指定属性。

RuleSelectorV4

fuchsia.net.routes/ipv4.fidl 中定义

用于匹配数据包的规则的选择器部分。

如果呈现的所有字段都与 相应属性。

添加时间:HEAD

序数字段类型说明
from fuchsia.net/Ipv4AddressWithPrefix

匹配数据包的来源地址是否来自子网。

base BaseSelector

其他 IP 版本通用的选择器。

RuleSelectorV6

fuchsia.net.routes/ipv6.fidl 中定义

用于匹配数据包的规则的选择器部分。

如果呈现的所有字段都与 相应属性。

添加时间:HEAD

序数字段类型说明
from fuchsia.net/Ipv6AddressWithPrefix

匹配数据包的来源地址是否来自子网。

base BaseSelector

其他 IP 版本通用的选择器。

RuleWatcherOptionsV4

fuchsia.net.routes/ipv4.fidl 中定义

序数字段类型说明

RuleWatcherOptionsV6

fuchsia.net.routes/ipv6.fidl 中定义

序数字段类型说明

SpecifiedRouteProperties

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

在生成 路由已创建。

添加时间:HEAD

序数字段类型说明
metric SpecifiedMetric

路由的有效指标将由下列任一值决定 。

WatcherOptionsV4

fuchsia.net.routes/ipv4.fidl 中定义

序数字段类型说明
table_interest TableInterest

过滤表上与“table_interest”匹配的事件。

如果不存在,则解读为 all。服务器不会验证 TableInterest 包含有效的表 ID。

WatcherOptionsV6

fuchsia.net.routes/ipv6.fidl 中定义

序数字段类型说明
table_interest TableInterest

过滤表上与“table_interest”匹配的事件。

如果不存在,则解读为 all。服务器不会验证 TableInterest 包含有效的表 ID。

联合体

EventV4 柔性环境

fuchsia.net.routes/ipv4.fidl 中定义

序数变体类型说明
existing InstalledRouteV4

监控开始时已经存在的路线。

idle Empty

哨兵值,表明不会再有 existing 事件 。

added InstalledRouteV4

在观看时添加的路线。

removed InstalledRouteV4

观看时删除的路线。

EventV6 柔性环境

fuchsia.net.routes/ipv6.fidl 中定义

序数变体类型说明
existing InstalledRouteV6

监控开始时已经存在的路线。

idle Empty

哨兵值,表明不会再有 existing 事件 。

added InstalledRouteV6

在观看时添加的路线。

removed InstalledRouteV6

观看时删除的路线。

InterfaceSelector 柔性

fuchsia.net.routes/rules.fidl 中定义

与传出数据包的源接口匹配的选择器。

添加时间:HEAD
序数变体类型说明
device_name fuchsia.net.interfaces/Name

当名称匹配时匹配设备。

该名称不是模式或正则表达式,而是需要与 要选择的规则

MarkSelector 柔性

fuchsia.net.routes/rules.fidl 中定义

要用于标记值的选择器。

添加时间:HEAD
序数变体类型说明
unmarked Unmarked

该商标域名没有标志。

marked Marked

已解决严格

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

序数变体类型说明
direct Destination

可以直接到达所请求的目的地。

gateway Destination

可以通过网关到达请求的目的地,因此 下一个跃点是网关

RouteActionV4 柔性环境

fuchsia.net.routes/ipv4.fidl 中定义

序数变体类型说明
forward RouteTargetV4

将数据包转发到指定目标。

RouteActionV6 柔性

fuchsia.net.routes/ipv6.fidl 中定义

序数变体类型说明
forward RouteTargetV6

将数据包转发到指定目标。

RuleAction 灵活

fuchsia.net.routes/rules.fidl 中定义

在选择器匹配时,规则的操作。

添加时间:HEAD
序数变体类型说明
lookup TableId

在指定的路由表中查找路由。如果没有匹配的 路由,查询会继续考虑 下一条规则。

unreachable Unreachable

无法访问返回网络。这与如果使用 lookup 表 为空或没有匹配的路线,此决策为终点站,并经停 以便继续进行查找过程

RuleEventV4 柔性环境

fuchsia.net.routes/ipv4.fidl 中定义

序数变体类型说明
existing InstalledRuleV4

观看开始时就已存在的规则。

idle Empty

哨兵值,表明不会再有 existing 事件 。

added InstalledRuleV4

观看时添加的规则。

removed InstalledRuleV4

观看时删除的规则。

RuleEventV6 柔性环境

fuchsia.net.routes/ipv6.fidl 中定义

序数变体类型说明
existing InstalledRuleV6

观看开始时就已存在的规则。

idle Empty

哨兵值,表明不会再有 existing 事件 。

added InstalledRuleV6

观看时添加的规则。

removed InstalledRuleV6

观看时删除的规则。

SpecifiedMetric

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

序数变体类型说明
explicit_metric fuchsia.net/RouteMetric

该路由的指标将是此明确指定的值。

inherited_from_interface Empty

该路由的指标继承自其出站接口,并且 将跟踪该值在整个路线生命周期内的变化。 如果客户端希望分流 并负责“哪条路线最佳”发送到系统。

State_GetRouteTableName_Result 严格

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

序数变体类型说明
response State_GetRouteTableName_Response
err State_GetRouteTableName_Error

State_Resolve_Result 严格

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

序数变体类型说明
response State_Resolve_Response
err zx/Status

TableInterest 柔性环境

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

指定观察者感兴趣的表。

添加时间:HEAD
序数变体类型说明
only TableId

仅监控指定表中的事件。

main Main

在不知道表格 ID 的情况下在主表格上观看。

all All

监视所有路由表。

常量

名称类型说明
MAX_EVENTS 512 uint16

一次调用 Watch() 可返回的事件数上限。

添加时间:HEAD
MAX_TABLE_NAME_LEN 255 uint64

表名称的最大长度。

添加时间:HEAD

别名

名称说明
RuleIndex uint32

提供的规则集中规则的索引。

同一 RuleSet 中的规则会根据索引进行排序。规则位置: 系统首先评估整个集合中的索引 0。

添加时间:HEAD
RuleSetPriority uint32

规则集的优先级,所有规则集都会以此为基础进行线性化。

RuleSetPriority 较小的 RuleSet 的规则先于 具有更大 RuleSetPriorityRuleSet 的规则。也就是说,RuleSet 优先级为 0 的买方具有最高优先级。

添加时间:HEAD
TableId uint32

路由表的 ID。

TableId 是路由表的全局唯一且不可重复使用的标识符。

添加时间:HEAD
TableName string[MAX_TABLE_NAME_LEN]

路由表的名称。

添加时间:HEAD