Re: [aqm] Codel's count variable and re-entering dropping state at small time intervals

Jonathan Morton <chromatix99@gmail.com> Fri, 14 August 2015 15:59 UTC

Return-Path: <chromatix99@gmail.com>
X-Original-To: aqm@ietfa.amsl.com
Delivered-To: aqm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 78B3C1A7D82 for <aqm@ietfa.amsl.com>; Fri, 14 Aug 2015 08:59:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.75
X-Spam-Level:
X-Spam-Status: No, score=-1.75 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kZeRn9wLBRlJ for <aqm@ietfa.amsl.com>; Fri, 14 Aug 2015 08:59:16 -0700 (PDT)
Received: from mail-lb0-x22c.google.com (mail-lb0-x22c.google.com [IPv6:2a00:1450:4010:c04::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2EE2E1A21A8 for <aqm@ietf.org>; Fri, 14 Aug 2015 08:59:16 -0700 (PDT)
Received: by lbbsx3 with SMTP id sx3so48067871lbb.0 for <aqm@ietf.org>; Fri, 14 Aug 2015 08:59:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=29bb9mbYfJq9s3k8vc/X211J8UfoOg/u8mOy39Tdwd8=; b=jCML/SewKHK6Mv9lD27PwATRhLxWUz7tolgtqTrBonWlF3Ej47BHAdcnihM8Y0wTaN +ktpkcVVxRBX0ozCP86YN+22VrWyE8v6fhVOAFGaA1adht/ExmNFBxXylsxqzGrnN29g rJskqu8l4bELrSeFEIrG0hMcqfppEnIo0OFqTb/lDWZpqkSkALI5AWD4CigXyNpcB61+ rYauNOH1DxvX6oAY0n/oc2oR9zl2PlNd1vkiCmINTeXwZ73k2o6LNdIizNwqYMV86w/X a8EBoQXqnBB7nfecYQOOFIy4tCcW5RBPRzt3RkFnQaFXaTFwEHgqA8+JcahhTusaBhtz 0RIg==
X-Received: by 10.112.171.167 with SMTP id av7mr15129634lbc.48.1439567954677; Fri, 14 Aug 2015 08:59:14 -0700 (PDT)
Received: from bass.home.chromatix.fi (176-93-44-124.bb.dnainternet.fi. [176.93.44.124]) by smtp.gmail.com with ESMTPSA id ld2sm1560704lac.49.2015.08.14.08.59.12 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 14 Aug 2015 08:59:14 -0700 (PDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\))
From: Jonathan Morton <chromatix99@gmail.com>
In-Reply-To: <55CE085F.5080700@student.kit.edu>
Date: Fri, 14 Aug 2015 18:59:08 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <29E9D01D-F0B3-4F1B-A4B3-057668148E82@gmail.com>
References: <55AD2695.8050605@kit.edu> <07D540E8-1184-4DBD-B372-40C55A485C40@gmail.com> <55CDE8E3.4080207@student.kit.edu> <9EEB70FD-2B99-49AC-8C58-A74CFC0DEFC2@gmail.com> <55CE085F.5080700@student.kit.edu>
To: Polina Goltsman <polina.goltsman@student.kit.edu>
X-Mailer: Apple Mail (2.2102)
Archived-At: <http://mailarchive.ietf.org/arch/msg/aqm/S5Ia3aJiPIsBvepUJqW_OZAyuHg>
Cc: Anil.Agarwal@viasat.com, Roland Bless <roland.bless@kit.edu>, codel@lists.bufferbloat.net, aqm@ietf.org
Subject: Re: [aqm] Codel's count variable and re-entering dropping state at small time intervals
X-BeenThere: aqm@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Discussion list for active queue management and flow isolation." <aqm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/aqm>, <mailto:aqm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/aqm/>
List-Post: <mailto:aqm@ietf.org>
List-Help: <mailto:aqm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/aqm>, <mailto:aqm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 14 Aug 2015 15:59:17 -0000

> On 14 Aug, 2015, at 18:25, Polina Goltsman <polina.goltsman@student.kit.edu> wrote:
> 
> What is the default value of "threshold" for default interval and target?

From sch_cake.c 694-696:

	fqcd->cparams.target = max(byte_target_ns, ns_target);
	fqcd->cparams.interval = max(MS2TIME(100) + fqcd->cparams.target - ns_target, fqcd->cparams.target * 8);
	fqcd->cparams.threshold = (fqcd->cparams.target >> 15) * (fqcd->cparams.interval >> 15) * 2;

Given default interval is 100ms (100,000,000 ns) and target is 5ms (5,000,000 ns), threshold will be about 931,322.  This is compared to the scaled product of sojourn time and the time since the target was first exceeded, so its units are not time but time-squared.

The calculation is designed to place the trigger when the queue is growing as slowly as possible (ie. resting just above the target sojourn time) at twice the nominal interval.  This also places the fastest possible trigger at about a third of the nominal interval.

 - Jonathan Morton