[EMAIL PROTECTED] wrote:
I need to test a multicast streaming media application by selectively
dropping packets in the network connecting the source to the viewer.
The capability I need is to drop N consecutive packets, where N ranges
from 1 to 50 and is chosen via the command line.
I had hoped to do this with dummynet and ipfw, but apparently I can
only drop packets with a specified probablity. The network topology
for this method was to bridge two ethernet nics, then use dummynet pipes
to vary the bandwith and packet loss rate.
I also tested a method using ipfw to temporarily enable packet block
rules using a short sleep interval, but there was only very coarse
control of the number of packets blocked.
Is it feasible to do this with netgraph? Please outline how this may
be accomplihsed.
Yes. Netgraph is really great for this kind of stuff. Four years ago I
wrote a node that simulated a space ATM link. The entire
thing controlled remotely via SNMP. Variable delay, various kinds of
loss and so on. I got around 50MBit/sec throughput on
a 2 CPU 1GHz machine, but the limiting factor was not the CPUs but the
ATM cards. This year I did the same but for ethernet
frames (to simulate a DVB-S2/RCS system). With two gigabit ethernet
adaptors I get more than 100MBit/sec through the machine
with a load in the order of 30%. It can probably do more, just didn't
try it.
Because you can load/unload the nodes without rebooting it is just great
for development - just be a little careful not to crash the kernel.
Your case should be easy: create a node with two hooks, connect them to
the 'lower' hooks of the two ethernet nodes. Then in the receive
function you just count the packets and drop as much as you need. What
you don't drop you just send out the other hook. Control is via
netgraph control messages. You just can enter them via ngctl.
harti
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"