Stephan
Tue Jun 29 14:18:50 CDT 2004
Jumping into this discussion tardily, I agree with Rohit that packet
prioritizing will of course change packet order (see e.g.
NDIS_PACKET_8021Q_INFO and
http://msdn.microsoft.com/library/en-us/network/hh/network/204_802p_716fe071-3662-47f3-bacd-5eb6004a88c7.xml.asp).
However, one should *never* change the order of packets that have the
same priority. It used to be a known problem (back in these old days)
that NetBEUI crashes when the order of packets gets changed. Although
this was clearly an implementation bug, performance will probably
suffer e.g. for most TCP implementations. (It is IMHO a fairytale that
most current TCP implementations can cope with misordered packets.)
Also, why would one ever need to change the order? Is that something
like when one wants to spend one's change first before the bills?
Stephan
---
On Wed, 23 Jun 2004 11:55:45 -0700, "Rohit Raina"
<RohitR@online.microsoft.com> wrote:
>In "most cases" IM drivers should maintain the order of packets (i.e send in
>the same order in which they received it), as it might be important to some
>protocols.
>
>other cases not covered under the "most cases" will be when you are
>implementing packet prioritization like: implementing 802.1P/Q packet
>priority (like QoS etc). In those cases, you need to send higher priority
>packets ahead of the lower priority packets.
>
>-Rohit Raina
>This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
>"Abhijit" <abhiputs@hotmail.com> wrote in message
>news:326d85fd.0406222339.5f9e5da9@posting.google.com...
>> Hi All,
>>
>> DDK says:
>> MiniportSendPackets receives an array of packet descriptors arranged
>> in an order determined by the caller of NdisSendPackets. In __most
>> cases__, the intermediate driver should maintain this ordering as it
>> passes an incoming array of packets on to the underlying miniport
>> driver. An intermediate driver that modifies per-packet information or
>> OOB data in incoming packets before passing them on to the underlying
>> driver might reorder an incoming array.
>>
>>
>> Now what is this "most cases". Is it the case when "intermediate
>> driver that modifies per-packet information or OOB data in incoming
>> packets", or any IM driver (i.e. one not modifying the packets) ?
>>
>>
>> In IM driver, in MiniportSendPackets routine I am cloning the packets
>> (only TCP/UDP packets) and sending them after some processing. I may
>> have to send the packets out of order due to the processing needs.
>> Will everything work fine ? (I was thinking it must work fine, since
>> IP (on which TCP/UDP rides) is capable of receiving packets out of
>> order.)
>>
>> Any comments will be appreciated.
>>
>> TIA
>> Abhijit