* Re: Simulated Packet Delays
2004-06-24 23:33 Simulated Packet Delays Joe Clark
@ 2004-06-25 6:48 ` oumer
0 siblings, 0 replies; 2+ messages in thread
From: oumer @ 2004-06-25 6:48 UTC (permalink / raw)
To: Joe Clark; +Cc: netfilter
HI,
I recommend using libipq, cause I am using it at the moment and it seems to
perform pretty OK, interms of processing time and the like.
A simple way of doing this (not necessarily the best) will be (roughly):
-set rules to queue the concerned packets;
-Create some kind of queue (just use stl deque, for example, or use priority
queue) and put the packet_id, and the time it should be let go (ie current time
+ the amount of time you want to delay it) of each packet that is queued. (using
libip methods, ipq_read, ipq_getpacket and the like, which are described pretty
well in the man pages)
-Create a thread that constantly checks the firing times of the top of the
queue, and if it has passed, will simply call ipq_setverdict with the packet_id
of the concerned packet, and remove the entry from the queue, and so on ...
Regards,
Oumer
Quoting Joe Clark <joeclark@iastate.edu>:
> Hi. For a research project, I need to find a way to simulate long
> delays (ie,
> simulating 70ms or so of delay over a typically-1ms delay LAN). From
> what I've
> seen online, the Netfilter mechanism seems to be the best way to do
> this. There
> are some Linux packet filtering facilities available with little or no
> work
> (qdisc, tc, etc), but none seem to do the delay that I'm seeking.
>
> So, from my web search, I would need to write a simple kernel module
> that would
> NF_QUEUE all outgoing packets on a link, and then in user space read the
> packet
> info in, set up a delay-based queuing mechanism, and then dequeue the
> packets
> after the delay and reinject them (NF_ACCEPT via an ioctl?).
>
> Is that the best method? I saw something about libipq, which has to do
> with how
> to use the NF_QUEUE framework in userspace. I also saw a reference that
> said I
> could create a /dev/... device for reading in netfilter queued packets.
> Which
> is the preferred or current way to do it?
>
> Thanks for any help you can provide.
> - Joe Clark
>
>
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread