Hi,
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.)?
Regards,
Suresh
Hi,
Since my last post was immediately before the list developed some problems, I am bumping this thread again in case it went unnoticed.
I see that XP SP3 does not offload any checksum capabilities to my driver whereas Win7 offloads those to the same driver.
Am I missing anything here or WinXP really doesn’t offload these capabilities?
Regards,
Suresh
>
Hi,
Since my last post was immediately before the list developed some
problems, I am bumping this thread again in case it went unnoticed.
I see that XP SP3 does not offload any checksum capabilities to my driver
whereas Win7 offloads those to the same driver.
Am I missing anything here or WinXP really doesn’t offload these capabilities?
Regards,
Suresh
In the absence of a more authoritative answer, I think that the offload capabilities of XP are very limited compared to Vista, or even 2003 with SNP installed.
From memory, you get basic TCP Checksum offload and Large Send offload. Windows will tell you it supports TCP receive offload but it really doesn’t - it checks the checksum and drops the packet if it is incorrect (this matters in a virtual environment where packets might never need to have their checksum calculated!).
James
> I see that XP SP3 does not offload any checksum capabilities to my driver whereas Win7 offloads
those to the same driver.
Am I missing anything here or WinXP really doesn’t offload these capabilities?
Why do you think 11 years old and obsolete OS will support these smarties?
It does not support them. Some TCP/IP offload appeared in Srv2003 SPs, but generally it is a Vista+ thing.
–
Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com
Thanks Maxim. I was confused because so many NDIS drivers on XP claim to support such offloading capabilities. There also appears to be a registry parameter (DisableTaskOffload) which disables the offloading, which implies that such offloading capabilities are by default enabled (and available) on XP.
Well, is there any link or KB article which states the thing you mentioned? Something like ?Windows XP supports so and so offloads only? or ?These offloads are available from Vista onwards?. Very handy (and probably a must) for convincing a customer, you know!
I’m guessing this forum post is yours. You might find my reply there helpful in “convincing” your customer.
http://social.technet.microsoft.com/Forums/en-US/itproxpsp/thread/755c5cf7-d627-4456-8193-ed0b75cac735