Re: [aqm] FQ-PIE kernel module implementation

"Rong Pan (ropan)" <ropan@cisco.com> Wed, 08 July 2015 21:01 UTC

Return-Path: <ropan@cisco.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 53EA21A87AF for <aqm@ietfa.amsl.com>; Wed, 8 Jul 2015 14:01:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.777
X-Spam-Level:
X-Spam-Status: No, score=-10.777 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FRT_FUCK2=3.434, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
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 3avUl_Wjeblo for <aqm@ietfa.amsl.com>; Wed, 8 Jul 2015 14:01:02 -0700 (PDT)
Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C33941A87AE for <aqm@ietf.org>; Wed, 8 Jul 2015 14:01:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=10498; q=dns/txt; s=iport; t=1436389261; x=1437598861; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Twx8axId6fYyJwidJBOdqXVGOALH8qgBwOTaevmFB6k=; b=alx98D2HlLjw9OSQ37kuq+v1P+enJzLotKXhFwzEAYf0+dwFfCsUqieB B47dU86HYwIvejisYS+NHekgtZ5kaH7kmz14BItFrnfPq4MWhd2FcJELt 8ZUsidaLO9XQ8i+4xU8vkm3ssilebyC50QmxKvbETR19fZ3o6Icu9i83L o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AWBQA7jp1V/4MNJK1bDoMEVGAGgxq6YIV3AhyBQTwQAQEBAQEBAYEKhCMBAQEENDoLDAQCAQgRBAEBAQQjBQICMBQJCAIEAQ0FiC0BDZpLnREGljQBAQEBAQEBAQEBAQEBAQEBAQEBAQETBIEbijCEUwgQGwcEAoJcgUkFlCMBhGaHF4E7hBiLBYQrg18mY4EpHIEVPm8BAYFFgQQBAQE
X-IronPort-AV: E=Sophos;i="5.15,434,1432598400"; d="scan'208";a="166487006"
Received: from alln-core-1.cisco.com ([173.36.13.131]) by alln-iport-2.cisco.com with ESMTP; 08 Jul 2015 21:01:00 +0000
Received: from xhc-aln-x14.cisco.com (xhc-aln-x14.cisco.com [173.36.12.88]) by alln-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id t68L10e7027429 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Wed, 8 Jul 2015 21:01:00 GMT
Received: from xmb-aln-x15.cisco.com ([169.254.9.203]) by xhc-aln-x14.cisco.com ([173.36.12.88]) with mapi id 14.03.0195.001; Wed, 8 Jul 2015 16:01:00 -0500
From: "Rong Pan (ropan)" <ropan@cisco.com>
To: "Agarwal, Anil" <Anil.Agarwal@viasat.com>, "Francini, Andrea (Andrea)" <andrea.francini@alcatel-lucent.com>, Polina Goltsman <uucpf@student.kit.edu>, "Fred Baker (fred)" <fred@cisco.com>, Toke Høiland-Jørgensen <toke@toke.dk>
Thread-Topic: [aqm] FQ-PIE kernel module implementation
Thread-Index: AQHQnxLHo+U4nRH5VEqK1N9uhqwYK52lzHSAgCN6BID//7b8qYAAVkSAgACr3QCABqphAIAAfKeA//+LFACAAQ3xAIAANTSAgACdIID//5C+gA==
Date: Wed, 08 Jul 2015 21:01:00 +0000
Message-ID: <D1C2DD21.5B6F%ropan@cisco.com>
References: <D1961A16.1087%hokano@cisco.com> <5577FBD3.5000804@student.kit.edu> <97EDD2D8-CC0A-4AFA-9A74-3F2C282CF5C2@cisco.com> <87mvzem9i9.fsf@alrua-karlstad.karlstad.toke.dk> <7E6C797B-EE6F-4390-BC8F-606FDD8D5195@cisco.com> <559659A8.9030104@student.kit.edu> <D1C1965D.59EA%ropan@cisco.com> <1BFAC0A1D7955144A2444E902CB628F865B044BB@US70TWXCHMBA12.zam.alcatel-lucent.com> <D1C1A7DF.5A59%ropan@cisco.com> <7A2801D5E40DD64A85E38DF22117852C70AD421B@wdc1exchmbxp05.hq.corp.viasat.com> <D1C2B40F.5AFE%ropan@cisco.com> <7A2801D5E40DD64A85E38DF22117852C70AD5116@wdc1exchmbxp05.hq.corp.viasat.com>
In-Reply-To: <7A2801D5E40DD64A85E38DF22117852C70AD5116@wdc1exchmbxp05.hq.corp.viasat.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.5.2.150604
x-originating-ip: [171.71.131.12]
Content-Type: text/plain; charset="euc-kr"
Content-ID: <F9C2C3FC99E6E84E8723A57C823E7378@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/aqm/JamrVXqTTcWYXn-8q9NmN8h6sJ8>
Cc: "draft-ietf-aqm-pie@tools.ietf.org" <draft-ietf-aqm-pie@tools.ietf.org>, "Hironori Okano -X (hokano - AAP3 INC at Cisco)" <hokano@cisco.com>, AQM IETF list <aqm@ietf.org>
Subject: Re: [aqm] FQ-PIE kernel module implementation
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: Wed, 08 Jul 2015 21:01:07 -0000

Yes, if we use timestamp, then we can have separate PIE per queue.

Rong

On 7/8/15, 1:39 PM, "Agarwal, Anil" <Anil.Agarwal@viasat.com> wrote:

>Rong,
>
>Since the timestamp discussion came up in the context of FQ-PIE, it is
>not clear how we would use timestamp-based delay values measured across
>many queues to perform the computation of p. The delays experienced in
>different queues can have vastly different values.
>FQ-PIE has a single instance of PIE across all queues and a single value
>of p. How do you compute est_del from the various delay values from
>multiple queues?
>Or are you thinking of using a separate PIE instance per queue?
>Can you please elaborate?
>
>Thanks,
>Anil
>
>-----Original Message-----
>From: Rong Pan (ropan) [mailto:ropan@cisco.com]
>Sent: Wednesday, July 08, 2015 2:17 PM
>To: Agarwal, Anil; Francini, Andrea (Andrea); Polina Goltsman; Fred Baker
>(fred); Toke Høiland-Jørgensen
>Cc: draft-ietf-aqm-pie@tools.ietf.org; Hironori Okano -X (hokano - AAP3
>INC at Cisco); AQM IETF list
>Subject: Re: [aqm] FQ-PIE kernel module implementation
>
>We can take the timestamp values to figure out latency and plug into
>PIE's basic control law.
>
>p = p + alpha*(est_del-target_del) + beta*(est_del-est_del_old);
>
>We have tried this implementation before for comparison purpose. This
>would react slowly than deriving latency for queue length because latency
>value is only available when a packet leaves a queue. But it would remove
>any inaccuracy in calculating the latency. For PIE, we go for rate
>estimation as we think timestamping packets in hardware would be hard.
>FQ_PIE is a different story. If someone affords to implement FQ, then
>timestamping would not be too much of an overhead.
>
>The other twist works as well. We will experiment and decide what we want
>to do.
> 
>
>Drop_Queue_i = (Queue_lenth_i / Longest_Queue_length) * drop_prob
>
>Thanks,
>
>Rong
>
>
>On 7/8/15, 1:06 AM, "Agarwal, Anil" <Anil.Agarwal@viasat.com> wrote:
>
>>Rong,
>>
>>Can you please elaborate on how packet timestamps would be used with
>>FQ-PIE?
>>It is not obvious.
>>
>>Is there a written description of FQ-PIE?  Does it describe use of
>>timestamps as well?
>>
>>For equation -
>>	Drop_Queue_i = (Queue_lenth_i / Longest_Queue_length) * drop_prob is
>>there a fast algorithm for computing Longest_Queue_length for large
>>number of queues?
>>
>>Thanks,
>>Anil
>>
>>-----Original Message-----
>>From: aqm [mailto:aqm-bounces@ietf.org] On Behalf Of Rong Pan (ropan)
>>Sent: Tuesday, July 07, 2015 7:00 PM
>>To: Francini, Andrea (Andrea); Polina Goltsman; Fred Baker (fred); Toke
>>Høiland-Jørgensen
>>Cc: draft-ietf-aqm-pie@tools.ietf.org; Hironori Okano -X (hokano - AAP3
>>INC at Cisco); AQM IETF list
>>Subject: Re: [aqm] FQ-PIE kernel module implementation
>>
>>My bad, my memory has slipped. What you quote below is accurate..
>>
>>
>>
>>Rong
>>
>>
>>
>>On 7/7/15, 3:58 PM, "Francini, Andrea (Andrea)"
>>
>><andrea.francini@alcatel-lucent.com> wrote:
>>
>>
>>
>>>Hi Rong,
>>
>>>
>>
>>>In the ns2 version of (then) SFQ-PIE described in the May 2014
>>>CableLabs
>>
>>>document titled "ACTIVE QUEUE MANAGEMENT IN DOCSIS 3.X CABLE MODEMS",
>>>a
>>
>>>different formula than the one you gave below was used to compute the
>>
>>>drop probability of Queue i:
>>
>>>
>>
>>>Drop_Queue_i = (Queue_lenth_i / Longest_Queue_length) * drop_prob
>>
>>>
>>
>>>i.e., the length of the longest queue was used at the denominator
>>>instead
>>
>>>of the aggregate queue length (Total_Queue_Length).
>>
>>>
>>
>>>I am curious about the reason that required that particular
>>>algorithmic
>>
>>>change. 
>>
>>>
>>
>>>Thank you,
>>
>>>
>>
>>>Andrea
>>
>>>
>>
>>>
>>
>>>-----Original Message-----
>>
>>>From: aqm [mailto:aqm-bounces@ietf.org] On Behalf Of Rong Pan (ropan)
>>
>>>Sent: Tuesday, July 07, 2015 6:33 PM
>>
>>>To: Polina Goltsman; Fred Baker (fred); Toke Høiland-Jørgensen
>>
>>>Cc: draft-ietf-aqm-pie@tools.ietf.org; Hironori Okano -X (hokano -
>>>AAP3
>>
>>>INC at Cisco); AQM IETF list
>>
>>>Subject: Re: [aqm] FQ-PIE kernel module implementation
>>
>>>
>>
>>>FQ_PIE still uses rate estimation so the aggregated queue length would
>>
>>>give us more precise estimation of the latency. Actually, on second
>>
>>>thought, if we are going to afford the complexity of FQ, then
>>>timestamp
>>
>>>packets become trivial. If we use time stamp in FQ_PIE, all these
>>>concerns
>>
>>>would be gone. 
>>
>>>
>>
>>>Having said that, drop probability can be easily tuned according to
>>>each
>>
>>>queue¹s queue length:
>>
>>>Drop_Queue_i = Queue_lenth_i/Total_Queue_length*drop_prob. This has
>>>shown
>>
>>>to work. Hiro¹s previous implementation of FQ_PIE has it and it is
>>
>>>working. Unfortunately, in his new version of FQ_PIE, this somehow
>>>gets
>>
>>>lost. 
>>
>>>
>>
>>>He will update FQ_PIE accordingly. But I will vote for timestamp this
>>>time
>>
>>>as FQ is a lot more complicated than time stamp. If one decides to use
>>>FQ,
>>
>>>timestamp comes easy as well.
>>
>>>
>>
>>>Thanks,
>>
>>>
>>
>>>Rong
>>
>>>
>>
>>>
>>
>>>
>>
>>>
>>
>>>
>>
>>>On 7/3/15, 2:45 AM, "Polina Goltsman" <uucpf@student.kit.edu> wrote:
>>
>>>
>>
>>>>
>>
>>>>
>>
>>>>On 07/03/2015 01:30 AM, Fred Baker (fred) wrote:
>>
>>>>>> On Jul 2, 2015, at 4:21 PM, Toke Høiland-Jørgensen <toke@toke.dk>
>>
>>>>>>wrote:
>>
>>>>>>
>>
>>>>>> This is, as far as I can tell from your explanation, different
>>>>>> than
>>
>>>>>>what
>>
>>>>>> fq_pie does.
>>
>>>>> OK, apologies for the misinformation.
>>
>>>>>
>>
>>>>> In any event, the matter is not fundamental to fair queuing.
>>
>>>>According to the code and Toke in FQ-Codel there are separate state
>>
>>>>variables for each queue,
>>
>>>>whereas in FQ-PIE there is a single instance of state (see line 72-75
>>>>in
>>
>>>>sch_fq_pie.c
>>
>>>>  
>>>><https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_hiro
>>>>nor
>>>>iokano_fq-2Dpie_blob_master_sch-5Ffq-5Fpie.c&d=AwIGog&c=jcv3orpCsv7C4
>>>>ly8 
>>>>-ubDob57ycZ4jvhoYZNDBA06fPk&r=FyvaklKYrHaSCPjbBTdviWIW9uSbnxdNSheSGz1
>>>>Jvq 
>>>>4&m=ZhwYVG7trmH21ngvxzmFV1-mkreFJJEBMToS4eye5KU&s=90jYjRUO0hcRiGb1Kd3
>>>>owx
>>>>wftY2Pd3WrK2Hs-sq619E&e= >).
>>
>>>>This is [should be] equivalent to a PIE queue
>>
>>>>which uses FQ instead of FIFO as a child queue.
>>
>>>>
>>
>>>>As I understand the FQ-Codel draft, it seems to be fundamental to
>>
>>>>FQ-Codel that each queue has separate state variables.
>>
>>>>So my question is: is it indeed fundamental ?
>>
>>>>
>>
>>>>P.S. comment on line sch_fq_pie.c  should probably be updated
>>
>>>
>>
>>>_______________________________________________
>>
>>>aqm mailing list
>>
>>>aqm@ietf.org
>>
>>>https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mail
>>>man 
>>>_listinfo_aqm&d=AwIGog&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r
>>>=Fy 
>>>vaklKYrHaSCPjbBTdviWIW9uSbnxdNSheSGz1Jvq4&m=ZhwYVG7trmH21ngvxzmFV1-mkr
>>>eFJ JEBMToS4eye5KU&s=hAK-RY-wfp0zIHzoazmmKJ03TrFqQ2TM9SqbDo_ku3Q&e=
>>
>>
>>
>>_______________________________________________
>>aqm mailing list
>>aqm@ietf.org
>>https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailm
>>an_ 
>>listinfo_aqm&d=AwIGog&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=F
>>yva 
>>klKYrHaSCPjbBTdviWIW9uSbnxdNSheSGz1Jvq4&m=ZhwYVG7trmH21ngvxzmFV1-mkreFJ
>>JEB MToS4eye5KU&s=hAK-RY-wfp0zIHzoazmmKJ03TrFqQ2TM9SqbDo_ku3Q&e=
>