PROTOCOLS
设备
在 fuchsia.hardware.network/device.fidl 中定义
一种网络设备。
克隆
与此设备建立新连接。
- 请求
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 上公开的网络设备实例。
GetDevice
连接到设备实现。
- 请求
device
设备句柄。
请求
名称 | 类型 |
---|---|
device |
server_end<Device>
|
诊断
在 fuchsia.hardware.network/diagnostics.fidl 中定义
在设备和上层提供双向通信以进行交换 设备运行状况信息。
LogDebugInfoToSyslog
设备在系统中生成调试信息的请求 日志。
生成设备调试信息后,此调用就会返回。
请求
<空>
响应
<空>
MacAddressing
在 fuchsia.hardware.network/mac.fidl 中定义
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 的逻辑端口。
克隆
与此端口建立新连接。
- 请求
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 中定义
为连接到设备的端口提供迭代和更新。
观看
获取下一个端口事件。
前 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_head 或 Info.min_tx_buffer_tail.
附加
将会话附加到 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 中定义
提供一种接收携号转网状态变化更新的方式。
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 中定义
<空>
Fifos 资源
在 fuchsia.hardware.network/session.fidl 中定义
数据平面 FIFO。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
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
中,用于告知客户端所有帧特征
允许。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
type |
FrameType
|
此支持条目引用的帧类型。 |
无默认设置 |
features |
uint32
|
支持的特定于框架类型的功能。 |
无默认设置 |
supported_flags |
TxFlags
|
给定帧类型支持的标志。 |
无默认设置 |
PortId
在 fuchsia.hardware.network/port.fidl 中定义
设备端口标识符。
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
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 年移除。
名称 | 值 | 说明 |
---|---|---|
线上 |
0 |
|
ETHERNET |
1 |
|
WLAN |
2 |
|
PPP |
3 |
|
桥接 |
4 |
|
WLAN_AP |
5 |
FrameType 严格
类型:uint8
在 fuchsia.hardware.network/frames.fidl 中定义
帧的类型。
名称 | 值 | 说明 |
---|---|---|
ETHERNET |
1 |
|
IPV4 |
2 |
|
IPV6 |
3 |
InfoType 严格
类型:uint32
在 fuchsia.hardware.network/frames.fidl 中定义
附加到帧的元数据信息的类型。
名称 | 值 | 说明 |
---|---|---|
NO_INFO |
0 |
没有额外信息。 |
MacFilterMode 严格
类型:uint32
在 fuchsia.hardware.network/mac.fidl 中定义
MAC 设备支持的地址过滤模式。
名称 | 值 | 说明 |
---|---|---|
MULTICAST_FILTER |
0 |
设备只接受发往自己的单播地址的单播帧; 或多播帧。 |
MULTICAST_PROMISCUOUS |
1 |
设备接受寻址到自己的单播地址的单播帧,或者 任何多播帧。 |
承诺 |
2 |
设备接受所有帧。 |
PortClass 柔性环境
类型:uint16
在 fuchsia.hardware.network/port.fidl 中定义
网络端口类别。
注意:我们建议设备实现人员提出添加 枚举,以避免在没有理想匹配时使用不合适的变体 可用。
名称 | 值 | 说明 |
---|---|---|
ETHERNET |
1 |
|
WLAN_CLIENT |
2 |
|
PPP |
3 |
|
桥接 |
4 |
|
WLAN_AP |
5 |
|
线上 |
6 |
|
LOWPAN |
7 |
RxAcceleration strict
类型:uint8
在 fuchsia.hardware.network/frames.fidl 中定义
可用的 RX 加速功能。
特征通过可用的 API 映射到描述符中的 RXACCEL*
位,
Info.rx_accel 中报告的值。
名称 | 值 | 说明 |
---|---|---|
VALIDATED_ETHERNET_FCS |
0 |
入站 rx 帧已验证以太网帧检查序列。 |
VALIDATED_IPV4_CHECKSUM |
1 |
入站 rx 帧已验证 IPv4 校验和。 |
VALIDATED_TCP_CHECKSUM |
2 |
入站 rx 帧已验证 TCP 校验和。 |
VALIDATED_UDP_CHECKSUM |
3 |
入站 rx 帧已验证 UDP 校验和。 |
TxAcceleration strict
类型:uint8
在 fuchsia.hardware.network/frames.fidl 中定义
可用的事务处理加速功能。
特征通过可用的 API 映射到描述符中的 TXACCEL*
位,
Info.tx_accel 中报告的值。
名称 | 值 | 说明 |
---|---|---|
COMPUTE_ETHERNET_FCS |
0 |
请求设备计算以太网帧校验序列 就位 |
COMPUTE_IPV4_CHECKSUM |
1 |
请求设备计算 IPv4 校验和并将其写入 位置。 |
COMPUTE_TCP_CHECKSUM |
2 |
请求设备计算 TCP 校验和并将其写入 位置。 |
COMPUTE_UDP_CHECKSUM |
3 |
请求设备计算 UDP 校验和并将其写入 位置。 |
表
DeviceBaseInfo
在 fuchsia.hardware.network/device.fidl 中定义
网络设备基本信息。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
rx_depth |
uint16
|
rx FIFO 中的项数上限(每个会话)。必填。
|
2 |
tx_depth |
uint16
|
tx FIFO 中的项数上限(每个会话)。必填。
|
3 |
buffer_alignment |
uint32
|
数据 VMO 中缓冲区的对齐要求。 数据 VMO 中的所有缓冲区必须与 |
4 |
max_buffer_length |
uint32
|
数据 VMO 中支持的缓冲区长度上限(以字节为单位)。 如果未定义缓冲区长度上限,则不存在。必须为非零值。 |
5 |
min_rx_buffer_length |
uint32
|
设备所需的最小 rx 缓冲区长度。必填。 |
6 |
min_tx_buffer_length |
uint32
|
设备所需的最小 tx 缓冲区长度。必填。 此值只考虑交易载荷长度 客户端必须对传出帧进行零填充,以满足要求的最小值 。 |
7 |
min_tx_buffer_head |
uint16
|
设备请求的可用字节数(以 tx 中的 |
8 |
min_tx_buffer_tail |
uint16
|
设备请求的可用字节数(以 tx 中的 |
9 |
max_buffer_parts |
uint8
|
设备接受的描述符链长度上限。必填。 |
10 |
rx_accel |
vector<RxAcceleration>[16]
|
适用于此设备的 rx 加速标志。
如果未提供,则解释为空。 |
11 |
tx_accel |
vector<TxAcceleration>[16]
|
适用于此设备的可用事务处理加速标志。
如果未提供,则解释为空。 |
DeviceInfo
在 fuchsia.hardware.network/device.fidl 中定义
网络设备信息。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
min_descriptor_length |
uint8
|
描述符长度下限,以 64 位字为单位。必填。 每个缓冲区描述符必须具备的最小长度才能实现正确 对此设备执行的操作。支持额外的帧元数据的设备 指明较大的最小描述符长度,以反映最小空间 存储帧元数据所需的资源。 |
2 |
descriptor_version |
uint8
|
可接受的描述符版本。必填。 |
3 |
base_info |
DeviceBaseInfo
|
设备基本信息。必填。 |
PortBaseInfo
在 fuchsia.hardware.network/port.fidl 中定义
端口基本信息。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
port_class |
PortClass
|
Port 的类。必填。 |
2 |
rx_types |
vector<FrameType>[4]
|
此端口上支持的 rx 帧类型。必填。 客户端可以打开订阅 |
3 |
tx_types |
vector<FrameTypeSupport>[4]
|
此端口上支持的 tx 帧类型。必填。 流向此端口的帧类型不在 某些网络设备可能需要对部分帧进行解析
因此, |
PortGetCountersResponse
在 fuchsia.hardware.network/port.fidl 中定义
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
rx_frames |
uint64
|
此端口上的入站流量帧总数。 |
2 |
rx_bytes |
uint64
|
此端口上的入站流量字节总数。 |
3 |
tx_frames |
uint64
|
此端口上的出站帧总数。 |
4 |
tx_bytes |
uint64
|
此端口上的出站流量字节总数。 |
PortInfo
在 fuchsia.hardware.network/port.fidl 中定义
逻辑端口信息。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
id |
PortId
|
端口的标识符。必填。 |
2 |
base_info |
PortBaseInfo
|
PortStatus
在 fuchsia.hardware.network/port.fidl 中定义
动态端口信息。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
flags |
StatusFlags
|
端口状态标志。 |
2 |
mtu |
uint32
|
此端口的最大传输单元(以字节为单位)。 报告的 MTU 是整个帧的大小,包括任何标头 和尾部字节。 |
SessionInfo 资源
在 fuchsia.hardware.network/session.fidl 中定义
会话配置。
Ordinal | 字段 | 类型 | 说明 |
---|---|---|---|
1 |
descriptors |
handle<vmo>
|
包含描述符的 VMO。必填。 通过 FIFO 传输的 16 位索引对该 VMO 中的描述符编制索引 (字节偏移量 = descriptor_length * 8 * 索引)。 |
2 |
data |
handle<vmo>
|
包含帧数据的 VMO。必填。 描述符包含用于将任意编入索引的字节偏移量
|
3 |
descriptor_version |
uint8
|
请求的描述符版本。必填。 如果网络设备不支持请求的描述符版本,
Device.OpenSession 失败并显示 |
4 |
descriptor_length |
uint8
|
描述符长度,以 64 位字为单位。必填。
|
5 |
descriptor_count |
uint16
|
此会话可以使用的描述符总数。必填。 通过 rx 或 tx FIFO 传输的描述符索引必须
在 [0, |
6 |
options |
SessionFlags
|
更多选项。如果不存在,则解释为空位掩码。 |
联合体
DevicePortEvent 严格
在 fuchsia.hardware.network/device.fidl 中定义
端口创建和销毁事件。
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
existing |
PortId
|
创建 Watcher 时端口已存在。 |
2 |
added |
PortId
|
新端口已添加到设备。 |
3 |
removed |
PortId
|
端口已从设备中移除。 |
4 |
idle |
Empty
|
现有端口的已用尽列表。 |
Device_OpenSession_Result 严格 资源
在 fuchsia.hardware.network/device.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_OpenSession_Response
|
|
2 |
err |
zx/Status
|
Session_Attach_Result 严格
在 fuchsia.hardware.network/session.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Session_Attach_Response
|
|
2 |
err |
zx/Status
|
Session_Detach_Result 严格
在 fuchsia.hardware.network/session.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Session_Detach_Response
|
|
2 |
err |
zx/Status
|
位
EthernetFeatures 严格
类型:uint32
在 fuchsia.hardware.network/frames.fidl 中定义
以太网帧子类型和功能。
名称 | 值 | 说明 |
---|---|---|
RAW |
1 | 设备支持任何类型的以太网帧。 与指定所有其他标志相同。由不检查的设备使用 或解析出站流量 |
ETHERNET_II |
2 | 设备支持以太网 II 帧。 |
E_802_1_Q |
4 | 设备支持 802.1q VLAN 添加。 |
E_802_1_Q_IN_Q |
8 | 设备支持 802.1 q-in-q 多个 VLAN 标记添加。 仅当 |
E_802_3_LLC_SNAP |
16 | 设备支持 802.3 LLC + SNAP 以太网帧格式。 |
RxFlags(严格)
类型:uint32
在 fuchsia.hardware.network/frames.fidl 中定义
设备在将缓冲区交给 rx 路径上的客户端时设置的标记。
由设备在 rx 描述符的 inbound_flags
字段中设置。
名称 | 值 | 说明 |
---|---|---|
RX_ACCEL_0 |
1 | 加速标志 0。 加速标记会映射到
Info.rx_accel 中的设备。 |
RX_ACCEL_1 |
2 | |
RX_ACCEL_2 |
4 | |
RX_ACCEL_3 |
8 | |
RX_ACCEL_4 |
16 | |
RX_ACCEL_5 |
32 | |
RX_ACCEL_6 |
64 | |
RX_ACCEL_7 |
128 | |
RX_ACCEL_8 |
256 | |
RX_ACCEL_9 |
512 | |
RX_ACCEL_10 |
1024 | |
RX_ACCEL_11 |
2048 | |
RX_ACCEL_12 |
4096 | |
RX_ACCEL_13 |
8192 | |
RX_ACCEL_14 |
16384 | |
RX_ACCEL_15 |
32768 | |
RX_OVERRUN |
536870912 | 设备遇到了硬件 RX 溢出。 当帧事件发生时,Rx 溢出通常由硬件控制器设置 已检测到帧数据,但无法捕获帧数据。设备应 在入站帧上设置控制器标志后, 可以检测和报告未来的超载。 |
RX_VALIDATION_ERROR |
1073741824 | 如果执行帧验证(例如通过硬件验证),则设置该位 加速功能)而出现故障。 请务必注意,某些设备可能只是为了
验证失败,且从不通知客户端。Rx 帧
如果验证失败,
|
RX_ECHOED_TX |
2147483648 | 这是一个回显的 tx 帧,由 tx 请求创建。 只能在具有 |
SessionFlags 严格
类型:uint16
在 fuchsia.hardware.network/session.fidl 中定义
其他会话选项。
名称 | 值 | 说明 |
---|---|---|
主电子邮件 |
1 | 作为主会话附加。 标有
|
LISTEN_TX |
2 | 监听传出帧。
|
REPORT_INVALID_RX |
4 | 收到了无效的 rx 帧。 标有 |
StatusFlag 严格
类型:uint32
在 fuchsia.hardware.network/port.fidl 中定义
端口状态位,在 PortStatus.flags 中报告。
名称 | 值 | 说明 |
---|---|---|
ONLINE |
1 | 端口已在线,即数据路径处于开放状态,任何正在进行的会话都可能处于在线状态 来发送和接收帧 |
TxFlag 严格
类型:uint32
在 fuchsia.hardware.network/frames.fidl 中定义
由客户端在 tx 路径上将缓冲区交给客户端时设置的标记。
由客户端在事务描述符的 inbound_flags
字段中设置。
名称 | 值 | 说明 |
---|---|---|
TX_ACCEL_0 |
1 | 加速标志 0。 加速标记会映射到
Info.tx_accel 中的设备。 |
TX_ACCEL_1 |
2 | |
TX_ACCEL_2 |
4 | |
TX_ACCEL_3 |
8 | |
TX_ACCEL_4 |
16 | |
TX_ACCEL_5 |
32 | |
TX_ACCEL_6 |
64 | |
TX_ACCEL_7 |
128 | |
TX_ACCEL_8 |
256 | |
TX_ACCEL_9 |
512 | |
TX_ACCEL_10 |
1024 | |
TX_ACCEL_11 |
2048 | |
TX_ACCEL_12 |
4096 | |
TX_ACCEL_13 |
8192 | |
TX_ACCEL_14 |
16384 | |
TX_ACCEL_15 |
32768 |
TxReturnFlags(严格)
类型:uint32
在 fuchsia.hardware.network/frames.fidl 中定义
设备在将事务缓冲区返回客户端时设置的标记。
由设备在事务描述符的 return_flags
字段中设置。
名称 | 值 | 说明 |
---|---|---|
TX_RET_NOT_SUPPORTED |
1 | 不支持在“ 始终与 |
TX_RET_OUT_OF_RESOURCES |
2 | 无法分配资源以发送帧。 始终与 |
TX_RET_NOT_AVAILABLE |
4 | 设备不可用(处于离线状态或已断开连接);帧不是 已发送。 始终与 |
TX_RET_ERROR |
2147483648 |
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
FRAME_FEATURES_RAW |
1
|
uint32 |
原始帧的一揽子定义。 不对出站流量进行任何类型解析的设备应该
在 FrameTypeSupport 条目中定义 添加时间:HEAD
|
MAX_ACCEL_FLAGS |
16
|
uint32 |
加速标记数量上限。 每个描述符都有 16 位空间用于加速标记(RxFlags 和
TxFlags),因此报告的加速度上限为 16。每个
描述符报告应用了哪些加速度 ( 添加时间: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
|