IP_OFFLOAD_STATS 構造体 (ndischimney.h)

[TCP チムニー オフロード機能は非推奨であり、使用しないでください。]

IP_OFFLOAD_STATS構造体には、オフロード ターゲットが OID_IP4_OFFLOAD_STATSまたはOID_IP6_OFFLOAD_STATS のクエリに応答して提供する統計 が含まれています

構文

typedef struct _IP_OFFLOAD_STATS {
  ULONG64 InReceives;
  ULONG64 InOctets;
  ULONG64 InDelivers;
  ULONG64 OutRequests;
  ULONG64 OutOctets;
  ULONG   InHeaderErrors;
  ULONG   InTruncatedPackets;
  ULONG   InDiscards;
  ULONG   OutDiscards;
  ULONG   OutNoRoutes;
} IP_OFFLOAD_STATS, *PIP_OFFLOAD_STATS;

メンバー

InReceives

オフロードされた TCP 接続でインターフェイスから受信された入力 IP データグラムの合計数 (エラーで受信した IP データグラムを含む)。 RFC 2011 の「ipInReceives」を参照してください。

InOctets

オフロードされた TCP 接続でインターフェイスから受信した入力 IP データグラム内のオクテット (バイト) の合計数。 InReceives でカウントされるデータグラムからのオクテットは、ここでカウントする必要があります。 InOctet には、IP ヘッダーとペイロードのバイト数を含める必要があります。

InDelivers

オフロードされた TCP 接続に正常に配信された入力 IP データグラムの数。 RFC 2011 の「ipInDelivers」を参照してください。

OutRequests

オフロードされた TCP 接続での送信要求で、オフロード ターゲットがその IP 層に提供した IP データグラムの数。 RFC 2011 の「ipOutRequests」を参照してください。

OutOctets

オフロードされた TCP 接続での送信要求で、オフロード ターゲットがその IP 層に提供した IP データグラム内のオクテット (バイト) の合計数。 OutRequests でカウントされるデータグラムからのオクテットは、ここでカウントする必要があります。 OutOctet には、IP ヘッダーとペイロードのバイト数を含める必要があります。

InHeaderErrors

オフロードされた TCP 接続で受信した入力 IP データグラムの数。IP ヘッダーのエラーが原因で破棄されました。 このようなエラーには、不適切なチェックサム、バージョン番号の不一致、その他の形式エラー、有効期限超過、オフロード ターゲットでそのようなオプションがサポートされている場合に IPv6 オプションの処理中に検出されたエラーが含まれます。 (オフロード ターゲットは IPv4 オプションを処理しません)。この数には、無効な宛先アドレスに起因するエラーは含まれません。 RFC 2011 の「ipInHdrErrors」を参照してください。

InTruncatedPackets

データグラム フレームに十分なデータが含まれていないため、破棄された入力 IP データグラムの数。 InTruncatedPackets は、フレームに有効なヘッダーが含まれているが、それ以外の場合は必須よりも短い場合にのみインクリメントする必要があります。 有効なヘッダーを含むには短すぎるフレームは 、InHeaderErrors としてカウントする必要があります。

InDiscards

オフロードされた TCP 接続で受信した入力 IP データグラムの数。それ以降の処理を妨げるものは何も含まれていなかったが、使用可能なメモリやその他のリソースの不足など、実行時の理由で破棄された。 RFC 2011 の「ipInDiscards」を参照してください。

OutDiscards

オフロード ターゲットが IP 層に提供した出力 IP データグラムの数。転送を防ぐために問題は発生しなかったが、メモリやその他のリソースの不足など、実行時の理由で破棄された。 RFC 2011 の「ipOutDiscards」を参照してください。

OutNoRoutes

オフロード ターゲットが IP 層に提供した出力 IP データグラムの数。これは、ルート (オフロード されたパス状態オブジェクトなど) が宛先に送信されないために破棄されました。 RFC 2011 の「ipOutNoRoutes」を参照してください。

注釈

IP_OFFLOAD_STATS構造の統計は、オフロードターゲットがオフロードされた TCP 接続で処理した IP データグラムにのみ関係します。 オフロード ターゲットには、オフロードされていない接続の IP データグラムの数を含めてはなりません。 統計情報は、1 つのネットワーク インターフェイスに関連します。

オフロード ターゲットに複数のネットワーク インターフェイスがある場合は、ネットワーク インターフェイスごとに個別の IP オフロード統計を維持する必要があります。 オフロード ターゲットがネットワーク インターフェイスに対して IPv4 接続と IPv6 接続の両方をサポートする場合は、1 つの IPv4 オフロード統計カウンターのセットと、そのネットワーク インターフェイスの IPv6 オフロード統計カウンターの別のセットを維持する必要があります。

オフロード ターゲットの TCP チムニー機能が有効になっている場合 ( NDIS_TASK_OFFLOAD参照)、少なくとも 1 つの近隣状態オブジェクトがオフロード ターゲットにオフロードされている場合、オフロード ターゲットは、次の 2 つの方法のいずれかで破損した IP ヘッダーを持つ受信パケットを処理できます。

  • オフロード ターゲットは、 を呼び出すことによって、非オフロード インターフェイスを介してパケットを示すことができます。 NdisMIndicateReceiveNetBufferLists 関数。 この場合、オフロード ターゲットは InHeaderErrors カウンターをインクリメントしないでください。 これが推奨される方法です。
  • または、オフロード ターゲットは、破損したパケット NDIS_TASK_OFFLOAD を削除し、InHeaderErrors カウンターをインクリメントできます。
ホスト スタックは、オフロード ターゲットによって返される統計情報を、オフロードされていない TCP 接続に対してホスト スタックが保持する統計と統合します。

ホスト スタックは、OID_IP4_OFFLOAD_STATSまたはOID_IP6_OFFLOAD_STATSを設定するときに、IP_OFFLOAD_STATS構造体を提供します。 ただし、どちらの場合も、オフロード ターゲットは、IP_OFFLOAD_STATS構造体の値を調べる必要はありません。 代わりに、OID_IP4_OFFLOAD_STATSが設定されている場合、オフロード ターゲットは、オフロードされた TCP 接続のすべての IPv4 統計カウンターをリセットする必要があります。 OID_IP6_OFFLOAD_STATSが設定されている場合、オフロード ターゲットは、オフロードされた TCP 接続の IPv6 統計カウンターをすべてリセットする必要があります。

IP_OFFLOAD_STATS構造体の値を提供するすべてのカウンターは、最大カウントを超えてインクリメントされたときにラップ (ゼロから再開) します。

要件

要件
Header ndischimney.h (Ndischimney.h を含む)

こちらもご覧ください

NDIS_TASK_OFFLOAD

NdisMIndicateReceiveNetBufferLists

OID_IP4_OFFLOAD_STATS

OID_IP6_OFFLOAD_STATS