Reporting a NIC's LSOV2 TCP-Packet-Segmentation Capabilities

An NDIS miniport driver specifies the current large send offload version 2 (LSOV2) TCP-packet-segmentation configuration of a NIC in an NDIS_TCP_LARGE_SEND_OFFLOAD_V2 structure.Miniport drivers must include the current LSOV2 configuration in the NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES structure. Miniport drivers call the NdisMSetMiniportAttributes function from the MiniportInitializeEx function and pass in the information in NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES.

Miniport drivers must report changes in the LSOV2 configuration, if any, in the NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG status indication.

In response to a query of OID_TCP_OFFLOAD_CURRENT_CONFIG, NDIS includes the NDIS_TCP_LARGE_SEND_OFFLOAD_V2 structure in the NDIS_OFFLOAD structure that NDIS returns in the InformationBuffer member of the NDIS_OID_REQUEST structure. NDIS uses the information that the miniport driver provided.

We recommend that a miniport driver that supports LSOV2 hardware should also support LSOV1. This support will enable the TCP/IP transport to use LSOV1 if an NDIS 5.x intermediate driver is installed over a miniport adapter. For more information about LSOV1 capabilities, see Reporting a NIC's LSOV1 TCP-Packet-Segmentation Capabilities.

LSOV2 supports IPv4 and IPv6 packets. The miniport driver must specify the following information for both IPv4 and IPv6 in the NDIS_TCP_LARGE_SEND_OFFLOAD_V2 structure:

  • Encapsulation settings, in the Encapsulation member. For more information about this member, see the Remarks section in NDIS_TCP_LARGE_SEND_OFFLOAD_V2.

  • The maximum bytes of user data that the TCP/IP transport can pass to the miniport driver in a large TCP packet, in the MaxOffLoadSize member.

  • The minimum number of segments that a large TCP packet must be divisible by before the TCP/IP transport can offload it to a NIC for segmentation, in the MinSegmentCount member.

Determining Task Offload Capabilities