Search code examples
windowstcpudpchecksumipv4

WinXP checksum offloading capabilities


I have a query on Windows XP's offloading capabilities for UDP and IPv4 header checksum.

I am reporting to NDIS that I support checksum offload for TCP/UDP/IPv4 header in the QUERY to OID_TCP_TASK_OFFLOAD. However I get SET to OID_TCP_TASK_OFFLOAD for only TCP and IPv4, but not UDP. Moreover during IPv4 traffic the NDIS is not offloading the checksum calculation to miniport. So in short only TCP checksum is properly offloaded whereas UDP and IPv4 is not in XP SP3.

When I test the same driver on a Windows 7 PC, I see that all 3, i.e. TCP, UDP and IPv4, are properly offloaded by NDIS. This proves that I am doing everything right in terms of reporting the capabilities to NDIS.

But then why does it not work in XP? Do we need to enable this support through some other means (INF, registry etc.)?

One more query, Does Windows 7 or Windows XP support ICMP checksum offload?


Solution

  • See this link.

    According to the page, we know UDP checksum offload isn't supported by win2k.

    The next release of windows is xp. Now we know software improvement of OS kernel is a big process that cost much year.