Re: Simulated Packet Delays

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx>:

> 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
> 
> 
> 
> 


[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux