Our FSD has a TDI client component that is used
to send/receive TCP messages to a server. We’ve noticed
that on some motherboard NICs and especially with GigE
nics with checksum offload enabled we get lots of
TDI aborts.
Doesn’t seem to matter what platform – nt, win2k, xp.
We use a dedicated thread that does a TdiBuildReceive()
and then waits for data to arrive. On the send side
we use TdiBuildSend(). I point this out to note that
we don’t use the event handlers.
Using ‘ElCheapo’ 10/100BT nics in a PCI slot works
fine with no problems. It’s only certain motherboard
NICs and GigE nics with checksum enabled that give
problems. If you turn of checksum enable, everything works fine.
Question – is there something that AFD does to setup
or enable a card to do checksum enable?
Is there any way at the kernel level to send data through
AFD rather than directly through the TDI interface to TCP?
If AFD has some magic “hooks” for checksum offload, it
would be very helpful to take advantage of them.
Any hints would be appreciated.
> Question – is there something that AFD does to setup
or enable a card to do checksum enable?
NIC miniport drivers turn on/off checksum offload at initialization time
based on its registry key settings. The keys are setup by NIC’s INF file and
can be changed by “advance” property page. AFAIK, Current version of NDIS
doesn’t instruct miniport to change checksum offload setting while miniport
is running.
HTH,
Calvin Guan, Software Engineer xxxxx@nospam.ati.com
ATI Technologies Inc. Markham ON. Canada
Tel: (905) 882-2600 Ext. 8654
Maybe the send request size starts to matter?
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
----- Original Message -----
From: “Peter Lawthers”
To: “Windows System Software Devs Interest List”
Sent: Thursday, January 29, 2004 9:36 PM
Subject: [ntdev] TDI and checksum offload
> Our FSD has a TDI client component that is used
> to send/receive TCP messages to a server. We’ve noticed
> that on some motherboard NICs and especially with GigE
> nics with checksum offload enabled we get lots of
> TDI aborts.
>
> Doesn’t seem to matter what platform – nt, win2k, xp.
>
> We use a dedicated thread that does a TdiBuildReceive()
> and then waits for data to arrive. On the send side
> we use TdiBuildSend(). I point this out to note that
> we don’t use the event handlers.
>
> Using ‘ElCheapo’ 10/100BT nics in a PCI slot works
> fine with no problems. It’s only certain motherboard
> NICs and GigE nics with checksum enabled that give
> problems. If you turn of checksum enable, everything works fine.
>
> Question – is there something that AFD does to setup
> or enable a card to do checksum enable?
>
> Is there any way at the kernel level to send data through
> AFD rather than directly through the TDI interface to TCP?
> If AFD has some magic “hooks” for checksum offload, it
> would be very helpful to take advantage of them.
>
> Any hints would be appreciated.
>
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com