NDIS 封包時間戳的標準化 INF 關鍵詞
INF 檔案可以定義下列標準化 INF 關鍵詞,以啟用或停用迷你埠驅動程式和 NIC 硬體支援的時間戳功能。
迷你埠驅動程式可以使用這些關鍵詞來判斷時間戳功能的目前組態。 例如,驅動程式可以在初始化期間讀取這些關鍵字值,以判斷已啟用哪些時間戳功能,因此驅動程式可以使用。
如需標準化 INF 關鍵詞的詳細資訊,請參閱 網路裝置的標準化 INF 關鍵詞。
*PtpHardwareTimestamp INF 關鍵詞
*PtpHardwareTimestamp 關鍵詞定義為啟用或停用有效時間通訊協定的硬體時間戳支援, (PTP) 使用 UDP 作為傳輸的第 2 版封包。
*PtpHardwareTimestamp 關鍵詞的預設設定已停用,而迷你埠驅動程序默認應該停用 NIC 硬體中所有硬體時間戳支援類型。
迷你埠驅動程式會讀取 *PtpHardwareTimestamp 關鍵詞值,以判斷硬體時間戳目前是否已啟用或停用。
如果 已啟用 *PtpHardwareTimestamp ,迷你埠驅動程序應該:
在 NIC 硬體中啟用相關的硬體時間戳功能。
產生 NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG 狀態指示,以向 NDIS 報告其啟用的時間戳功能。 驅動程式會使用 NDIS_TIMESTAMP_CAPABILITIES 結構來指定啟用的功能。 對應至硬體時間戳之NDIS_TIMESTAMP_CAPABILITIES結構中 TimestampFlags 欄位中的旗標為
PtpV2OverUdpIPv4EventMsgReceiveHw
、PtpV2OverUdpIPv4AllMsgReceiveHw
、PtpV2OverUdpIPv4EventMsgTransmitHw
、PtpV2OverUdpIPv4AllMsgTransmitHw
、PtpV2OverUdpIPv6EventMsgReceiveHw
、AllReceiveHw
PtpV2OverUdpIPv6EventMsgTransmitHw
PtpV2OverUdpIPv6AllMsgReceiveHw
PtpV2OverUdpIPv6AllMsgTransmitHw
AllTransmitHw
和 。TaggedTransmitHw
NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG狀態之NDIS_TIMESTAMP_CAPABILITIES結構中的 CrossTimestamp 欄位會指出是否已啟用硬體交叉時間戳。
啟用 *PtpHardwareTimestamp 時,迷你埠應該開啟某種形式的功能,以針對 PTP 第 2 版透過 UDP 產生 Rx 和 Tx 的硬體時間戳。 如果硬體支援,迷你埠也應該開啟硬體交叉時間戳功能。
迷你埠驅動程式應該在硬體中啟用的特定硬體時間戳功能,取決於 NIC 硬體的功能。 例如,如果 NIC 硬體只支援 PtpV2OverUDPIPv4EventMsgReceiveHw
和 PtpV2OverUDPIPv6EventMsgReceiveHw
TaggedTransmitHw
功能,則如果已啟用 *PtpHardwareTimestamp 關鍵詞,迷你埠可以開啟這些硬體時間戳功能。
如果 NIC 硬體支援多個可透過 UDP 案例啟用 PTP 第 2 版的硬體時間戳功能,則 IHV 應該考慮其硬體和問題,例如效能影響,以決定迷你埠應該開啟的功能。 例如,硬體可能能夠產生和TaggedTransmitHw
的AllTransmitHw
時間戳。 如果開啟的成本高於TaggedTransmitHw
開啟 AllTransmitHw
,則 IHV 可以選擇只開啟 TaggedTransmitHw
Tx 的功能。
在所有情況下,迷你埠驅動程式都應該使用 NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG 狀態指示,正確地報告啟用或停用的硬體時間戳功能。
注意
不支援透過原始乙太網路的 PTP。 啟用支援 PTP over UDP 時,IHV 必須判斷透過原始乙太網路封包處理 PTP 的最有效率方式。
注意
PTP 第 1 版不需要支援。 如果 NIC 硬體也支援 PTP 第 1 版,則在支援 PTP 第 2 版時,IHV 必須判斷處理 PTP 第 1 版封包的最有效率方式。
*PtpHardwareTimestamp 的 INF 專案
*PtpHardwareTimestamp INF 關鍵詞是列舉關鍵詞。 列舉標準化 INF 關鍵詞具有下列屬性:
SubkeyName:您必須在 INF 檔案中指定的關鍵詞名稱。
ParamDesc:與 SubkeyName 相關聯的顯示文字。
值:與清單中每個 SubkeyName 相關聯的列舉整數值。
EnumDesc:與功能表中顯示的每個值相關聯的顯示文字。
預設值:功能表的預設值。
下表描述 *PtpHardwareTimestamp INF 關鍵詞的可能 INF 專案。
SubkeyName | ParamDesc | 值 | EnumDesc |
---|---|---|---|
*PtpHardwareTimestamp | PTP 硬體時間戳 | 0 (預設) | 已停用 |
1 | 啟用 |
注意
如果迷你埠驅動程式找到 *PtpHardwareTimestamp 關鍵詞不支援的值,它應該會完全停用硬體時間戳功能。
*SoftwareTimestamp INF 關鍵詞
*SoftwareTimestamp 關鍵詞會對應到迷你埠驅動程式能夠設定的軟體時間戳類型。 迷你埠驅動程式會使用此關鍵詞的已設定值來判斷目前已啟用哪些支援的軟體時間戳功能。
*SoftwareTimestamp 關鍵詞的預設設定已停用,而且迷你埠中的所有軟體時間戳支援類型默認都應該停用。
迷你埠會產生 NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG 狀態指示,以通知 NDIS 目前已啟用的各種時間戳功能。
對應至軟體時間戳之NDIS_TIMESTAMP_CAPABILITIES結構中 TimestampFlags 字段中的旗標為AllReceiveSw
、 AllTransmitSw
和 TaggedTransmitSw
。
如果 *SoftwareTimestamp 關鍵詞包含一個值,指出已啟用某些軟體時間戳設定,則迷你埠應該啟用已設定的軟體時間戳功能,並產生 NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG 狀態指示,以精確地報告已啟用的軟體時間戳功能。
如果迷你埠不支援任何類型的軟體時間戳, 則 *SoftwareTimestamp 關鍵詞不應包含在其 INF 檔案中。
*SoftwareTimestamp INF 關鍵詞是列舉關鍵詞。 列舉標準化 INF 關鍵詞具有下列屬性:
SubkeyName:您必須在 INF 檔案中指定的關鍵詞名稱。
ParamDesc:與 SubkeyName 相關聯的顯示文字。
值:與清單中每個 SubkeyName 相關聯的列舉整數值。
EnumDesc:與功能表中顯示的每個值相關聯的顯示文字。
預設值:功能表的預設值。
下表描述 *SoftwareTimestamp INF 關鍵詞的可能 INF 專案。
SubkeyName | ParamDesc | 值 | EnumDesc |
---|---|---|---|
*SoftwareTimestamp | 軟體時間戳 | 0 (預設) | 已停用 |
1 | RxAll:此列舉值對應於迷你埠驅動程式功能,以在 Rx 期間產生所有封包的軟體時間戳。 | ||
2 | TxAll:此列舉值對應於迷你埠驅動程式功能,以在 Tx 期間產生所有封包的軟體時間戳。 | ||
3 | RxAll & TxAll:此列舉值對應於迷你埠驅動程式功能,以在 Rx 和 Tx 期間產生所有封包的軟體時間戳。 | ||
4 | TagedTx:此列舉值會對應至迷你埠驅動程式功能,以在操作系統指出要執行此動作時產生特定 Tx 封包的軟體時間戳。 | ||
5 | RxAll & TaggedTx:此列舉值會對應至迷你埠驅動程式功能,以在 Rx 期間產生所有封包的軟體時間戳,以及在作業系統指出要執行此動作時產生特定 Tx 封包的軟體時間戳。 |
注意
如果迷你埠驅動程式找到 *SoftwareTimestamp 關鍵詞不支援的值,則應該完全停用軟體時間戳功能。