CoDel(8) Linux CoDel(8) NAME CoDel−Controlled-DelayActiveQueueManagementalgorithm SYNOPSIS tcqdisc...codel[limitPACKETS][targetTIME][intervalTIME][ecn|noecn] DESCRIPTION CoDel(pronounced"coddle")isanadaptive"no-knobs"activequeuemanagementalgorithm (AQM)schemethatwasdevelopedtoaddresstheshortcomingsofREDanditsvariants.Itwas developedwiththefollowinggoalsinmind: oItshouldbeparameterless. oItshouldkeepdelayslowwhilepermittingburstsoftraffic. oItshouldcontroldelay. oItshouldadaptdynamicallytochanginglinkrateswithnoimpactonutilization. oItshouldbesimpleandefficientandshouldscalefromsimpletocomplexrouters. ALGORITHM CoDelcomeswiththreemajorinnovations.Insteadofusingqueuesizeorqueueaverage,ituses thelocalminimumqueueasameasureofthestanding/persistentqueue.Second,itusesasingle state-trackingvariableoftheminimumdelaytoseewhereitisrelativetothestandingqueue delay.Third,insteadofmeasuringqueuesizeinbytesorpackets,itismeasuredinpacket-sojourn timeinthequeue. CoDelmeasurestheminimumlocalqueuedelay(i.e.standingqueuedelay)andcomparesittothe valueofthegivenacceptablequeuedelaytarget.Aslongastheminimumqueuedelayisless thantargetorthebuffercontainsfewerthanMTUworthofbytes,packetsarenotdropped. Codelentersadroppingmodewhentheminimumqueuedelayhasexceededtargetforatime greaterthaninterval.Inthismode,packetsaredroppedatdifferentdroptimeswhichissetby acontrollaw.Thecontrollawensuresthatthepacketdropscausealinearchangeinthethroughput.Oncetheminimumdelaygoesbelowtarget,packetsarenolongerdropped. Additionaldetailscanbefoundinthepapercitedbelow. PARAMETERS limit hardlimitontherealqueuesize.Whenthislimitisreached,incomingpacketsaredropped.Ifthe valueislowered,packetsaredroppedsothatthenewlimitismet.Defaultis1000packets. target istheacceptableminimumstanding/persistentqueuedelay.Thisminimumdelayisidentifiedby trackingthelocalminimumqueuedelaythatpacketsexperience.Defaultandrecommendedvalue is5ms. interval isusedtoensurethatthemeasuredminimumdelaydoesnotbecometoostale.Theminimum delaymustbeexperiencedinthelastepochoflengthinterval.Itshouldbesetontheorderof theworst-caseRTTthroughthebottlenecktogiveendpointssufficienttimetoreact.Default valueis100ms. ecn|noecn canbeusedtomarkpacketsinsteadofdroppingthem.Ifecnhasbeenenabled,noecncanbe usedtoturnitoffandvice-a-versa.Bydefault,ecnisturnedoff. iproute2 23May2012 1 CoDel(8) Linux CoDel(8) EXAMPLES #tcqdiscadddeveth0rootcodel #tc-sqdiscshow qdisccodel801b:deveth0rootrefcnt2limit1000ptarget5.0msinterval100.0ms Sent245801662bytes275853pkt(dropped0,overlimits0requeues24) backlog0b0prequeues24 count0lastcount0ldelay2usdropnext0us maxpacket7306ecnmark0dropoverlimit0 #tcqdiscadddeveth0rootcodellimit100target4msinterval30msecn #tc-sqdiscshow qdisccodel801c:deveth0rootrefcnt2limit100ptarget4.0msinterval30.0msecn Sent237573074bytes268561pkt(dropped0,overlimits0requeues5) backlog0b0prequeues5 count0lastcount0ldelay76usdropnext0us maxpacket2962ecnmark0dropoverlimit0 SEEALSO tc(8),tc-red(8) SOURCES oKathleenNicholsandVanJacobson,"ControllingQueueDelay",ACMQueue, http://queue.acm.org/detail.cfm?id=2209336 AUTHORS CoDelwasimplementedbyEricDumazetandDavidTaht.ThismanpagewaswrittenbyVijay Subramanian.PleasereportscorrectionstotheLinuxNetworkingmailinglist<netdev@vger.kernel.org>. iproute2 23May2012 2