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