структура 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.
Обратите внимание, что при настройке 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) |