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不是以下值,则回复statusZX_ERR_INVALID_ARGS多播地址。 
请求
| 名称 | 类型 | 
|---|---|
address | 
            
                fuchsia.net/MacAddress
             | 
        
响应
| 名称 | 类型 | 
|---|---|
status | 
            
                zx/Status
             | 
        
GetUnicastAddress
获取设备当前的单播 MAC 地址。
此 API 的实现者不需要返回可唯一标识的 MAC;返回的单播地址是当前正在使用的单播地址 过滤单播帧,或者通过链接识别设备, 当前已开启。此 API 的用户不得依赖 返回值的唯一性,以识别设备或消除歧义 实例。
- 响应 
address设备的单播 MAC 地址。 
请求
<空>
响应
| 名称 | 类型 | 
|---|---|
address | 
            
                fuchsia.net/MacAddress
             | 
        
RemoveMulticastAddress
从多播组列表中移除多播地址。
- 请求从列表中移除 
address个多播地址。 
- 如果 
address不是以下值,则回复statusZX_ERR_INVALID_ARGS多播地址。 
请求
| 名称 | 类型 | 
|---|---|
address | 
            
                fuchsia.net/MacAddress
             | 
        
响应
| 名称 | 类型 | 
|---|---|
status | 
            
                zx/Status
             | 
        
SetMode
将此设备所请求的操作模式设置为“mode”。
所请求的模式已连接到当前客户端连接到 设备。由于多个客户端可以连接到 一次,限制最少的模式就是用户主动进入的模式 对底层设备实现的影响。
如果设备不支持请求的模式,但支持某种模式
则 SetMode 会成功。
反之,如果设备仅支持比
一个请求,SetMode 返回 ZX_ERR_NOT_SUPPORTED。
客户端必须知道访问的资源是共享的,并且 设备可能在比 Google Analytics 所请求的代码(尽管从未如此严格)。
- 请求附加
mode请求模式。 
- 回复 
statusZX_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。
- 请求 
macMAC 句柄。已通过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 
 |