[aqm] Questioning each PIE heuristic

Bob Briscoe <ietf@bobbriscoe.net> Fri, 24 March 2017 00:01 UTC

Return-Path: <ietf@bobbriscoe.net>
X-Original-To: aqm@ietfa.amsl.com
Delivered-To: aqm@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id E51D0128B4E; Thu, 23 Mar 2017 17:01:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id hC7igNsjZSWq; Thu, 23 Mar 2017 17:01:05 -0700 (PDT)
Received: from server.dnsblock1.com (server.dnsblock1.com []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C414B1288B8; Thu, 23 Mar 2017 17:01:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Transfer-Encoding:Content-Type: MIME-Version:Date:Message-ID:Cc:To:Subject:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=4R5bWXdKmR298kj1rF0bOoguGSq7llARF57Q8bCfoAU=; b=gwETugiL4LnlQ4egwLaYbqsALn HdH6UYNB3aRDOdN+jLR43vIbkwonxX0FEw1RU8DK2dKAL4eNrjOgzenY/cE3M8yle+Ch0w3Hzj6r4 BBXpY4VvnqmMtwzzHr3UEwkMH5YKS2E3aN606cHFYAwcFS9xBpcgJ7pRwABqJwF+/dAcrN2bfYB7+ m7v9Y6+Kg3QxNjT6tG1I+V3Qjs/oK6LxbJapOyQxEePAl27J7W5UzxADZsHEt6x+okvVvfoUeIx2E Xy4hUt6xGYb9QUTQuG3XJNKaPfA0Gxq7B8ERL10hyx7a/x6KqzJu8DLxtX8XHAfPuyOvA6MDNeEc1 PX23dqkg==;
Received: from ([]:35334 helo=[]) by server.dnsblock1.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.88) (envelope-from <ietf@bobbriscoe.net>) id 1crCf7-00015A-Ro; Fri, 24 Mar 2017 00:01:02 +0000
From: Bob Briscoe <ietf@bobbriscoe.net>
To: "Rong Pan (ropan)" <ropan@cisco.com>, Greg White <g.white@CableLabs.com>, FredBaker.IETF@gmail.com, prenatar@cisco.com
Cc: "De Schepper, Koen (Koen)" <koen.de_schepper@nokia.com>, AQM IETF list <aqm@ietf.org>, tsvwg IETF list <tsvwg@ietf.org>
Message-ID: <9ddba389-e368-9050-3b14-aa235c99fcb8@bobbriscoe.net>
Date: Fri, 24 Mar 2017 00:01:01 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server.dnsblock1.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: server.dnsblock1.com: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: server.dnsblock1.com: in@bobbriscoe.net
Archived-At: <https://mailarchive.ietf.org/arch/msg/aqm/HTuT_q_hvBWMO6ADwwFjPkZFrEo>
Subject: [aqm] Questioning each PIE heuristic
X-BeenThere: aqm@ietf.org
X-Mailman-Version: 2.1.22
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, 24 Mar 2017 00:01:08 -0000

Rong, Preethi, Greg, Fred, and others involved in PIE,

You may recall that when we wrote PI2 we didn't include any of PIE's 
heuristics. Mostly because PI2 solved the issues they addressed 
intrinsically. But we left some until we had checked their benefit, 
which is what I'm doing now...

My first question is about this heuristic in PIE:

          //Safeguard PIE to be work conserving
          if ( (PIE->qdelay_old_ < QDELAY_REF/2 && PIE->drop_prob_ < 0.2)
                || (queue_.byte_length() <= 2 * MEAN_PKTSIZE) ) {
               return ENQUE;

If it tests true, this block doesn't stop the calculation of drop_prob_ 
evolving, but it disables it being able to lead to any random packet drop.

I can understand why you want to disable packet drop when the queue is 
no more than 2 packets.
My question is about the first half of the logical OR. The drop_prob_ < 
20% test will be true under normal non-overloaded conditions. So I have 
just realized that the qdelay_old_ < QDELAY_REF/2 test will turn off 
random drop very often. I would expect this to radically impact the 
behaviour of PIE. It seems to be overriding the PI controller as if you 
are thinking "actually we don't really trust the PI controller to leave 
it to do its thing, so we've overridden it a lot of the time." For 
instance, whenever a single long-running TCP flow with RTT about the 
same as the target delay is saw-toothing, this test will disable random 
drop completely during the lower half of every saw-tooth in the queue. 
Maybe that's OK, but...

Without this test, the PI controller should reduce drop probability as 
the queue sawtooths down anyway. If another flow causes the queue to 
rise rapidly while it is under half the target, the PI controller is 
designed to detect such an increase and translate it into drop. But this 
heuristic suppresses any drop until the queue has exceeded half the target.

So my questions are:

Q1. What were the reasons for introducing such a frequent suppression of 
the PI algorithm (the RFC just says what this code does, not why)?

Q2. Why use qdelay_old_ in the test? This seems to drive suppression of 
drop using stale state.

Q3. Having said that it looks like this heuristic will significantly 
alter PIE's behaviour, in tests under a very wide range of traffic 
conditions, link rates, mixed RTTs, traffic models etc, we have found 
that removing the heuristics makes no measurable difference to PIE's 
performance. So if you added this heuristic for a specific scenario, 
please describe it, so we can test for it.



Bob Briscoehttp://bobbriscoe.net/