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


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

Общее количество входных 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-подключений.

Обратите внимание, что стек узлов предоставляет структуру IP_OFFLOAD_STATS при настройке OID_IP4_OFFLOAD_STATS или OID_IP6_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