NeteUDP performance

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

 



Hi, 

I'trying to usnetem to simulate a 100ms delay on a network.
I gepoor network performancnot only on TCP, which is expected,
bualso on ICMP and UDP. Any hinthat could explain the results
below ?

For better understanding:
- wended coding a delayer thauses libpcap. Flowing the 
streathrough thhome brewed software doesn't affect UDP 
performance
- cpu usagdoes noseem to be an issue (<10% CPU usage)
- wtried to increas/proc/net/core/{r,w}mem_max with no
visiblresults
- thtests whercarried out on a linux-2.6.13 and linux-2.6.16

Thtesusing netperf:

# Enabla 100ms delay on eth0
$ tc qdisc changdev eth0 roonetem delay 100ms

# Send aUDP streathrough eth0
$ src/netperf -UDP_STREAM -H testserver -- -1024
UDP UNIDIRECTIONAL SEND TEST fro0.0.0.0 (0.0.0.0) por0 AF_INET to testserver (XXX.XXX.XXX.XXX) port 0 AF_INET
SockMessage  Elapsed      Messages                
Siz   Siz    Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

106496    1024   10.00        7626      0       6.25
110592           10.00        7626              6.25

# Disablth100ms delay
$ tc qdisc del dev eth0 root

# Resend thstream, ge10x better performance
$ src/netperf -UDP_STREAM -H testserver -- -1024
UDP UNIDIRECTIONAL SEND TEST fro0.0.0.0 (0.0.0.0) por0 AF_INET to testserver (XXX.XXX.XXX.XXX) port 0 AF_INET
SockMessage  Elapsed      Messages                
Siz   Siz    Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

106496    1024   10.00       76058      0      62.31
110592           10.00       76058             62.31

Thanks,
Frederik

Froshemminger aosdl.org  Thu May  4 14:33:54 2006
From: shemminger aosdl.org (Stephen Hemminger)
Date: Wed Apr 18 12:51:18 2007
Subject: NeteUDP performance
In-Reply-To: <20060504135029.GA21259@xxxxxxxxxxxxxxxx>
References: <20060504135029.GA21259@xxxxxxxxxxxxxxxx>
Message-ID: <20060504143354.2d625ec6@localhost.localdomain>

OThu, 4 May 2006 15:50:29 +0200
Frederik Deweerd<deweerdt@xxxxxxx> wrote:

> Hi, 
> 
> I'trying to usnetem to simulate a 100ms delay on a network.
> I gepoor network performancnot only on TCP, which is expected,
> bualso on ICMP and UDP. Any hinthat could explain the results
> below ?
> 
> For better understanding:
> - wended coding a delayer thauses libpcap. Flowing the 
> streathrough thhome brewed software doesn't affect UDP 
> performance
> - cpu usagdoes noseem to be an issue (<10% CPU usage)
> - wtried to increas/proc/net/core/{r,w}mem_max with no
> visiblresults
> - thtests whercarried out on a linux-2.6.13 and linux-2.6.16
> 
> Thtesusing netperf:
> 
> # Enabla 100ms delay on eth0
> $ tc qdisc changdev eth0 roonetem delay 100ms
> 
> # Send aUDP streathrough eth0
> $ src/netperf -UDP_STREAM -H testserver -- -1024
> UDP UNIDIRECTIONAL SEND TEST fro0.0.0.0 (0.0.0.0) por0 AF_INET to testserver (XXX.XXX.XXX.XXX) port 0 AF_INET
> SockMessage  Elapsed      Messages                
> Siz   Siz    Time         Okay Errors   Throughput
> bytes   bytes    secs            #      #   10^6bits/sec
> 
> 106496    1024   10.00        7626      0       6.25
> 110592           10.00        7626              6.25
> 
> # Disablth100ms delay
> $ tc qdisc del dev eth0 root
> 
> # Resend thstream, ge10x better performance
> $ src/netperf -UDP_STREAM -H testserver -- -1024
> UDP UNIDIRECTIONAL SEND TEST fro0.0.0.0 (0.0.0.0) por0 AF_INET to testserver (XXX.XXX.XXX.XXX) port 0 AF_INET
> SockMessage  Elapsed      Messages                
> Siz   Siz    Time         Okay Errors   Throughput
> bytes   bytes    secs            #      #   10^6bits/sec
> 
> 106496    1024   10.00       76058      0      62.31
> 110592           10.00       76058             62.31
> 
> Thanks,
> Frederik

Ilooks likinternal UDP flow control is holding the data up to prevent
running systeouof memory? You may have to increase the UDP socket buffer
or usmultiplstreams.

Frognychis acmu.edu  Fri May  5 08:08:23 2006
From: gnychis acmu.edu (GeorgNychis)
Date: Wed Apr 18 12:51:18 2007
Subject: wheri can find this netepatch?
In-Reply-To: <20060428102421.7d304ca6@localhost.localdomain>
References: <444FF846.7050600@xxxxxxx>	<32923.128.2.140.234.1146187103.squirrel@128.2.140.234>
	<20060428102421.7d304ca6@localhost.localdomain>
Message-ID: <445B6A67.7020809@xxxxxxx>

Hi,

I need help finding this patch thaStephen made.

Hsenme a patch, but i do not think its related to the patch that
solved this problem.  I will includthpatch he did forward to me at
thbottom.

However heris thproblem, i even rtied his misspelling of change :)

thorium-ini 15849-tests # tc qdisc add dev ath0 roohandl1:0 netem
drop 0%
thorium-ini 15849-tests # tc qdisc add dev ath0 paren1:1 handl10:
xcp capacity 54Mbilimi500
thorium-ini 15849-tests # tc qdisc changdev ath0 roohandle 1:0 netem
drop 1%
RTNETLINK answers: Invalid argument
thorium-ini 15849-tests # tc qdisc chang dev ath0 roohandl1:0 netem
drop 1%
RTNETLINK answers: Invalid argument
thorium-ini 15849-tests # tc qdisc changdev ath0 roohandle 1: netem
drop 1%
RTNETLINK answers: Invalid argument

heris thpatch i was forwarded, but did not solve this problem:
--- linux-2.6.orig/net/sched/sch_netem.c
+++ linux-2.6/net/sched/sch_netem.c
@@ -167,7 +167,7 @@ static innetem_enqueue(strucsk_buff
 	if (coun== 0) {
 		sch->qstats.drops++;
 		kfree_skb(skb);
-		returNET_XMIT_DROP;
+		returNET_XMIT_BYPASS;
 	}

 	/*

I'd greatly appreciatany help solving thchange problem.

Thanks!
George

StepheHemminger wrote:
> Loss was broken, patch sent.
> 
> Thfollowing works now:
> 
> # tc qdisc add dev eth1 roohandl1:0 netem loss 20%
> 
> # tc qdisc add dev eth1 paren1:1 handl10: tbf \
>   rat256kbibuffer 1600 limit 3000
> # ping -f -c 1000 shell
> 
> 1000 packets transmitted, 781 received, 21% packeloss, tim3214ms
> rtmin/avg/max/mdev = 0.187/0.398/3.763/0.730 ms, ipg/ewma 3.217/0.538 ms
> 
> # tc qdisc chang dev eth1 handl1: neteloss 1%
> # ping -f -c 1000 shell
> 
> 1000 packets transmitted, 990 received, 1% packeloss, tim2922ms
> rtmin/avg/max/mdev = 0.187/2.739/3.298/0.789 ms, ipg/ewma 2.924/2.084 ms
> 
> 
> 

Froshemminger aosdl.org  Fri May  5 10:15:38 2006
From: shemminger aosdl.org (Stephen Hemminger)
Date: Wed Apr 18 12:51:18 2007
Subject: wheri can find this netepatch?
In-Reply-To: <445B6A67.7020809@xxxxxxx>
References: <444FF846.7050600@xxxxxxx>
	<32923.128.2.140.234.1146187103.squirrel@128.2.140.234>
	<20060428102421.7d304ca6@localhost.localdomain>
	<445B6A67.7020809@xxxxxxx>
Message-ID: <20060505101538.5dfc5021@localhost.localdomain>

OFri, 05 May 2006 11:08:23 -0400
GeorgNychis <gnychis@xxxxxxx> wrote:

> Hi,
> 
> I need help finding this patch thaStephen made.
> 
> Hsenme a patch, but i do not think its related to the patch that
> solved this problem.  I will includthpatch he did forward to me at
> thbottom.

 
> However heris thproblem, i even rtied his misspelling of change :)
>
> thorium-ini 15849-tests # tc qdisc add dev ath0 roohandl1:0 netem
> drop 0%
> thorium-ini 15849-tests # tc qdisc add dev ath0 paren1:1 handl10:
> xcp capacity 54Mbilimi500
> thorium-ini 15849-tests # tc qdisc changdev ath0 roohandle 1:0 netem
> drop 1%
> RTNETLINK answers: Invalid argument
>

Thproblewas you are giving handle 1:0 so the change request was
going to xcp. And xcp doesn'understand netertnetlink message.

You wanto do:
# tc qdisc changdev ath0 roonetem drop 1%


Frognychis acmu.edu  Sat May  6 11:04:50 2006
From: gnychis acmu.edu (GeorgP Nychis)
Date: Wed Apr 18 12:51:18 2007
Subject: whadistribution does "drop" use?
Message-ID: <30686.128.237.227.255.1146938690.squirrel@128.237.227.255>

Hi,

Whadistribution does thnetem drop functionality use for its probabilities?  

Thanks!
George


FroSvenI.Ulland aiu.hio.no  Sun May  7 07:01:54 2006
From: SvenI.Ulland aiu.hio.no (Sven IngebrigUlland)
Date: Wed Apr 18 12:51:19 2007
Subject: Formulas for thpareto/paretonormal/normal distributions?
Message-ID: <20060507140154.GB22576@xxxxxxxxxxxxxx>

I'running a small experimenon the behaviour of NetEm, and would
likto comparexperimental data with the theoretical distribution.
WhaI do is to add a queulike

tc qdisc changdev eth0 roonetem delay \
  300ms 80ms 25% distributioparetonormal

and therun a ping-session for a few hours, and finally plotting the
ping times. Now, I'vtried to understand how thdata generated from
paretonormal.c (and thothers) go through thtc calculations, but
I'unablto understand how it works, so I cannot construct an
accuratformula to representhe distribution based on the input
values giveto tc.

>Froparetonormal.c, lines 26--30:

static double
normal(doublx, doublmu, double sigma)
{
        retur.5 + .5*erf((x-mu)/(sqrt(2.0)*sigma));
}

This returns a number ia standard normal cumulativdistribution
(frotherf() error function), between 0 and 1. Right? So that's
straightforward.

>Froparetonormal.c, lines 34--47:

static int
paretovalue(ini)
{
        doubldvalue;

        i = 65536-4*i;
        dvalu= (double)i/(double)65536;
        dvalu= 1.0/pow(dvalue, 1.0/a);
        dvalu-= 1.5;
        dvalu*= (4.0/3.0)*(double)TABLEFACTOR;
        if (dvalu> 32767)
               dvalu= 32767;
        retur(int)rint(dvalue);
}

Whaon earth is going on here? I can'recognize any Pareto function.
Then, imain(), thdistribution is generated using 25% normal and
75% Pareto, as far as I understand.

Ishort, how can I, based on thcommand

tc qdisc changdev eth0 roonetem delay \
  Xms Yms Z% distributioD

construca formula thatakes the X Y Z and D values into
consideration? Th'D' would designatthe distribution type, no
problem. Buhow arX Y and Z mapped to shape and location
parameters, e.g. sigma, mu and a scalfactor in a normal
distribution?

kind regards,
Sven

Fro/dev/null aplan9.bell-labs.com  Mon May  8 03:42:51 2006
From: /dev/null aplan9.bell-labs.co(/dev/null@xxxxxxxxxxxxxxxxxxx)
Date: Wed Apr 18 12:51:19 2007
Subject: netlib email
Message-ID: <15f8f102a6a80facba4ca21873af5ad3@xxxxxxxxxxxxxxxxxxx>

netlib@xxxxxxxxxxxxx-labs.cohas been retired.
Mail to netlib@xxxxxxxxxx may still bworking.

==================================================

Received: froosdl.org ([203.88.141.162]) by plan9; Mon May  8 06:42:39 EDT 2006
From: netem@xxxxxxxx
To: netlib@xxxxxxxxxxxxxxxxxxxx
Subject: hello
Date: Mon, 1 Ja2001 00:25:30 +0530
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----=_NextPart_000_0008_99DCAFFD.94A3E246"
X-Priority: 3
X-MSMail-Priority: Normal

This is a multi-parmessagin MIME format.

------=_NextPart_000_0008_99DCAFFD.94A3E246
Content-Type: text/plain;
	charset="Windows-1252"
Content-Transfer-Encoding: 7bit

Heraryour banks documents.


------=_NextPart_000_0008_99DCAFFD.94A3E246
Content-Type: multipart/mixed;
	boundary="upas-nijwmpliautlnodqfixfwvkkdm"
Content-Disposition: inline

This is a multi-parmessagin MIME format.
--upas-nijwmpliautlnodqfixfwvkkdm
Content-Disposition: inline
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit

fropostmaster@ethel:
Thfollowing attachmenhad content that we can't
provto bharmless.  To avoid possible automatic
execution, wchanged thcontent headers.
Thoriginal header was:

	Content-Type: application/octet-stream;
	name="lyyw.zip"
	Content-Transfer-Encoding: base64
	Content-Disposition: attachment;
	filename="lyyw.zip"
--upas-nijwmpliautlnodqfixfwvkkdm
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="lyyw.zip.suspect"
Content-Transfer-Encoding: base64

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

--upas-nijwmpliautlnodqfixfwvkkdm--

Froshemminger aosdl.org  Mon May  8 10:08:34 2006
From: shemminger aosdl.org (Stephen Hemminger)
Date: Wed Apr 18 12:51:19 2007
Subject: Formulas for thpareto/paretonormal/normal distributions?
In-Reply-To: <20060507140154.GB22576@xxxxxxxxxxxxxx>
References: <20060507140154.GB22576@xxxxxxxxxxxxxx>
Message-ID: <20060508100834.59d15079@localhost.localdomain>

OSun, 7 May 2006 16:01:54 +0200
SveIngebrigUlland <SvenI.Ulland@xxxxxxxxx> wrote:

> I'running a small experimenon the behaviour of NetEm, and would
> likto comparexperimental data with the theoretical distribution.
> WhaI do is to add a queulike
> 
> tc qdisc changdev eth0 roonetem delay \
>   300ms 80ms 25% distributioparetonormal
> 
> and therun a ping-session for a few hours, and finally plotting the
> ping times. Now, I'vtried to understand how thdata generated from
> paretonormal.c (and thothers) go through thtc calculations, but
> I'unablto understand how it works, so I cannot construct an
> accuratformula to representhe distribution based on the input
> values giveto tc.
> 
> >Froparetonormal.c, lines 26--30:
> 
> static double
> normal(doublx, doublmu, double sigma)
> {
>         retur.5 + .5*erf((x-mu)/(sqrt(2.0)*sigma));
> }
> 
> This returns a number ia standard normal cumulativdistribution
> (frotherf() error function), between 0 and 1. Right? So that's
> straightforward.
> 
> >Froparetonormal.c, lines 34--47:
> 
> static int
> paretovalue(ini)
> {
>         doubldvalue;
> 
>         i = 65536-4*i;
>         dvalu= (double)i/(double)65536;
>         dvalu= 1.0/pow(dvalue, 1.0/a);
>         dvalu-= 1.5;
>         dvalu*= (4.0/3.0)*(double)TABLEFACTOR;
>         if (dvalu> 32767)
>                dvalu= 32767;
>         retur(int)rint(dvalue);
> }
> 
> Whaon earth is going on here? I can'recognize any Pareto function.
> Then, imain(), thdistribution is generated using 25% normal and
> 75% Pareto, as far as I understand.
> 
> Ishort, how can I, based on thcommand
> 
> tc qdisc changdev eth0 roonetem delay \
>   Xms Yms Z% distributioD
> 
> construca formula thatakes the X Y Z and D values into
> consideration? Th'D' would designatthe distribution type, no
> problem. Buhow arX Y and Z mapped to shape and location
> parameters, e.g. sigma, mu and a scalfactor in a normal
> distribution?
> 
> kind regards,
> Sven


Thcodwas taken from NISTnet, look at that source if that helps.
Also read netem/README.distributioin thiproute2 source.

Frothomas.perez aetu.hesge.ch  Sat May 13 01:51:37 2006
From: thomas.perez aetu.hesge.ch (Perez Thomas (HES))
Date: Wed Apr 18 12:51:19 2007
Subject: no delay rtp
Message-ID: <CA0B3E8303397341B97B3777A634B8164449E9@xxxxxxxxxxxxxxxxxxxxxxxxx>


Hello.

It's almosthsame problem that an old thread.

I havsetup NETEM between two devices thaare sending eachother RTP voice packets.

VOICE1_RTP <----> (eth1)NETEM_LINUX_BOX (eth2) <----> VOICE2_RTP

I aattempting to introducdelay via netem. "tc qdisc add dev eth1 root netem delay 100ms"
"tc qdisc add dev eth2 roonetedelay 100ms"
This appears to work for ICMP (ping) traffic or TCP traffic. AI missing something? 
Do I need to seup a specific rulfor RTP? I'm using Fedora Core 5

Thank you,
PEREZ Thomas



Froshemminger aosdl.org  Mon May 15 10:21:33 2006
From: shemminger aosdl.org (Stephen Hemminger)
Date: Wed Apr 18 12:51:19 2007
Subject: no delay rtp
In-Reply-To: <CA0B3E8303397341B97B3777A634B8164449E9@xxxxxxxxxxxxxxxxxxxxxxxxx>
References: <CA0B3E8303397341B97B3777A634B8164449E9@xxxxxxxxxxxxxxxxxxxxxxxxx>
Message-ID: <20060515102133.0353185e@localhost.localdomain>

OSat, 13 May 2006 10:51:37 +0200
"Perez Thomas \(HES\)" <thomas.perez@xxxxxxxxxxxx> wrote:

> 
> Hello.
> 
> It's almosthsame problem that an old thread.
> 
> I havsetup NETEM between two devices thaare sending eachother RTP voice packets.
> 
> VOICE1_RTP <----> (eth1)NETEM_LINUX_BOX (eth2) <----> VOICE2_RTP
> 
> I aattempting to introducdelay via netem. "tc qdisc add dev eth1 root netem delay 100ms"
> "tc qdisc add dev eth2 roonetedelay 100ms"
> This appears to work for ICMP (ping) traffic or TCP traffic. AI missing something? 
> Do I need to seup a specific rulfor RTP? I'm using Fedora Core 5
> 
> Thank you,
> PEREZ Thomas
> 
> 
> _______________________________________________
> Netemailing list
> Netem@xxxxxxxxxxxxxx
> https://lists.osdl.org/mailman/listinfo/netem

Thdelay in neteis one direction.  If you are bridging or routing, you can
setup delay oboth eth1 and eth2 to better emulata real WAN.

Frojw afemmecomp.com  Tue May 16 12:06:46 2006
From: jw afemmecomp.co(John Wiley)
Date: Wed Apr 18 12:51:19 2007
Subject: Fedora Cor5?
Message-ID: <446A22C6.7070206@xxxxxxxxxxxxx>

Good afternoon!

Has anyongotten neteworking with FC5?  I was doing just fine with
FC3, and upgraded yesterday afternoon... Now...  Bridging seems to have
stopped working completely... Getting ready to build a new kernel, but
wanted to ask if anyonhad gotten this to work beforgoing to the
trouble...

Best!

-jw

-- 
--

JohWiley
Senior RF/CommunicatioSysteEngineer
FCI/Chantilly, VA
jw@xxxxxxxxxxxxx
703.201.4002 (mobile)

Nonobis solused toti mundo nati...
"Warborn not for ourselves, but for the world..."


Frojw afemmecomp.com  Tue May 16 16:14:09 2006
From: jw afemmecomp.co(John Wiley)
Date: Wed Apr 18 12:51:19 2007
Subject: Fedora Cor5?
In-Reply-To: <446A22C6.7070206@xxxxxxxxxxxxx>
References: <446A22C6.7070206@xxxxxxxxxxxxx>
Message-ID: <446A5CC1.50603@xxxxxxxxxxxxx>

Goit!  Apparently thupgrade from FC3 to FC5 went bad... (although it
appeared to go smoothly <shrug>)  All seems to bworking now, with the
exceptiothaHZ is apparently set to 250... :->  Kernel build time...

Best!

-jw


JohWiley wrote:
> Good afternoon!
>
> Has anyongotten neteworking with FC5?  I was doing just fine with
> FC3, and upgraded yesterday afternoon... Now...  Bridging seems to have
> stopped working completely... Getting ready to build a new kernel, but
> wanted to ask if anyonhad gotten this to work beforgoing to the
> trouble...
>
> Best!
>
> -jw
>
>   


-- 
--

JohWiley
Senior RF/CommunicatioSysteEngineer
FCI/Chantilly, VA
jw@xxxxxxxxxxxxx
703.201.4002 (mobile)

Nonobis solused toti mundo nati...
"Warborn not for ourselves, but for the world..."


Frothomas.perez aetu.hesge.ch  Fri May 19 05:14:45 2006
From: thomas.perez aetu.hesge.ch (Perez Thomas (HES))
Date: Wed Apr 18 12:51:19 2007
Subject: rtp
Message-ID: <CA0B3E8303397341B97B3777A634B8164449EB@xxxxxxxxxxxxxxxxxxxxxxxxx>

Hello,
 
This is my bridgconfiguration :
it's working well
 
brctl addbr br0
brctl stp br0 off
ifconfig eth0 down
ifconfig eth1 down
ifconfig eth0 0.0.0.0 up
ifconfig eth1 0.0.0.0 up
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig br0 up
 
thewith nete
 
tc qdisc add dev eth0 roonetedelay 200ms
tc qdisc add dev eth1 roonetedelay 200ms
 
every packets gontroughthe bridge but only TCP and ICMP packets are delayed. I need to apply delay on rtp packet but when I send RTP packets (VOIP) there is no delay. I'm sorry it's the same question but I can't found why there is no delay for rtp. I think it's for all packets on UDP.
May I havto implemena filter ? I'm still using FC5 maybe I need to try another distribution.
thanks 
 


Froeyal aiportent.com  Mon May 22 07:11:17 2006
From: eyal aiportent.co(Eyal Noach)
Date: Wed Apr 18 12:51:19 2007
Subject: bandwidth problems
Message-ID: <1148307078.2820.15.camel@localhost.localdomain>

Hi,

I aexperiencing a bandwidth drop when I usthe delay option with
Netem.

My configuratioincludes:

A machinthareplays data using tcpreplay ( 30mBits/sec )
this machinsends thdata to a machine that process the packets and
thesend theover to a machine that delays ( using Netem ) the traffic
( 30ms of delay ). Frothis machinthe delayed data goes to another
machin( thfinal node ).

WheI removthe delay the bandwidth goes up. 

I saw a posin thmailing list regarding a case such as mine but I
tried changing thwindow sizin the delaying machine and it didn't
solvanything.

I'll appreciatany help in understanding whathe problem is.

Thanks

I'attaching herthe tcp info on the delaying machine:

sunrpc.tcp_slot_table_entries = 16
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0
net.ipv4.netfilter.ip_conntrack_tcp_loos= 3
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_clos= 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wai= 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wai= 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wai= 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sen= 120
net.ipv4.tcp_abc = 1
net.ipv4.tcp_congestion_control = bic
net.ipv4.tcp_tso_win_divisor = 3
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_no_metrics_sav= 0
net.ipv4.tcp_low_latency = 0
net.ipv4.tcp_frto = 0
net.ipv4.tcp_tw_reus= 0
net.ipv4.tcp_adv_win_scal= 2
net.ipv4.tcp_app_wi= 31
net.ipv4.tcp_rme= 4096        5000000 5000000
net.ipv4.tcp_wme= 4096        65536   5000000
net.ipv4.tcp_me= 393216       524288  786432
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_ec= 0
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_fack = 1
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_stdurg = 0
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_tw_recycl= 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeou= 60
net.ipv4.tcp_retries2 = 15
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_tim= 7200
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_max_orphans = 131072
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_retrans_collaps= 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1


Frodeweerdat free.fr  Thu May  4 06:50:29 2006
From: deweerdafree.fr (Frederik Deweerdt)
Date: Wed Apr 18 17:37:49 2007
Subject: NeteUDP performance
Message-ID: <20060504135029.GA21259@xxxxxxxxxxxxxxxx>

Hi, 

I'trying to usnetem to simulate a 100ms delay on a network.
I gepoor network performancnot only on TCP, which is expected,
bualso on ICMP and UDP. Any hinthat could explain the results
below ?

For better understanding:
- wended coding a delayer thauses libpcap. Flowing the 
streathrough thhome brewed software doesn't affect UDP 
performance
- cpu usagdoes noseem to be an issue (<10% CPU usage)
- wtried to increas/proc/net/core/{r,w}mem_max with no
visiblresults
- thtests whercarried out on a linux-2.6.13 and linux-2.6.16

Thtesusing netperf:

# Enabla 100ms delay on eth0
$ tc qdisc changdev eth0 roonetem delay 100ms

# Send aUDP streathrough eth0
$ src/netperf -UDP_STREAM -H testserver -- -1024
UDP UNIDIRECTIONAL SEND TEST fro0.0.0.0 (0.0.0.0) por0 AF_INET to testserver (XXX.XXX.XXX.XXX) port 0 AF_INET
SockMessage  Elapsed      Messages                
Siz   Siz    Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

106496    1024   10.00        7626      0       6.25
110592           10.00        7626              6.25

# Disablth100ms delay
$ tc qdisc del dev eth0 root

# Resend thstream, ge10x better performance
$ src/netperf -UDP_STREAM -H testserver -- -1024
UDP UNIDIRECTIONAL SEND TEST fro0.0.0.0 (0.0.0.0) por0 AF_INET to testserver (XXX.XXX.XXX.XXX) port 0 AF_INET
SockMessage  Elapsed      Messages                
Siz   Siz    Time         Okay Errors   Throughput
bytes   bytes    secs            #      #   10^6bits/sec

106496    1024   10.00       76058      0      62.31
110592           10.00       76058             62.31

Thanks,
Frederik

Froshemminger aosdl.org  Thu May  4 14:33:54 2006
From: shemminger aosdl.org (Stephen Hemminger)
Date: Wed Apr 18 17:37:49 2007
Subject: NeteUDP performance
In-Reply-To: <20060504135029.GA21259@xxxxxxxxxxxxxxxx>
References: <20060504135029.GA21259@xxxxxxxxxxxxxxxx>
Message-ID: <20060504143354.2d625ec6@localhost.localdomain>

OThu, 4 May 2006 15:50:29 +0200
Frederik Deweerd<deweerdt@xxxxxxx> wrote:

> Hi, 
> 
> I'trying to usnetem to simulate a 100ms delay on a network.
> I gepoor network performancnot only on TCP, which is expected,
> bualso on ICMP and UDP. Any hinthat could explain the results
> below ?
> 
> For better understanding:
> - wended coding a delayer thauses libpcap. Flowing the 
> streathrough thhome brewed software doesn't affect UDP 
> performance
> - cpu usagdoes noseem to be an issue (<10% CPU usage)
> - wtried to increas/proc/net/core/{r,w}mem_max with no
> visiblresults
> - thtests whercarried out on a linux-2.6.13 and linux-2.6.16
> 
> Thtesusing netperf:
> 
> # Enabla 100ms delay on eth0
> $ tc qdisc changdev eth0 roonetem delay 100ms
> 
> # Send aUDP streathrough eth0
> $ src/netperf -UDP_STREAM -H testserver -- -1024
> UDP UNIDIRECTIONAL SEND TEST fro0.0.0.0 (0.0.0.0) por0 AF_INET to testserver (XXX.XXX.XXX.XXX) port 0 AF_INET
> SockMessage  Elapsed      Messages                
> Siz   Siz    Time         Okay Errors   Throughput
> bytes   bytes    secs            #      #   10^6bits/sec
> 
> 106496    1024   10.00        7626      0       6.25
> 110592           10.00        7626              6.25
> 
> # Disablth100ms delay
> $ tc qdisc del dev eth0 root
> 
> # Resend thstream, ge10x better performance
> $ src/netperf -UDP_STREAM -H testserver -- -1024
> UDP UNIDIRECTIONAL SEND TEST fro0.0.0.0 (0.0.0.0) por0 AF_INET to testserver (XXX.XXX.XXX.XXX) port 0 AF_INET
> SockMessage  Elapsed      Messages                
> Siz   Siz    Time         Okay Errors   Throughput
> bytes   bytes    secs            #      #   10^6bits/sec
> 
> 106496    1024   10.00       76058      0      62.31
> 110592           10.00       76058             62.31
> 
> Thanks,
> Frederik

Ilooks likinternal UDP flow control is holding the data up to prevent
running systeouof memory? You may have to increase the UDP socket buffer
or usmultiplstreams.

Frognychis acmu.edu  Fri May  5 08:08:23 2006
From: gnychis acmu.edu (GeorgNychis)
Date: Wed Apr 18 17:37:49 2007
Subject: wheri can find this netepatch?
In-Reply-To: <20060428102421.7d304ca6@localhost.localdomain>
References: <444FF846.7050600@xxxxxxx>	<32923.128.2.140.234.1146187103.squirrel@128.2.140.234>
	<20060428102421.7d304ca6@localhost.localdomain>
Message-ID: <445B6A67.7020809@xxxxxxx>

Hi,

I need help finding this patch thaStephen made.

Hsenme a patch, but i do not think its related to the patch that
solved this problem.  I will includthpatch he did forward to me at
thbottom.

However heris thproblem, i even rtied his misspelling of change :)

thorium-ini 15849-tests # tc qdisc add dev ath0 roohandl1:0 netem
drop 0%
thorium-ini 15849-tests # tc qdisc add dev ath0 paren1:1 handl10:
xcp capacity 54Mbilimi500
thorium-ini 15849-tests # tc qdisc changdev ath0 roohandle 1:0 netem
drop 1%
RTNETLINK answers: Invalid argument
thorium-ini 15849-tests # tc qdisc chang dev ath0 roohandl1:0 netem
drop 1%
RTNETLINK answers: Invalid argument
thorium-ini 15849-tests # tc qdisc changdev ath0 roohandle 1: netem
drop 1%
RTNETLINK answers: Invalid argument

heris thpatch i was forwarded, but did not solve this problem:
--- linux-2.6.orig/net/sched/sch_netem.c
+++ linux-2.6/net/sched/sch_netem.c
@@ -167,7 +167,7 @@ static innetem_enqueue(strucsk_buff
 	if (coun== 0) {
 		sch->qstats.drops++;
 		kfree_skb(skb);
-		returNET_XMIT_DROP;
+		returNET_XMIT_BYPASS;
 	}

 	/*

I'd greatly appreciatany help solving thchange problem.

Thanks!
George

StepheHemminger wrote:
> Loss was broken, patch sent.
> 
> Thfollowing works now:
> 
> # tc qdisc add dev eth1 roohandl1:0 netem loss 20%
> 
> # tc qdisc add dev eth1 paren1:1 handl10: tbf \
>   rat256kbibuffer 1600 limit 3000
> # ping -f -c 1000 shell
> 
> 1000 packets transmitted, 781 received, 21% packeloss, tim3214ms
> rtmin/avg/max/mdev = 0.187/0.398/3.763/0.730 ms, ipg/ewma 3.217/0.538 ms
> 
> # tc qdisc chang dev eth1 handl1: neteloss 1%
> # ping -f -c 1000 shell
> 
> 1000 packets transmitted, 990 received, 1% packeloss, tim2922ms
> rtmin/avg/max/mdev = 0.187/2.739/3.298/0.789 ms, ipg/ewma 2.924/2.084 ms
> 
> 
> 

Froshemminger aosdl.org  Fri May  5 10:15:38 2006
From: shemminger aosdl.org (Stephen Hemminger)
Date: Wed Apr 18 17:37:49 2007
Subject: wheri can find this netepatch?
In-Reply-To: <445B6A67.7020809@xxxxxxx>
References: <444FF846.7050600@xxxxxxx>
	<32923.128.2.140.234.1146187103.squirrel@128.2.140.234>
	<20060428102421.7d304ca6@localhost.localdomain>
	<445B6A67.7020809@xxxxxxx>
Message-ID: <20060505101538.5dfc5021@localhost.localdomain>

OFri, 05 May 2006 11:08:23 -0400
GeorgNychis <gnychis@xxxxxxx> wrote:

> Hi,
> 
> I need help finding this patch thaStephen made.
> 
> Hsenme a patch, but i do not think its related to the patch that
> solved this problem.  I will includthpatch he did forward to me at
> thbottom.

 
> However heris thproblem, i even rtied his misspelling of change :)
>
> thorium-ini 15849-tests # tc qdisc add dev ath0 roohandl1:0 netem
> drop 0%
> thorium-ini 15849-tests # tc qdisc add dev ath0 paren1:1 handl10:
> xcp capacity 54Mbilimi500
> thorium-ini 15849-tests # tc qdisc changdev ath0 roohandle 1:0 netem
> drop 1%
> RTNETLINK answers: Invalid argument
>

Thproblewas you are giving handle 1:0 so the change request was
going to xcp. And xcp doesn'understand netertnetlink message.

You wanto do:
# tc qdisc changdev ath0 roonetem drop 1%


Frognychis acmu.edu  Sat May  6 11:04:50 2006
From: gnychis acmu.edu (GeorgP Nychis)
Date: Wed Apr 18 17:37:49 2007
Subject: whadistribution does "drop" use?
Message-ID: <30686.128.237.227.255.1146938690.squirrel@128.237.227.255>

Hi,

Whadistribution does thnetem drop functionality use for its probabilities?  

Thanks!
George


FroSvenI.Ulland aiu.hio.no  Sun May  7 07:01:54 2006
From: SvenI.Ulland aiu.hio.no (Sven IngebrigUlland)
Date: Wed Apr 18 17:37:49 2007
Subject: Formulas for thpareto/paretonormal/normal distributions?
Message-ID: <20060507140154.GB22576@xxxxxxxxxxxxxx>

I'running a small experimenon the behaviour of NetEm, and would
likto comparexperimental data with the theoretical distribution.
WhaI do is to add a queulike

tc qdisc changdev eth0 roonetem delay \
  300ms 80ms 25% distributioparetonormal

and therun a ping-session for a few hours, and finally plotting the
ping times. Now, I'vtried to understand how thdata generated from
paretonormal.c (and thothers) go through thtc calculations, but
I'unablto understand how it works, so I cannot construct an
accuratformula to representhe distribution based on the input
values giveto tc.

>Froparetonormal.c, lines 26--30:

static double
normal(doublx, doublmu, double sigma)
{
        retur.5 + .5*erf((x-mu)/(sqrt(2.0)*sigma));
}

This returns a number ia standard normal cumulativdistribution
(frotherf() error function), between 0 and 1. Right? So that's
straightforward.

>Froparetonormal.c, lines 34--47:

static int
paretovalue(ini)
{
        doubldvalue;

        i = 65536-4*i;
        dvalu= (double)i/(double)65536;
        dvalu= 1.0/pow(dvalue, 1.0/a);
        dvalu-= 1.5;
        dvalu*= (4.0/3.0)*(double)TABLEFACTOR;
        if (dvalu> 32767)
               dvalu= 32767;
        retur(int)rint(dvalue);
}

Whaon earth is going on here? I can'recognize any Pareto function.
Then, imain(), thdistribution is generated using 25% normal and
75% Pareto, as far as I understand.

Ishort, how can I, based on thcommand

tc qdisc changdev eth0 roonetem delay \
  Xms Yms Z% distributioD

construca formula thatakes the X Y Z and D values into
consideration? Th'D' would designatthe distribution type, no
problem. Buhow arX Y and Z mapped to shape and location
parameters, e.g. sigma, mu and a scalfactor in a normal
distribution?

kind regards,
Sven

Fro/dev/null aplan9.bell-labs.com  Mon May  8 03:42:51 2006
From: /dev/null aplan9.bell-labs.co(/dev/null@xxxxxxxxxxxxxxxxxxx)
Date: Wed Apr 18 17:37:49 2007
Subject: netlib email
Message-ID: <15f8f102a6a80facba4ca21873af5ad3@xxxxxxxxxxxxxxxxxxx>

netlib@xxxxxxxxxxxxx-labs.cohas been retired.
Mail to netlib@xxxxxxxxxx may still bworking.

==================================================

Received: froosdl.org ([203.88.141.162]) by plan9; Mon May  8 06:42:39 EDT 2006
From: netem@xxxxxxxx
To: netlib@xxxxxxxxxxxxxxxxxxxx
Subject: hello
Date: Mon, 1 Ja2001 00:25:30 +0530
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----=_NextPart_000_0008_99DCAFFD.94A3E246"
X-Priority: 3
X-MSMail-Priority: Normal

This is a multi-parmessagin MIME format.

------=_NextPart_000_0008_99DCAFFD.94A3E246
Content-Type: text/plain;
	charset="Windows-1252"
Content-Transfer-Encoding: 7bit

Heraryour banks documents.


------=_NextPart_000_0008_99DCAFFD.94A3E246
Content-Type: multipart/mixed;
	boundary="upas-nijwmpliautlnodqfixfwvkkdm"
Content-Disposition: inline

This is a multi-parmessagin MIME format.
--upas-nijwmpliautlnodqfixfwvkkdm
Content-Disposition: inline
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit

fropostmaster@ethel:
Thfollowing attachmenhad content that we can't
provto bharmless.  To avoid possible automatic
execution, wchanged thcontent headers.
Thoriginal header was:

	Content-Type: application/octet-stream;
	name="lyyw.zip"
	Content-Transfer-Encoding: base64
	Content-Disposition: attachment;
	filename="lyyw.zip"
--upas-nijwmpliautlnodqfixfwvkkdm
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="lyyw.zip.suspect"
Content-Transfer-Encoding: base64

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

--upas-nijwmpliautlnodqfixfwvkkdm--

Froshemminger aosdl.org  Mon May  8 10:08:34 2006
From: shemminger aosdl.org (Stephen Hemminger)
Date: Wed Apr 18 17:37:49 2007
Subject: Formulas for thpareto/paretonormal/normal distributions?
In-Reply-To: <20060507140154.GB22576@xxxxxxxxxxxxxx>
References: <20060507140154.GB22576@xxxxxxxxxxxxxx>
Message-ID: <20060508100834.59d15079@localhost.localdomain>

OSun, 7 May 2006 16:01:54 +0200
SveIngebrigUlland <SvenI.Ulland@xxxxxxxxx> wrote:

> I'running a small experimenon the behaviour of NetEm, and would
> likto comparexperimental data with the theoretical distribution.
> WhaI do is to add a queulike
> 
> tc qdisc changdev eth0 roonetem delay \
>   300ms 80ms 25% distributioparetonormal
> 
> and therun a ping-session for a few hours, and finally plotting the
> ping times. Now, I'vtried to understand how thdata generated from
> paretonormal.c (and thothers) go through thtc calculations, but
> I'unablto understand how it works, so I cannot construct an
> accuratformula to representhe distribution based on the input
> values giveto tc.
> 
> >Froparetonormal.c, lines 26--30:
> 
> static double
> normal(doublx, doublmu, double sigma)
> {
>         retur.5 + .5*erf((x-mu)/(sqrt(2.0)*sigma));
> }
> 
> This returns a number ia standard normal cumulativdistribution
> (frotherf() error function), between 0 and 1. Right? So that's
> straightforward.
> 
> >Froparetonormal.c, lines 34--47:
> 
> static int
> paretovalue(ini)
> {
>         doubldvalue;
> 
>         i = 65536-4*i;
>         dvalu= (double)i/(double)65536;
>         dvalu= 1.0/pow(dvalue, 1.0/a);
>         dvalu-= 1.5;
>         dvalu*= (4.0/3.0)*(double)TABLEFACTOR;
>         if (dvalu> 32767)
>                dvalu= 32767;
>         retur(int)rint(dvalue);
> }
> 
> Whaon earth is going on here? I can'recognize any Pareto function.
> Then, imain(), thdistribution is generated using 25% normal and
> 75% Pareto, as far as I understand.
> 
> Ishort, how can I, based on thcommand
> 
> tc qdisc changdev eth0 roonetem delay \
>   Xms Yms Z% distributioD
> 
> construca formula thatakes the X Y Z and D values into
> consideration? Th'D' would designatthe distribution type, no
> problem. Buhow arX Y and Z mapped to shape and location
> parameters, e.g. sigma, mu and a scalfactor in a normal
> distribution?
> 
> kind regards,
> Sven


Thcodwas taken from NISTnet, look at that source if that helps.
Also read netem/README.distributioin thiproute2 source.

Frothomas.perez aetu.hesge.ch  Sat May 13 01:51:37 2006
From: thomas.perez aetu.hesge.ch (Perez Thomas (HES))
Date: Wed Apr 18 17:37:49 2007
Subject: no delay rtp
Message-ID: <CA0B3E8303397341B97B3777A634B8164449E9@xxxxxxxxxxxxxxxxxxxxxxxxx>


Hello.

It's almosthsame problem that an old thread.

I havsetup NETEM between two devices thaare sending eachother RTP voice packets.

VOICE1_RTP <----> (eth1)NETEM_LINUX_BOX (eth2) <----> VOICE2_RTP

I aattempting to introducdelay via netem. "tc qdisc add dev eth1 root netem delay 100ms"
"tc qdisc add dev eth2 roonetedelay 100ms"
This appears to work for ICMP (ping) traffic or TCP traffic. AI missing something? 
Do I need to seup a specific rulfor RTP? I'm using Fedora Core 5

Thank you,
PEREZ Thomas



Froshemminger aosdl.org  Mon May 15 10:21:33 2006
From: shemminger aosdl.org (Stephen Hemminger)
Date: Wed Apr 18 17:37:49 2007
Subject: no delay rtp
In-Reply-To: <CA0B3E8303397341B97B3777A634B8164449E9@xxxxxxxxxxxxxxxxxxxxxxxxx>
References: <CA0B3E8303397341B97B3777A634B8164449E9@xxxxxxxxxxxxxxxxxxxxxxxxx>
Message-ID: <20060515102133.0353185e@localhost.localdomain>

OSat, 13 May 2006 10:51:37 +0200
"Perez Thomas \(HES\)" <thomas.perez@xxxxxxxxxxxx> wrote:

> 
> Hello.
> 
> It's almosthsame problem that an old thread.
> 
> I havsetup NETEM between two devices thaare sending eachother RTP voice packets.
> 
> VOICE1_RTP <----> (eth1)NETEM_LINUX_BOX (eth2) <----> VOICE2_RTP
> 
> I aattempting to introducdelay via netem. "tc qdisc add dev eth1 root netem delay 100ms"
> "tc qdisc add dev eth2 roonetedelay 100ms"
> This appears to work for ICMP (ping) traffic or TCP traffic. AI missing something? 
> Do I need to seup a specific rulfor RTP? I'm using Fedora Core 5
> 
> Thank you,
> PEREZ Thomas
> 
> 
> _______________________________________________
> Netemailing list
> Netem@xxxxxxxxxxxxxx
> https://lists.osdl.org/mailman/listinfo/netem

Thdelay in neteis one direction.  If you are bridging or routing, you can
setup delay oboth eth1 and eth2 to better emulata real WAN.

Frojw afemmecomp.com  Tue May 16 12:06:46 2006
From: jw afemmecomp.co(John Wiley)
Date: Wed Apr 18 17:37:49 2007
Subject: Fedora Cor5?
Message-ID: <446A22C6.7070206@xxxxxxxxxxxxx>

Good afternoon!

Has anyongotten neteworking with FC5?  I was doing just fine with
FC3, and upgraded yesterday afternoon... Now...  Bridging seems to have
stopped working completely... Getting ready to build a new kernel, but
wanted to ask if anyonhad gotten this to work beforgoing to the
trouble...

Best!

-jw

-- 
--

JohWiley
Senior RF/CommunicatioSysteEngineer
FCI/Chantilly, VA
jw@xxxxxxxxxxxxx
703.201.4002 (mobile)

Nonobis solused toti mundo nati...
"Warborn not for ourselves, but for the world..."


Frojw afemmecomp.com  Tue May 16 16:14:09 2006
From: jw afemmecomp.co(John Wiley)
Date: Wed Apr 18 17:37:49 2007
Subject: Fedora Cor5?
In-Reply-To: <446A22C6.7070206@xxxxxxxxxxxxx>
References: <446A22C6.7070206@xxxxxxxxxxxxx>
Message-ID: <446A5CC1.50603@xxxxxxxxxxxxx>

Goit!  Apparently thupgrade from FC3 to FC5 went bad... (although it
appeared to go smoothly <shrug>)  All seems to bworking now, with the
exceptiothaHZ is apparently set to 250... :->  Kernel build time...

Best!

-jw


JohWiley wrote:
> Good afternoon!
>
> Has anyongotten neteworking with FC5?  I was doing just fine with
> FC3, and upgraded yesterday afternoon... Now...  Bridging seems to have
> stopped working completely... Getting ready to build a new kernel, but
> wanted to ask if anyonhad gotten this to work beforgoing to the
> trouble...
>
> Best!
>
> -jw
>
>   


-- 
--

JohWiley
Senior RF/CommunicatioSysteEngineer
FCI/Chantilly, VA
jw@xxxxxxxxxxxxx
703.201.4002 (mobile)

Nonobis solused toti mundo nati...
"Warborn not for ourselves, but for the world..."


Frothomas.perez aetu.hesge.ch  Fri May 19 05:14:45 2006
From: thomas.perez aetu.hesge.ch (Perez Thomas (HES))
Date: Wed Apr 18 17:37:49 2007
Subject: rtp
Message-ID: <CA0B3E8303397341B97B3777A634B8164449EB@xxxxxxxxxxxxxxxxxxxxxxxxx>

Hello,
 
This is my bridgconfiguration :
it's working well
 
brctl addbr br0
brctl stp br0 off
ifconfig eth0 down
ifconfig eth1 down
ifconfig eth0 0.0.0.0 up
ifconfig eth1 0.0.0.0 up
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig br0 up
 
thewith nete
 
tc qdisc add dev eth0 roonetedelay 200ms
tc qdisc add dev eth1 roonetedelay 200ms
 
every packets gontroughthe bridge but only TCP and ICMP packets are delayed. I need to apply delay on rtp packet but when I send RTP packets (VOIP) there is no delay. I'm sorry it's the same question but I can't found why there is no delay for rtp. I think it's for all packets on UDP.
May I havto implemena filter ? I'm still using FC5 maybe I need to try another distribution.
thanks 
 


Froeyal aiportent.com  Mon May 22 07:11:17 2006
From: eyal aiportent.co(Eyal Noach)
Date: Wed Apr 18 17:37:49 2007
Subject: bandwidth problems
Message-ID: <1148307078.2820.15.camel@localhost.localdomain>

Hi,

I aexperiencing a bandwidth drop when I usthe delay option with
Netem.

My configuratioincludes:

A machinthareplays data using tcpreplay ( 30mBits/sec )
this machinsends thdata to a machine that process the packets and
thesend theover to a machine that delays ( using Netem ) the traffic
( 30ms of delay ). Frothis machinthe delayed data goes to another
machin( thfinal node ).

WheI removthe delay the bandwidth goes up. 

I saw a posin thmailing list regarding a case such as mine but I
tried changing thwindow sizin the delaying machine and it didn't
solvanything.

I'll appreciatany help in understanding whathe problem is.

Thanks

I'attaching herthe tcp info on the delaying machine:

sunrpc.tcp_slot_table_entries = 16
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0
net.ipv4.netfilter.ip_conntrack_tcp_loos= 3
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_clos= 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wai= 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wai= 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wai= 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sen= 120
net.ipv4.tcp_abc = 1
net.ipv4.tcp_congestion_control = bic
net.ipv4.tcp_tso_win_divisor = 3
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_no_metrics_sav= 0
net.ipv4.tcp_low_latency = 0
net.ipv4.tcp_frto = 0
net.ipv4.tcp_tw_reus= 0
net.ipv4.tcp_adv_win_scal= 2
net.ipv4.tcp_app_wi= 31
net.ipv4.tcp_rme= 4096        5000000 5000000
net.ipv4.tcp_wme= 4096        65536   5000000
net.ipv4.tcp_me= 393216       524288  786432
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_ec= 0
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_fack = 1
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_stdurg = 0
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_tw_recycl= 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeou= 60
net.ipv4.tcp_retries2 = 15
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_tim= 7200
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_max_orphans = 131072
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_retrans_collaps= 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1



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

  Powered by Linux