Fragmenting IP packets across MTUs?

Doug,

Does the NIC support Large Send Offload aka TCP Segmentation Offload (TSO)?
If it does, then the protocol can send packets with size > MTU. The “smart
NIC” will split the large packet internally.

Try to disable any LSO/TSO options too see if it made a difference.

Calvin

Calvin Guan Software Engineer (Former NDIS programmer)
ATI Technologies Inc.
http: www.ati.com

-----Original Message-----
From: Douglas G. Hanley [mailto:xxxxx@neverfailgroup.com]
Sent: Wednesday, April 07, 2004 6:48 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Fragmenting IP packets across MTUs?

I have an NDIS 5.0 intermediate driver. I have seen a crash, caused by my
driver where I am asked to send an IP packet which has a total length field
2.96K whereas the underlying NIC has a frame size of 1.5K. My driver
assumes that the total length field will always be less than the MTU of the
underling NIC and the consequent buffer over run causes the crash. The NIC
in question is an Intel PRO 100 S Desktop. This problem seems to be limited
to a combination of this NIC and W2K3 so I was wondering if this is the
result of some kind of TCP/IP task offloading. Can a NIC split IP packets
across the MTU for the protocol stack or is this a manifestation of some
other bug? Here is the stack trace where I see the crash just in case it
helps,

nfpktfltr!NfWmiScanPacket
nfpktfltr!NfWmiPacketSent
nfpktfltr!SendHandler
NDIS!ndisMSendX
tcpip!ARPSendData
tcpip!ARPTransmit
tcpip!IPLargeXmit
tcpip!TCPSend
tcpip!ProcessPerCpuTCBDelayQ
tcpip!ProcessTCBDelayQ
tcpip!TCPRcvComplete
tcpip!IPRcvComplete
tcpip!ARPRcvComplete
NDIS!ethFilterDprIndicateReceivePacket
nfpktfltr!ReceivePacketHandler
NDIS!ethFilterDprIndicateReceivePacket
e100b325!RxProcessInterrupt
e100b325!MiniportHandleInterrupt
NDIS!ndisMDpcX
nt!KiRetireDpcList

Cheers,

Douglas.

Douglas G. Hanley
Senior Developer
The Neverfail Group

t: +44 (0)870 770 0234
f: +44 (0)870 770 0235
m: +44 (0)790 666 0965

e: mailto:xxxxx
xxxxx@neverfailgroup.com
w: http:</http:> http://www.neverfailgroup.com

http:</http:> Protected by Neverfail for Exchange
_________________________________________________________________


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@ati.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@ati.com
To unsubscribe send a blank email to xxxxx@lists.osr.com</mailto:xxxxx></http:>

Thanks Calvin. Yes the NIC does support task offloading. I was aware
that you can offload TCP segmentation. My understanding was that the
NIC just fragmented TCP packets across IP packets. I am specifically
interested in whether NICs can also fragment IP packets across Ethernet
frames. This is not my current understanding.

Douglas.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Calvin Guan
Sent: 07 April 2004 2:32 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Fragmenting IP packets across MTUs?

Doug,

Does the NIC support Large Send Offload aka TCP Segmentation Offload
(TSO)? If it does, then the protocol can send packets with size > MTU.
The “smart NIC” will split the large packet internally.

Try to disable any LSO/TSO options too see if it made a difference.

Calvin

Calvin Guan Software Engineer (Former NDIS programmer)
ATI Technologies Inc.
http: www.ati.com

-----Original Message-----
From: Douglas G. Hanley [mailto:xxxxx@neverfailgroup.com]
Sent: Wednesday, April 07, 2004 6:48 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Fragmenting IP packets across MTUs?

I have an NDIS 5.0 intermediate driver. I have seen a crash, caused by
my driver where I am asked to send an IP packet which has a total length
field 2.96K whereas the underlying NIC has a frame size of 1.5K. My
driver assumes that the total length field will always be less than the
MTU of the underling NIC and the consequent buffer over run causes the
crash. The NIC in question is an Intel PRO 100 S Desktop. This problem
seems to be limited to a combination of this NIC and W2K3 so I was
wondering if this is the result of some kind of TCP/IP task offloading.
Can a NIC split IP packets across the MTU for the protocol stack or is
this a manifestation of some other bug? Here is the stack trace where I
see the crash just in case it helps,

nfpktfltr!NfWmiScanPacket
nfpktfltr!NfWmiPacketSent
nfpktfltr!SendHandler
NDIS!ndisMSendX
tcpip!ARPSendData
tcpip!ARPTransmit
tcpip!IPLargeXmit
tcpip!TCPSend
tcpip!ProcessPerCpuTCBDelayQ
tcpip!ProcessTCBDelayQ
tcpip!TCPRcvComplete
tcpip!IPRcvComplete
tcpip!ARPRcvComplete
NDIS!ethFilterDprIndicateReceivePacket
nfpktfltr!ReceivePacketHandler
NDIS!ethFilterDprIndicateReceivePacket
e100b325!RxProcessInterrupt
e100b325!MiniportHandleInterrupt
NDIS!ndisMDpcX
nt!KiRetireDpcList

Cheers,

Douglas.

Douglas G. Hanley
Senior Developer
The Neverfail Group

t: +44 (0)870 770 0234
f: +44 (0)870 770 0235
m: +44 (0)790 666 0965

e: mailto:xxxxx
xxxxx@neverfailgroup.com
w: http:</http:>
http://www.neverfailgroup.com

http:</http:> Protected by Neverfail for Exchange
_________________________________________________________________


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@ati.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@ati.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@neverfailgroup.com
To unsubscribe send a blank email to xxxxx@lists.osr.com</mailto:xxxxx></http:>

Large Send Offload in ndis5x only supports TCP packets. Protocols should not
send non-TCP IP packets of size >MTU.

My understanding was that the NIC just fragmented TCP packets across IP
packets. I am specifically interested in whether NICs can also fragment IP
packets across Ethernet frames.

Actually, the NIC splits the large TCP packet into several smaller TCP
packets and sends them over the wire. The TCP header and the IP header of
each “small packet” are derived from the orginal large TCP packet. Most of
these are done by the offload engine on the NIC silicon.

Calvin

Calvin Guan Software Engineer
ATI Technologies Inc. www.ati.com

-----Original Message-----
From: Douglas G. Hanley [mailto:xxxxx@neverfailgroup.com]
Sent: Wednesday, April 07, 2004 9:42 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Fragmenting IP packets across MTUs?

Thanks Calvin. Yes the NIC does support task offloading. I was aware that
you can offload TCP segmentation. My understanding was that the NIC just
fragmented TCP packets across IP packets. I am specifically interested in
whether NICs can also fragment IP packets across Ethernet frames. This is
not my current understanding.

Douglas.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Calvin Guan
Sent: 07 April 2004 2:32 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Fragmenting IP packets across MTUs?

Doug,

Does the NIC support Large Send Offload aka TCP Segmentation Offload (TSO)?
If it does, then the protocol can send packets with size > MTU. The “smart
NIC” will split the large packet internally.

Try to disable any LSO/TSO options too see if it made a difference.

Calvin

Calvin Guan Software Engineer (Former NDIS programmer)
ATI Technologies Inc.
http: www.ati.com

-----Original Message-----
From: Douglas G. Hanley [mailto:xxxxx@neverfailgroup.com]
Sent: Wednesday, April 07, 2004 6:48 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Fragmenting IP packets across MTUs?

I have an NDIS 5.0 intermediate driver. I have seen a crash, caused by my
driver where I am asked to send an IP packet which has a total length field
2.96K whereas the underlying NIC has a frame size of 1.5K. My driver
assumes that the total length field will always be less than the MTU of the
underling NIC and the consequent buffer over run causes the crash. The NIC
in question is an Intel PRO 100 S Desktop. This problem seems to be limited
to a combination of this NIC and W2K3 so I was wondering if this is the
result of some kind of TCP/IP task offloading. Can a NIC split IP packets
across the MTU for the protocol stack or is this a manifestation of some
other bug? Here is the stack trace where I see the crash just in case it
helps,

nfpktfltr!NfWmiScanPacket
nfpktfltr!NfWmiPacketSent
nfpktfltr!SendHandler
NDIS!ndisMSendX
tcpip!ARPSendData
tcpip!ARPTransmit
tcpip!IPLargeXmit
tcpip!TCPSend
tcpip!ProcessPerCpuTCBDelayQ
tcpip!ProcessTCBDelayQ
tcpip!TCPRcvComplete
tcpip!IPRcvComplete
tcpip!ARPRcvComplete
NDIS!ethFilterDprIndicateReceivePacket
nfpktfltr!ReceivePacketHandler
NDIS!ethFilterDprIndicateReceivePacket
e100b325!RxProcessInterrupt
e100b325!MiniportHandleInterrupt
NDIS!ndisMDpcX
nt!KiRetireDpcList

Cheers,

Douglas.

Douglas G. Hanley
Senior Developer
The Neverfail Group

t: +44 (0)870 770 0234
f: +44 (0)870 770 0235
m: +44 (0)790 666 0965

e: mailto:xxxxx
xxxxx@neverfailgroup.com
w: http:</http:> http://www.neverfailgroup.com

http:</http:> Protected by Neverfail for Exchange
_________________________________________________________________


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@ati.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@ati.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@neverfailgroup.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@ati.com
To unsubscribe send a blank email to xxxxx@lists.osr.com</mailto:xxxxx></http:>

Thanks Maxim, but rather than just disable task offloading I would like
to better understand the possibilities as per my questions.

Douglas.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S.
Shatskih
Sent: 07 April 2004 3:49 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Fragmenting IP packets across MTUs?

Probably this is the issue with task offloading.
Try to disable it by failing the task offloading OIDs in your
QueryInformation path.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: Douglas G. Hanley mailto:xxxxx
To: Windows System Software Devs Interest mailto:xxxxx
List
Sent: Wednesday, April 07, 2004 2:48 PM
Subject: [ntdev] Fragmenting IP packets across MTUs?

I have an NDIS 5.0 intermediate driver. I have seen a crash, caused by
my driver where I am asked to send an IP packet which has a total length
field 2.96K whereas the underlying NIC has a frame size of 1.5K. My
driver assumes that the total length field will always be less than the
MTU of the underling NIC and the consequent buffer over run causes the
crash. The NIC in question is an Intel PRO 100 S Desktop. This problem
seems to be limited to a combination of this NIC and W2K3 so I was
wondering if this is the result of some kind of TCP/IP task offloading.
Can a NIC split IP packets across the MTU for the protocol stack or is
this a manifestation of some other bug? Here is the stack trace where I
see the crash just in case it helps,

nfpktfltr!NfWmiScanPacket
nfpktfltr!NfWmiPacketSent
nfpktfltr!SendHandler
NDIS!ndisMSendX
tcpip!ARPSendData
tcpip!ARPTransmit
tcpip!IPLargeXmit
tcpip!TCPSend
tcpip!ProcessPerCpuTCBDelayQ
tcpip!ProcessTCBDelayQ
tcpip!TCPRcvComplete
tcpip!IPRcvComplete
tcpip!ARPRcvComplete
NDIS!ethFilterDprIndicateReceivePacket
nfpktfltr!ReceivePacketHandler
NDIS!ethFilterDprIndicateReceivePacket
e100b325!RxProcessInterrupt
e100b325!MiniportHandleInterrupt
NDIS!ndisMDpcX
nt!KiRetireDpcList

Cheers,

Douglas.

Douglas G. Hanley
Senior Developer
The Neverfail Group

t: +44 (0)870 770 0234
f: +44 (0)870 770 0235
m: +44 (0)790 666 0965

e: mailto:xxxxx
xxxxx@neverfailgroup.com
w: http:</http:>
http://www.neverfailgroup.com

http:</http:> Protected by Neverfail for Exchange
_________________________________________________________________


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@neverfailgroup.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@neverfailgroup.com
To unsubscribe send a blank email to xxxxx@lists.osr.com</mailto:xxxxx></mailto:xxxxx></mailto:xxxxx>

Message Maybe there is a task offloading OID which returns the "offloading MTU", which is larger then real MTU?

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com

----- Original Message -----
From: Douglas G. Hanley
To: Windows System Software Devs Interest List
Sent: Wednesday, April 07, 2004 7:05 PM
Subject: RE: [ntdev] Fragmenting IP packets across MTUs?

Thanks Maxim, but rather than just disable task offloading I would like to better understand the possibilities as per my questions.

Douglas.
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih
Sent: 07 April 2004 3:49 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Fragmenting IP packets across MTUs?

Probably this is the issue with task offloading.
Try to disable it by failing the task offloading OIDs in your QueryInformation path.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: Douglas G. Hanley
To: Windows System Software Devs Interest List
Sent: Wednesday, April 07, 2004 2:48 PM
Subject: [ntdev] Fragmenting IP packets across MTUs?

I have an NDIS 5.0 intermediate driver. I have seen a crash, caused by my driver where I am asked to send an IP packet which has a total length field 2.96K whereas the underlying NIC has a frame size of 1.5K. My driver assumes that the total length field will always be less than the MTU of the underling NIC and the consequent buffer over run causes the crash. The NIC in question is an Intel PRO 100 S Desktop. This problem seems to be limited to a combination of this NIC and W2K3 so I was wondering if this is the result of some kind of TCP/IP task offloading. Can a NIC split IP packets across the MTU for the protocol stack or is this a manifestation of some other bug? Here is the stack trace where I see the crash just in case it helps,

nfpktfltr!NfWmiScanPacket
nfpktfltr!NfWmiPacketSent
nfpktfltr!SendHandler
NDIS!ndisMSendX
tcpip!ARPSendData
tcpip!ARPTransmit
tcpip!IPLargeXmit
tcpip!TCPSend
tcpip!ProcessPerCpuTCBDelayQ
tcpip!ProcessTCBDelayQ
tcpip!TCPRcvComplete
tcpip!IPRcvComplete
tcpip!ARPRcvComplete
NDIS!ethFilterDprIndicateReceivePacket
nfpktfltr!ReceivePacketHandler
NDIS!ethFilterDprIndicateReceivePacket
e100b325!RxProcessInterrupt
e100b325!MiniportHandleInterrupt
NDIS!ndisMDpcX
nt!KiRetireDpcList

Cheers,

Douglas.
Douglas G. Hanley
Senior Developer
The Neverfail Group

t: +44 (0)870 770 0234
f: +44 (0)870 770 0235
m: +44 (0)790 666 0965

e: xxxxx@neverfailgroup.com
w: http://www.neverfailgroup.com



Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com ---
Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@neverfailgroup.com
To unsubscribe send a blank email to xxxxx@lists.osr.com ---
Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@neverfailgroup.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

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

IIRC, a TSO capable MINIPORT tells NDIS about its TSO capability and
MaxOffloadSize in response to a OFFLOAD OID query. Being out of NDIS world
for sometime, I don't really remember the very details:)

Calvin Guan Software Engineer(Former NDIS Programmer)
ATI Technologies Inc. www.ati.com
http:

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Wednesday, April 07, 2004 12:56 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Fragmenting IP packets across MTUs?

Maybe there is a task offloading OID which returns the "offloading MTU",
which is larger then real MTU?

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com mailto:xxxxx
http://www.storagecraft.com http:

----- Original Message -----
From: Douglas G. Hanley mailto:xxxxx
To: Windows System Software Devs Interest mailto:xxxxx List

Sent: Wednesday, April 07, 2004 7:05 PM
Subject: RE: [ntdev] Fragmenting IP packets across MTUs?

Thanks Maxim, but rather than just disable task offloading I would like to
better understand the possibilities as per my questions.

Douglas.

-----Original Message-----
From: xxxxx@lists.osr.com
mailto:xxxxx
[mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih
Sent: 07 April 2004 3:49 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Fragmenting IP packets across MTUs?

Probably this is the issue with task offloading.
Try to disable it by failing the task offloading OIDs in your
QueryInformation path.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com mailto:xxxxx
http://www.storagecraft.com http:

----- Original Message -----
From: Douglas G. Hanley mailto:xxxxx
To: Windows System Software Devs Interest mailto:xxxxx List

Sent: Wednesday, April 07, 2004 2:48 PM
Subject: [ntdev] Fragmenting IP packets across MTUs?

I have an NDIS 5.0 intermediate driver. I have seen a crash, caused by my
driver where I am asked to send an IP packet which has a total length field
2.96K whereas the underlying NIC has a frame size of 1.5K. My driver
assumes that the total length field will always be less than the MTU of the
underling NIC and the consequent buffer over run causes the crash. The NIC
in question is an Intel PRO 100 S Desktop. This problem seems to be limited
to a combination of this NIC and W2K3 so I was wondering if this is the
result of some kind of TCP/IP task offloading. Can a NIC split IP packets
across the MTU for the protocol stack or is this a manifestation of some
other bug? Here is the stack trace where I see the crash just in case it
helps,

nfpktfltr!NfWmiScanPacket
nfpktfltr!NfWmiPacketSent
nfpktfltr!SendHandler
NDIS!ndisMSendX
tcpip!ARPSendData
tcpip!ARPTransmit
tcpip!IPLargeXmit
tcpip!TCPSend
tcpip!ProcessPerCpuTCBDelayQ
tcpip!ProcessTCBDelayQ
tcpip!TCPRcvComplete
tcpip!IPRcvComplete
tcpip!ARPRcvComplete
NDIS!ethFilterDprIndicateReceivePacket
nfpktfltr!ReceivePacketHandler
NDIS!ethFilterDprIndicateReceivePacket
e100b325!RxProcessInterrupt
e100b325!MiniportHandleInterrupt
NDIS!ndisMDpcX
nt!KiRetireDpcList

Cheers,

Douglas.

Douglas G. Hanley
Senior Developer
The Neverfail Group

t: +44 (0)870 770 0234
f: +44 (0)870 770 0235
m: +44 (0)790 666 0965

e: mailto:xxxxx
xxxxx@neverfailgroup.com
w: http:</http:> http://www.neverfailgroup.com

http:</http:> Protected by Neverfail for Exchange
_________________________________________________________________

---
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com ---
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

---
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@neverfailgroup.com
To unsubscribe send a blank email to xxxxx@lists.osr.com ---
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@neverfailgroup.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

---
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

---
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@ati.com
To unsubscribe send a blank email to xxxxx@lists.osr.com</mailto:xxxxx></mailto:xxxxx></mailto:xxxxx></http:></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx></http:></mailto:xxxxx></http:>

MessageAlso note that the OP mentioned "The NIC in question is an Intel PRO
100 S Desktop". It is possible to take the intel miniport driver
from the ddk example, and debug built would allow the OP to see what is
going on at the NIC level, I did it once, w/full stack enabled, IM sample
driver, pkt scheduler all were present. Only thing I could remember was that
offloading and loadbalencing don't go together...

-pro
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Calvin Guan
Sent: Wednesday, April 07, 2004 10:31 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Fragmenting IP packets across MTUs?

IIRC, a TSO capable MINIPORT tells NDIS about its TSO capability and
MaxOffloadSize in response to a OFFLOAD OID query. Being out of NDIS world
for sometime, I don't really remember the very details:)

Calvin Guan Software Engineer(Former NDIS Programmer)
ATI Technologies Inc.
www.ati.com
-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Wednesday, April 07, 2004 12:56 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Fragmenting IP packets across MTUs?

Maybe there is a task offloading OID which returns the "offloading
MTU", which is larger then real MTU?

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: Douglas G. Hanley
To: Windows System Software Devs Interest List
Sent: Wednesday, April 07, 2004 7:05 PM
Subject: RE: [ntdev] Fragmenting IP packets across MTUs?

Thanks Maxim, but rather than just disable task offloading I would
like to better understand the possibilities as per my questions.

Douglas.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih
Sent: 07 April 2004 3:49 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Fragmenting IP packets across MTUs?

Probably this is the issue with task offloading.
Try to disable it by failing the task offloading OIDs in your
QueryInformation path.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: Douglas G. Hanley
To: Windows System Software Devs Interest List
Sent: Wednesday, April 07, 2004 2:48 PM
Subject: [ntdev] Fragmenting IP packets across MTUs?

I have an NDIS 5.0 intermediate driver. I have seen a crash,
caused by my driver where I am asked to send an IP packet which has a total
length field 2.96K whereas the underlying NIC has a frame size of 1.5K. My
driver assumes that the total length field will always be less than the MTU
of the underling NIC and the consequent buffer over run causes the crash.
The NIC in question is an Intel PRO 100 S Desktop. This problem seems to be
limited to a combination of this NIC and W2K3 so I was wondering if this is
the result of some kind of TCP/IP task offloading. Can a NIC split IP
packets across the MTU for the protocol stack or is this a manifestation of
some other bug? Here is the stack trace where I see the crash just in case
it helps,

nfpktfltr!NfWmiScanPacket
nfpktfltr!NfWmiPacketSent
nfpktfltr!SendHandler
NDIS!ndisMSendX
tcpip!ARPSendData
tcpip!ARPTransmit
tcpip!IPLargeXmit
tcpip!TCPSend
tcpip!ProcessPerCpuTCBDelayQ
tcpip!ProcessTCBDelayQ
tcpip!TCPRcvComplete
tcpip!IPRcvComplete
tcpip!ARPRcvComplete
NDIS!ethFilterDprIndicateReceivePacket
nfpktfltr!ReceivePacketHandler
NDIS!ethFilterDprIndicateReceivePacket
e100b325!RxProcessInterrupt
e100b325!MiniportHandleInterrupt
NDIS!ndisMDpcX
nt!KiRetireDpcList

Cheers,

Douglas.
Douglas G. Hanley
Senior Developer
The Neverfail Group

t: +44 (0)870 770 0234
f: +44 (0)870 770 0235
m: +44 (0)790 666 0965

e: xxxxx@neverfailgroup.com
w: http://www.neverfailgroup.com



Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to
xxxxx@lists.osr.com ---
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to
xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@neverfailgroup.com
To unsubscribe send a blank email to
xxxxx@lists.osr.com ---
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@neverfailgroup.com
To unsubscribe send a blank email to
xxxxx@lists.osr.com

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

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@ati.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@garlic.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

MessageAlso if I recall it is not capable of offloading, it is an old
controller. There is a nice document up in intel site that desribes
everything
about their controller family...

-pro
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Prokash Sinha
Sent: Wednesday, April 07, 2004 6:22 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Fragmenting IP packets across MTUs?

Also note that the OP mentioned "The NIC in question is an Intel PRO 100 S
Desktop". It is possible to take the intel miniport driver
from the ddk example, and debug built would allow the OP to see what is
going on at the NIC level, I did it once, w/full stack enabled, IM sample
driver, pkt scheduler all were present. Only thing I could remember was
that offloading and loadbalencing don't go together...

-pro
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Calvin Guan
Sent: Wednesday, April 07, 2004 10:31 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Fragmenting IP packets across MTUs?

IIRC, a TSO capable MINIPORT tells NDIS about its TSO capability and
MaxOffloadSize in response to a OFFLOAD OID query. Being out of NDIS world
for sometime, I don't really remember the very details:)

Calvin Guan Software Engineer(Former NDIS Programmer)
ATI Technologies Inc.
www.ati.com
-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Wednesday, April 07, 2004 12:56 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Fragmenting IP packets across MTUs?

Maybe there is a task offloading OID which returns the "offloading
MTU", which is larger then real MTU?

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: Douglas G. Hanley
To: Windows System Software Devs Interest List
Sent: Wednesday, April 07, 2004 7:05 PM
Subject: RE: [ntdev] Fragmenting IP packets across MTUs?

Thanks Maxim, but rather than just disable task offloading I would
like to better understand the possibilities as per my questions.

Douglas.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Maxim S. Shatskih
Sent: 07 April 2004 3:49 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Fragmenting IP packets across MTUs?

Probably this is the issue with task offloading.
Try to disable it by failing the task offloading OIDs in your
QueryInformation path.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: Douglas G. Hanley
To: Windows System Software Devs Interest List
Sent: Wednesday, April 07, 2004 2:48 PM
Subject: [ntdev] Fragmenting IP packets across MTUs?

I have an NDIS 5.0 intermediate driver. I have seen a crash,
caused by my driver where I am asked to send an IP packet which has a total
length field 2.96K whereas the underlying NIC has a frame size of 1.5K. My
driver assumes that the total length field will always be less than the MTU
of the underling NIC and the consequent buffer over run causes the crash.
The NIC in question is an Intel PRO 100 S Desktop. This problem seems to be
limited to a combination of this NIC and W2K3 so I was wondering if this is
the result of some kind of TCP/IP task offloading. Can a NIC split IP
packets across the MTU for the protocol stack or is this a manifestation of
some other bug? Here is the stack trace where I see the crash just in case
it helps,

nfpktfltr!NfWmiScanPacket
nfpktfltr!NfWmiPacketSent
nfpktfltr!SendHandler
NDIS!ndisMSendX
tcpip!ARPSendData
tcpip!ARPTransmit
tcpip!IPLargeXmit
tcpip!TCPSend
tcpip!ProcessPerCpuTCBDelayQ
tcpip!ProcessTCBDelayQ
tcpip!TCPRcvComplete
tcpip!IPRcvComplete
tcpip!ARPRcvComplete
NDIS!ethFilterDprIndicateReceivePacket
nfpktfltr!ReceivePacketHandler
NDIS!ethFilterDprIndicateReceivePacket
e100b325!RxProcessInterrupt
e100b325!MiniportHandleInterrupt
NDIS!ndisMDpcX
nt!KiRetireDpcList

Cheers,

Douglas.
Douglas G. Hanley
Senior Developer
The Neverfail Group

t: +44 (0)870 770 0234
f: +44 (0)870 770 0235
m: +44 (0)790 666 0965

e: xxxxx@neverfailgroup.com
w: http://www.neverfailgroup.com



Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to
xxxxx@lists.osr.com ---
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to
xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as:
xxxxx@neverfailgroup.com
To unsubscribe send a blank email to
xxxxx@lists.osr.com ---
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id%6

You are currently subscribed to ntdev as:
xxxxx@neverfailgroup.com
To unsubscribe send a blank email to
xxxxx@lists.osr.com

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

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@ati.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@garlic.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@garlic.com
To unsubscribe send a blank email to xxxxx@lists.osr.com