Re: [Detnet] [DetNet] TQF vs CSQF

peng.shaofu@zte.com.cn Mon, 21 August 2023 10:04 UTC

Return-Path: <peng.shaofu@zte.com.cn>
X-Original-To: detnet@ietfa.amsl.com
Delivered-To: detnet@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 69A99C151540 for <detnet@ietfa.amsl.com>; Mon, 21 Aug 2023 03:04:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.097
X-Spam-Level: ***
X-Spam-Status: No, score=3.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_SUMOF=5, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, UNPARSEABLE_RELAY=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GGDDfqqaP0cc for <detnet@ietfa.amsl.com>; Mon, 21 Aug 2023 03:04:05 -0700 (PDT)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.216.63.35]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 32909C15153D for <detnet@ietf.org>; Mon, 21 Aug 2023 03:04:04 -0700 (PDT)
Received: from mse-fl1.zte.com.cn (unknown [10.5.228.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mxhk.zte.com.cn (FangMail) with ESMTPS id 4RTp3K67sZz5PLrF; Mon, 21 Aug 2023 18:03:57 +0800 (CST)
Received: from njb2app06.zte.com.cn ([10.55.23.119]) by mse-fl1.zte.com.cn with SMTP id 37LA3rxe063143; Mon, 21 Aug 2023 18:03:54 +0800 (+08) (envelope-from peng.shaofu@zte.com.cn)
Received: from mapi (njb2app06[null]) by mapi (Zmail) with MAPI id mid201; Mon, 21 Aug 2023 18:03:57 +0800 (CST)
Date: Mon, 21 Aug 2023 18:03:57 +0800
X-Zmail-TransId: 2afe64e3368dffffffffbdc-f949e
X-Mailer: Zmail v1.0
Message-ID: <202308211803569934451@zte.com.cn>
Mime-Version: 1.0
From: peng.shaofu@zte.com.cn
To: tte@cs.fau.de
Cc: detnet@ietf.org
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl1.zte.com.cn 37LA3rxe063143
X-Fangmail-Gw-Spam-Type: 0
X-Fangmail-Anti-Spam-Filtered: true
X-Fangmail-MID-QID: 64E3368D.000/4RTp3K67sZz5PLrF
Archived-At: <https://mailarchive.ietf.org/arch/msg/detnet/7jhcA8m56RSwQVL8l2XxVlckvfs>
Subject: Re: [Detnet] [DetNet] TQF vs CSQF
X-BeenThere: detnet@ietf.org
X-Mailman-Version: 2.1.39
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: Mon, 21 Aug 2023 10:04:09 -0000

Hi Toerless,






Thank you for your detailed views and suggestions.


Please see inline #PSF.






Regards,


PSF











Original



From: ToerlessEckert <tte@cs.fau.de>
To: 彭少富10053815;
Cc: detnet@ietf.org <detnet@ietf.org>;
Date: 2023年08月21日 01:00
Subject: Re: [Detnet] [DetNet] TQF vs CSQF



Thanks Peng, inline.
 
On Tue, Aug 15, 2023 at 06:07:55PM +0800, peng.shaofu@zte.com.cn wrote:
> Hi WG,  
>  
>   
>  
> Due to concerns within the working group regarding the differences between TQF
>  
> (https://www.ietf.org/archive/id/draft-peng-detnet-packet-timeslot-mechanism-03.txt) and  
>  
> CSQF(https://www.ietf.org/archive/id/draft-chen-detnet-sr-based-bounded-latency-03.txt),   
>  
>  
> clarification was attempted in this thread. It should be noted that there may still be some  
>  
>  
> reference papers that have not been draftting in the current CSQF document. For these  
>  
> potential contents, we can further compare them based on the updated version of CSQF  
>  
> later.  This comparison is temporarily based on the latest version of CSQF (i.e., 03-version).  
>  
> The purpose of our clarification is to contribute valid solutions to meet large-scaling  
>  
> deterministic requirements.
>  
>  
>  
>  
> Overall, if understand correctly, CSQF proposes a method of carrying a cycle-id stack in  
>  
> the data packets, which is not fundamentally different from TCQF  
>  
> (https://www.ietf.org/archive/id/draft-eckert-detnet-tcqf-04.txt) that carry a single cycle-id  
>  
> in the data pakckets and maintain cycle-id mapping relationships on nodes. For both of them,  
>  
> the forwarding plane is based on the 3-buffer (or 3-bin) round robin queue mechanism  
>  
> described by TSN ECQF (https://1.ieee802.org/tsn/802-1qdv/) or  
>  
> https://www.ietf.org/archive/id/draft-dang-queuing-with-multiple-cyclic-buffers-00.txt,  
 
The number of cycle buffers in TCQF and CSQF is not fixed to 3. I guess there may be cases
where 2 works (i have not tried to spend time looking or describing those as i think they're
a bit of a corner case), and there are of course important cases for the number of buffers
to be larger than 3. We do have some description of example if i remember correctly in TCQF.
 




#PSF: Here 3-buffer (or 3-bin) is used as a likely term compared to the 2-queue mode 


of CQF, but not to limit that it can only be 3. How many buffers are required, accordong 


to the design principle (see draft CSQF section 3.3.  CSQF Timing Model) , depends on 


the ratio of intra-node forwarding delay variation to the cycle duration (allocate tolerated 


buffers or increase cycle duration). There may be an argument that why CSQF must obey 


the above design principle, it is easy to extend to use arbitrary number of buffers. This is 


certainly true, and that means any Round robin/TDMA related queueing mechanisms may 


be covered by CSQF. This may be a little crazy. The key point is in fact not related to the 


number of buffers, but to the original design principle. As mentioned below, the design 


principle of TQF is timeslot round robin queue (or PIFO queue) within an instantiated 


orchestration period, but the similar principle is not seen in CSQF.




Note that in TCQF, the number of cycles needs to be the same along a path, whereas in CSQF

it can be different across different hops. I don't think to remember if we have given a simple
example for that additional flexibility of CSQF though, but for example instead of 3 cycles
you could use 6 cycles on maybe only some hops, each with half the cycle time of the "normal" 3 cycles,
and then by assigning the right cycle sequence have 50% of traffic with one cycle less
latency across such a hop.
 


#PSF: If I understand correctly, TCQF is actually similar to CSQF that different node may 

have different intra-node fowarding delay variation, so that different nodes may need 

different cycles. For example, TCQF may maintain the cycle-id mapping relationship: 

x -> x+2 on node A, but x -> x+3 on node B just because node B has a larger forwarding 

delay variation. The example you provided is not seen in draft CSQF, that may be challenge 

for TCQF/CSQF to process the inter-operation of inconsistent cycle time (i.e., from a specific 

cycle time to half the cycle time), e.g, cycle mapping may be not constant, and looking forward 


to more descriptions of CSQF.  Note that TSN ECQF described a count-based bin method to 


process this case, but depends on state machine per stream; TQF naturely support this case 


with the same orchestration period instance (this is also why we repeatedly emphasize that 


the orchestration period is an important design factor of TQF). 







> that is, CSQF does not describe a new queueing mechanism, but rather a method of carrying  
> cycle-id(s).
 
Thats all a matter where you are looking from.
 
Do you think that SRv6 is not a new routing mechanismm compared to IPv6 routing, but rather
a method of carrying the address(es) by which the packet is routed ?
 
That may be one way to look at it, but i wonder who is being helped by this point of view
given the difference in functionality and mechanisms you need to use with/without SRv6. Aka:
given the additional benefits of SRv6.
 


#PSF: My means is to get the common queueing mechanism of all *CQF* variants and then 

compare this common mechanism with TQF's queueing mechanism.




Of course, implementation wise, TCQF and CSQF do share all the core functionalities to implement  
(cycle buffers), and i am quite open to merge TCQF with CSQF into one draft if thats what the
WG would prefer to move the work forward.
 


#PSF: We have the same understanding here, that the core functionalities to implement 

cycle buffers can be seen in draft-dang or TSN ECQF.







> 1) Therefore, we believe it is necessary to first differentiate between TQF and CSQF in the  
>  
> design of the underlying queueing mechanism.
>  
> TQF attempts to construct specific orchestration period instance in IP/MPLS networks,
>  
> as well as timeslot resources within that orchestration period instance, and a timeslot
>  
> based queueing mechanism. Where, the type of queue based on timeslots can be either
>  
> round robin or PIFO. No matter which option, queue resources are specific representations
>  
> of timeslot resources and are related to orchestration period instance (derived from gating
>  
> cycle of TSN TAS). Taking Round Robin as an example, each timeslot in the orchestration
>  
> period corresponds to a queue (or buffer), which is its simple design concept (however,
>  
> we also considered optimization in this case, see the role of scheduling period).
 
I think i expressed previously on the mailing list, and i definitely did so during my
IETF117 presentations:
 
I think we should not conflate the functionality of per-hop controlled latency forwarding such
as proposed via TCQF, CSQF or gLBF with the longer-period orchestration of interleaving of
flows.  TQF does conflate these two functions, and i think this would have us (DetNet)
end up with a single, unnecessarily monolythic and functionality limited solution.
 


#PSF: This statement for TQF may be not true. In fact, the orchestration period of TQF is 

not a new thing, which is derived from the gating cycle with specific length (containing 

multiple timeslots) of TSN-TAS that has already been designed to instantiate on each 

device to help queue scheduling and not  acted as a conflated object. We believe that if 

trying to introduce timeslot resources to IP/MPLS, the first thing is how to define a 

timeslot, including its length, its identification, etc, these parameters are all based on a 

known orchestration period, and these parameters themselves provide a foundation for 

timeslot based path calculation and queue resource establishment. 




For example, if i simple have a large set of low-bitrate flows from an ingres node PE1 to
an egres node PE2, i can interlave those flows with timed gated on PE1 completely independent
of the per-hop forwarding mechanism. I could use RFC2212, TSN-CQF, TSN-ATS, TCQF, CSQF or gLBF
as controlled latency hop-by-hop forwarding - with the same PE1 ingress timed gates to do the interleaving.
 


#PSF: Perhaps we can not decouple flow interleaving with TCQF/CSQF, if here we don't talk about 

overprovision method as described in TSN ECQF. That is, without flow interleaving, TCQF/CSQF 

can not guarantee per-hop latency, and can not act as controlled latency mechanism alone as others.

That means, without flow interleaving, RFC2212, ATS, ATS+damper (your gLBF) can still give 

controlled latency due to regulation,but TCQF/CSQF can not.







Likewise, if i want to increase utilization with DetNet traffic for traffic from/two different
ingress/egress PE (flows which happen to just be on se same output interface on some P node),
then i can equally use such timed gates on the ingress PE and combine with TSN-CQF, TCQF or CSQF.
 


#PSF: Agree.




This modularity is why i wrote and presented draft-eckert-detnet-flow-interleaving,
It exactly proposes that we should specificy such timed gates for use with DetNet.
This should be as much as possible based on TSNs functionality, but as much as desired so that
DetNet implementers do not have to understand/extract/profile/implement any TSN
specifics of such gates that are not needed/desired for DetNet.
 


#PSF: TQF can be taken regarded as a solution of flow interleaving.  The timeslot is 

naturely isolated and interleaved. However, we think this modularity is integrated, and you 

think it is decoupled. : )




Note that draft-eckert-detnet-flow-interleaving is not the specification i think we should
have for gates, or "long-term orchestration" of flows as you call it, so if we agree on the
principle, there is certainly a good amount of spec work still to be done. But please lets write
it independent of the per-hop mechanisms.
 


#PSF: Great, for this point our understanding is basically consistent. In current version 

of TQF, according to integrated modularity as mentioned above, it described timeslot 

resource definition, signaling, path calculation, queueing allocation rule, to provide 

deterministic by a systematic approach. You may find that, for TQF, discussing per-hop 

mechanisms alone (as they are nothing more than round robins, PIFO, etc) does 

not make sense.  However, we may continue to consider this suggestion.







Of course, given how i hope we do want to support per-hop mechanisms with explicit tagging
of packets, our gates also need to be able to generate not only the scheduling time of packets
of flows (such as the TSN gates), but also the tags required by the per-hop mechanisms we
want to support (which of course is optional, in the above PE1/PE2 flow aggregation case together
with eg.: rfc2212 or tsn-ats you wouldn't need tags).
 


#PSF: Agree.


> CSQF also adopts the round robin queue, adding the possible additional tolerance queue
>  
> based on CQF's 2-buffer. The design concept of the tolerance queue is to absorb the
>  
> forwarding delay jitter within the node. Therefore, CSQF generally uses 3 queues as
>  
> sufficient. Refer to the following description of CSQF section 3.3.  CSQF Timing Model:
>  
> "As described in Section 2.2, both the RQ and TQ can be used for absorbing processing
>  
> jitter, and the upper bound of the absorbing capacity is 2T.  So, if the processing jitter
>  
> is less than 2T, the three-queue model can work.  Otherwise, more buffer is needed to
>  
> absorb the jitter, through increasing the duration of the cycle or by adding more queues.  
>  
> Increasing the duration of the cycles is equivalent to increasing the depth of the queues
>  
> (adding more buffer for each queue)." 
 
I have not tried to edit-read all of CSQF, especially not the pieces which are the same with
TCQF, but CQSF, like TCQF would rougly want to use 3+J buffers when
 
   J*CT <= (O(MTIE) + O(LDV)) < (J+1)*CT.
 
Aka: if the sum of clock jitter between nodes (MTIE) plus the Link Delay Variation (LDV)
is larger than 1 cycle time, then you want J=1+3 = 4 cycles. If it is larger than 2 cycles,
you want 2+3 = 5 cycles - and so on.
 


#PSF: There may be different descriptions of the individual components of delay 

variation  to calculate required cycles I found, which will not be detailed here.




> From the above, it can be seen that only observing the round robin used by TQF and the round  
>  
> robin used by CSQF seems similar, but there is a significant difference in the definition of queues  
>  
> ("timeslot queue" vs "SQ/RQ/TQ") and the selection rule for the number of queues ("orchestration  
>  
> period related" vs "intra-node forwarding delay jitter related"). Note that the basic round robin  
>  
> queue (and corresponding TDMA ideas) is not dedicated or exclusive to CSQF or TQF.
 
The cycle assignments in CSQF can of course serve different purposes, and theoretically
i could do the flow interleaving across (in my draft-eckert-detnet-flow-interleaving example)
1000 cycles all explicitly with CSQF cycles. But obviously, i would not want to put any
unnecessary complexity and scale challenge into my hop-by-hop forwarding, when i can
equally well do it with just timed gates on the ingress PE. Hence to me the rule is that
the numbrer of cycles we should require routers to support hop-by-hop in CSQF (and TCQF) is
solely based on uses that can not be done equally well with ingress timed gates. To me this
is primarily  jitter (MTIE, LDV) and the latency priorization i mentioned before.
 


#PSF: So you provide another design principle to calculate the required cycles for CSQF 

that depends on the best-effort result of interleaving only on ingress PE. This may be hard 

to implement, or there may be a circular dependency, because the flow interleaving is related 

with calculated paths of streams, while the calculated paths depend on the instantiated cycles. 

IMO a clear design principle for the required cycles unrelated with flows adding/deleting 

may be better.




technically speaking, i think we would want to have <= 15 cycles in CSQF so that we could come
up with an encoding that does not use more than 4 bits per-hop to carry the cycle-ID. Of course,
SRH would give us a lot more bits, but SRH is quite inefficient to encode a strict path with
per-hop SIDs, so i very much assume that we would want to deploy CSQF together with some
form of compressed source routing header such as draft-ietf-spring-srv6-srh-compression, and
try to minimize the number of per-hop SIDs we need to support CSQF.
 


#PSF: Agree with your considerations about CSQF. Just for comparison, in TQF, it is the 

timeslot id within the orchestration period (but not the scheduling period) carried in packets, 

so 15 may be not sufficient. For example, to support some possible SBI (service burst interval) 

with length 1ms, an orchestration period may contain 100 timeslots.




> Correspondingly, the semantics of cycle-id and timeslot-id are not the same. In particular, the  
>  
> timeslot-id of TQF does not require any relationship between the timeslot lengths of all nodes due
>  
>  to its simple identification of timeslots within the orchestration period instance. Our limitation is  
>  
> just that all nodes inter-operate based on the same orchestration period instance. While the range  
>  
> of values for cycle-id may be the number of SQ/RQ/TQ queues (or buffers, or bins) implemented  
>  
> on the forwarding plane.
 
Yes. timeslot-id would rather be a term to use i think in the context of draft-eckert-detnet-flow-interleaving
type orchestration and the timed gates it requires.
 


#PSF: ACK.




> In addition, with the help of PIFO, TQF attempts to discuss the forwarding behavior of in-time,  
>  
> which is also different from CSQF.
>  
>  
>  
>  
> 2) Then let's compare the packet encapsulation on the data plane.
>  
> The information carried in the data packets is related to the parameters used by the queueing  
>  
> mechanism.  
>  
> A CSQF data packets may carry a cycle-id stack, which is used to indicate the ID of RQ/TQ
>  
> accessed by each node along the path.
>  
> While a TQF data packet may carry the instance number of the orchestration period and
>  
> the timeslot id (e.g, a single global timeslot id, or local timeslot id stack, or a single global
>  
> timeslot offset, or local timeslot offset stack) within that orchestration period, used to
>  
> indicate that each node along the path accesses the timeslot queue resources of that
>  
> orchestration period instance.
 
Would be good to come up with a simple to understsnd example of the added user value of carring this additional
metadata in packets as compared to TCQF/CSQF + ingres-edge-gates. So far, i do not see it.
 


#PSF: In current version of TQF it just mentioned that orchestration period instance and 

timeslot information should be carried in packets. In later versions, we will provide detailed

encapsulation design and related examples.




>  
> 3) Then the comparison of the resource reservation schemes on the control plane
>  
> TQF attempts to model the timeslot resources of a specific orchestration period instance
>  
> on a port that enables it. Each orchestration period instance is allocated an initial bandwidth,
>  
> containing each timeslot with an initial maximum reservable burst amount and real-time
>  
> free amount. The selection of orchestration period length is related to the length of the
>  
> service burst interval. It also provide the signaling method and a budget based timeslot
>  
> resource reservation algorithm.
 
I think this is covered by hopefully well understandable examples in draft-eckert-detnet-flow-interleaving.
 


#PSF: We may firstly get agreement on the above necessary schemes, that is proposed 

as a potential solution for large scaling requirements. Examples are not enough.




>  
> CSQF mentioned that resources is interface occupation time, and the allocation unit is cycle.
>  
> However, the specific resource reservation algorithm is the local behavior of the controller.
>  
> There is no contents about modeling and signaling of timeslot resource on the device.  
 
Thats why i wrote draft-eckert-detnet-flow-interleaving.
 


#PSF: Understand, we are trying to solve the same problem. Open to cooperate on it.




> Hope the above clarification be helpful.  
 
Thanks
>  
> If you have any comments/suggestions, please send to us.
 
+1 for my response ;-)
 
> Regards,
>  
> PSF (on behalf of co--authors of TQF)
 
Cheers
    Toerless (on behalf of the co-authors of TCQF/CSQF ;-)
 
_______________________________________________
detnet mailing list
detnet@ietf.org
https://www.ietf.org/mailman/listinfo/detnet