[Detnet] 答复: Packet Ordering Function (draft-varga-detnet-pof-00.txt)

"Yangfan (IP Standard)" <shirley.yangfan@huawei.com> Wed, 12 May 2021 09:56 UTC

Return-Path: <shirley.yangfan@huawei.com>
X-Original-To: detnet@ietfa.amsl.com
Delivered-To: detnet@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id F3CE43A3BF3 for <detnet@ietfa.amsl.com>; Wed, 12 May 2021 02:56:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, WEIRD_QUOTING=0.001] autolearn=unavailable autolearn_force=no
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id jvDvcqkMKDad for <detnet@ietfa.amsl.com>; Wed, 12 May 2021 02:56:42 -0700 (PDT)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 35ACA3A3BF2 for <detnet@ietf.org>; Wed, 12 May 2021 02:56:42 -0700 (PDT)
Received: from fraeml702-chm.china.huawei.com (unknown []) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4Fg8zH1jyJz67w7X for <detnet@ietf.org>; Wed, 12 May 2021 17:45:15 +0800 (CST)
Received: from nkgeml703-chm.china.huawei.com ( by fraeml702-chm.china.huawei.com ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2176.2; Wed, 12 May 2021 11:56:33 +0200
Received: from nkgeml701-chm.china.huawei.com ( by nkgeml703-chm.china.huawei.com ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Wed, 12 May 2021 17:56:31 +0800
Received: from nkgeml701-chm.china.huawei.com ([]) by nkgeml701-chm.china.huawei.com ([]) with mapi id 15.01.2176.012; Wed, 12 May 2021 17:56:31 +0800
From: "Yangfan (IP Standard)" <shirley.yangfan@huawei.com>
To: =?utf-8?B?QmFsw6F6cyBWYXJnYSBB?= <balazs.a.varga=40ericsson.com@dmarc.ietf.org>, Ludovic Thomas <ludovic.thomas@woolab.fr>, "detnet@ietf.org" <detnet@ietf.org>
Thread-Topic: [Detnet] Packet Ordering Function (draft-varga-detnet-pof-00.txt)
Thread-Index: AQHXNouva3Cy4+26RzSR8F6P/oLW6qq/qq4AgB/993A=
Date: Wed, 12 May 2021 09:56:31 +0000
Message-ID: <354948afbcc44cf3bd114342e887c381@huawei.com>
References: <2af69bf1-d5a1-c5c3-9a7c-9efd0bcecf2c@woolab.fr> <AM0PR0702MB36035772105916DF3C993792AC469@AM0PR0702MB3603.eurprd07.prod.outlook.com>
In-Reply-To: <AM0PR0702MB36035772105916DF3C993792AC469@AM0PR0702MB3603.eurprd07.prod.outlook.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_354948afbcc44cf3bd114342e887c381huaweicom_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/detnet/QgTMNPmf3dmOetyBTK6V3TFxn38>
Subject: [Detnet] =?utf-8?b?562U5aSNOiAgUGFja2V0IE9yZGVyaW5nIEZ1bmN0aW9u?= =?utf-8?q?_=28draft-varga-detnet-pof-00=2Etxt=29?=
X-BeenThere: detnet@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussions on Deterministic Networking BoF and Proposed WG <detnet.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/detnet>, <mailto:detnet-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/detnet/>
List-Post: <mailto:detnet@ietf.org>
List-Help: <mailto:detnet-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/detnet>, <mailto:detnet-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 12 May 2021 09:56:47 -0000

Hi Bala'zs,

Thank you for bring up this draft. As Greg said, the mechanism is well designed and clearly written. Thank you for the work!

I have a question about the reset of POF function mentioned in section 4.2. I am not sure the reset is likely to refer to a situation of a POF failure or a management operation. Is this POF state necessary and obligatory? I don’t  see any consequence if we remove the definition of state.

Since you mentioned the reset of sequence number on replication node, I wonder if the sequence number (SN) state of PEF is affected by SN reset of PRF, whether SN state of PEF will affect SN state of POF? Are they synchronized or running independently?



发件人: detnet [mailto:detnet-bounces@ietf.org] 代表 Balázs Varga A
发送时间: 2021年4月22日 16:10
收件人: Ludovic Thomas <ludovic.thomas@woolab.fr>fr>; detnet@ietf.org
主题: Re: [Detnet] Packet Ordering Function (draft-varga-detnet-pof-00.txt)

Hi Ludovic,

Many thanks for your comments, really appreciated.

Your comments pointed to some characteristics of POF, what may need to be better highlighted in the draft.
- DetNet uses PREOF for service protection and DetNet excludes usage of ECMP (RFC8964). So, any out-of-order
is caused by PREF (more exactly, out-of-order is caused by PEF).
- POF is never a standalone function in DetNet scenarios, there is always a PEF function before POF applied. The
impact of PEF function on the packet flow must be considered when POF is engineered or evaluated. We may
use for the analysis the rather detailed specification of IEEE 802.1CB on Replication and Elimination functions.
- DetNet uses a circular sequence number space, so comparing 2 sequence numbers is always relative.

Regarding your comments:
1, “POFTakeAnyTime"
Yes, reboot of the source (or just a reset of the sequence generation function in PRF) results in a possible sequence
number order (inside the DetNet network) as described in your example. However, the packet flow hits first the PEF,
having a history window. The PEF will discard the packets with sequence number below 1000, so they will not be
processed by the POF.
Section 4.5 in the draft, refers to that impact of PEF with an example:
“   … For example, under normal circumstances the
   difference of sequence number in consecutive packets is bounded due
   to the history window of PEF.”

I think based on your comment, that impact of PEF would be worth to highlight more in the next version of the draft.
Dealing with reset/reboot scenarios is not a trivial task and may need further markers/flags traveling with the packet.
Reset related improvements were discussed in IEEE, you may check here:

2, “POFLastSent update”
Here I do not agree with your conclusion. The POF algorithm never “stucks”. POF maximum impact on a
packet is to delay it for “POFMaxDelay” time. “POFMaxDelay” is engineered to ensure that the packet
is still within its latency budget.
So as in your example: yes, packet103 will be delayed for POFMaxDelay time. Packet104, packet105
etc. (when received in-order) will be delayed less (if at all). All packets remains within the latency budget.
Average latency is somewhat increased but in case of DetNet we do not care about average, the target is
to be within the bounded latency, what is achieved for all packets.

Thanks & Cheers

From: detnet <detnet-bounces@ietf.org<mailto:detnet-bounces@ietf.org>> On Behalf Of Ludovic Thomas
Sent: Wednesday, April 21, 2021 10:53 AM
To: detnet@ietf.org<mailto:detnet@ietf.org>
Subject: Re: [Detnet] Packet Ordering Function (draft-varga-detnet-pof-00.txt)

Hi all, I have two thoughts on it:


1/ what are you thoughts in changing:

"""" [Current version]

The next received packet must be forwarded and the POFLastSent

      updated wheno the POF function was reset OR no packet was received

      for a predefined time ("POFTakeAnyTime").



""" [Proposed version]

The next received packet must be forwarded and the POFLastSent

      updated wheno the POF function was reset OR no packet with a seq_num strictly higher (>) than POFLastSent was received

      for a predefined time ("POFTakeAnyTime").



Consider the following use-case:

Source has been up for a while, at POF point we received and sent thousand packets such that POFLastSent = 1000

Suddenly the source reboots and the reboot is so fast that the time elapsed between:

               - when packet noted 1000 was sent prior to reboot

               - when packet noted 0 is sent after reboot

is less or equal to the inter-packet spacing. (meaning the time elapsed between 1000 and 0 is about the same or even less than between 999 and 1000).

As such, in any coherent design the time elapsed between 1000 and 0 is less than POFTakeAnyTime.

Now assume POF function receives 1000, 0, 3, 1, [a sequence of out-of order packets], 100, 102, 101, 104, 103 ... again with a spacing between 1000 and 0 that is less than POFTakeAnyTime.

* With the current version, after reception of 1000, timer is started, but reset as soon as 0 is received.

At the end of the day each receiving packet resets the timer before it fires, so POFLastSent stays at 1000 and all packets are forwarded without being reordered until the sequence number reaches 1000 again.

* With the proposed version, neither 0 nor 3, 1, etc resets the timer because their sequence number is <= POFLastSent.

After some time (say just BEFORE packet 100) the timer is fired, POFLastSent is set to 100 and starting from there is the output of POF is back in order.


2/ also, the draft states

o  If (seq_num <= POFLastSent + 1)

      *  Then the packet is forwarded and "POFLastSent" is updated

         (POFLastSent = seq_num).

I believe we shouldn't update POFLastSent if the seq_num is <= POFLastSent. In the above example, assume the POFTakeAnyTime is fired just AFTER packet 100. Packet 102 is received, is sent and sets POFLastSent=102.

With the current version, 101 is received, is sent (because seq_num <= POFLastSent + 1) and sets POFLastSent=101, from there the system is stuck because 102 will never be received again, and the following packets will be released after the POFMaxDelay expires.

With the proposed version (no update of POFLastSent if the seq_num is <= POFLastSent), then 101 does not set POFLastSent=101 and the system continues normal operation.


My two cents,