IP_OFFLOAD_STATS 结构 (ndischimney.h)

[TCP 烟囱卸载功能已弃用,不应使用。]

IP_OFFLOAD_STATS 结构包含卸载目标为响应 OID_IP4_OFFLOAD_STATSOID_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

输入 IP 数据报中) 的八进制数 (字节总数,这些字节已从卸载的 TCP 连接上的接口接收。 必须在此处对 InReceives 中计数的数据报中的八进制数。 InOctets 必须在 IP 标头和有效负载中包含字节数。

InDelivers

已成功传递到卸载的 TCP 连接的输入 IP 数据报的数量。 请参阅 RFC 2011 中的“ipInDelivers”。

OutRequests

卸载目标在卸载 TCP 连接上的传输请求中提供给其 IP 层的 IP 数据报数。 请参阅 RFC 2011 中的“ipOutRequests”。

OutOctets

卸载目标在卸载 TCP 连接上的传输请求中提供给其 IP 层的 IP 数据报中) (字节的字节总数。 必须在此处对 OutRequests 中计数的数据报中的八进制数。 OutOctets 必须包括 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 数据报计数。 统计信息与单个网络接口相关。

如果卸载目标有多个网络接口,则必须为每个网络接口保留单独的 IP 卸载统计信息。 如果卸载目标同时支持网络接口的 IPv4 和 IPv6 连接,则必须为该网络接口维护一组 IPv4 卸载统计信息计数器和另一组 IPv6 卸载统计信息计数器。

如果卸载目标的 TCP 烟囱功能已启用 (看到 NDIS_TASK_OFFLOAD) ,并且如果至少有一个邻居状态对象已卸载到卸载目标,则卸载目标可以通过以下两种方式之一处理 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时,卸载目标应重置其所有 IPv4 统计信息计数器,以用于卸载的 TCP 连接。 设置OID_IP6_OFFLOAD_STATS后,卸载目标应重置其所有 IPv6 统计信息计数器以用于卸载的 TCP 连接。

为IP_OFFLOAD_STATS结构提供值的所有计数器在递增超过其最大计数时, (从零) 重启。

要求

要求
Header ndischimney.h (包括 Ndischimney.h)

另请参阅

NDIS_TASK_OFFLOAD

NdisMIndicateReceiveNetBufferLists

OID_IP4_OFFLOAD_STATS

OID_IP6_OFFLOAD_STATS