* Simulated Packet Delays
@ 2004-06-24 23:33 Joe Clark
2004-06-25 6:48 ` oumer
0 siblings, 1 reply; 2+ messages in thread
From: Joe Clark @ 2004-06-24 23:33 UTC (permalink / raw)
To: netfilter
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
* 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
end of thread, other threads:[~2004-06-25 6:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-24 23:33 Simulated Packet Delays Joe Clark
2004-06-25 6:48 ` oumer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.