Поделиться через


структура IP_OFFLOAD_STATS (ndischimney.h)

[Функция разгрузки tcp chimney является устаревшей и не должна использоваться.]

Структура 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

Общее количество входных IP-датаграмм, полученных от интерфейса при разгрузке TCP-подключений, включая ip-датаграммы, полученные по ошибке. См. раздел ipInReceives в RFC 2011.

InOctets

Общее количество октетов (байтов) входных IP-датаграмм, полученных от интерфейса при разгруженных TCP-подключениях. Здесь должны учитываться октеты из датаграмм, подсчитываемых в InReceives . InOctets должно включать количество байтов в заголовке IP и полезных данных.

InDelivers

Количество входных IP-датаграмм, которые были успешно доставлены в разгруженные TCP-подключения. См. раздел ipInDelivers в RFC 2011.

OutRequests

Количество ip-датаграмм, которые целевой объект разгрузки предоставил на свой уровень IP в запросах на передачу по разгруженным TCP-подключениям. См. раздел ipOutRequests в RFC 2011.

OutOctets

Общее количество октетов (байтов) в ip-датаграммах, которые целевой объект разгрузки предоставил своему уровню IP в запросах на передачу по разгруженным TCP-подключениям. Здесь должны учитываться октеты из датаграмм, подсчитываемых в OutRequests . OutOctets должно содержать количество байтов в заголовке IP и полезных данных.

InHeaderErrors

Количество входных IP-датаграмм, полученных при разгрузке TCP-подключений, которые были отменены из-за ошибок в их ip-заголовках. К таким ошибкам относятся недопустимые контрольные суммы, несоответствие номеров версий, другие ошибки формата, превышение срока жизни и ошибки, обнаруженные при обработке параметров IPv6, если целевой объект разгрузки поддерживает такие параметры. (Целевой объект разгрузки не обрабатывает параметры IPv4.) Это число не включает ошибки, возникающие из-за недопустимых адресов назначения. См. раздел ipInHdrErrors в RFC 2011.

InTruncatedPackets

Число входных IP-датаграмм, отклоненных, так как кадр датаграммы не содержит достаточно данных. InTruncatedPackets следует увеличивать, только если фрейм содержал допустимый заголовок, но в противном случае был короче, чем требуется. Кадры, которые слишком короткие, чтобы содержать допустимый заголовок, должны учитываться как InHeaderErrors .

InDiscards

Количество входных IP-датаграмм, полученных при разгрузке TCP-подключений, которые не содержали ничего, чтобы предотвратить их дальнейшую обработку, но были отклонены по причинам выполнения, таким как нехватка доступной памяти или других ресурсов. См. раздел ipInDiscards в RFC 2011.

OutDiscards

Количество выходных IP-датаграмм, которые целевой объект разгрузки предоставил на свой ip-уровень, для которого не возникло никаких проблем, чтобы предотвратить их передачу, но которые были отменены по причинам выполнения, таким как нехватка памяти или другие ресурсы. См. раздел ipOutDiscards в RFC 2011.

OutNoRoutes

Количество выходных ip-датаграмм, переданных целевому объекту разгрузки на его ip-уровень, которые были отклонены, так как не удалось найти маршрут (например, объект состояния разгрузки пути) для передачи их в место назначения. См. раздел ipOutNoRoutes в RFC 2011.

Комментарии

Статистика в структуре IP_OFFLOAD_STATS относится только к ip-датаграммам, которые целевой объект разгрузки обработал при разгрузке TCP-подключений. Целевой объект разгрузки не должен включать счетчики 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 структуру оболочки (перезапускаются с нуля) при превышении максимального значения.

Требования

Требование Значение
Заголовок ndischimney.h (включая Ndischimney.h)

См. также раздел

NDIS_TASK_OFFLOAD

NdisMIndicateReceiveNetBufferLists

OID_IP4_OFFLOAD_STATS

OID_IP6_OFFLOAD_STATS