NDIS_NDK_PERFORMANCE_COUNTERS structure (ntddndis.h)

The NDIS_NDK_PERFORMANCE_COUNTERS structure contains the NDK performance counters.

Syntax

typedef struct _NDIS_NDK_PERFORMANCE_COUNTERS {
  ULONG64 Connect;
  ULONG64 Accept;
  ULONG64 ConnectFailure;
  ULONG64 ConnectionError;
  ULONG64 ActiveConnection;
  ULONG64 Reserved01;
  ULONG64 Reserved02;
  ULONG64 Reserved03;
  ULONG64 Reserved04;
  ULONG64 Reserved05;
  ULONG64 Reserved06;
  ULONG64 Reserved07;
  ULONG64 Reserved08;
  ULONG64 Reserved09;
  ULONG64 Reserved10;
  ULONG64 Reserved11;
  ULONG64 Reserved12;
  ULONG64 Reserved13;
  ULONG64 Reserved14;
  ULONG64 Reserved15;
  ULONG64 Reserved16;
  ULONG64 Reserved17;
  ULONG64 Reserved18;
  ULONG64 Reserved19;
  ULONG64 Reserved20;
  ULONG64 CQError;
  ULONG64 RDMAInOctets;
  ULONG64 RDMAOutOctets;
  ULONG64 RDMAInFrames;
  ULONG64 RDMAOutFrames;
} NDIS_NDK_PERFORMANCE_COUNTERS, *PNDIS_NDK_PERFORMANCE_COUNTERS;

Members

Connect

The number of outbound connections established. In a bitmask of counters (for example, MissingCounterMask member of the NDIS_NDK_CAPABILITIES structure), this is counter 0.

Accept

The number of inbound RDMA connections established. In a bitmask of counters (for example, MissingCounterMask member of the NDIS_NDK_CAPABILITIES structure), this is counter 1.

ConnectFailure

The number of inbound and outbound RDMA connect attempts that failed. In a bitmask of counters, this is counter 2.

ConnectionError

The number of established connections with an error before a consumer disconnected the connection. In a bitmask of counters, this is counter 3.

ActiveConnection

The number of active RDMA connections. In a bitmask of counters, this is counter 4.

Reserved01

Reserved.

Reserved02

Reserved.

Reserved03

Reserved.

Reserved04

Reserved.

Reserved05

Reserved.

Reserved06

Reserved.

Reserved07

Reserved.

Reserved08

Reserved.

Reserved09

Reserved.

Reserved10

Reserved.

Reserved11

Reserved.

Reserved12

Reserved.

Reserved13

Reserved.

Reserved14

Reserved.

Reserved15

Reserved.

Reserved16

Reserved.

Reserved17

Reserved.

Reserved18

Reserved.

Reserved19

Reserved.

Reserved20

Reserved.

CQError

The number of RDMA completion queue (CQs) that went into an error state. In a bitmask of counters, this is counter 25.

RDMAInOctets

The number of bytes for all incoming RDMA traffic. This should include additional layer two protocol overhead. In a bitmask of counters, this is counter 26.

RDMAOutOctets

The number of bytes for all outgoing RDMA traffic. This should include additional layer two protocol overhead. In a bitmask of counters, this is counter 27.

RDMAInFrames

The number, in frames, of layer two frames that carry incoming RDMA traffic. In a bitmask of counters, this is counter 28.

RDMAOutFrames

The number, in frames, of layer two frames that carry outgoing RDMA traffic. In a bitmask of counters, this is counter 29.

Remarks

The NDIS_NDK_PERFORMANCE_COUNTERS structure is used in the CounterSet member of the NDIS_NDK_STATISTICS_INFO structure.

NDK providers are required to support all the performance counters that are included in the NDIS_NDK_PERFORMANCE_COUNTERS structure. However, in the rare case that a provider cannot support a counter due to extreme implementation difficulties, the provider must indicate any unsupported counters with the mask value for the counter which it cannot support. The MissingCounterMask parameter of the NDIS_NDK_CAPABILITIES structure specifies a bitmask that identifies counters that an NDK provider does not support.

All ReservedXX counters must be set to zero by providers and are ignored by NDIS. The term RDMA refers to all NDKPI and NDSPI activity as well as activity through any other RDMA programming interface that might be exposed by the provider. All providers must report the NDKPI and NDSPI activity with these counters, but reporting activity for other RDMA programming interfaces is not a strict requirement. The term RDMA traffic for the RDMA in, out, byte, and frame counters refers to all RDMA activity originating from NDKPI, NDSPI, and other RDMA programming interfaces (if any). This includes reads and writes (that is, direct data placement) as well as sends and receives. This also should also include all of the associated layer two protocol overhead. That is, RDMA traffic on an NDK-capable adapter includes all traffic through the adapter except for traffic that is delivered through the standard NDIS send and receive interface and TCP chimney by NDIS protocol drivers.

Requirements

Requirement Value
Minimum supported client None supported,Supported in NDIS 6.30 and later.
Minimum supported server Windows Server 2012
Header ntddndis.h (include Ndis.h)

See also

NDIS_NDK_CAPABILITIES

NDIS_NDK_STATISTICS_INFO