[aqm] Turning PIE on and off

Dave Dolson <ddolson@sandvine.com> Wed, 01 April 2015 20:21 UTC

Return-Path: <ddolson@sandvine.com>
X-Original-To: aqm@ietfa.amsl.com
Delivered-To: aqm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com []) by ietfa.amsl.com (Postfix) with ESMTP id 7FF111A909B for <aqm@ietfa.amsl.com>; Wed, 1 Apr 2015 13:21:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.091
X-Spam-Status: No, score=0.091 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id 4024eIhAtgBg for <aqm@ietfa.amsl.com>; Wed, 1 Apr 2015 13:21:00 -0700 (PDT)
Received: from mail1.sandvine.com (Mail1.sandvine.com []) by ietfa.amsl.com (Postfix) with ESMTP id A169C1A909F for <aqm@ietf.org>; Wed, 1 Apr 2015 13:20:57 -0700 (PDT)
Received: from BLR-EXCHP-2.sandvine.com ( by WTL-EXCHP-2.sandvine.com ( with Microsoft SMTP Server (TLS) id; Wed, 1 Apr 2015 16:20:56 -0400
Received: from WTL-EXCHP-2.sandvine.com ([fe80::68ac:f071:19ff:3455]) by blr-exchp-2.sandvine.com ([fe80::6c6d:7108:c63c:9055%14]) with mapi id 14.03.0181.006; Wed, 1 Apr 2015 16:20:56 -0400
From: Dave Dolson <ddolson@sandvine.com>
To: "aqm@ietf.org" <aqm@ietf.org>
Thread-Topic: Turning PIE on and off
Thread-Index: AdBsuVurZp4RJEFxRD6VixLZQ7zUEw==
Date: Wed, 1 Apr 2015 20:20:56 +0000
Message-ID: <E8355113905631478EFF04F5AA706E9830BB0765@wtl-exchp-2.sandvine.com>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_E8355113905631478EFF04F5AA706E9830BB0765wtlexchp2sandvi_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/aqm/HC_8bsPgKQlAGRT9j2LjOzWvEBc>
Subject: [aqm] Turning PIE on and off
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: <http://www.ietf.org/mail-archive/web/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: Wed, 01 Apr 2015 20:21:02 -0000

In https://tools.ietf.org/html/draft-ietf-aqm-pie-00#section-5.1,
the text recommends turning PIE on only when buffer occupancy exceeds 1/3 of the queue buffer size.

I think this recommendation unfortunately adds a new configuration parameter, the "queue buffer size".  Which value should be chosen?
If PIE is defined properly, the behavior should be predictable regardless of how large the packet memory is.
PIE should control average latency to target_delay even if the buffer size is theoretically infinite.

The pseudo-code has the same problem, defining QUEUE_SMALL = (1/3) * Buffer limit in bytes

Could the text be changed to specify some absolute size in bytes, or some absolute ratio of bytes/rate ?
Someone probably has good experimental outcomes, and they could check what size of "queue buffer size" they were using at the time.

Another approach could be to continuously measure arrival or departure rate, and enable PIE control when (qlen / rate) is some fraction of target_delay.

Alternatively, don't recommend turning PIE on and off. Just always leave it on. This requires updating 'p' even when there are few items in the queue.
You'd think that 'p' would go to zero when there is not congestion.
But I see that other aspects of the algorithm need an "off" state to work...

David Dolson
Senior Software Architect, Sandvine Inc.