I need some help. I have been thrown in front of a bus at work. We are
having trouble fully testing our network enabled apps for their resilience to
the effect of lag and dropped packets and I got tagged as the lucky developer
to find a solution. As usual, we can't buy anything; but, in this case I
cant find anything that would work anyway. I need to create a small app that
will allow me to catch UDP/TCP packets going up and down the stack and hold
them for a resizeable amount of time to "fake" lag for our app. I also need
to be able to throw out packets based on some known frequency and unknown
(psuedo-random).

Of course, None of us here are Windows driver developers, but from the
research that I've done, it looks like I will need to make a Intermediate
NDIS driver and/or Filter driver. I am pretty sure I can't do this project
in VS 2005, and I need the WDK....Right? Are there any other things that I
will need before I install the WDK? I have been studying the MSDN literature
on NDIS intermediate/filter drivers, but I am not real sure where to go next.

Thanks a billion for any help. Sorry such a newb.
.NETMystified

RE: Help!! Out of the Pot and into the Driver Fire by AntonBassov

AntonBassov
Sat Feb 03 22:30:00 CST 2007

You don't need DDIS-level driver here. First of all, you can do it with
user-mode packet-filtering API. In the kernel mode, you can write TDI filter
you are speaking about pre-Vista OS versions (which is really easy - source
of TDI-level firewall is freely available on the Web), or WFP callout module
for Vista (to be honest, I am not great fan of WFP). In any case, I would not
recommend you to start your kernel-mode experience from NDIS

However, if you are just desperate to do things at NDIS level, you can write
NDIS IM filter for pre-Vista OS versions (quite a few things to consider
here - more on this below) or NDIS LWF for Vista ( in my experience, NDIS LWF
seems to be trouble-free - up to this point, I just love NDIS 6)


NDIS IM filter is not always easy to write - the same driver may work well
with adapter X and fail with adapter Y. If you choose to write one, I would
highly recommend "Extended Passthru" sample that has been written by Thomas
F.Divine -Thomas did practically all the job for you, including even parsing
packets, so that the only thing you have to do is to add decision-taking
code....


Anton Bassov


".NETMystified" wrote:

> I need some help. I have been thrown in front of a bus at work. We are
> having trouble fully testing our network enabled apps for their resilience to
> the effect of lag and dropped packets and I got tagged as the lucky developer
> to find a solution. As usual, we can't buy anything; but, in this case I
> cant find anything that would work anyway. I need to create a small app that
> will allow me to catch UDP/TCP packets going up and down the stack and hold
> them for a resizeable amount of time to "fake" lag for our app. I also need
> to be able to throw out packets based on some known frequency and unknown
> (psuedo-random).
>
> Of course, None of us here are Windows driver developers, but from the
> research that I've done, it looks like I will need to make a Intermediate
> NDIS driver and/or Filter driver. I am pretty sure I can't do this project
> in VS 2005, and I need the WDK....Right? Are there any other things that I
> will need before I install the WDK? I have been studying the MSDN literature
> on NDIS intermediate/filter drivers, but I am not real sure where to go next.
>
> Thanks a billion for any help. Sorry such a newb.
> .NETMystified

RE: Help!! Out of the Pot and into the Driver Fire by NETMystified

NETMystified
Sat Feb 03 23:04:00 CST 2007

Thanks for the info....do you have a TDI-level firewall you would suggest.
We are for now doing all this on pre-Vista OS.

Whew...again thanks.
-.NETMystified

"Anton Bassov" wrote:

> You don't need DDIS-level driver here. First of all, you can do it with
> user-mode packet-filtering API. In the kernel mode, you can write TDI filter
> you are speaking about pre-Vista OS versions (which is really easy - source
> of TDI-level firewall is freely available on the Web), or WFP callout module
> for Vista (to be honest, I am not great fan of WFP). In any case, I would not
> recommend you to start your kernel-mode experience from NDIS
>
> However, if you are just desperate to do things at NDIS level, you can write
> NDIS IM filter for pre-Vista OS versions (quite a few things to consider
> here - more on this below) or NDIS LWF for Vista ( in my experience, NDIS LWF
> seems to be trouble-free - up to this point, I just love NDIS 6)
>
>
> NDIS IM filter is not always easy to write - the same driver may work well
> with adapter X and fail with adapter Y. If you choose to write one, I would
> highly recommend "Extended Passthru" sample that has been written by Thomas
> F.Divine -Thomas did practically all the job for you, including even parsing
> packets, so that the only thing you have to do is to add decision-taking
> code....
>
>
> Anton Bassov
>
>
> ".NETMystified" wrote:
>
> > I need some help. I have been thrown in front of a bus at work. We are
> > having trouble fully testing our network enabled apps for their resilience to
> > the effect of lag and dropped packets and I got tagged as the lucky developer
> > to find a solution. As usual, we can't buy anything; but, in this case I
> > cant find anything that would work anyway. I need to create a small app that
> > will allow me to catch UDP/TCP packets going up and down the stack and hold
> > them for a resizeable amount of time to "fake" lag for our app. I also need
> > to be able to throw out packets based on some known frequency and unknown
> > (psuedo-random).
> >
> > Of course, None of us here are Windows driver developers, but from the
> > research that I've done, it looks like I will need to make a Intermediate
> > NDIS driver and/or Filter driver. I am pretty sure I can't do this project
> > in VS 2005, and I need the WDK....Right? Are there any other things that I
> > will need before I install the WDK? I have been studying the MSDN literature
> > on NDIS intermediate/filter drivers, but I am not real sure where to go next.
> >
> > Thanks a billion for any help. Sorry such a newb.
> > .NETMystified

RE: Help!! Out of the Pot and into the Driver Fire by AntonBassov

AntonBassov
Sun Feb 04 00:21:00 CST 2007

Check http://tdifw.sourceforge.net/

Anton Bassov

".NETMystified" wrote:

> Thanks for the info....do you have a TDI-level firewall you would suggest.
> We are for now doing all this on pre-Vista OS.
>
> Whew...again thanks.
> -.NETMystified
>
> "Anton Bassov" wrote:
>
> > You don't need DDIS-level driver here. First of all, you can do it with
> > user-mode packet-filtering API. In the kernel mode, you can write TDI filter
> > you are speaking about pre-Vista OS versions (which is really easy - source
> > of TDI-level firewall is freely available on the Web), or WFP callout module
> > for Vista (to be honest, I am not great fan of WFP). In any case, I would not
> > recommend you to start your kernel-mode experience from NDIS
> >
> > However, if you are just desperate to do things at NDIS level, you can write
> > NDIS IM filter for pre-Vista OS versions (quite a few things to consider
> > here - more on this below) or NDIS LWF for Vista ( in my experience, NDIS LWF
> > seems to be trouble-free - up to this point, I just love NDIS 6)
> >
> >
> > NDIS IM filter is not always easy to write - the same driver may work well
> > with adapter X and fail with adapter Y. If you choose to write one, I would
> > highly recommend "Extended Passthru" sample that has been written by Thomas
> > F.Divine -Thomas did practically all the job for you, including even parsing
> > packets, so that the only thing you have to do is to add decision-taking
> > code....
> >
> >
> > Anton Bassov
> >
> >
> > ".NETMystified" wrote:
> >
> > > I need some help. I have been thrown in front of a bus at work. We are
> > > having trouble fully testing our network enabled apps for their resilience to
> > > the effect of lag and dropped packets and I got tagged as the lucky developer
> > > to find a solution. As usual, we can't buy anything; but, in this case I
> > > cant find anything that would work anyway. I need to create a small app that
> > > will allow me to catch UDP/TCP packets going up and down the stack and hold
> > > them for a resizeable amount of time to "fake" lag for our app. I also need
> > > to be able to throw out packets based on some known frequency and unknown
> > > (psuedo-random).
> > >
> > > Of course, None of us here are Windows driver developers, but from the
> > > research that I've done, it looks like I will need to make a Intermediate
> > > NDIS driver and/or Filter driver. I am pretty sure I can't do this project
> > > in VS 2005, and I need the WDK....Right? Are there any other things that I
> > > will need before I install the WDK? I have been studying the MSDN literature
> > > on NDIS intermediate/filter drivers, but I am not real sure where to go next.
> > >
> > > Thanks a billion for any help. Sorry such a newb.
> > > .NETMystified

RE: Help!! Out of the Pot and into the Driver Fire by pavel_a

pavel_a
Sun Feb 04 05:46:01 CST 2007

".NETMystified" wrote:

Check this:
http://www.pcausa.com/ndispim9x/iplce.htm
http://www.deterministicnetworks.com/Products/dne.asp

>......
> As usual, we can't buy anything

But this does not mean that you can't pay for consulting services?

--PA


Re: Help!! Out of the Pot and into the Driver Fire by Maxim

Maxim
Sun Feb 04 07:58:30 CST 2007

Install MS's Virtual PC, install FreeBSD there, patch the routing tables
and VPC's network setup so that the real machine will only access the physical
network thru the FreeBSD router, then use "dummynet" FreeBSD's traffic shaper.

No need in driver development. Driver development to create a test suite is
surely a man*hours killer.

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

".NETMystified" <NETMystified@discussions.microsoft.com> wrote in message
news:2DA6D6CB-524B-4C50-B5B3-38E496411AA9@microsoft.com...
> I need some help. I have been thrown in front of a bus at work. We are
> having trouble fully testing our network enabled apps for their resilience to
> the effect of lag and dropped packets and I got tagged as the lucky developer
> to find a solution. As usual, we can't buy anything; but, in this case I
> cant find anything that would work anyway. I need to create a small app that
> will allow me to catch UDP/TCP packets going up and down the stack and hold
> them for a resizeable amount of time to "fake" lag for our app. I also need
> to be able to throw out packets based on some known frequency and unknown
> (psuedo-random).
>
> Of course, None of us here are Windows driver developers, but from the
> research that I've done, it looks like I will need to make a Intermediate
> NDIS driver and/or Filter driver. I am pretty sure I can't do this project
> in VS 2005, and I need the WDK....Right? Are there any other things that I
> will need before I install the WDK? I have been studying the MSDN literature
> on NDIS intermediate/filter drivers, but I am not real sure where to go next.
>
> Thanks a billion for any help. Sorry such a newb.
> .NETMystified


Re: Help!! Out of the Pot and into the Driver Fire by Robert

Robert
Sun Feb 04 08:38:11 CST 2007

Maxim S. Shatskih wrote:
> Install MS's Virtual PC, install FreeBSD there, patch the routing tables
> and VPC's network setup so that the real machine will only access the physical
> network thru the FreeBSD router, then use "dummynet" FreeBSD's traffic shaper.

Probably even easier have a real PC with FreeBSD do the work.
El cheapo PC with two network cards is sure up to the task.