Emulating a cellular interface

Greetings NANOGers
A friend of mine is doing some testing where he wishes to emulate a
cellular-like interfaces with random drops and all, out of an ethernet
interface. Since we have plenty of network and system ops on the list, I
thought we might have luck posting the question here. Is anyone aware of a
simple tool to do this, other than rather involved configuration of
iptables?

Thanks and best regards

I would say that a cellular interface doesn't really have random drops, then there is something wrong with it (at least if it's UMTS). A UMTS network has RLC re-transmits all the way between the RNC and the mobile terminal.

This means that a UMTS network has more characteristics of packet flow, stalls for hundreds of milliseconds or seconds (or even minutes, my record is 240 seconds), and then a burst of packets. Very jittery, but very low rate of packet loss.

Also, the terminal might go down in "idle", meaning that if you send a packet to it, it'll take 1-2 seconds for it to come out of idle, cellular resources allocated, and then the packets start flowing.

I don't have a good idea how to emulate this, the tools I've seen so far usually just emulate jitter, delay and packet loss, and not really the above behaviours.

Take an old Cisco hub, and a hammer. Hit one with the other until you
get the desired result!

Cheers!

Andrew

lol Andrew. Miakel, yea, it's something like that we're trying to emulate.

Not withstanding Mikael's comments that it shouldn't be lossy, at times when you want to simulate lossy (and jittery, and shaped, and ....) conditions, the best way I have found to do this is FreeBSD's dummynet :

http://www.freebsd.org/cgi/man.cgi?query=ipfw&sektion=8#TRAFFIC_SHAPER_(DUMMYNET)_CONFIGURATION

Andy

Or Linux Netem

http://www.linuxfoundation.org/collaborate/workgroups/networking/netem

Suresh

And cellular networks are bursty, depending upon (from what I can gather)
how busy the cell is and how many people are currently doing data.
Someone more cellular-oriented should drop in their 2c.

So to be completely accurate, you may way to script some per-node shaping
rules that watch traffic flow and adjust the rules to emulate this.
I recall seeing a few apps that behaved poorly when their UDP data
exchange timed out because my 3G connection was in a "slow" mode and
didn't recover well. It required a background ICMP to keep the damned
session nailed up to "fast". :slight_smile:

Adrian

here are some modules that might help
http://www.pwsstore.com/cellularembeddedmodules.aspx

-henry

I'd like to thank everyone who responded to this thread. The next time I see
my friend, I'll ask him to share his experiences so that I may post those on
the list.