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 的通訊埠,則「port」已關閉,號碼為 ZX_ERR_NOT_FOUND 存在。

要求

名稱類型
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 選擇不同的影格類型或描述元設定
  • ZX_ERR_INVALID_ARGS 錯誤 session_info 缺少欄位或 包含無效的資訊。
  • 如果基礎設施拒絕資料 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

取得裝置目前的 unicast MAC 位址。

此 API 的實作程式不需要傳回可明確識別身分的資訊 MAC;傳回的單點傳播位址就是「目前」使用中的位址 篩選單點傳播影格,或是透過連結識別裝置 目前開啟。這個 API 的使用者不得仰賴穩定性或 傳回值的獨特性,以識別或區分裝置 執行個體。

  • 回應 address 裝置的 unicast 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

用戶端必須瞭解,存取的資源是由其共用, 裝置是否能有效運作,例如 要求的資源 (只是不會比限制多出)。

  • 要求附加 mode 要求模式。
  • 回應 status ZX_ERR_NOT_SUPPORTED 裝置僅支援 模式比所要求模式更加嚴格

要求

名稱類型
mode MacFilterMode

回應

名稱類型
status zx/Status

連接埠

定義於 fuchsia.hardware.network/port.fidl

屬於裝置的邏輯通訊埠。

新增時間: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。每項 額外對同一部裝置額外開啟工作階段,會導致資料複製負擔 資料路徑

如果緩衝區描述元無效,工作階段就會關閉,並顯示錯誤 ETP 會經由 tx 或 FIFO 傳送無效的描述元包括: - 描述元索引大於 SessionInfo.descriptor_count。 - 大於 MAX_DESCRIPTOR_CHAIN 的描述元鏈結。 - 小於 Info.min_rx_buffer_length 的 rx 緩衝區。 - 小於 Info.min_tx_buffer_length 的 tx 緩衝區。 - 未遵循 Info.min_tx_buffer_head 或 tx 緩衝區 Info.min_tx_buffer_tail.

新增時間:HEAD

附加

將工作階段附加至 port

連結後,該工作階段就會開始收到訂閱影格數 並可能會傳送目的地為指定 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 八分音符和 即可關閉工作階段管道用戶端只能假設 擁有工作階段目前擁有的所有緩衝區 ( 。關閉申訴 或 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

裝置通訊埠 ID。

新增時間:HEAD

欄位類型說明預設
base BasePortId

充電座的基準 ID。

通常可用來識別硬體中的通訊埠執行個體。

無預設
salt uint8

保證會在以下位置變更的實作定義的 ID 所識別通訊埠的每個執行個體化。

無預設

Session_Attach_Response

定義於 fuchsia.hardware.network/session.fidl

<空白>

Session_Detach_Response

定義於 fuchsia.hardware.network/session.fidl

<空白>

ENUMS

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 嚴格

類型:uint8

定義於 fuchsia.hardware.network/frames.fidl

可用的 Rx 加速功能。

功能會由可用函式對應至描述元中的 RXACCEL* 位元 Info.rx_accel 中回報的值。

新增時間:HEAD

名稱說明
0

傳入 rx 訊框已驗證乙太網路影格檢查序列。

1

傳入 rx 訊框已驗證 IPv4 總和檢查碼。

2

傳入 rx 訊框已驗證 TCP 檢查碼。

3

傳入 rx 訊框已驗證 UDP 檢查碼。

TxAcceleration 嚴格

類型:uint8

定義於 fuchsia.hardware.network/frames.fidl

可用的 TX 加速功能。

功能會由可用函式對應至描述元中的 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 是根據實際備份的大小計算 硬體 tx 佇列。

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 緩衝區長度。必填。

這個值僅適用於 TX 酬載長度 min_tx_buffer_headmin_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 加速旗標。

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

通訊埠的類別。必填。

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

通訊埠的 ID。必填。

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 中的描述元建立索引 (位元組偏移 = MIME_length * 8 * 索引)。

data handle<vmo>

包含影格資料的 VMO。必填。

描述元含有用來建立任意索引的位元組偏移 data 個區域。

descriptor_version uint8

要求的描述元版本。必填。

如果網路裝置不支援要求的描述元版本, Device.OpenSession 執行失敗,發生 ZX_ERR_NOT_SUPPORTED 錯誤。

descriptor_length uint8

描述元長度,以 64 位元字詞表示。必填。

descriptors VMO 中每個描述元的長度。用途 這個調節係數可在 descriptors 中尋找依據描述元的位元組偏移 傳遞索引。

descriptor_count uint16

這個工作階段可使用的描述元總數。必填。

透過 rx 或 tx FIFO 傳輸的描述元索引必須 介於 [0, descriptor_count] 之間。

options SessionFlags

更多選項。如未提供,則解讀為空白位元遮罩。

聯合國

DevicePortEvent 嚴格

定義於 fuchsia.hardware.network/device.fidl

通訊埠建立和刪除事件。

新增時間:HEAD
OrdinalVariant類型說明
existing PortId

通訊埠在監看程式建立時就存在。

added PortId

裝置已新增通訊埠。

removed PortId

已從裝置中移除通訊埠。

idle Empty

現有通訊埠的清單已用盡。

Device_OpenSession_Result 嚴格 資源

定義於 fuchsia.hardware.network/device.fidl

OrdinalVariant類型說明
response Device_OpenSession_Response
err zx/Status

Session_Attach_Result 嚴格

定義於 fuchsia.hardware.network/session.fidl

OrdinalVariant類型說明
response Session_Attach_Response
err zx/Status

Session_Detach_Result 嚴格

定義於 fuchsia.hardware.network/session.fidl

OrdinalVariant類型說明
response Session_Detach_Response
err zx/Status

商業智慧

EthernetFeatures 嚴格

類型:uint32

定義於 fuchsia.hardware.network/frames.fidl

乙太網路訊框子類型和功能。

新增時間:HEAD

名稱說明
1

裝置支援任何類型的乙太網路訊框。

與指定所有其他標記相同。未檢查的裝置會使用 或剖析傳出流量

2

裝置支援 EthernetII 影格。

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 位元的工作階段具備下列差異: 實驗組:

  • 如果沒有連接主要工作階段,裝置就「不會」提供 rx 和非主要工作階段
  • 如果只有一個主要工作階段,系統可能會顯示零副本 來自備份硬體的資料路徑 (如果基礎 其他 API 選項
2

監聽傳出影格。

LISTEN_TX 個工作階段收到所有離開影格 (來自所有工作階段) 指向 rx 路徑可用於窺探流量。工作階段會標示為 LISTEN_TX 也可能傳送影格,但請注意, 它們永遠都會在 Rx 路徑上收到這些影格 (無來源) 執行工作階段篩選時)。

4

接收無效的 rx 影格。

標有 REPORT_INVALID_RX 的工作階段有興趣 遭到內部裝置檢查或酬載拒絕的影格 硬體驗證由於某些硬體的特性 標有 REPORT_INVALID_RX 的工作階段可能還是 接收到因硬體實作而驗證失敗的影格 只會捨棄框架,且不會向軟體堆疊公開。 相反地,「未」標示為「REPORT_INVALID_RX」的工作階段將永遠 接收已設定 RX_VALIDATION_ERROR 旗標的 rx 框架。

狀態旗標嚴格

類型:uint32

定義於 fuchsia.hardware.network/port.fidl

通訊埠狀態位元,在 PortStatus.flags 中回報。

新增時間:HEAD

名稱說明
1

通訊埠處於線上狀態,也就是說,資料路徑為開放狀態,任何進行中的工作階段也可能會 傳送及接收影格

TxFlags 嚴格

類型:uint32

定義於 fuchsia.hardware.network/frames.fidl

用戶端在將緩衝區交給 tx 路徑上的用戶端時,設定的旗標。

由用戶端在 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

將 tx 緩衝區傳回用戶端時,裝置設定的旗標。

由裝置在 tx 描述元的 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

裝置內連接埠的基本 ID。一律小於 MAX_PORTS

新增時間:HEAD