Please clarify these doubts about NDIS drivers

Hi everybody,
Myself is completly new to drivers field as i am a fresher just passed out
my graduation in computers.We are writing NDIS driver for Win NT 4.0.I have
to write TDI driver in that project,
After studying a bit about TDI and NDIS i have landed myself in following
doubts.

1.When we regerter a protocol with NDIS using “ndisopenadapter”,what does
that “protocol” actully means??Should it be written in TDI driver or
Protocol driver??please elaborate.

2.The media types which NDIS supports does not include “serial port”.Since i
have to write to serial port what should i do??what is the medium i should
specify in TDI as “supported medium”??Or is there some other way to do the
same.

I will bw very thankful to u all if u help me out from these doubts.

Chandandeep Singh Pabla
S/W Engineer,
DCM Technologies.


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Hi, all my friends, I am trying to developing the implementation of storage
area network in data fast storage in sonar.
We use the HP Tachylon TL2.2 chip , embedded windows nt4.0 workstation,
memory 32MB,
Pentium 166mmx running on 430HX motherboard, driver: agilent fibre channel
driver 2.02.

We need to know,

  1. Would you like to tell me what the maximum performance based on the above
    system?
    Is 100MB/s achievable?

  2. Now we just get 35MB/s, Pls commend.

  3. Pls gurus tell me if we can improve the performance by modifying driver
    or others?

best regards
yours sincerely


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

The protocol overhead will restrict you to just below 80mb/s on large block
transfers, this slows dramatically as the blocksize decreases, and you may
also be limited by the capabilities of the storage device…
Regards Bill

-----Original Message-----
From: icq [SMTP:xxxxx@arl.nus.edu.sg]
Sent: 09 February 2001 09:12
To: NT Developers Interest List
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

Hi, all my friends, I am trying to developing the implementation of
storage
area network in data fast storage in sonar.
We use the HP Tachylon TL2.2 chip , embedded windows nt4.0 workstation,
memory 32MB,
Pentium 166mmx running on 430HX motherboard, driver: agilent fibre
channel
driver 2.02.

We need to know,

  1. Would you like to tell me what the maximum performance based on the
    above
    system?
    Is 100MB/s achievable?

  2. Now we just get 35MB/s, Pls commend.

  3. Pls gurus tell me if we can improve the performance by modifying
    driver
    or others?

best regards
yours sincerely


You are currently subscribed to ntdev as: xxxxx@emc.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

First, I can’t really contribute to the problem.

But, just out of curiosity, the original poster mentioned
35 MB/s, which I interpret as 35 MegaBytes per second,
you use the term 80 mb/s, which I would interpret as
80 millibits per second.
Is there a convention how to use mb M, m, B, b … that I’m not aware of?

Thanks
Robin

-----Original Message-----
From: xxxxx@emc.com [mailto:xxxxx@emc.com]
Sent: Friday, February 09, 2001 12:26 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

The protocol overhead will restrict you to just below 80mb/s
on large block
transfers, this slows dramatically as the blocksize
decreases, and you may
also be limited by the capabilities of the storage device…
Regards Bill

> -----Original Message-----
> From: icq [SMTP:xxxxx@arl.nus.edu.sg]
> Sent: 09 February 2001 09:12
> To: NT Developers Interest List
> Subject: [ntdev] Re: Please clarify these doubts about
NDIS drivers
>
> Hi, all my friends, I am trying to developing the implementation of
> storage
> area network in data fast storage in sonar.
> We use the HP Tachylon TL2.2 chip , embedded windows nt4.0
workstation,
> memory 32MB,
> Pentium 166mmx running on 430HX motherboard, driver: agilent fibre
> channel
> driver 2.02.
>
> We need to know,
> 1. Would you like to tell me what the maximum performance
based on the
> above
> system?
> Is 100MB/s achievable?
>
> 2. Now we just get 35MB/s, Pls commend.
>
> 3. Pls gurus tell me if we can improve the performance by modifying
> driver
> or others?
>
>
> best regards
> yours sincerely
>
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@emc.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@exgate.tek.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

M = Mega (2^20)
m = milli (0.001)

B = Byte
b = bit

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of
xxxxx@exgate.tek.com
Sent: Friday, February 09, 2001 6:38 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

First, I can’t really contribute to the problem.

But, just out of curiosity, the original poster mentioned
35 MB/s, which I interpret as 35 MegaBytes per second,
you use the term 80 mb/s, which I would interpret as
80 millibits per second.
Is there a convention how to use mb M, m, B, b … that I’m not aware of?

Thanks
Robin

> -----Original Message-----
> From: xxxxx@emc.com [mailto:xxxxx@emc.com]
> Sent: Friday, February 09, 2001 12:26 PM
> To: NT Developers Interest List
> Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers
>
>
> The protocol overhead will restrict you to just below 80mb/s
> on large block
> transfers, this slows dramatically as the blocksize
> decreases, and you may
> also be limited by the capabilities of the storage device…
> Regards Bill
>
>
> > -----Original Message-----
> > From: icq [SMTP:xxxxx@arl.nus.edu.sg]
> > Sent: 09 February 2001 09:12
> > To: NT Developers Interest List
> > Subject: [ntdev] Re: Please clarify these doubts about
> NDIS drivers
> >
> > Hi, all my friends, I am trying to developing the implementation of
> > storage
> > area network in data fast storage in sonar.
> > We use the HP Tachylon TL2.2 chip , embedded windows nt4.0
> workstation,
> > memory 32MB,
> > Pentium 166mmx running on 430HX motherboard, driver: agilent fibre
> > channel
> > driver 2.02.
> >
> > We need to know,
> > 1. Would you like to tell me what the maximum performance
> based on the
> > above
> > system?
> > Is 100MB/s achievable?
> >
> > 2. Now we just get 35MB/s, Pls commend.
> >
> > 3. Pls gurus tell me if we can improve the performance by modifying
> > driver
> > or others?
> >
> >
> > best regards
> > yours sincerely
> >
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@emc.com
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —
> You are currently subscribed to ntdev as: xxxxx@exgate.tek.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>


You are currently subscribed to ntdev as: xxxxx@pdq.net
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

My mistake! I was of course talking MegaBytes per second, Sorry…Regards
Bill

-----Original Message-----
From: xxxxx@exgate.tek.com [SMTP:xxxxx@exgate.tek.com]
Sent: 09 February 2001 12:38
To: NT Developers Interest List
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

First, I can’t really contribute to the problem.

But, just out of curiosity, the original poster mentioned
35 MB/s, which I interpret as 35 MegaBytes per second,
you use the term 80 mb/s, which I would interpret as
80 millibits per second.
Is there a convention how to use mb M, m, B, b … that I’m not aware of?

Thanks
Robin

> -----Original Message-----
> From: xxxxx@emc.com [mailto:xxxxx@emc.com]
> Sent: Friday, February 09, 2001 12:26 PM
> To: NT Developers Interest List
> Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers
>
>
> The protocol overhead will restrict you to just below 80mb/s
> on large block
> transfers, this slows dramatically as the blocksize
> decreases, and you may
> also be limited by the capabilities of the storage device…
> Regards Bill
>
>
> > -----Original Message-----
> > From: icq [SMTP:xxxxx@arl.nus.edu.sg]
> > Sent: 09 February 2001 09:12
> > To: NT Developers Interest List
> > Subject: [ntdev] Re: Please clarify these doubts about
> NDIS drivers
> >
> > Hi, all my friends, I am trying to developing the implementation of
> > storage
> > area network in data fast storage in sonar.
> > We use the HP Tachylon TL2.2 chip , embedded windows nt4.0
> workstation,
> > memory 32MB,
> > Pentium 166mmx running on 430HX motherboard, driver: agilent fibre
> > channel
> > driver 2.02.
> >
> > We need to know,
> > 1. Would you like to tell me what the maximum performance
> based on the
> > above
> > system?
> > Is 100MB/s achievable?
> >
> > 2. Now we just get 35MB/s, Pls commend.
> >
> > 3. Pls gurus tell me if we can improve the performance by modifying
> > driver
> > or others?
> >
> >
> > best regards
> > yours sincerely
> >
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@emc.com
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —
> You are currently subscribed to ntdev as: xxxxx@exgate.tek.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>


You are currently subscribed to ntdev as: xxxxx@emc.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I missed the first posting, but you can definitely get more overall
throughput the 35MB/sec on that configuration. The problem
probably lies in the storage and how you are using it. It is possible
to achieve performance of 80 MB/sec, but you must issue multiple
concurrent I/O’s to a set of disks, trying to stream to a single disk
will not make it.

Don Burn
Windows 2000 Device Driver and Filesystem consulting

----- Original Message -----
From:
To: “NT Developers Interest List”
Sent: Friday, February 09, 2001 7:38 AM
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

> First, I can’t really contribute to the problem.
>
> But, just out of curiosity, the original poster mentioned
> 35 MB/s, which I interpret as 35 MegaBytes per second,
> you use the term 80 mb/s, which I would interpret as
> 80 millibits per second.
> Is there a convention how to use mb M, m, B, b … that I’m not aware of?
>
> Thanks
> Robin
>
> > -----Original Message-----
> > From: xxxxx@emc.com [mailto:xxxxx@emc.com]
> > Sent: Friday, February 09, 2001 12:26 PM
> > To: NT Developers Interest List
> > Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers
> >
> >
> > The protocol overhead will restrict you to just below 80mb/s
> > on large block
> > transfers, this slows dramatically as the blocksize
> > decreases, and you may
> > also be limited by the capabilities of the storage device…
> > Regards Bill
> >
> >
> > > -----Original Message-----
> > > From: icq [SMTP:xxxxx@arl.nus.edu.sg]
> > > Sent: 09 February 2001 09:12
> > > To: NT Developers Interest List
> > > Subject: [ntdev] Re: Please clarify these doubts about
> > NDIS drivers
> > >
> > > Hi, all my friends, I am trying to developing the implementation of
> > > storage
> > > area network in data fast storage in sonar.
> > > We use the HP Tachylon TL2.2 chip , embedded windows nt4.0
> > workstation,
> > > memory 32MB,
> > > Pentium 166mmx running on 430HX motherboard, driver: agilent fibre
> > > channel
> > > driver 2.02.
> > >
> > > We need to know,
> > > 1. Would you like to tell me what the maximum performance
> > based on the
> > > above
> > > system?
> > > Is 100MB/s achievable?
> > >
> > > 2. Now we just get 35MB/s, Pls commend.
> > >
> > > 3. Pls gurus tell me if we can improve the performance by modifying
> > > driver
> > > or others?
> > >
> > >
> > > best regards
> > > yours sincerely
> > >
> > >
> > >
> > >
> > > —
> > > You are currently subscribed to ntdev as: xxxxx@emc.com
> > > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@exgate.tek.com
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
>
> —
> You are currently subscribed to ntdev as: xxxxx@acm.org
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

>1. Would you like to tell me what the maximum performance based on the
above

system?
Is 100MB/s achievable?

Doing what?

You probably mean 100 Mb (Megabits). You can easily saturate a 100Mb line
pushing large packets. Modern 10/100 NIC-s and drivers are capable of
sending/receiving 20K to 120K packets per second. (depending on NIC, OS and
driver). It takes about 8300 full-size Ethernet packets to saturate
one line, one way (remember, it is full duplex).

When your traffic consists of a large number of small packets, the
NIC/driver
overhead and context switches come increasingly into play.

If you tell us more about what you have in mind, I would be glad to
go into more detail.

/sG


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I think the original question is on a 1Gb/100MB Fibre Channel
wire, which most of us use to carry SCSI, he is using a driver
that also supports using this wire to carry TDI/NDIS packets.

[SCSI is a protocol on top of Fibre Channel. Fibre Channel can
also just be used to send link level packets. ]

Fibre channel, as Bill mentioned, can get about 80MB/sec of real data
on large SCSI transfers (64K+). But it sounds like the question is
more along the lines of what can be sent via TCP or UDP stack
though the agilent NDIS driver.

This should behave about like a 1G Ethernet if the packet size is restricted
assuming Ethernet, and the performance will improve for large
packet sizes.

-DH

----- Original Message -----
From: “Steve Gonczi”
To: “NT Developers Interest List”
Sent: Friday, February 09, 2001 10:41 AM
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

>
> >1. Would you like to tell me what the maximum performance based on the
> above
> >system?
> > Is 100MB/s achievable?
>
> Doing what?
>
> You probably mean 100 Mb (Megabits). You can easily saturate a 100Mb line
> pushing large packets. Modern 10/100 NIC-s and drivers are capable of
> sending/receiving 20K to 120K packets per second. (depending on NIC, OS and
> driver). It takes about 8300 full-size Ethernet packets to saturate
> one line, one way (remember, it is full duplex).
>
> When your traffic consists of a large number of small packets, the
> NIC/driver
> overhead and context switches come increasingly into play.
>
> If you tell us more about what you have in mind, I would be glad to
> go into more detail.
>
> /sG
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@syssoftsol.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

>Fibre channel, as Bill mentioned, can get about 80MB/sec of real data

on large SCSI transfers (64K+). But it sounds like the question is
more along the lines of what can be sent via TCP or UDP stack
though the agilent NDIS driver.

If we’re talking NDIS network receive throughput on a fibre channel
adapter, the Pentium 166mmx running on 430HX motherboard will have no
chance of more than about 35 MBytes/sec or so. As NDIS requires every
packet to be copied, and this processor/chipset has about 35 MByte/sec of
memory copy performance, there is no possibility of achieving 100 MBytes/sec.

If were talking SCSI protocols over fibre channel, performance may be
better as no memory copy will be needed. The 430HX chispet only has a
single PCI bus, so it seems pretty impossible to stream 100 MBytes/sec of
data in from some custom hardware device, and then stream it back out to
disk at 100 MBytes/sec, as the PCI bus can only deliver 132 MBytes/sec
total under perfect conditions. The Tachylon fibre channel device is a PCI
bus master, and assume the interface to the sonar device is too, so that’s
two trips across the bus.

Offhand, getting 35 MBytes/sec of streaming transfer from the sonar device
to disk seems not so bad for this hardware. If we assume two trips across
the PCI bus, then 35 MByte/sec is more than 50% of the theoretical maximum,
assuming you could keep the PCI bus perfectly transferring all the time.
Real world systems don’t do nearly this well, as there are command
processing latencies, and data phase latencies, and many assorted other
inefficiencies.

  • Jan

You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

----- Original Message -----
From: Chandandeep Singh Pabla
To: NT Developers Interest List
Sent: Friday, February 09, 2001 1:18 AM
Subject: [ntdev] Please clarify these doubts about NDIS drivers

> Hi everybody,
> Myself is completly new to drivers field as i am a fresher just passed
out
> my graduation in computers.We are writing NDIS driver for Win NT 4.0.I
have
> to write TDI driver in that project,
> After studying a bit about TDI and NDIS i have landed myself in following
> doubts.
>
> 1.When we regerter a protocol with NDIS using “ndisopenadapter”,what does
> that “protocol” actully means??Should it be written in TDI driver or
> Protocol driver??please elaborate.
>

The definitions that I use are:

Protocol Driver
---------------------
A NDIS protocol driver is simply any driver whose “lower edge” calls
NdisRegisterProtocol to open a NDIS adapter. The “upper-edge” interface of a
protocol driver can be anything.

Transport Provider Driver
-----------------------------------
A “transport provider driver” or simply a “transport driver” is a special
case of a NDIS protocol driver.

In particular, the upper edge API of a transport provider driver uses the
“transport data interface” (TDI) interface. Transport provider drivers are
sometimes called “TDI drivers” as well.

The Microsoft TCP/IP driver is an example of a transport provider driver. It
is a NDIS protocol driver that uses TDI (plus Microsoft proprietary
extensions) at its upper edge and calls NdisOpenAdapter to open a NDIS
adapter at its lower edge. It is a “transport provider” that provides the
lowest-level implementation for TCP/IP.

The Windows NT 4.0 DDK TDI sample, called “ST” is another example of a
transport driver.

TDI Client Driver
-----------------------
These are kernel-mode drivers that use the services of kernel-mode
transport providers. For example, if you were developing a driver that
needed to use TCP/IP to send and receive data, then the driver that you were
developing would be a “TDI client” of the TCP/IP transport provider. Your
TDI client driver would, of course, be using the TDI interface to use the
services of the TCP/IP transport provider.

Make sense?

There is a pretty crude diagram (that I am trying to improve) at:

http:

Although it is not intended to answer your specific question, it may be
helpful.

Hope this helps,

Thomas F. Divine

PCAUSA - Toolkits & Resources For Network Software Developers
NDIS Protocol - NDIS Intermediate - TDI Client
http: - http:


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com</http:></http:></http:>

OK. We are trying to build a data acquisition cum storage system using fibre
channel host bus adaptors and fibre channel disks (JBOD). We plan to use two
(or may be more depending on the loop performance) Fc-AL loops of 27
controllers each connected to an equal number of JBODs in the same loop. All
the controllers are initiators and they write their assigned target hard
disk. This is a short description of the system.

The problem: We built some cards (HBA) using Agilent HBFC-5100B FC protocol
chips. The host processor on which these cards will reside is a 166 MMX
Pentium embedded processor running on Windows NTe OS. We would like to know
what would be the performance limitation due to the slow host processor. We
ran some tests on the commercially available cards using IOMETER and we
found that the performance is limited by the host processor speed. The
55MBytes/Sec throughput was observed when the Agilent HBA (bought
commercially not manufactured by us) was tested using 266 MMX Pentium
processor and IOMETER. We also understand that the above said chip needs
processor intervention to tackle some of the protocol specific issues. How
far this wil slow down the data thru put? What would be the impact if we are
using the 166 MMX processor? Anybody done any benchmarking?

----- Original Message -----
From: “Steve Gonczi”
To: “NT Developers Interest List”
Sent: Friday, February 09, 2001 7:41 AM
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

>
> >1. Would you like to tell me what the maximum performance based on the
> above
> >system?
> > Is 100MB/s achievable?
>
> Doing what?
>
> You probably mean 100 Mb (Megabits). You can easily saturate a 100Mb line
> pushing large packets. Modern 10/100 NIC-s and drivers are capable of
> sending/receiving 20K to 120K packets per second. (depending on NIC, OS
and
> driver). It takes about 8300 full-size Ethernet packets to saturate
> one line, one way (remember, it is full duplex).
>
> When your traffic consists of a large number of small packets, the
> NIC/driver
> overhead and context switches come increasingly into play.
>
> If you tell us more about what you have in mind, I would be glad to
> go into more detail.
>
> /sG
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@arl.nus.edu.sg
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Hi, all my friends, I still have some questions.
1.when we test the performance of the throughput (2 or 3 initiator and 8
target)
using IOMETER, we found that the perfomance strongly depend on the host
processor ability, so would you like to tell me:
If we using the INTEL 166 mmx, what is the maximum throughput we can get?

2 when we use fibre channel analyser to monitor the perfomance of the same
loop,
the throughput of analyser recorded is just half of IOMTER’s. So, I want
to ask:
why is there the difference?

----- Original Message -----
From:
To: “NT Developers Interest List”
Sent: Friday, February 09, 2001 3:25 AM
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

> The protocol overhead will restrict you to just below 80mb/s on large
block
> transfers, this slows dramatically as the blocksize decreases, and you may
> also be limited by the capabilities of the storage device…
> Regards Bill
>
>
> > -----Original Message-----
> > From: icq [SMTP:xxxxx@arl.nus.edu.sg]
> > Sent: 09 February 2001 09:12
> > To: NT Developers Interest List
> > Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers
> >
> > Hi, all my friends, I am trying to developing the implementation of
> > storage
> > area network in data fast storage in sonar.
> > We use the HP Tachylon TL2.2 chip , embedded windows nt4.0 workstation,
> > memory 32MB,
> > Pentium 166mmx running on 430HX motherboard, driver: agilent fibre
> > channel
> > driver 2.02.
> >
> > We need to know,
> > 1. Would you like to tell me what the maximum performance based on the
> > above
> > system?
> > Is 100MB/s achievable?
> >
> > 2. Now we just get 35MB/s, Pls commend.
> >
> > 3. Pls gurus tell me if we can improve the performance by modifying
> > driver
> > or others?
> >
> >
> > best regards
> > yours sincerely
> >
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@emc.com
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —
> You are currently subscribed to ntdev as: xxxxx@arl.nus.edu.sg
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> 1.When we regerter a protocol with NDIS using “ndisopenadapter”,what does

that “protocol” actully means??Should it be written in TDI driver or
Protocol driver??please elaborate.

Protocol is registered by NdisRegisterProtocol, not NdisOpenAdapter. The
latter is called to bind the protocol to a network card to send and receive
packets over it.
“Protocol” is ANY driver who calls NdisRegisterProtocol and NdisOpenAdapter.
TDI upper edge can be convinient but not a must.

The NdisOpenAdapter function requires the network card device name.
There are 2 ways of obtaining it:

  1. NDIS3 way - by parsing the Linkage registry key (or any other registry
    key of your private format).
  2. NDIS4 way - by relying on ProtocolBindAdapter callback (which has a
    device name among its parameters) and calling NdisOpenAdapter from this
    callback.

NDIS4 protocols must a) pass the version 4 structure to NdisRegisterProtocol
AND b) they must be installed by Network Control Panel as a network
component. See the DDK documentation on what are the registry entries
necessary for a network component.

The requirement of “must be installed by Network Control Panel” is NOT a
must for NDIS3 protocols - they can be installed as a usual kernel-mode
driver, provided that they have some way of determining the device name to
pass to NdisOpenAdapter.

The startup order is:
NDIS.SYS
“PNP_TDI” group (NDIS4 protocols, including the TCP/IP stack)
“NDIS” group (network card drivers)
“TDI” group (NDIS3 protocols).

So, if you driver has an NDIS3 protocol functionality, you must have a load
dependency to be loaded after the “NDIS” group.

2.The media types which NDIS supports does not include “serial port”.Since
i
have to write to serial port what should i do??what is the medium i should
specify in TDI as “supported medium”??Or is there some other way to do the
same.

“Serial port” is not a network media type. The network media transfers
packets with some standard headers, while the serial port transfers
bytes.
The network media on top of the serial port is called PPP (point to point
protocol - see RFC1661 for the detailed description).
The OS contains a driver shipped with it (called AsyncMac.sys) which
implements PPP.

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> chance of more than about 35 MBytes/sec or so. As NDIS requires every

packet to be copied,

Are you sure in this?
From what I know on NDIS, one can easily attach any MDL (or partial MDL) as
a tail of the network packet and transmit it without any memcpy in between.
The receive works in the similar way - the NIC’s driver copies the packet
data (possibly by DMA) to the MDL chain provided by the protocol driver.

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

At 11:25 AM 2/10/2001 +0300, you wrote:

> chance of more than about 35 MBytes/sec or so. As NDIS requires every
> packet to be copied,

Are you sure in this?
>From what I know on NDIS, one can easily attach any MDL (or partial MDL) as
a tail of the network packet and transmit it without any memcpy in between.
The receive works in the similar way - the NIC’s driver copies the packet
data (possibly by DMA) to the MDL chain provided by the protocol driver.

I’m not absolutely positive, as it’s been a couple of years since I worked
on an NDIS driver. For the specific processor/chipset involved, this could
be a very serious bottleneck. I had discussed the problem with Microsoft
while Win2000 was in development, and they agreed it was a real problem.
They said it would be fixed in Win2000, but I didn’t offhand see how it was
fixed when the Win2000 DDK came out.

For transmitting a packet, no copy is needed. For receiving a packet, it is
technically possible (at least in NT 4) to avoid the copy much of the time.
In reality, the overhead of indicating a single packet header up to the
protocol, getting a callback to start the transfer of the rest of the
packet, and then eventually indicating the completion of the transfer, is
more overhead than copying the packet. This is especially true now with the
Pentium 4, as it’s memory copy performance is 650 MBytes/sec.

A typical NDIS driver will get an interrupt when a bunch of packets have
been DMA’d into temporary buffers. A bunch of these packets will get passed
up to the protocol, where it figures out which virtual circuit they belong
to and copies the bytes from into either the application buffer or protocol
stream buffer if no application buffer is currently available. The packet
buffers then get recycled and put back on the hardware free buffer list.
For a fast network device (gigethernet and fibre channel are around 100
MBytes/sec), and a slow memory copy processor (the Pentium 4 is about 650
MBytes/sec, the Pentium 3 is about 135 MByte/sec, the older Pentiums were
down around 35 MBytes/sec), this is not such a good architecture.

I believe there also now is a LAN card that runs TCP/IP in the firmware. I
assume this would no longer be called an NDIS device though. I also assume
it’s often able to eliminate the copy because the user buffer physical
addresses would get passed down into the device. The hardware can then do
the TCP stream reassembly.

As a note, ATM adapters I believe have always done the virtual circuit
stream reassembly in hardware, so have delivered received data directly
into the application buffer.

I also know that some fibre channel adapters are not so flexible about
their alignment requirements for data they DMA. One basic requirement of
avoiding copying received network data is the hardware has to be willing to
DMA to arbitrary byte addresses. This is caused by the network header and
the fact that stream packets can be broken on arbitrary byte boundaries.
SCSI like disk transfers on the other hand, are generally very well
aligned, like on sector boundaries.

  • Jan

You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

In a peer to peer connection, fibre channel can do 102 mega-bytes per second
using concurrent IO and 2 meg buffers.

Gary G. Little
Sr. Staff Engineer
Broadband Storage, LLC
xxxxx@broadstor.com
xxxxx@delphieng.com

-----Original Message-----
From: Dave Harvey [mailto:xxxxx@syssoftsol.com]
Sent: Friday, February 09, 2001 8:41 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

I think the original question is on a 1Gb/100MB Fibre Channel
wire, which most of us use to carry SCSI, he is using a driver
that also supports using this wire to carry TDI/NDIS packets.

[SCSI is a protocol on top of Fibre Channel. Fibre Channel can
also just be used to send link level packets. ]

Fibre channel, as Bill mentioned, can get about 80MB/sec of real data
on large SCSI transfers (64K+). But it sounds like the question is
more along the lines of what can be sent via TCP or UDP stack
though the agilent NDIS driver.

This should behave about like a 1G Ethernet if the packet size is restricted
assuming Ethernet, and the performance will improve for large
packet sizes.

-DH

----- Original Message -----
From: “Steve Gonczi”
To: “NT Developers Interest List”
Sent: Friday, February 09, 2001 10:41 AM
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

>
> >1. Would you like to tell me what the maximum performance based on the
> above
> >system?
> > Is 100MB/s achievable?
>
> Doing what?
>
> You probably mean 100 Mb (Megabits). You can easily saturate a 100Mb line
> pushing large packets. Modern 10/100 NIC-s and drivers are capable of
> sending/receiving 20K to 120K packets per second. (depending on NIC, OS
and
> driver). It takes about 8300 full-size Ethernet packets to saturate
> one line, one way (remember, it is full duplex).
>
> When your traffic consists of a large number of small packets, the
> NIC/driver
> overhead and context switches come increasingly into play.
>
> If you tell us more about what you have in mind, I would be glad to
> go into more detail.
>
> /sG
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@syssoftsol.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@delphieng.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I’ve seen above 130 MB/s on this type of full duplex FC connection. It should
be possible to push this above 160MB/s full duplex, but there are convoy
effects of buffer credit that get in the way (you can’t receive the credit to transmit
until the large block of data in front of the credit finishes).

Also, many systems will start to hit PCI bus limitations under this type of load.

-DH

----- Original Message -----
From: “Gary Little”
To: “NT Developers Interest List”
Sent: Monday, February 12, 2001 11:46 AM
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

> In a peer to peer connection, fibre channel can do 102 mega-bytes per second
> using concurrent IO and 2 meg buffers.
>
> Gary G. Little
> Sr. Staff Engineer
> Broadband Storage, LLC
> xxxxx@broadstor.com
> xxxxx@delphieng.com
>
>
> -----Original Message-----
> From: Dave Harvey [mailto:xxxxx@syssoftsol.com]
> Sent: Friday, February 09, 2001 8:41 AM
> To: NT Developers Interest List
> Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers
>
>
> I think the original question is on a 1Gb/100MB Fibre Channel
> wire, which most of us use to carry SCSI, he is using a driver
> that also supports using this wire to carry TDI/NDIS packets.
>
> [SCSI is a protocol on top of Fibre Channel. Fibre Channel can
> also just be used to send link level packets.]
>
> Fibre channel, as Bill mentioned, can get about 80MB/sec of real data
> on large SCSI transfers (64K+). But it sounds like the question is
> more along the lines of what can be sent via TCP or UDP stack
> though the agilent NDIS driver.
>
> This should behave about like a 1G Ethernet if the packet size is restricted
> assuming Ethernet, and the performance will improve for large
> packet sizes.
>
> -DH
>
>
> ----- Original Message -----
> From: “Steve Gonczi”
> To: “NT Developers Interest List”
> Sent: Friday, February 09, 2001 10:41 AM
> Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers
>
>
> >
> > >1. Would you like to tell me what the maximum performance based on the
> > above
> > >system?
> > > Is 100MB/s achievable?
> >
> > Doing what?
> >
> > You probably mean 100 Mb (Megabits). You can easily saturate a 100Mb line
> > pushing large packets. Modern 10/100 NIC-s and drivers are capable of
> > sending/receiving 20K to 120K packets per second. (depending on NIC, OS
> and
> > driver). It takes about 8300 full-size Ethernet packets to saturate
> > one line, one way (remember, it is full duplex).
> >
> > When your traffic consists of a large number of small packets, the
> > NIC/driver
> > overhead and context switches come increasingly into play.
> >
> > If you tell us more about what you have in mind, I would be glad to
> > go into more detail.
> >
> > /sG
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@syssoftsol.com
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@delphieng.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —
> You are currently subscribed to ntdev as: xxxxx@syssoftsol.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I haven’t been able to test with the QL 2300 but I do know we have seen it
do 2 gigabits in the lab.

Gary G. Little
Sr. Staff Engineer
Broadband Storage, LLC
xxxxx@broadstor.com
xxxxx@delphieng.com

-----Original Message-----
From: Dave Harvey [mailto:xxxxx@syssoftsol.com]
Sent: Monday, February 12, 2001 9:46 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

I’ve seen above 130 MB/s on this type of full duplex FC connection. It
should
be possible to push this above 160MB/s full duplex, but there are convoy
effects of buffer credit that get in the way (you can’t receive the credit
to transmit
until the large block of data in front of the credit finishes).

Also, many systems will start to hit PCI bus limitations under this type of
load.

-DH

----- Original Message -----
From: “Gary Little”
To: “NT Developers Interest List”
Sent: Monday, February 12, 2001 11:46 AM
Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers

> In a peer to peer connection, fibre channel can do 102 mega-bytes per
second
> using concurrent IO and 2 meg buffers.
>
> Gary G. Little
> Sr. Staff Engineer
> Broadband Storage, LLC
> xxxxx@broadstor.com
> xxxxx@delphieng.com
>
>
> -----Original Message-----
> From: Dave Harvey [mailto:xxxxx@syssoftsol.com]
> Sent: Friday, February 09, 2001 8:41 AM
> To: NT Developers Interest List
> Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers
>
>
> I think the original question is on a 1Gb/100MB Fibre Channel
> wire, which most of us use to carry SCSI, he is using a driver
> that also supports using this wire to carry TDI/NDIS packets.
>
> [SCSI is a protocol on top of Fibre Channel. Fibre Channel can
> also just be used to send link level packets.]
>
> Fibre channel, as Bill mentioned, can get about 80MB/sec of real data
> on large SCSI transfers (64K+). But it sounds like the question is
> more along the lines of what can be sent via TCP or UDP stack
> though the agilent NDIS driver.
>
> This should behave about like a 1G Ethernet if the packet size is
restricted
> assuming Ethernet, and the performance will improve for large
> packet sizes.
>
> -DH
>
>
> ----- Original Message -----
> From: “Steve Gonczi”
> To: “NT Developers Interest List”
> Sent: Friday, February 09, 2001 10:41 AM
> Subject: [ntdev] Re: Please clarify these doubts about NDIS drivers
>
>
> >
> > >1. Would you like to tell me what the maximum performance based on the
> > above
> > >system?
> > > Is 100MB/s achievable?
> >
> > Doing what?
> >
> > You probably mean 100 Mb (Megabits). You can easily saturate a 100Mb
line
> > pushing large packets. Modern 10/100 NIC-s and drivers are capable of
> > sending/receiving 20K to 120K packets per second. (depending on NIC, OS
> and
> > driver). It takes about 8300 full-size Ethernet packets to saturate
> > one line, one way (remember, it is full duplex).
> >
> > When your traffic consists of a large number of small packets, the
> > NIC/driver
> > overhead and context switches come increasingly into play.
> >
> > If you tell us more about what you have in mind, I would be glad to
> > go into more detail.
> >
> > /sG
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@syssoftsol.com
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@delphieng.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —
> You are currently subscribed to ntdev as: xxxxx@syssoftsol.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@delphieng.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com