Re: [aqm] FQ-PIE kernel module implementation

"Rong Pan (ropan)" <ropan@cisco.com> Wed, 08 July 2015 18:16 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 93C201A6F0B for <aqm@ietfa.amsl.com>; Wed, 8 Jul 2015 11:16:54 -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 K9HGdJI6elZo for <aqm@ietfa.amsl.com>; Wed, 8 Jul 2015 11:16:52 -0700 (PDT)
Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 720391A6F27 for <aqm@ietf.org>; Wed, 8 Jul 2015 11:16:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8490; q=dns/txt; s=iport; t=1436379412; x=1437589012; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=RHHyOE/busR0OE/OTF5ZlP3e15PNwQYuolV8sxlhTMc=; b=Ntx6SgBZW36kqgh0aFVvrGXMsR8IWHZE0bBP8CFTZcYhKNE1xL0XWVjn 4Rv4xnXJ92h3X60IPHLpy0XuVgEBUEmgkG65QOiswGy22R8LMUeAe59Pq j6+h2HcnWE/+j59hl8Ye4ZxdyHWb0RV+FOHE4Z7EyNRYiggXTPn5Q/qMY k=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0ATBQBwaJ1V/5JdJa1cDoMEVGAGgxq6OoFxhXUCHIFAOhIBAQEBAQEBgQqEIwEBAQQ0OgsMBAIBCBEEAQEBBCMFAgIwFAkIAgQBDQWILQENmjidEQaWOQEBAQEBAQEBAQEBAQEBAQEBAQEBARMEgRuKMIRbEBsHBAKCXIFJBZQjAYRmhxeBO4QYiwWEK4NfJmOBKRyBFT5vAQGBRYEEAQEB
X-IronPort-AV: E=Sophos;i="5.15,433,1432598400"; d="scan'208";a="10010498"
Received: from rcdn-core-10.cisco.com ([173.37.93.146]) by rcdn-iport-4.cisco.com with ESMTP; 08 Jul 2015 18:16:51 +0000
Received: from xhc-rcd-x13.cisco.com (xhc-rcd-x13.cisco.com [173.37.183.87]) by rcdn-core-10.cisco.com (8.14.5/8.14.5) with ESMTP id t68IGpc1021231 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Wed, 8 Jul 2015 18:16:51 GMT
Received: from xmb-aln-x15.cisco.com ([169.254.9.203]) by xhc-rcd-x13.cisco.com ([173.37.183.87]) with mapi id 14.03.0195.001; Wed, 8 Jul 2015 13:16:51 -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//+LFACAAQ3xAIAANTSA
Date: Wed, 08 Jul 2015 18:16:50 +0000
Message-ID: <D1C2B40F.5AFE%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>
In-Reply-To: <7A2801D5E40DD64A85E38DF22117852C70AD421B@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: <8F3C8EB8A429FF41A28C8F97452D6A0F@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/aqm/EmgkMw3STz-rBIa2lh36MLCNlA0>
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 18:16:54 -0000

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_hironor
>>>iokano_fq-2Dpie_blob_master_sch-5Ffq-5Fpie.c&d=AwIGog&c=jcv3orpCsv7C4ly8
>>>-ubDob57ycZ4jvhoYZNDBA06fPk&r=FyvaklKYrHaSCPjbBTdviWIW9uSbnxdNSheSGz1Jvq
>>>4&m=ZhwYVG7trmH21ngvxzmFV1-mkreFJJEBMToS4eye5KU&s=90jYjRUO0hcRiGb1Kd3owx
>>>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_mailman
>>_listinfo_aqm&d=AwIGog&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=Fy
>>vaklKYrHaSCPjbBTdviWIW9uSbnxdNSheSGz1Jvq4&m=ZhwYVG7trmH21ngvxzmFV1-mkreFJ
>>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_mailman_
>listinfo_aqm&d=AwIGog&c=jcv3orpCsv7C4ly8-ubDob57ycZ4jvhoYZNDBA06fPk&r=Fyva
>klKYrHaSCPjbBTdviWIW9uSbnxdNSheSGz1Jvq4&m=ZhwYVG7trmH21ngvxzmFV1-mkreFJJEB
>MToS4eye5KU&s=hAK-RY-wfp0zIHzoazmmKJ03TrFqQ2TM9SqbDo_ku3Q&e=