通訊模型、同步處理和中止
概括而言,本檔會定義兩種類型的物件:
- 代表 Wi-Fi 裝置的配接器。
- 埠,表示配接器中的不同 MAC 和 PHY 實體。
如需這些物件的詳細資訊,請參閱 Wi-Fi 裝置型號和物件。 命令是一組允許的作業,會針對每個物件定義。 命令會進一步分類為屬性和工作。
屬性命令是簡單的命令(例如取得訊號強度、取得目前的 BSS 清單,以及設定封包篩選器)。 它們會在短時間內完成,而且實作並不複雜。
工作命令是可能需要幾秒鐘才能完成的複雜作業。 例如,Wi-Fi 掃描作業會分類為此模型中的工作。
所有發出給 IHV 元件的命令都可以以異步方式完成。
訊息序列
下圖顯示每種命令類型的訊息順序。
圖 1 顯示工作命令順序。
圖 2 顯示屬性命令流程。
圖 3 顯示指示的流程。
同步
為了讓 IHV 元件實作保持簡單,模型會定義下列同步處理規則:
- 命令一律會在圖 1 和圖 2 中的步驟 1 和 3 之間串行化。 例如,在步驟 3 獲得來自配接器的指示之前,不會發出任何新命令給配接器。 這也表示所有屬性都會彼此串行化。
- 所有工作命令都會在圖 1 中的步驟 1 和 4 之間串行化。 例如,一次只有一個工作在配接器上執行。 不過,一旦啟動工作(圖 1 中的步驟 3),配接器可能會取得屬性命令要求。 在傳送下一個工作命令之前,步驟 3 和步驟 4 都必須完成。
- 屬性集命令有兩種類型:一種是可以在任務啟動後傳送的命令,另一種是必須與待處理任務串行化的命令。
- 資料路徑不會與命令路徑序列化,除非後續文檔中描述的特定案例。
- 同步處理範圍是配接器層級範圍。
- 某一部分的工作任務可以在啟動之後被中止。 這表示,如果較高優先順序的工作 (A) 到達,而優先順序較低的工作 (B) 未完成,則主機可以中止 B。 優先順序決策的合理化超出本檔的範圍,且相依於使用者案例。
- 針對工作命令,步驟 4 可以在步驟 3 完成之前出現。 不過,如果指出步驟 4,步驟 3 就無法失敗。
流產
大部分的工作都可以在啟動之後中止。 中止的目的是藉由傳送完整指示來觸發配接器以快速完成工作(圖 1 中的步驟 4)。 只有在圖 1 的步驟 3 到 4 之間的視窗中才允許中止。 在接收中止時,配接器必須在50毫秒內完成工作。 對於大部分的命令,在收到中止時,配接器不需要回復到命令啟動之前的狀態。 中止命令發出後與完成狀態到達主機組件之間存在競爭條件。 在此情況下,如果 IHV 元件收到已經完成之工作的中止,則 IHV 元件不需要採取進一步的動作來處理中止作業。 中止工作只是向 IHV 元件發出的訊號,指示它應儘快處理或完成該工作。 如果發出中止,則不會變更命令完成語意。 中止屬性命令的完成以及任務完成的指示在所有情況下都必須適當地通知。
屬性預期會在短時間內完成,所以不可中止。
工作命令具有唯一標識符,可讓主機以特定命令為目標進行中止。