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

Florian Kauer <florian.kauer@linutronix.de> Fri, 12 January 2024 09:12 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 DC8EAC14F600; Fri, 12 Jan 2024 01:12:11 -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="hLr/ckbw"; dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=linutronix.de header.b="JtAi7gSA"
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 lwQ2ZWLTBGGZ; Fri, 12 Jan 2024 01:12:07 -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 7EB7EC14F61A; Fri, 12 Jan 2024 01:12:07 -0800 (PST)
Message-ID: <edadacc1-16b8-476c-8bc8-59fa21d31f8f@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1705050726; 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=T/2+iwhFDHrL59kNOMJFzx6alBQQzMdwuARXbYtV3kw=; b=hLr/ckbwXM/mX+KOaTz+89pt/+4KbNQ6AFO3o6g7WZ6kZpCSY1IJf8xQNO67Sxl0ajVU4N Vw6cBY4vmPDQHae/7vhCfj/ClW4MA9yoGMZjjwoWPhKv2K1RgxR2zaNKOb0aIaviACqx6+ LC6RSDrd0IC132cJjqTfaibVO0vCikVo+uPh2SGkxESRJssL8JI/GCDnPyN0jqDQUfZrkX 96vFmjZsecsBBSyXu0D8+mMT3nlpJ36GQGp0wZBs/jQuY/i1qye2Gcd7juQLWYEHeBgAsa cT9SCqw8U/9PwgE5k1LY9tVjfPTIM8AVKZsB2CPzps10UStH6nnF4UbZXCQo8A==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1705050726; 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=T/2+iwhFDHrL59kNOMJFzx6alBQQzMdwuARXbYtV3kw=; b=JtAi7gSAFpEZqVWFXlpNpSUx36XbxKdPbEbldFI24aG9+sjua636sctPoWOEBbYKfITKXA zo6DkeuN9OH6o/AQ==
Date: Fri, 12 Jan 2024 10:12:02 +0100
MIME-Version: 1.0
Content-Language: en-US
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: <PH7PR14MB536846BD11778425B70557E5BB682@PH7PR14MB5368.namprd14.prod.outlook.com>
From: Florian Kauer <florian.kauer@linutronix.de>
Autocrypt: addr=florian.kauer@linutronix.de; keydata= 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 ugsSqUGtSA==
In-Reply-To: <PH7PR14MB536846BD11778425B70557E5BB682@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/IK-ipqIp-DK_1ZjsR9PDKQuYuLs>
Subject: Re: [Detnet] Discussion Item one <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 09:12:11 -0000

Hi,
these two changes would definitely improve the YANG model for IP data plane usage.
Just one observation below with [FK].

Greetings,
Florian

On 11.01.24 20:43, Don Fedyk wrote:
> Hi 
> There are two items that remain in the long discussion with Florian. 
> 
> This is the first point we need to resolve.  DetNet Yang can be used for a wide variety of DetNet encapsulations.  A configuration allows aggregation and disaggregation using IP and MPLS. Florian pointed out though that he was having difficulty with and L2 Application in a Detnet IP UDP encap. Below is an example. 
> 
> This is how you might config the incoming application to IP Detnet Flow. (This part required no change) 
> ...
>     "app-flows": {
>       "app-flow": [
>         {
>           "name": "app-1",
>           "bidir-congruent": false,
>           "outgoing-service": "ssl-1",
>           "traffic-profile": "pf-1",
>           "ingress": {
>             "app-flow-status": "ietf-detnet:ready",
>             "interface": "eth0"
>           }
>         }
>       ]
>     },
>     "service": {
>       "sub-layer": [
>         {
>           "name": "ssl-1",
>           "service-rank": 10,
>           "traffic-profile": "pf-1",
>           "service-protection": {
>             "protection": "ordering",
>             "sequence-number-length": "short-sn"
>           },
>           "operation": "initiation",
>           "incoming": {
>             "app-flow": {
>               "flow": [
>                 "app-1"
>               ]
>             }
>           },
>           "outgoing": {
>             "forwarding-sub-layer": {
>               "service-outgoing": [
>                 {
>                   "index": 1,
>                   "sub-layer": [
>                     "fsl-1"
>                   ]
>                 }
>               ]
>             }
>           }
>         }
>       ]
>     },
>     "forwarding": {
>       "sub-layer": [
>         {
>           "name": "fsl-1",
>           "traffic-profile": "pf-4",
>           "incoming": {
>             "service-sub-layer": {
>               "sub-layer": [
>                 "ssl-1"
>               ]
>             }
>           },
>           "outgoing": {
>             "interface": {
>               "src-ip-address": "192.0.2.8",
>               "dest-ip-address": "192.0.2.1",
>               "protocol-next-header": 17,
>               "dscp": 6,
>               "source-port": 50000,
>               "destination-port": 50001

[FK] What I am missing now here is a way to specify the next hop IP address. I think we need that regardless whether we add IP headers in the forwarding sub-layer or not.
I would argue we do not need the operation-type anymore and can just do this:

        choice flow-type {
          description
            "These are the flow type next hop choices.";
          case ip {
            description
              "Use IP data plane for forwarding.";
            leaf next-hop-address {
              type inet:ip-address-no-zone;
              description
                "This is an IP address as a next hop.";
            }
            uses ip-header;
          }
          case mpls {
            description
              "Use MPLS data plane for forwarding.";
            uses rt-types:mpls-label-stack;
          }
        }

>             }
>           }
>         }
>       ]
>     }
>   },
>  ... 
> 
> At the Egress you have the reverse.  
> The "+"s show a missing option when not adding a full service header.
> Strictly speaking this option just adds clarity and symmetry with the ingress side config. Without the change you have a Service sublayer that has no specific reference  to the forwarding sub layer.  
>  
> I think it is worth adding this.      
> 
>    "app-flows": {
>       "app-flow": [
>         {
>           "name": "app-1",
>           "bidir-congruent": false,
>           "incoming-service": "ssl-1",
>           "traffic-profile": "pf-1",
>           "ingress": {
>             "app-flow-status": "ietf-detnet:ready"
>           },
>           "egress": {
>             "ethernet": {
>               "interface": "eth0"
>             }
>           }
>         }
>       ]
>     },
>     "service": {
>       "sub-layer": [
>         {
>           "name": "ssl-1",
>           "service-rank": 10,
>           "traffic-profile": "pf-1",
>           "service-protection": {
>             "protection": "ordering",
>             "sequence-number-length": "short-sn"
>           },
>           "operation": "termination",
> +          "incoming": {
> +            "forwarding-sub-layer": {
> +              "sub-layer": [
> +                "fsl-1"
> +              ]
> +            }
> +          },
>           "outgoing": {
>             "app-flow": {
>               "flow": [
>                 "app-1"
>               ]
>             }
>           }
>         }
>       ]
>     },
>     "forwarding": {
>       "sub-layer": [
>         {
>           "name": "fsl-1",
>           "traffic-profile": "pf-4",
>           "incoming": {
>             "forwarding-id": {
>               "src-ip-prefix": "192.0.2.1/32",
>               "dest-ip-prefix": "192.0.2.8/32"
>             }
>           },
>           "outgoing": {
>             "service-sub-layer": {
>               "sub-layer": [
>                 "ssl-1"
>               ]
>             }
>           }
>         }
>       ]
>     }
>   },
> 
> This requires a small addition to the YANG model. I 
> 
> @@ -1189,6 +1189,19 @@ module ietf-detnet {
>                   node or egress node.";
>                uses detnet-flow-spec;
>              }
> +            container forwarding-sub-layer {
> +              description
> +                "This entry allows passing the packet directly to
> +                 one or more forwarding sub-layers. This option may
> +                have no or minimal service sublayer encapsuation.";
> +              leaf-list sub-layer {
> +                type forwarding-sub-layer-ref;
> +               config false;
> +                description
> +                  "List of incoming or outgoing forwarding sub-layers that
> +                   have to aggregate or disaggregate.";
> +               }
> +            }
> 
> While I was testing this, I noted that a container labeled mpls-over-ip-encapsulation is more appropriately labeled ip-encapsulation. I think this is more accurate - it has no impact on any yang data and minimal yang/tree change.  
> 
> @@ -760,7 +760,7 @@ module ietf-detnet {
>                      "This is an IP address as a next hop.";
>                  }
>                }
> -              case mpls-over-ip-encapsulation {
> +              case ip-encapsulation {
>                  uses ip-header;
>                }
>              }
> @@ -802,7 +802,7 @@ module ietf-detnet {
>                        "This is an IP address as a next hop.";
>                    }
>                  }
> -                case mpls-over-ip-encapsulation {
> +                case ip-encapsulation {
>                    uses ip-header;
>                  }
>                }
> 
> I need co-authors to speak up and consensus this a good idea. 
> 
> Thanks
> 
> Don Fedyk