Fuchsia.hardware.network

添加时间:7

PROTOCOLS

设备

fuchsia.hardware.network/device.fidl 中定义

一种网络设备。

添加时间:HEAD

克隆

与此设备建立新连接。

  • 请求 device 新连接的服务器端。

请求

名称类型
device server_end<Device>

GetInfo

获取设备相关信息

  • 响应 info 设备信息。

请求

<空>

响应

名称类型
info DeviceInfo

GetPort

连接到给定 id 的端口。

  • 请求连接的id端口。
  • 请求 port 端口通道的服务器端。

如果没有带有 id 的端口,则以 ZX_ERR_NOT_FOUND 标题标记关闭 port 存在。

请求

名称类型
id PortId
port server_end<Port>

GetPortWatcher

PortWatcher 连接到此设备。

  • 向观看器频道的服务器端请求 watcher

请求

名称类型
watcher server_end<PortWatcher>

OpenSession

打开与网络设备的新会话。

  • 请求 session_name 用作附加到此 会话。
  • 请求 session_info 包含设置 会话的数据交换。
  • 响应 session 控制会话的句柄。
  • 响应 fifos 个连接到该会话的数据平面 FIFO。
  • 如果 session_info 包含不受支持的字符,则出现错误 ZX_ERR_NOT_SUPPORTED 帧类型或描述符设置。
  • 如果 session_info 缺少字段,则会显示错误 ZX_ERR_INVALID_ARGS;或者 包含无效信息。
  • 如果数据 VMO 被底层系统拒绝,则会发生 ZX_ERR_INTERNAL 错误 设备。

请求

名称类型
session_name string[64]
session_info SessionInfo

响应

名称类型
payload Device_OpenSession_Result

DeviceInstance

fuchsia.hardware.network/instance.fidl 中定义

在 devfs 上公开的网络设备实例。

添加时间:HEAD

GetDevice

连接到设备实现。

  • 请求 device 设备句柄。

请求

名称类型
device server_end<Device>

诊断

fuchsia.hardware.network/diagnostics.fidl 中定义

在设备和上层提供双向通信以进行交换 设备运行状况信息。

添加时间:HEAD

LogDebugInfoToSyslog

设备在系统中生成调试信息的请求 日志。

生成设备调试信息后,此调用就会返回。

请求

<空>

响应

<空>

MacAddressing

fuchsia.hardware.network/mac.fidl 中定义

添加时间:HEAD

AddMulticastAddress

将多播地址添加到多播组列表中。

调用 SetMode 不会更改所保留的多播地址列表。 如果设备的模式不是 MULTICAST_FILTER,则为多播列表。 会被忽略。

  • 请求将 address 多播地址添加到列表中。
  • 如果 address 不是以下值,则回复 status ZX_ERR_INVALID_ARGS 多播地址。

请求

名称类型
address fuchsia.net/MacAddress

响应

名称类型
status zx/Status

GetUnicastAddress

获取设备当前的单播 MAC 地址。

此 API 的实现者不需要返回可唯一标识的 MAC;返回的单播地址是当前正在使用的单播地址 过滤单播帧,或者通过链接识别设备, 当前已开启。此 API 的用户不得依赖 返回值的唯一性,以识别设备或消除歧义 实例。

  • 响应 address 设备的单播 MAC 地址。

请求

<空>

响应

名称类型
address fuchsia.net/MacAddress

RemoveMulticastAddress

从多播组列表中移除多播地址。

  • 请求从列表中移除 address 个多播地址。
  • 如果 address 不是以下值,则回复 status ZX_ERR_INVALID_ARGS 多播地址。

请求

名称类型
address fuchsia.net/MacAddress

响应

名称类型
status zx/Status

SetMode

将此设备所请求的操作模式设置为“mode”。

所请求的模式已连接到当前客户端连接到 设备。由于多个客户端可以连接到 一次,限制最少的模式就是用户主动进入的模式 对底层设备实现的影响。

如果设备不支持请求的模式,但支持某种模式 则 SetMode 会成功。 反之,如果设备仅支持比 一个请求,SetMode 返回 ZX_ERR_NOT_SUPPORTED

客户端必须知道访问的资源是共享的,并且 设备可能在比 Google Analytics 所请求的代码(尽管从未如此严格)。

  • 请求附加mode请求模式。
  • 回复 status ZX_ERR_NOT_SUPPORTED 设备仅支持 模式比所请求的模式更严格。

请求

名称类型
mode MacFilterMode

响应

名称类型
status zx/Status

端口

fuchsia.hardware.network/port.fidl 中定义

属于 Device 的逻辑端口。

添加时间:HEAD

克隆

与此端口建立新连接。

  • 请求 port 新连接的服务器端。

请求

名称类型
port server_end<Port>

GetCounters

检索此端口上流量计数器的快照。

请求

<空>

响应

名称类型
payload PortGetCountersResponse

GetDevice

连接到此端口所属的设备

  • 请求 device 可授予对父设备的访问权限。

请求

名称类型
device server_end<Device>

GetDiagnostics

授予对此端口的诊断的访问权限。

  • 请求 diagnostics 可授予对诊断信息的访问权限。

请求

名称类型
diagnostics server_end<Diagnostics>

GetInfo

获取端口的相关信息。

  • 响应 info 端口信息。

请求

<空>

响应

名称类型
info PortInfo

GetMac

连接到与该端口关联的 MacAddressing

  • 请求 mac MAC 句柄。已通过 ZX_ERR_NOT_SUPPORTED 结束(如果是 端口不支持 MAC 地址。

请求

名称类型
mac server_end<MacAddressing>

GetStatus

获取运营港口状态。

  • 端口当前状态的响应 status 快照。

请求

<空>

响应

名称类型
status PortStatus

GetStatusWatcher

连接到 StatusWatcher 以观察端口状态的变化。

  • 向状态观察器请求 watcher 句柄。
  • 请求 buffer 客户端请求的状态更改次数 由 StatusWatcher 存储。值的上限 MAX_STATUS_BUFFER。如果值为 0 或 1,则 StatusWatcher 在状态发生更改时不保留任何缓冲区。客户端需要 建议更改状态(而不仅仅是当前状态) 设置一个大于 1 的缓冲区值,以便观察到所有边缘。 如果 StatusWatcher 的内部队列已填充,并且新状态发生更改 最早的样本将被删除,为新样本腾出空间。

请求

名称类型
watcher server_end<StatusWatcher>
buffer uint32

PortWatcher

fuchsia.hardware.network/device.fidl 中定义

为连接到设备的端口提供迭代和更新。

添加时间:HEAD

观看

获取下一个端口事件。

前 N 调用返回 DevicePortEvent.existing,其中 N 是 监视器执行时设备存在的端口数 创建过程。下一次调用将返回 DevicePortEvent.idle 以指示 现有端口的结尾后续调用会阻塞,直到添加端口 (DevicePortEvent.added) 或移除 (DevicePortEvent.removed)。

在以下情况下,服务器会使用 ZX_ERR_CANCELED 关闭 PortWatcher 通道: 未读事件数达到服务器所选的上限,即 至少两次 MAX_PORTS。我们鼓励客户持续 始终挂起对 Watch 的调用,以避免触发此条件。

  • 响应 event 下一个端口事件。

请求

<空>

响应

名称类型
event DevicePortEvent

会话

fuchsia.hardware.network/session.fidl 中定义

表示与网络设备的会话。

会话有一个数据平面和一个控制平面。Session 协议 代表会话的控制平面以及交换的 FIFO 和 VMO Device.OpenSession 调用期间是数据平面。生命周期 会话由 Session 协议句柄控制。

会话必须连接到相关端口,才能开始接收和发送 数据。创建会话时始终不连接任何端口。

如果某个端口从底层设备被销毁,系统会自动将其销毁。 与会话断开连接。

入站流量会被分配到所有打开的会话。通常使用的设备 使用的是单个主要会话,请参阅 SessionFlags.PRIMARY。每个 连接到同一设备的额外打开的会话会导致数据复制开销, 设备的数据路径。

如果缓冲区描述符无效,会话将关闭并显示错误提示 通过 tx 或 rx FIFO 发送。无效的描述符包括: - 大于 SessionInfo.descriptor_count 的描述符索引。 - 大于 MAX_DESCRIPTOR_CHAIN 的描述符链。 - 小于 Info.min_rx_buffer_length 的 rx 缓冲区。 - 小于 Info.min_tx_buffer_length 的 tx 缓冲区。 - tx 缓冲区未遵循 Info.min_tx_buffer_headInfo.min_tx_buffer_tail.

添加时间:HEAD

附加

将会话附加到 port

连接后,会话开始通过 数据 FIFO,它可以发送以特定 port 为目标的帧。

  • 请求订阅 port 个端口。
  • 请求 rx_frames 端口上感兴趣的帧类型。
  • 如果 port 无效,则会发生 ZX_ERR_NOT_FOUND 错误。
  • 如果 rx_frames 不是ZX_ERR_INVALID_ARGS 端口支持的帧
  • 如果 port 已附加,则会发生 ZX_ERR_ALREADY_BOUND 错误。

请求

名称类型
port PortId
rx_frames vector<FrameType>[4]

响应

名称类型
payload Session_Attach_Result

关闭

正常关闭会话。

这会使会话发送 ZX_ERR_CANCELLED 摘要,并且 继续关闭带来会话的渠道客户只能假设 拥有会话当前拥有的所有缓冲区(通过 rx 或 tx FIFO)发出。结束 Rx 或 tx FIFO 相当于调用 Close

请求

<空>

分离

port 中分离会话。

分离后,会话将不再接收来自 port 的帧。框架 单独发送的端口可能会返回错误。不是 在从设备移除的端口上调用 Detach 所必需的; 这样做会导致返回 ZX_ERR_NOT_FOUND

  • 请求订阅 port 个端口。
  • 如果会话当前未附加到,则会显示错误 ZX_ERR_NOT_FOUND 端口。

请求

名称类型
port PortId

响应

名称类型
payload Session_Detach_Result

StatusWatcher

fuchsia.hardware.network/port.fidl 中定义

提供一种接收携号转网状态变化更新的方式。

添加时间:HEAD

WatchStatus

WatchStatus 会屏蔽,直到端口的状态发生变化。

首次调用 WatchStatus 时会立即返回当前值 携号转网状态发生变化时,如果携号转网状态与 通过此 StatusWatcher 返回的最后一条记录。

如果创建 StatusWatcher 时设置了大于 1 的缓冲区值, WatchStatus 可能会返回队列中的状态更改,具体取决于 状态在上次调用 WatchStatus 后发生了更改。

  • 响应 device_status 最新的端口状态。

请求

<空>

响应

名称类型
port_status PortStatus

结构体

Device_OpenSession_Response 资源

fuchsia.hardware.network/device.fidl 中定义

字段类型说明默认
session Session 无默认设置
fifos Fifos 无默认设置

空白

fuchsia.hardware.network/device.fidl 中定义

添加时间:HEAD

<空>

Fifos 资源

fuchsia.hardware.network/session.fidl 中定义

数据平面 FIFO。

添加时间:HEAD

字段类型说明默认
rx handle<fifo>

rx FIFO 的句柄。

客户端必须将 16 位描述符索引写入此 FIFO,才能 接收帧。

无默认设置
tx handle<fifo>

tx FIFO 的句柄。

客户端将 16 位描述符索引写入此 FIFO,以将传出加入队列 帧。

无默认设置

FrameTypeSupport

fuchsia.hardware.network/frames.fidl 中定义

指定帧类型和功能以及与帧关联的受支持标记 类型。

客户端使用此参数来读取 tx 路径上支持的 指定网络设备。

某些网络设备可能会通过解析传出帧来执行帧 转换或特定的硬件支持。每种框架类型都有一个 关联的 FrameTypeSupport.features 位枚举 可能不支持的 FrameType 特定功能。存在以下情况的设备: 建议只使用 FRAME_FEATURES_RAW 位位于 features 中,用于告知客户端所有帧特征 允许。

添加时间:HEAD

字段类型说明默认
type FrameType

此支持条目引用的帧类型。

无默认设置
features uint32

支持的特定于框架类型的功能。

无默认设置
supported_flags TxFlags

给定帧类型支持的标志。

无默认设置

PortId

fuchsia.hardware.network/port.fidl 中定义

设备端口标识符。

添加时间:HEAD

字段类型说明默认
base BasePortId

端口的基本标识符。

通常标识硬件中的端口实例。

无默认设置
salt uint8

由实现定义的标识符,保证会在 每个已识别端口的实例化。

无默认设置

Session_Attach_Response

fuchsia.hardware.network/session.fidl 中定义

<空>

Session_Detach_Response

fuchsia.hardware.network/session.fidl 中定义

<空>

精英

DeviceClass 严格

类型:uint16

fuchsia.hardware.network/port.fidl 中定义

网络设备类别。

弃用

已替换为 PortClass。计划于 2025 年移除。

已移除:NEXT 已弃用:22

名称说明
0
1
2
3
4
5

FrameType 严格

类型:uint8

fuchsia.hardware.network/frames.fidl 中定义

帧的类型。

添加时间:HEAD

名称说明
1
2
3

InfoType 严格

类型:uint32

fuchsia.hardware.network/frames.fidl 中定义

附加到帧的元数据信息的类型。

添加时间:HEAD

名称说明
0

没有额外信息。

MacFilterMode 严格

类型:uint32

fuchsia.hardware.network/mac.fidl 中定义

MAC 设备支持的地址过滤模式。

添加时间:HEAD

名称说明
0

设备只接受发往自己的单播地址的单播帧; 或多播帧。

1

设备接受寻址到自己的单播地址的单播帧,或者 任何多播帧。

2

设备接受所有帧。

PortClass 柔性环境

类型:uint16

fuchsia.hardware.network/port.fidl 中定义

网络端口类别。

注意:我们建议设备实现人员提出添加 枚举,以避免在没有理想匹配时使用不合适的变体 可用。

添加时间:22

名称说明
1
2
3
4
5
6
7

RxAcceleration strict

类型:uint8

fuchsia.hardware.network/frames.fidl 中定义

可用的 RX 加速功能。

特征通过可用的 API 映射到描述符中的 RXACCEL* 位, Info.rx_accel 中报告的值。

添加时间:HEAD

名称说明
0

入站 rx 帧已验证以太网帧检查序列。

1

入站 rx 帧已验证 IPv4 校验和。

2

入站 rx 帧已验证 TCP 校验和。

3

入站 rx 帧已验证 UDP 校验和。

TxAcceleration strict

类型:uint8

fuchsia.hardware.network/frames.fidl 中定义

可用的事务处理加速功能。

特征通过可用的 API 映射到描述符中的 TXACCEL* 位, Info.tx_accel 中报告的值。

添加时间:HEAD

名称说明
0

请求设备计算以太网帧校验序列 就位

1

请求设备计算 IPv4 校验和并将其写入 位置。

2

请求设备计算 TCP 校验和并将其写入 位置。

3

请求设备计算 UDP 校验和并将其写入 位置。

DeviceBaseInfo

fuchsia.hardware.network/device.fidl 中定义

网络设备基本信息。

添加时间:HEAD

Ordinal字段类型说明
rx_depth uint16

rx FIFO 中的项数上限(每个会话)。必填。

rx_depth 根据实际后备大小计算得出 硬件 rx 队列。

tx_depth uint16

tx FIFO 中的项数上限(每个会话)。必填。

tx_depth 根据实际后备大小计算得出 硬件事务队列。

buffer_alignment uint32

数据 VMO 中缓冲区的对齐要求。

数据 VMO 中的所有缓冲区必须buffer_alignment 对齐 相对于 VMO 起始时间。buffer_alignment == 0从来没有 被举报。必填。

max_buffer_length uint32

数据 VMO 中支持的缓冲区长度上限(以字节为单位)。

如果未定义缓冲区长度上限,则不存在。必须为非零值。

min_rx_buffer_length uint32

设备所需的最小 rx 缓冲区长度。必填。

min_tx_buffer_length uint32

设备所需的最小 tx 缓冲区长度。必填。

此值只考虑交易载荷长度 min_tx_buffer_head 和 “min_tx_buffer_tail”不是此值的一部分。

客户端必须对传出帧进行零填充,以满足要求的最小值 。

min_tx_buffer_head uint16

设备请求的可用字节数(以 tx 中的 head 空间表示) 缓冲区。必填。

min_tx_buffer_tail uint16

设备请求的可用字节数(以 tx 中的 tail 空间表示) 缓冲区。必填。

max_buffer_parts uint8

设备接受的描述符链长度上限。必填。

rx_accel vector<RxAcceleration>[16]

适用于此设备的 rx 加速标志。

rx_accel 将帧描述符中的 RX_ACCEL_* 标志映射到 RxAcceleration 描述的语义加速功能。职位 rx_acceln 表示 RX_ACCEL_n 标志的含义。

如果未提供,则解释为空。

tx_accel vector<TxAcceleration>[16]

适用于此设备的可用事务处理加速标志。

tx_accel 将帧描述符中的 TX_ACCEL_* 标志映射到 TxAcceleration 中介绍的语义加速功能。职位 tx_acceln 表示 TX_ACCEL_n 标志的含义。

如果未提供,则解释为空。

DeviceInfo

fuchsia.hardware.network/device.fidl 中定义

网络设备信息。

添加时间:HEAD

Ordinal字段类型说明
min_descriptor_length uint8

描述符长度下限,以 64 位字为单位。必填。

每个缓冲区描述符必须具备的最小长度才能实现正确 对此设备执行的操作。支持额外的帧元数据的设备 指明较大的最小描述符长度,以反映最小空间 存储帧元数据所需的资源。

descriptor_version uint8

可接受的描述符版本。必填。

base_info DeviceBaseInfo

设备基本信息。必填。

PortBaseInfo

fuchsia.hardware.network/port.fidl 中定义

端口基本信息。

添加时间:HEAD

Ordinal字段类型说明
port_class PortClass

Port 的类。必填。

rx_types vector<FrameType>[4]

此端口上支持的 rx 帧类型。必填。

客户端可以打开订阅 rx_types 帧子集的会话 类型。

tx_types vector<FrameTypeSupport>[4]

此端口上支持的 tx 帧类型。必填。

流向此端口的帧类型不在 tx_types 中的帧为 返回错误。

某些网络设备可能需要对部分帧进行解析 因此,tx_typesFrameTypeSupport,其中包括每种帧类型的特定功能。 例如,支持以太网帧但需要转换 以太网标头可能仅支持标准以太网 II 帧,以及 而不是任何“原始”以太网帧。

PortGetCountersResponse

fuchsia.hardware.network/port.fidl 中定义

Ordinal字段类型说明
rx_frames uint64

此端口上的入站流量帧总数。

rx_bytes uint64

此端口上的入站流量字节总数。

tx_frames uint64

此端口上的出站帧总数。

tx_bytes uint64

此端口上的出站流量字节总数。

PortInfo

fuchsia.hardware.network/port.fidl 中定义

逻辑端口信息。

添加时间:HEAD

Ordinal字段类型说明
id PortId

端口的标识符。必填。

base_info PortBaseInfo

PortStatus

fuchsia.hardware.network/port.fidl 中定义

动态端口信息。

添加时间:HEAD

Ordinal字段类型说明
flags StatusFlags

端口状态标志。

mtu uint32

此端口的最大传输单元(以字节为单位)。

报告的 MTU 是整个帧的大小,包括任何标头 和尾部字节。

SessionInfo 资源

fuchsia.hardware.network/session.fidl 中定义

会话配置。

添加时间:HEAD

Ordinal字段类型说明
descriptors handle<vmo>

包含描述符的 VMO。必填。

通过 FIFO 传输的 16 位索引对该 VMO 中的描述符编制索引 (字节偏移量 = descriptor_length * 8 * 索引)。

data handle<vmo>

包含帧数据的 VMO。必填。

描述符包含用于将任意编入索引的字节偏移量 data的区域内。

descriptor_version uint8

请求的描述符版本。必填。

如果网络设备不支持请求的描述符版本, Device.OpenSession 失败并显示 ZX_ERR_NOT_SUPPORTED

descriptor_length uint8

描述符长度,以 64 位字为单位。必填。

descriptors VMO 中每个描述符的长度。这用作 用于在给定描述符中查找 descriptors 中字节偏移量的乘数 通过 rx 或 tx FIFO 传递的索引。

descriptor_count uint16

此会话可以使用的描述符总数。必填。

通过 rx 或 tx FIFO 传输的描述符索引必须 在 [0, descriptor_count 范围内)。

options SessionFlags

更多选项。如果不存在,则解释为空位掩码。

联合体

DevicePortEvent 严格

fuchsia.hardware.network/device.fidl 中定义

端口创建和销毁事件。

添加时间:HEAD
Ordinal变体类型说明
existing PortId

创建 Watcher 时端口已存在。

added PortId

新端口已添加到设备。

removed PortId

端口已从设备中移除。

idle Empty

现有端口的已用尽列表。

Device_OpenSession_Result 严格 资源

fuchsia.hardware.network/device.fidl 中定义

Ordinal变体类型说明
response Device_OpenSession_Response
err zx/Status

Session_Attach_Result 严格

fuchsia.hardware.network/session.fidl 中定义

Ordinal变体类型说明
response Session_Attach_Response
err zx/Status

Session_Detach_Result 严格

fuchsia.hardware.network/session.fidl 中定义

Ordinal变体类型说明
response Session_Detach_Response
err zx/Status

EthernetFeatures 严格

类型:uint32

fuchsia.hardware.network/frames.fidl 中定义

以太网帧子类型和功能。

添加时间:HEAD

名称说明
1

设备支持任何类型的以太网帧。

与指定所有其他标志相同。由不检查的设备使用 或解析出站流量

2

设备支持以太网 II 帧。

4

设备支持 802.1q VLAN 添加。

8

设备支持 802.1 q-in-q 多个 VLAN 标记添加。

仅当 E_802_1_Q 也存在时才有意义。

16

设备支持 802.3 LLC + SNAP 以太网帧格式。

RxFlags(严格)

类型:uint32

fuchsia.hardware.network/frames.fidl 中定义

设备在将缓冲区交给 rx 路径上的客户端时设置的标记。

由设备在 rx 描述符的 inbound_flags 字段中设置。

添加时间:HEAD

名称说明
1

加速标志 0。

加速标记会映射到 Info.rx_accel 中的设备rx_accel 地图中的第 n 个地图项 发送到 RX_ACCEL_n RxFlag

2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
536870912

设备遇到了硬件 RX 溢出。

当帧事件发生时,Rx 溢出通常由硬件控制器设置 已检测到帧数据,但无法捕获帧数据。设备应 在入站帧上设置控制器标志后, 可以检测和报告未来的超载。

1073741824

如果执行帧验证(例如通过硬件验证),则设置该位 加速功能)而出现故障。

请务必注意,某些设备可能只是为了 验证失败,且从不通知客户端。Rx 帧 如果验证失败, SessionFlags::REPORT_INVALID_RX选项是在创建 会话。

2147483648

这是一个回显的 tx 帧,由 tx 请求创建。

只能在具有 LISTEN_TX 标志的会话中设置。

SessionFlags 严格

类型:uint16

fuchsia.hardware.network/session.fidl 中定义

其他会话选项。

添加时间:HEAD

名称说明
1

作为主会话附加。

标有 PRIMARY 位的会话将得到以下不同 实验组:

  • 如果未关联主要会话,设备将不会提供授权 非主要会话的帧。
  • 如果只有一个主要会话处于活跃状态,则可能会收到零副本 数据路径,如果底层硬件 实现支持该功能。
2

监听传出帧。

LISTEN_TX 个会话在 其 rx 路径。可用于窥探流量。带有以下标记的会话: LISTEN_TX 也可能会发送帧,但需要注意的是 他们将始终在 rx 路径上接收这些帧 会话过滤)。

4

收到了无效的 rx 帧。

标有 REPORT_INVALID_RX 的会话有兴趣接收 被内部设备检查或载荷拒绝的帧 由硬件执行验证。由于某些硬件的性质 带有 REPORT_INVALID_RX 标记的会话可能仍未 如果硬件实现,则会收到未通过验证的帧 只会丢弃帧,不将其公开给软件堆栈 相反,未标有 REPORT_INVALID_RX 的会话永远不会 接收设置了 RX_VALIDATION_ERROR 标志的 rx 帧。

StatusFlag 严格

类型:uint32

fuchsia.hardware.network/port.fidl 中定义

端口状态位,在 PortStatus.flags 中报告。

添加时间:HEAD

名称说明
1

端口已在线,即数据路径处于开放状态,任何正在进行的会话都可能处于在线状态 来发送和接收帧

TxFlag 严格

类型:uint32

fuchsia.hardware.network/frames.fidl 中定义

由客户端在 tx 路径上将缓冲区交给客户端时设置的标记。

由客户端在事务描述符的 inbound_flags 字段中设置。

添加时间:HEAD

名称说明
1

加速标志 0。

加速标记会映射到 Info.tx_accel 中的设备tx_accel 地图中的第 n 个地图项 发送到 TX_ACCEL_n TxFlag

2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768

TxReturnFlags(严格)

类型:uint32

fuchsia.hardware.network/frames.fidl 中定义

设备在将事务缓冲区返回客户端时设置的标记。

由设备在事务描述符的 return_flags 字段中设置。

添加时间:HEAD

名称说明
1

不支持在“inbound_flags”中请求的操作;画面是 未发送。

始终与 TX_RET_ERROR 一起设置。

2

无法分配资源以发送帧。

始终与 TX_RET_ERROR 一起设置。

4

设备不可用(处于离线状态或已断开连接);帧不是 已发送。

始终与 TX_RET_ERROR 一起设置。

2147483648

常量

名称类型说明
FRAME_FEATURES_RAW 1 uint32

原始帧的一揽子定义。

不对出站流量进行任何类型解析的设备应该 在 FrameTypeSupport 条目中定义 FRAME_FEATURES_RAW

添加时间:HEAD
MAX_ACCEL_FLAGS 16 uint32

加速标记数量上限。

每个描述符都有 16 位空间用于加速标记(RxFlagsTxFlags),因此报告的加速度上限为 16。每个 描述符报告应用了哪些加速度 (RxFlags) 或正在 通过在支持的矢量的矢量中映射索引而请求的 (TxFlags) 加速度(Info.rx_accel 和 (Info.tx_accel)到 相应的加速标志位字段。

添加时间:HEAD
MAX_DESCRIPTOR_CHAIN 4 uint8

描述单个帧的链式描述符数量上限。

添加时间:HEAD
MAX_FRAME_TYPES 4 uint32

rx 或 tx 支持的帧类型的数量上限。

添加时间:HEAD
MAX_PORTS 32 uint8

在给定时间可连接到设备的端口数上限。

添加时间:HEAD
MAX_SESSION_NAME 64 uint32

会话标签的长度上限。

添加时间:HEAD
MAX_STATUS_BUFFER 50 uint32

可由一个 StatusWatcher

添加时间:HEAD

别名

名称说明
BasePortId uint8

设备中端口的基本标识符。始终小于 MAX_PORTS

添加时间:HEAD