Re: [Teas] Network slicing framework : Issue #2 : How many connectivity matrices in a slice?

Adrian Farrel <adrian@olddog.co.uk> Tue, 28 September 2021 17:17 UTC

Return-Path: <adrian@olddog.co.uk>
X-Original-To: teas@ietfa.amsl.com
Delivered-To: teas@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CA7563A358C for <teas@ietfa.amsl.com>; Tue, 28 Sep 2021 10:17:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 4.103
X-Spam-Level: ****
X-Spam-Status: No, score=4.103 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_SUMOF=5, HTML_MESSAGE=0.001, MAY_BE_FORGED=1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
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 tLU5uvGIzJrx for <teas@ietfa.amsl.com>; Tue, 28 Sep 2021 10:17:23 -0700 (PDT)
Received: from mta7.iomartmail.com (mta7.iomartmail.com [62.128.193.157]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BB9933A358B for <teas@ietf.org>; Tue, 28 Sep 2021 10:17:22 -0700 (PDT)
Received: from vs2.iomartmail.com (vs2.iomartmail.com [10.12.10.123]) by mta7.iomartmail.com (8.14.4/8.14.4) with ESMTP id 18SHHIrL017929; Tue, 28 Sep 2021 18:17:18 +0100
Received: from vs2.iomartmail.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4777646050; Tue, 28 Sep 2021 18:17:18 +0100 (BST)
Received: from vs2.iomartmail.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 317E24604C; Tue, 28 Sep 2021 18:17:18 +0100 (BST)
Received: from asmtp2.iomartmail.com (unknown [10.12.10.249]) by vs2.iomartmail.com (Postfix) with ESMTPS; Tue, 28 Sep 2021 18:17:18 +0100 (BST)
Received: from LAPTOPK7AS653V (84.93.166.80.plusnet.pte-ag1.dyn.plus.net [84.93.166.80] (may be forged)) (authenticated bits=0) by asmtp2.iomartmail.com (8.14.4/8.14.4) with ESMTP id 18SHHHok003236 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 28 Sep 2021 18:17:17 +0100
Reply-To: adrian@olddog.co.uk
From: Adrian Farrel <adrian@olddog.co.uk>
To: 'Tarek Saad' <tsaad.net@gmail.com>, 'TEAS WG' <teas@ietf.org>
References: <050601d7b3bc$bd784b80$3868e280$@olddog.co.uk> <DM5PR1901MB21500050DC76CB9EFFEB03A9FCA89@DM5PR1901MB2150.namprd19.prod.outlook.com>
In-Reply-To: <DM5PR1901MB21500050DC76CB9EFFEB03A9FCA89@DM5PR1901MB2150.namprd19.prod.outlook.com>
Date: Tue, 28 Sep 2021 18:17:16 +0100
Organization: Old Dog Consulting
Message-ID: <06f701d7b48c$afe17b10$0fa47130$@olddog.co.uk>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_06F8_01D7B495.11A6F480"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQHYAXOf5LRq8lZFuxbMWCQjnFkSFQOhq4Jvq5wBjRA=
Content-Language: en-gb
X-Originating-IP: 84.93.166.80
X-Thinkmail-Auth: adrian@olddog.co.uk
X-TM-AS-GCONF: 00
X-TM-AS-Product-Ver: IMSVA-9.1.0.2034-8.6.0.1018-26436.001
X-TM-AS-Result: No--6.006-10.0-31-10
X-imss-scan-details: No--6.006-10.0-31-10
X-TMASE-Version: IMSVA-9.1.0.2034-8.6.1018-26436.001
X-TMASE-Result: 10--6.005700-10.000000
X-TMASE-MatchedRID: b/1IsOqez6eyoI+bK8UPQr7u5vMMMVTtaMmm586o4gCaoyD8Xyl5JCj5 3aEB5qDLJJ6LHxNyFo6Ha2xto0jmjG02TQpj95HqzNIobH2DzGGlY4F8r0vXP4blMMKBhOiUVhG Ov97/7HodOSx2Ya3yfL7KfBOpuwpjoqn18XUssBXbTbThIInD+goXSOLC5a44t05Yg6RxNmyVKq /8bCitMM5QWdVEvFsIkgRL2ttLa0FimR+RwXP5XzPF07YFM7bTX098A7fr3VcZSz1vvG+0mixzR YsJiUavRfuJfxw3BK6qtzxiEuv+30ZALE3xkZyhAiwTe0IqjZdBmlBF/IJ0fMOjWoaw/yI+X46i GZTPpJ64FUWorgRjYXGKVvhDG6SecpBwVWvgqp02R+dF8Naywnl2c9WreWzsuHs0trqQPv4z961 bZdSygoCE83DhCFpfu9rWhUWeUQmA1UdczcLx7jiEPRj9j9rvYBbaP1VZzSV/Z0SyQdcmECvz6n 8ktwf/oYFwj4Yh8VAW/v0Nb8y3QGPKPn3I8aTkvOAv94sAIMSaIhErJt0dLO1f0a3exQsSKAn/p K+zN2LNBoqK72C/uJXNx+mN3KI1++JPfIAe3T0YkAMBsEcZTKdlL9piCOvOvGAx/1ATZ5s4dmLs I9aus33Pwbg0Aqvc1YbcmUUxZ6tSM7OXoNpI2JkuHsgxfUFHfkuZtv/FS5qUODlja8vigNYFX6m mRM9GPvadj+jbQtSYZfjORODtZWJQK9wIJ221OM0alYIi99MKJM4okvH5XmMQ4CEkqlmeV0ozYx 6Zbm+hxWAM2J2vYNFVBb4XJ9sxV/tb6vKo+d2eAiCmPx4NwCs3zPQeiEbe6sBnwpOylLPer9rU4 er9uAo7AMy32XzfRNCX746oIhig/Ln1s65vuw5o9jlA6IuXk4y1MIokE5W/aHncwLzHLf+yu42Z yoSX7OH2a21nDmhDDKa3G4nrLQ==
X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0
Archived-At: <https://mailarchive.ietf.org/arch/msg/teas/nEeAfMbsjc7yIH2ZlprZYRcsROU>
Subject: Re: [Teas] Network slicing framework : Issue #2 : How many connectivity matrices in a slice?
X-BeenThere: teas@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Traffic Engineering Architecture and Signaling working group discussion list <teas.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/teas>, <mailto:teas-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/teas/>
List-Post: <mailto:teas@ietf.org>
List-Help: <mailto:teas-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/teas>, <mailto:teas-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 28 Sep 2021 17:17:28 -0000

Hi Tarek, 

 

You’ve called out some good cases for consideration.

 

>> For example, a consumer may want a slice that is ultra-low latency, and they may know that they want to send traffic from A to B, from A to C and multicast from D to A, B, and C.

[TS]: I agree that creating multiple matrices (per service type) to address the above usecase makes sense and makes it simpler for the IETF slice service consumer to reference a single ultra-low latency slice. 

*	In such case, wouldn’t the service type (unicast/multicast) be enough to differentiate what connectivity matrix the traffic would pick – as opposed to requiring an additional ID (one for identifying slice, and one for identifying the connectivity matrix).

[AF] There are two points to consider:

*	How the customer specifies the connectivity supported by the slice
*	How the implementation identifies the connectivity matrix and places traffic on the matrix

So, in this case, there is no traffic flow anticipated from A to D or from B to C, etc. Thus, it is not good enough to specify the set of endpoints, it is also important to specify the connectivity between those endpoints so that the provider knows that there is no need to provision resources for connectivity that will not be used.

How the connectivity is actually implemented in the network (and even how traffic is policed, and how SLIs are measured) is up to the provider/implementer. If (this may be a big if) the traffic is simply routed, then it would not be necessary for the provider to match traffic to a connectivity matrix – they would simply route it, and in this case the provider’s network is unaware of the connectivity matrix. On the other hand, if some form of connection-oriented approach is taken then while the traffic is simply routed/classified at the ingress endpoint, there is some relationship between connection matrix and reserved resources (think of MPLS-TE). 

If, in all this, there is no policing at the ingress endpoint, then admission control or use of resources in the transit network may need to be more carefully associated with the “flow” i.e. the connectivity matrix.

 

*	Does it make sense to have two “same type” connectivity matrices (for example, two p2p connectivity matrices for two connections between A and B)? I can see two cases:

*	If the two parallel connections (between A and B) have same SLOs, then why not aggregate into 1 connection/connectivity matrix?

[AF] I think that if they have the same SLOs and the same connectivity, then you would probably have them as a single matrix (summing the bandwidth, but keeping the latency constant, for example). But you would not be required to do that. Again, it might depend on policing and how you want to manage the SLOs. For example, two parallel connectivity matrices from A to B each with a required throughput of X Mbps is not the same as one matrix from A to B with throughput 2X – this is because A is not the traffic source: traffic comes from upstream of the slice endpoint and may originate at different applications, hosts, or sites.

 

Again consider MPLS-TE LSPs. You might, for convenience and scalability tunnel two parallel LSPs down one hierarchical LSP. The capacity of the H-LSP is the sum of the children, but the children have their own rights!

 

Of course, in this case, the SLOs might only be identical today. They might be available to change tomorrow, and in that case it is a lot easier to have two separate (“parallel”) matrices.

 

*	If the two parallel connections (between A and B) have different SLOs, then are they still same slice? wouldn’t it be better to just have them in two different slices?

[AF] This is the nub of the question. It is a multi-dimensional problem (because of the many SLOs) with a hierarchy of ownership. Customer --> slice --> matrix. You end up with the same number of leaves in the tree, but the branches are at different places. And, further, you could hang the SLOs at any point in the tree (for example at the matrix as currently proposed, or at the slice).

 

A part of this debate is: suppose two connectivity matrices have 98% agreement on their SLOs, but one SLO is fractionally different. Does that require two slices?

 

But please be aware that describing the architecture is not engineering the YANG model! With the current proposal, I would probably still write a YANG model that had default SLOs per customer, with variations per slice, with additional variations per matrix.

 

And also recall that how the network protocol implementations choose to implement adherence to SLOs is open for discussion. If they need some form of indicator/index to tell them what to do, this value will be “mapped” from {customer, slice, matrix} and it is not important (to the architecture) how that mapping is performed.

 

*	it is not clear in such case what creating two matrices “of same type” is solving? Is it loadbalance, redundancy, ?

[AF] It is not clear to me that anyone (except for you :-) has raised the case of two parallel matrices with identical SLOs.  I am not convinced that they would be used (although my throughput example, above) is a possible case. But equally important to me is the question: why would we prevent this when it comes for free?

 

Cheers,

Adrian

 

From: Teas <teas-bounces@ietf.org <mailto:teas-bounces@ietf.org> > on behalf of Adrian Farrel <adrian@olddog.co.uk <mailto:adrian@olddog.co.uk> >
Date: Monday, September 27, 2021 at 12:29 PM
To: 'TEAS WG' <teas@ietf.org <mailto:teas@ietf.org> >
Subject: [Teas] Network slicing framework : Issue #2 : How many connectivity matrices in a slice?

Hi,

Igor raised this especially in the context of how traffic is identified for association with a connectivity matrix that belongs to a slice.

Consider the definition of connectivity matrix in the current draft and as discussed in issue #1.

A consumer may want multiple connectivity matrices in their "contract" with the provider. In the example with four edge nodes (A, B, C, D), their may be traffic that flows between some edges, but not between others.

For example, a consumer may want a slice that is ultra-low latency, and they may know that they want to send traffic from A to B, from A to C and multicast from D to A, B, and C. 

It is, of course, possible to express this as three separate slices. And this is perfectly acceptable. We must not make any definitions that prevent this from being the case.

However, it seems likely that the consumer (and the operator) would prefer to talk about "the consumer's low latency slice". That is, to bundle these three connections into one construct. However, they are distinctly different connections and must be understood as such. Indeed, they may have some different SLOs associated (for example, A-B may require more bandwidth than A-C).

By allowing (but not mandating) multiple connectivity matrices in a single slice service, we facilitate this administrative group. 

One could also imagine (but I do not pre-judge the network slice service YANG model definition) a default set of SLOs that apply to all connectivity matrices in a slice, and specific modified SLOs per connectivity matrix.

Now, to Igor's point. This is about how traffic arriving at an edge (say a PE) is mapped to the correct connection. I promised a Venn diagram, but words are easier 😊

If we take the model of a port-based VPN, then one approach might be to map the (virtual or physical) port number or VLAN ID to the network slice. But clearly (and this was Igor's point) this doesn't identify the connectivity matrix if there is more than one matric per slice.

A solution I offered is that the VLAN ID could identify {slice, connectivity matrix}. At that PE, for a given AC to a CE, it is necessary to expose with a separate VLAN ID for each {slice, connectivity matrix}. That does not mean:
- we need a global unique identifier for each connectivity matrix
- we need a per-PE unique identifier for each connectivity matrix

I am *very* cautious about discussing potential technology solutions because they are just that. It is not the business of a framework to direct solutions work. But I provide this example solution just to show that it is possible.

Consider also, how traffic is placed on LSPs or on SFCs. The answer is that there is some form of classification performed at the head end. In many cases, this is as simple as examination of the destination address (traffic is "routed" onto the LSP). In other cases there is deeper analysis of the 5-tuple and even other packet parameters. Often this will be enough, but when there are multiple "parallel" connections to the same destination, some form of choice must be made: how that choice is made can be configured in an implementation, and may include looking at additional information (such as a VLAN ID) passed from the consumer.

Note that the identity of the connectivity matrix is not needed anywhere except at the ingress edge node. It may be that the connectivity matrix is mapped to some internal network structure (such as an LSP) and that that provides an implicit identification of the connectivity matrix, and it may be that a solution technology chooses to keep an identifier of the connectivity matrix with each packet, but that is not a requirement of the architecture.

I think what I have said is:
- Support of one connectivity matrix per slice is mandatory
- Support of more than one connectivity matrix per slice is in the architecture
  but is optional to implement
- There are ways that a protocol solution could achieve this function
- I have heard some voices asking for the association of multiple connectivity
  matrices with a single slice
- I have not heard anyone providing examples of harm this would cause

Please discuss.

Adrian




_______________________________________________
Teas mailing list
Teas@ietf.org <mailto:Teas@ietf.org> 
https://www.ietf.org/mailman/listinfo/teas