From: oumer@kom.auc.dk
To: Joe Clark <joeclark@iastate.edu>
Cc: netfilter@lists.netfilter.org
Subject: Re: Simulated Packet Delays
Date: Fri, 25 Jun 2004 08:48:11 +0200 (CEST) [thread overview]
Message-ID: <1088146091.40dbcaab348fa@webmail.kom.aau.dk> (raw)
In-Reply-To: <38331824510441751@webmail.iastate.edu>
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
>
>
>
>
prev parent reply other threads:[~2004-06-25 6:48 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-24 23:33 Simulated Packet Delays Joe Clark
2004-06-25 6:48 ` oumer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1088146091.40dbcaab348fa@webmail.kom.aau.dk \
--to=oumer@kom.auc.dk \
--cc=joeclark@iastate.edu \
--cc=netfilter@lists.netfilter.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox