專家
裝置
定義於 fuchsia.hardware.network/device.fidl
網路裝置。
副本
為這部裝置建立新連線。
- 要求
device
,伺服器結束用於新連線。
要求
名稱 | 類型 |
---|---|
device |
server_end<Device>
|
GetInfo
取得裝置相關資訊
- 回應「
info
」的裝置資訊。
要求
<EMPTY>
回應
名稱 | 類型 |
---|---|
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。
- 錯誤
ZX_ERR_NOT_SUPPORTED
。session_info
- 如果
session_info
缺少欄位或含有無效資訊,就會顯示ZX_ERR_INVALID_ARGS
錯誤。 - 錯誤
ZX_ERR_INTERNAL
。
要求
名稱 | 類型 |
---|---|
session_name |
string[64]
|
session_info |
SessionInfo
|
回應
名稱 | 類型 |
---|---|
payload |
Device_OpenSession_Result
|
DeviceInstance
定義於 fuchsia.hardware.network/instance.fidl
公開網路裝置的執行個體。
GetDevice
連結到裝置實作。
- 要求
device
個裝置帳號代碼。
要求
名稱 | 類型 |
---|---|
device |
server_end<Device>
|
診斷
定義於 fuchsia.hardware.network/diagnostics.fidl
提供裝置與上層通訊方式,以便交換裝置健康狀態資訊。
LogDebugInfoToSyslog
裝置在系統記錄中產生偵錯資訊的要求。
產生裝置偵錯資訊後,呼叫會傳回這個呼叫。
要求
<EMPTY>
回應
<EMPTY>
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 位址。
要求
<EMPTY>
回應
名稱 | 類型 |
---|---|
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
副本
建立與這個通訊埠的新連線。
- 要求
port
,伺服器結束用於新連線。
要求
名稱 | 類型 |
---|---|
port |
server_end<Port>
|
GetCounters
擷取這個通訊埠的流量計數器快照。
要求
<EMPTY>
回應
名稱 | 類型 |
---|---|
payload |
PortGetCountersResponse
|
GetDevice
連線至這個通訊埠所屬的裝置。
- 要求
device
將存取權授予家長裝置。
要求
名稱 | 類型 |
---|---|
device |
server_end<Device>
|
GetDiagnostics
可授予這個通訊埠的診斷權限。
- 若要求
diagnostics
,則會授予診斷資訊存取權。
要求
名稱 | 類型 |
---|---|
diagnostics |
server_end<Diagnostics>
|
GetInfo
取得通訊埠相關資訊。
- 回應
info
通訊埠資訊。
要求
<EMPTY>
回應
名稱 | 類型 |
---|---|
info |
PortInfo
|
GetMac
連線至與通訊埠相關聯的 MacAddressing。
- 要求
mac
mac 控制代碼。如果這個通訊埠不支援 Mac 位址,請使用ZX_ERR_NOT_SUPPORTED
關閉。
要求
名稱 | 類型 |
---|---|
mac |
server_end<MacAddressing>
|
GetStatus
取得作業通訊埠狀態。
- 回應
status
通訊埠目前狀態的快照。
要求
<EMPTY>
回應
名稱 | 類型 |
---|---|
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) 為止。
如果未讀取事件的數量達到伺服器所選的上限 (至少兩次為 MAX_PORTS),伺服器就會關閉包含 ZX_ERR_CANCELED
的 PortWatcher
管道。我們建議用戶端一律維持對 Watch
的等待期,以免觸發這個條件。
- 回應
event
下一個通訊埠事件。
要求
<EMPTY>
回應
名稱 | 類型 |
---|---|
event |
DevicePortEvent
|
工作階段
定義於 fuchsia.hardware.network/session.fidl
代表使用網路裝置的工作階段。
工作階段包含一個資料層和控制層。Session
通訊協定代表工作階段的控制層,在 Device.OpenSession 呼叫期間交換的 FIFO 和 VMO 則是資料層。工作階段的生命週期是由 Session
通訊協定控制代碼控管。
工作階段必須連接至所需的通訊埠,才能開始接收和傳送資料。每個工作階段一律未連接任何通訊埠。
如果從基礎裝置刪除通訊埠,通訊埠會自動從工作階段卸離。
系統會將傳入流量分派給所有開啟的工作階段。裝置通常會透過單一主要工作階段運作,請參閱 SessionFlags.PRIMARY。每對同一裝置開啟額外開啟的工作階段,都會在裝置的資料路徑上造成資料複製負擔。
如果透過 tx 或 rx FIFO 傳送無效的緩衝區描述元,工作階段就會關閉,並顯示錯誤段落。無效的描述元包括: - 描述元索引大於 SessionInfo.descriptor_count。 - 描述元鏈結大於 MAX_DESCRIPTOR_CHAIN。 - 小於 Info.min_rx_buffer_length 的 rx 緩衝區。- 小於 Info.min_tx_buffer_length 的 tx 緩衝區。- 未遵循 Info.min_tx_buffer_head 或 Info.min_tx_buffer_tail 的 tx 緩衝區。
附加至訊息
將工作階段附加至 port
。
連接後,工作階段會開始透過資料 FIFO 接收已訂閱的影格,並可能會傳送目的地為指定 port
的影格。
- 要求訂閱
port
通訊埠。 - 要求
rx_frames
通訊埠所需的影格類型。
- 如果
port
無效,則傳回ZX_ERR_NOT_FOUND
錯誤。 - 如果
rx_frames
不是通訊埠支援的影格子集,系統會顯示ZX_ERR_INVALID_ARGS
錯誤。 - 錯誤
ZX_ERR_ALREADY_BOUND
(如果已附加port
)。
要求
名稱 | 類型 |
---|---|
port |
PortId
|
rx_frames |
vector<FrameType>[4]
|
回應
名稱 | 類型 |
---|---|
payload |
Session_Attach_Result
|
關閉
完全關閉工作階段。
這會導致工作階段傳送 ZX_ERR_CANCELLED
個參數,並繼續關閉工作階段管道。用戶端在收到傳記後,只能假設自己擁有工作階段目前擁有的所有緩衝區 (透過 rx 或 tx FIFO 傳送)。關閉 rx 或 tx FIFO 等同於呼叫 Close
。
要求
<EMPTY>
卸離
將工作階段從 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
最新的通訊埠狀態。
要求
<EMPTY>
回應
名稱 | 類型 |
---|---|
port_status |
PortStatus
|
結構
Device_OpenSession_Response 資源
定義於 fuchsia.hardware.network/device.fidl
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
session |
Session
|
無預設 | |
fifos |
Fifos
|
無預設 |
空白
定義於 fuchsia.hardware.network/device.fidl
<EMPTY>
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 的特定功能。建議不要執行剖析的裝置只使用 features
中的 FRAME_FEATURES_RAW 位元,告知用戶端可以存取所有影格功能。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
type |
FrameType
|
這個支援項目參照的影格類型。 |
無預設 |
features |
uint32
|
支援的影格類型特定功能。 |
無預設 |
supported_flags |
TxFlags
|
指定影格類型支援的旗標。 |
無預設 |
PortId
定義於 fuchsia.hardware.network/port.fidl
裝置通訊埠 ID。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
base |
BasePortId
|
通訊埠的基礎 ID, 一般用來識別硬體中的通訊埠執行個體。 |
無預設 |
salt |
uint8
|
實作定義的 ID,保證會在每個已識別的通訊埠執行個體化時變更。 |
無預設 |
Session_Attach_Response
定義於 fuchsia.hardware.network/session.fidl
<EMPTY>
Session_Detach_Response
定義於 fuchsia.hardware.network/session.fidl
<EMPTY>
表情符號
DeviceClass 嚴格
類型:uint16
定義於 fuchsia.hardware.network/port.fidl
網路裝置類別。
注意:我們建議裝置實作器在這個列舉中新增內容,以免在沒有合適比對結果時,使用效果不佳的變化版本。
名稱 | 值 | 說明 |
---|---|---|
虛擬 |
0 |
|
葡萄牙 |
1 |
|
WLAN |
2 |
|
PPP |
3 |
|
BRIDGE |
4 |
|
WLAN_AP |
5 |
FrameType strict
類型:uint8
定義於 fuchsia.hardware.network/frames.fidl
影格的類型。
名稱 | 值 | 說明 |
---|---|---|
葡萄牙 |
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 |
裝置接受所有畫面。 |
RxAcceleration 嚴格
類型:uint8
定義於 fuchsia.hardware.network/frames.fidl
可用的 rx 加速功能。
功能會依據 Info.rx_accel 中回報的可用值,對應至描述元中的 RXACCEL*
位元。
名稱 | 值 | 說明 |
---|---|---|
VALIDATED_ETHERNET_FCS |
0 |
傳入 Rx 影格已驗證乙太網路影格檢查序列。 |
VALIDATED_IPV4_CHECKSUM |
1 |
內送 Rx 影格已驗證 IPv4 檢查碼。 |
VALIDATED_TCP_CHECKSUM |
2 |
傳入的 rx 框架會驗證 TCP 檢查碼。 |
VALIDATED_UDP_CHECKSUM |
3 |
傳入 Rx 影格已驗證 UDP 檢查碼。 |
TxAcceleration 嚴格
類型:uint8
定義於 fuchsia.hardware.network/frames.fidl
可用的 tx 加速功能。
功能會依據 Info.tx_accel 中回報的可用值,對應至描述元中的 TXACCEL*
位元。
名稱 | 值 | 說明 |
---|---|---|
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
網路裝置基本資訊。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
rx_depth |
uint16
|
rx FIFO (每個工作階段) 中的項目數量上限。必填。
|
2 |
tx_depth |
uint16
|
tx FIFO (每個工作階段) 中的項目數量上限。必填。
|
3 |
buffer_alignment |
uint32
|
資料 VMO 中緩衝區的對齊需求。 資料 VMO 中的所有緩衝區都必須與 VMO 開頭的 |
4 |
max_buffer_length |
uint32
|
資料 VMO 中支援的緩衝區長度上限 (以位元組為單位)。 如果沒有定義緩衝區長度上限,則不會顯示。不得為零。 |
5 |
min_rx_buffer_length |
uint32
|
裝置所需的 Rx 緩衝區長度下限。必填。 |
6 |
min_tx_buffer_length |
uint32
|
裝置所需的最小 Tx 緩衝區長度。必填。 這個值只會處理 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]
|
這部裝置可用的 Tx 加速旗標。
如未提供,則會解讀為空白。 |
DeviceInfo
定義於 fuchsia.hardware.network/device.fidl
網路裝置資訊。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
min_descriptor_length |
uint8
|
描述元長度下限 (64 位元字詞)。必填。 每個緩衝區描述元為了與裝置正確作業而必須達到的最短長度。支援額外影格中繼資料的裝置可讓描述元的最短長度增加,反映要儲存影格中繼資料所需的最小空間。 |
2 |
descriptor_version |
uint8
|
接受的描述元版本。必填。 |
3 |
base_info |
DeviceBaseInfo
|
裝置基礎資訊。必填。 |
PortBaseInfo
定義於 fuchsia.hardware.network/port.fidl
通訊埠基本資訊。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
port_class |
PortClass
|
通訊埠的類別。必填。 |
2 |
rx_types |
vector<FrameType>[4]
|
這個通訊埠支援的 rx 影格類型。必填。 用戶端可以在這個通訊埠上開啟訂閱 |
3 |
tx_types |
vector<FrameTypeSupport>[4]
|
這個通訊埠支援的 tx 影格類型。必填。 目的地為這個通訊埠的影格類型不在 部分網路裝置可能需要執行部分影格剖析和序列化作業,因此 |
PortGetCountersResponse
定義於 fuchsia.hardware.network/port.fidl
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
rx_frames |
uint64
|
這個通訊埠的輸入影格總數。 |
2 |
rx_bytes |
uint64
|
這個通訊埠的輸入位元組數總數。 |
3 |
tx_frames |
uint64
|
這個通訊埠的輸出影格總數。 |
4 |
tx_bytes |
uint64
|
這個通訊埠的輸出位元組總數。 |
PortInfo
定義於 fuchsia.hardware.network/port.fidl
邏輯通訊埠資訊。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
id |
PortId
|
通訊埠 ID。必填。 |
2 |
base_info |
PortBaseInfo
|
PortStatus
定義於 fuchsia.hardware.network/port.fidl
動態通訊埠資訊。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
flags |
StatusFlags
|
通訊埠狀態旗標。 |
2 |
mtu |
uint32
|
這個通訊埠的傳輸單位上限,以位元組為單位。 回報的 MTU 是整個影格的大小,包括這個通訊埠支援的任何通訊協定的任何標頭和預告位元組。 |
SessionInfo 資源
定義於 fuchsia.hardware.network/session.fidl
工作階段設定。
序數 | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
descriptors |
handle<vmo>
|
包含描述元的 VMO。必填。 透過 FIFO 傳送的 16 位元索引,在這個 VMO 中為描述元建立索引 (位元組偏移 = 描述元_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
建立和刪除通訊埠事件。
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
existing |
PortId
|
這個通訊埠在建立監看工具時存在。 |
2 |
added |
PortId
|
已在裝置中新增通訊埠。 |
3 |
removed |
PortId
|
連接埠已從裝置中移除。 |
4 |
idle |
Empty
|
現有通訊埠清單已用盡。 |
Device_OpenSession_Result 嚴格的 資源
定義於 fuchsia.hardware.network/device.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Device_OpenSession_Response
|
|
2 |
err |
zx/Status
|
Session_Attach_Result strict
定義於 fuchsia.hardware.network/session.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Session_Attach_Response
|
|
2 |
err |
zx/Status
|
Session_Detach_Result strict
定義於 fuchsia.hardware.network/session.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Session_Detach_Response
|
|
2 |
err |
zx/Status
|
節拍
EthernetFeature 嚴格
類型:uint32
定義於 fuchsia.hardware.network/frames.fidl
乙太網路影格子類型和功能。
名稱 | 值 | 說明 |
---|---|---|
RAW |
1 | 裝置支援任何類型的乙太網路封包。 與指定所有其他標記相同。不會檢查或剖析傳出流量的裝置使用這個值。 |
ETHERNET_II |
2 | 裝置支援 EthernetII 錶框。 |
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 要求建立。 只能在具有 |
工作階段旗標嚴格
類型:uint16
定義於 fuchsia.hardware.network/session.fidl
其他工作階段選項。
名稱 | 值 | 說明 |
---|---|---|
主要 |
1 | 附加為主要工作階段。 標有
|
LISTEN_TX |
2 | 監聽影格傳出。
|
REPORT_INVALID_RX |
4 | 接收無效的 RX 影格。 標有 |
狀態旗標嚴格
類型:uint32
定義於 fuchsia.hardware.network/port.fidl
通訊埠狀態位元,使用 PortStatus.flags 回報。
名稱 | 值 | 說明 |
---|---|---|
線上 |
1 | 通訊埠已連上網路,亦即資料路徑為開啟狀態,且任何進行中的工作階段都可以傳送及接收影格。 |
TxFlags 嚴格
類型:uint32
定義於 fuchsia.hardware.network/frames.fidl
用戶端在 tx 路徑將緩衝區交給用戶端時設定的旗標。
由用戶端在 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
將 tx 緩衝區傳回用戶端時,裝置設定的旗標。
由 tx 描述元的 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 |
裝置中通訊埠的基準 ID。一律小於 MAX_PORTS。 已新增:HEAD
|
PortClass |
fuchsia.hardware.network/DeviceClass |
網路通訊埠類別。 已新增:HEAD
|