WDI_TLV_RECEIVE_COALESCING_CAPABILITIES

WDI_TLV_RECEIVE_COALESCING_CAPABILITIES is a TLV that contains hardware assisted receive filter capabilities.

TLV Type

0x9A

Length

The sum (in bytes) of the sizes of all contained elements.

Values

Type Description
UINT32 Enabled filter types. A bitwise OR of flags that specify the types of receive filters that are enabled. The following flags are valid.

NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED

Specifies that VMQ filters are enabled.

NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED

Specifies that NDIS packet coalescing receive filters are enabled.

UINT32 Enabled queue types. A bitwise OR of flags that specify the types of receive queues that are enabled. The following flag is valid.

NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED

Specifies that virtual machine (VM) queues are enabled. VM queues are used when the miniport driver is enabled to use the VMQ interface.

UINT32 The number of VM queues that the network adapter supports.
UINT32 Supported VM queue properties. A bitwise OR of flags that specify the VM queue properties that the network adapter supports. The following flags are valid.

NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED

The network adapter assigned an MSI-X table entry for each receive queue. Network adapters must not use one MSI-X table entry for multiple receive queues. This flag is mandatory for miniport drivers that support the VMQ or SR-IOV interface.

NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED

The network adapter provides the minimum requirements to support VM queue packet filtering. The miniport driver must set this flag if it is enabled to use the VMQ or SR-IOV interface.

For more information about VMQ requirements for VM queue packet filtering, see Setting and Clearing VMQ Filters.

For more information about SR-IOV requirements for VM queue packet filtering, see Setting a Receive Filter on a Virtual Port.

NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED

The network adapter supports VM queues that split an incoming received packet at the lookahead offset. This offset is equal to or greater than the requested lookahead size. The network adapter uses DMA to transfer the lookahead and post-lookahead data to separate shared memory segments.

Note  Starting with NDIS 6.30, splitting packet data into separate lookahead buffers is no longer supported. Miniport drivers that support this version of NDIS must not set this flag.
NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED

The network adapter supports the ability to dynamically change one of the following processor affinity attributes:

  • The processor affinity of a VM queue in the VMQ interface. The processor affinity is changed through an OID set request of OID_RECEIVE_FILTER_QUEUE_PARAMETERS.

  • The processor affinity of a nondefault virtual port (VPort), which was created in the SR-IOV interface and is attached to the PCI Express (PCIe) physical function (PF) of the network adapter. The processor affinity is changed through an OID set request of OID_NIC_SWITCH_VPORT_PARAMETERS.

NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED

The network adapter supports interrupt coalescing for received packets on any of the following:

  • Multiple VM queues in the VMQ interface.

  • Multiple VPorts that are attached to the PF in the SR-IOV interface.

If this flag is set, the network adapter must coalesce receive interrupts for VM queues or VPorts that have the same processor affinity.

NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE

Indicates that the number of VM queues available is the minimum number of queues available from any member of a Load Balancing Failover (LBFO) team. This flag applies to LBFO filters only. This flag is not set for miniports.

NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE

Indicates that the number of VM queues available is the sum of all the queues available from every member of an LBFO team. This flag applies to LBFO filters only. This flag is not set for miniports.

NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE

The network adapter supports NDIS packet coalescing. Packet coalescing is only supported on the default receive queue of the network adapter. This receive queue has an identifier of NDIS_DEFAULT_RECEIVE_QUEUE_ID.

UINT32 Supported filter tests. A bitwise OR of flags that specify the test operations that a miniport driver supports. The following flags are valid.

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED

The network adapter supports testing the selected header field to determine whether it is equal to a given value.

Note  If the miniport driver supports the VMQ or SR-IOV interfaces, it must set this flag.
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED

The network adapter supports masking (that is, a bitwise AND) of the selected header field to determine whether the result is equal to a specified value.

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED

The network adapter supports testing the selected header field to determine whether it is not equal to a specified value.

UINT32 Supported headers. A bitwise OR of flags that specify the types of network packet headers that a miniport driver can inspect. The following flags are valid.

NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED

The network adapter can inspect the media access control (MAC) header of a network packet. The SupportedMacHeaderFields member defines the various fields from the MAC header that can be inspected.

NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED

The network adapter can inspect the Address Resolution Protocol (ARP) header of a network packet. The SupportedArpHeaderFields member defines the various fields from the ARP header that can be inspected.

NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED

The network adapter can inspect the IP version 4 (IPv4) header of a network packet. The SupportedIPv4HeaderFields member defines the various fields from the IPv4 header that can be inspected.

NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED

The network adapter can inspect the IP version 6 (IPv6) header of a network packet. The SupportedIPv6HeaderFields member defines the various fields from the IPv6 header that can be inspected.

NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED

The network adapter can inspect the User Datagram Protocol (UDP) header of a network packet. The SupportedIPv6HeaderFields member defines the various fields from the UDP header that can be inspected.

UINT32 Supported MAC header fields. A bitwise OR of flags that specify the types of MAC header fields that a miniport driver can inspect. The following flags are valid.

NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED

The network adapter supports inspecting and filtering that are based on the destination MAC address in the MAC header.

Note  Starting with NDIS 6.30, miniport drivers that support the VMQ or SR-IOV interface must set this flag.
NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED

The network adapter supports inspecting and filtering that are based on the source MAC address in the MAC header.

NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED

The network adapter supports inspecting and filtering that are based on the EtherType identifier in the MAC header. For example, the EtherType identifier for IPv4 packets is 0x0800.

NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED

The network adapter supports inspecting and filtering that are based on the VLAN identifier in the MAC header.

NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED

The network adapter supports inspecting and filtering that are based on the priority tag in the MAC header.

NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED

The network adapter supports inspecting and filtering that are based on the packet type field of the IEEE 802.2 subnetwork access protocol (SNAP) header in an 802.3 MAC header.

UINT32 The maximum number of MAC header filters that the miniport driver supports.
UINT32 Maximum queue groups. This value is reserved.
UINT32 Maximum queues per queue group. This value is reserved.
UINT32 The minimum size, in bytes, that the network adapter supports for lookahead packet buffers.
Note  Starting with NDIS 6.30, splitting packet data into separate lookahead buffers is no longer supported. Miniport drivers that support this version of NDIS must set this member to zero.
UINT32 The maximum size, in bytes, that the network adapter supports for lookahead packet buffers.
Note  Starting with NDIS 6.30, splitting packet data into separate lookahead buffers is no longer supported. Miniport drivers that support this version of NDIS must set this member to zero.
UINT32 Supported ARP header fields. A bitwise OR of flags that specify the types of ARP header fields that a miniport driver can inspect. The following flags are valid.

NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED

The network adapter supports receive filtering on the ARP operation field.

NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED

The network adapter supports receive filtering on the ARP source protocol address (SPA) field.

NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED

The network adapter supports receive filtering on the ARP target protocol address (TPA) field.

UINT32 Supported IPv4 header fields. A bitwise OR of flags that specify the types of IPv4 header fields that a miniport driver can inspect. The following flag is valid.

NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED

The network adapter supports receive filtering on the IPv4 protocol field.

UINT32 Supported IPv6 header fields. A bitwise OR of flags that specify the types of IPv6 header fields that a miniport driver can inspect. The following flag is valid.

NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED

The network adapter supports receive filtering on the IPv6 protocol field.

UINT32 Supported UDP header fields. A bitwise OR of flags that specify the types of IPv6 header fields that a miniport driver can inspect. The following flag is valid.

NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED

The network adapter supports receive filtering on the UDP destination port field.

Note  If the received UDP packet contains IPv4 options or IPv6 extension headers, the network adapter can automatically drop the received packet and treat it as if it failed the UDP filter test.
UINT32 The maximum number of tests on packet header fields that can be specified for a single packet coalescing filter. For more information about packet coalescing, see NDIS Packet Coalescing.
Note  Network adapters that support packet coalescing must support five or more packet header fields that can be specified for a single packet coalescing filter. If the adapter does not support packet coalescing, the miniport driver must set this value to zero.
UINT32 The maximum number of packet coalescing receive filters that are supported by the network adapter.
Note  Network adapters that support packet coalescing must support ten or more packet coalescing filters. If the adapter does not support packet coalescing, the miniport driver must set this value to zero.

Requirements

Minimum supported client

Windows 10

Minimum supported server

Windows Server 2016

Header

Wditypes.hpp

See also

NDIS_RECEIVE_FILTER_CAPABILITIES