Re: [Detnet] Discussion Item two <draft-ietf-detnet-yang-18.txt> last call

Florian Kauer <florian.kauer@linutronix.de> Fri, 12 January 2024 08:41 UTC

Return-Path: <florian.kauer@linutronix.de>
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 17D24C14F5E0; Fri, 12 Jan 2024 00:41:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.407
X-Spam-Level:
X-Spam-Status: No, score=-4.407 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=linutronix.de header.b="qw9bAa6K"; dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=linutronix.de header.b="XICCTEVq"
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 xdKPUXy98sEP; Fri, 12 Jan 2024 00:41:08 -0800 (PST)
Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8E7A3C14F61A; Fri, 12 Jan 2024 00:41:07 -0800 (PST)
Message-ID: <eade3906-d44e-4a72-9d3d-2437f746469e@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1705048864; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=k0Zjq8RyaSbGR6fRvtQV8x5PhQ+q38p61Qk6DR1UkeU=; b=qw9bAa6KJuUriyp99g8HQvdU60FC7ekIeyq6tZnJ51lNCjaxU16abvcs4ZnemZhFeAsWcD 0s0KbNJxMjM6m4b0DIaho3vrNEsyY3kMV2Cd5gVCbIjO/9m0xKNuCyBtI5+g3hSQUy6h4Z m5DQXmox0cIbeDym74vI3taOF0l+9V9gtJWLHt8ah050hsPDxvYQ0xoU9DPNwnUR8YN7zk PWu19+lXJktM9TgoIpSiYAixlO6IgF3vGAJB4G75tvttLN1xbEipFlGWm7LrSYYIgUyLcF X/5ZEtotoIemlc39QHtUC86HJ/N0AJiyoSzcQlvhN59+HYf7bHFwIpXOpCDyRQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1705048864; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=k0Zjq8RyaSbGR6fRvtQV8x5PhQ+q38p61Qk6DR1UkeU=; b=XICCTEVqiY3ApJPL906oFskWdwjmOEeqwPuPsIvTq1MYPADnMMfKpz5+bNIOv66/J3Baxq oNDi8s2j5ft1JsDQ==
Date: Fri, 12 Jan 2024 09:40:59 +0100
MIME-Version: 1.0
To: Don Fedyk <dfedyk@labn.net>, "detnet@ietf.org" <detnet@ietf.org>, "draft-ietf-detnet-yang@ietf.org" <draft-ietf-detnet-yang@ietf.org>, DetNet Chairs <detnet-chairs@ietf.org>
References: <PH7PR14MB536866D0D41880360378F3A4BB682@PH7PR14MB5368.namprd14.prod.outlook.com>
Content-Language: en-US
From: Florian Kauer <florian.kauer@linutronix.de>
Autocrypt: addr=florian.kauer@linutronix.de; keydata= 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 ugsSqUGtSA==
In-Reply-To: <PH7PR14MB536866D0D41880360378F3A4BB682@PH7PR14MB5368.namprd14.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/detnet/mZDvvZOVGGn0e-xjyiHANtpR24Q>
Subject: Re: [Detnet] Discussion Item two <draft-ietf-detnet-yang-18.txt> last call
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: Fri, 12 Jan 2024 08:41:12 -0000

Hi,
thanks for this summary Don! Just some additions below with [FK] hoping that others would chime in.

Greetings,
Florian

On 11.01.24 20:43, Don Fedyk wrote:
> This is the second item that Florian and I discussed. L2 applications have an interface.  Florian had a question about a single application and multiple interfaces. I suggested that with current configuration any number of app1-a interface eth0, app1-b eth1 could be aggregated in a single service. 
> The same happens at egress.  There is no load balancing is you allowed multiple unspecified interfaces for a single application on ingress or egress. 
> 
> That contrasts with IP and MPLS where several routed interfaces (not specified) could do ECMP on ingress or egress. 
> 
> That was design intent unless others feel there is something we need to address here. Please feel free to comment one way or another but I will take silence as agreed no change.  
> 
> Thanks, 
> Don Fedyk

[FK] Please note that this requires only a tiny change to the YANG model:

--- ietf-detnet.yang    2024-01-12 09:19:56.579591248 +0100
+++ multiple-ingress-interfaces/ietf-detnet.yang        2024-01-12 09:18:32.602683425 +0100
@@ -1058,15 +1058,15 @@
               "Status of ingress application flow. This is an
                operational status and defaults to none if 
                incomplete.";
             reference
               "RFC 9016 Sections
                4.1, 5.8";
           }
-          leaf interface {
+          leaf-list interfaces {
             type if:interface-ref;
             description
             "Interface is used for any service type when
              matching all flows to the interface.";
           }
           uses data-flow-spec;
         } //End of app-ingress


This would then allow to specify

--- case-a-1.json       2024-01-12 09:20:36.564024966 +0100
+++ multiple-ingress-interfaces/case-a-1.json   2024-01-12 09:18:50.702878690 +0100
@@ -64,9 +64,9 @@
           "outgoing-service": "ssl-1",
           "traffic-profile": "pf-1",
           "ingress": {
             "app-flow-status": "ietf-detnet:ready",
-            "interface": "eth0",
+            "interfaces": ["eth0", "eth1"],
             "ip-app-flow": {
               "src-ip-prefix": "2001:db8::1/128",
               "dest-ip-prefix": "2001:db8::8/128",
               "dscp": 6

The two reasons for bringing this up were:
- Symmetry (If we allow multiple egress interfaces for an app_flow, why not also for ingress?)
- Conciseness in certain applications:

I am currently trying to set up a demo for a DetNet router with 5 ingress TSN streams on 5 interfaces and 1 egress interface for the DetNet flows. I do not know ahead which TSN stream comes in via which of the 5 interfaces, so I need to identify them via TSN stream identification.
With the current model I either need to have an additional bridge which adds latency and complexity or need to configure 5*5=25 (!) app_flows to cover all potential combinations.

So it is doable with the current model, but considering the small change and since I do not see any negative side effects, I would love to see this change in the YANG model.