NDIS パケット タイムスタンプ用の標準化された INF キーワード
INF ファイルでは、次の標準化された INF キーワードを定義して、ミニポート ドライバーと NIC ハードウェアがサポートするタイムスタンプ機能を有効または無効にすることができます。
ミニポート ドライバーは、タイムスタンプ機能の現在の構成を決定するこれらのキーワードを使用できます。 たとえば、ドライバーは初期化中にこれらのキーワード値を読み取り、どのタイムスタンプ機能が有効で、ドライバーが使用できるかを判断することができます。
*PtpHardwareTimestamp INF キーワード
標準化された INF キーワード の詳細については、「ネットワークデバイスの標準化された INF キーワード」を参照してください。
*PtpHardwareTimestamp INF キーワード
*PtpHardwareTimestamp キーワードは、UDP をトランスポートとして使用する Precision Time Protocol (PTP) バージョン 2 パケットのハードウェア タイムスタンプのサポートを有効または無効にするために定義されています。
*PtpHardwareTimestamp キーワードの既定の設定は無効になっており、ミニポート ドライバーは、既定で NIC ハードウェアのすべての種類のハードウェア タイムスタンプのサポートを無効にする必要があります。
ミニポート ドライバーは、*PtpHardwareTimestamp キーワード値を読み取り、ハードウェア タイムスタンプが現在有効になっているか無効になっているかを判断します。
*PtpHardwareTimestamp が有効になっている場合、ミニポート ドライバーは次の必要があります。
NIC ハードウェアで関連するハードウェア タイムスタンプ機能を有効にします。
NDIS に 有効になっているタイムスタンプ機能を報告する NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG 状態表示を生成します。 ドライバーは、 NDIS_TIMESTAMP_CAPABILITIES 構造体を使用して、有効にする機能を指定します。 ハードウェアのタイムスタンプに対応する NDIS_TIMESTAMP_CAPABILITIES 構造体の TimestampFlags フィールド内のフラグは
PtpV2OverUdpIPv4EventMsgReceiveHw
、PtpV2OverUdpIPv4AllMsgReceiveHw
、PtpV2OverUdpIPv4EventMsgTransmitHw
、PtpV2OverUdpIPv4AllMsgTransmitHw
、PtpV2OverUdpIPv6EventMsgReceiveHw
、PtpV2OverUdpIPv6AllMsgReceiveHw
、PtpV2OverUdpIPv6EventMsgTransmitHw
、PtpV2OverUdpIPv6AllMsgTransmitHw
、AllReceiveHw
、AllTransmitHw
およびTaggedTransmitHw
。 NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG 状態の NDIS_TIMESTAMP_CAPABILITIES 構造体の CrossTimestamp フィールドは、ハードウェアクロス タイムスタンプが有効になっているかどうかを示します。
*PtpHardwareTimestamp が有効になっている場合、ミニポートは、UDP 経由で PTP バージョン 2 の Rx と Tx の両方のハードウェア タイムスタンプを生成する何らかの形式の機能を有効にする必要があります。 ハードウェアがサポートしている場合、ミニポートはハードウェアクロス タイムスタンプ機能も有効にする必要があります。
ハードウェアでミニポート ドライバーが有効にする必要がある特定のハードウェア タイムスタンプ機能は、NIC ハードウェアの機能によって異なります。 たとえば、NIC ハードウェアがPtpV2OverUDPIPv4EventMsgReceiveHw
、PtpV2OverUDPIPv6EventMsgReceiveHw
とTaggedTransmitHw
機能のみをサポートしている場合、*PtpHardwareTimestamp キーワードが有効になっている場合、ミニポートはこれらのハードウェア タイムスタンプ機能を有効にすることができます。
NIC ハードウェアが、UDP 経由で PTP バージョン 2 を有効にできる複数の形式のハードウェア タイムスタンプ機能をサポートしている場合、IHV はハードウェアとパフォーマンスへの影響などの問題を考慮して、ミニポートが有効にする必要がある機能を決定する必要があります。 たとえば、ハードウェアはAllTransmitHw
とTaggedTransmitHw
タイムスタンプを生成することができます。 もしAllTransmitHw
をオンにすることがTaggedTransmitHw
をオンにすることよりもコストが高い場合、IHV は TaggedTransmitHw
Tx の機能のみをオンにすることを選択できます。
いずれの場合も、ミニポート ドライバーは、NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG 状態表示を使用して有効または無効にしたハードウェア タイムスタンプ機能を正確に 報告する必要があります。
Note
PTP 未加工のイーサネットはサポートされていません。 IHV では、UDP 経由で PTP をサポートする場合に、未加工のイーサネット パケットに対して PTP を処理する最も効率的な方法を決定する必要があります。
Note
PTP バージョン 1 のサポートは必要ありません。 NIC ハードウェアで PTP バージョン 1 もサポートされている場合、IHV は PTP バージョン 2 をサポートするときに PTP バージョン 1 パケットを処理する最も効率的な方法を決定する必要があります。
*PtpHardwareTimestamp の INF エントリ
*PtpHardwareTimestamp INF キーワードは列挙キーワードです。 列挙標準化 INF キーワードには、次の属性があります。
SubkeyName: INF ファイルで指定する必要があるキーワードの名前。
ParamDesc: SubkeyName に関連付けられている表示テキスト。
値: リスト内の各 SubkeyName に関連付けられている列挙整数値。
EnumDesc: メニューに表示される各値に関連付けられている表示テキスト。
既定値: このメニューの既定値。
次の表では、*PtpHardwareTimestamp INF キーワードで使用できる INF エントリについて説明します。
SubkeyName | ParamDesc | Value | EnumDesc |
---|---|---|---|
*PtpHardwareTimestamp | PTP ハードウェア タイムスタンプ | 0 (既定値) | 無効 |
1 | Enabled |
Note
ミニポート ドライバーが *PtpHardwareTimestamp キーワードのサポートされていない値を見つけた場合は、ハードウェア タイムスタンプ機能を完全に無効にする必要があります。
*SoftwareTimestamp INF キーワード
*SoftwareTimestamp キーワードは、ミニポート ドライバーが対応するソフトウェア タイムスタンプの種類に対応します。 ミニポート ドライバーは、このキーワードの構成された値を使用して、現在有効になっているサポートされているソフトウェアタイムスタンプ機能のどれを決定します。
*SoftwareTimestamp キーワードの既定の設定は無効になっており、ミニポート内のすべての種類のソフトウェア タイムスタンプ サポートは既定で無効にする必要があります。
ミニポートは、現在有効になっているさまざまなタイムスタンプ機能を NDIS に通知する NDIS_STATUS_TIMESTAMP_CURRENT_CONFIG 状態の表示を生成します。
ソフトウェア タイムスタンプに対応する 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 | Value | EnumDesc |
---|---|---|---|
*SoftwareTimestamp | ソフトウェア タイムスタンプ | 0 (既定値) | 無効 |
1 | RxAll: この列挙値は、Rx 中にすべてのパケットのソフトウェア タイムスタンプを生成するミニポート ドライバーの機能に対応します。 | ||
2 | TxAll: この列挙値は、Tx 中にすべてのパケットのソフトウェア タイムスタンプを生成するミニポート ドライバーの機能に対応します。 | ||
3 | RxAll & TxAll: この列挙値は、Rx および Tx 中にすべてのパケットのソフトウェア タイムスタンプを生成するミニポート ドライバーの機能に対応します。 | ||
4 | TaggedTx: この列挙値は、オペレーティング システムによって指定された場合に特定の Tx パケットのソフトウェア タイムスタンプを生成するミニポート ドライバー機能に対応します。 | ||
5 | RxAll & TaggedTx: この列挙値は、ミニポート ドライバーの機能に対応して、Rx 中のすべてのパケットのソフトウェア タイムスタンプを生成し、オペレーティング システムで特定の Tx パケットを生成する場合に対応します。 |
Note
ミニポート ドライバーが *SoftwareTimestamp キーワードのサポートされていない値を見つけた場合は、ソフトウェア タイムスタンプ機能を完全に無効にする必要があります。