Re: [Detnet] Changes of <draft-ietf-detnet-yang-18.txt> last call

Reshad Rahman <reshad@yahoo.com> Thu, 18 January 2024 15:56 UTC

Return-Path: <reshad@yahoo.com>
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 1F42FC14F618 for <detnet@ietfa.amsl.com>; Thu, 18 Jan 2024 07:56:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.108
X-Spam-Level:
X-Spam-Status: No, score=-7.108 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-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] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.com
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 eXB2d2GvVARi for <detnet@ietfa.amsl.com>; Thu, 18 Jan 2024 07:55:59 -0800 (PST)
Received: from sonic301-2.consmr.mail.bf2.yahoo.com (sonic301-2.consmr.mail.bf2.yahoo.com [74.6.129.41]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 B4992C14F600 for <detnet@ietf.org>; Thu, 18 Jan 2024 07:55:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1705593357; bh=Zb2SWc5ngDLuSKlB6NmkLhK2JvhGAY+97bj0FFskTeQ=; h=Date:From:Reply-To:To:In-Reply-To:References:Subject:From:Subject:Reply-To; b=q9M1E6+wYN9p1TaFN16eu2jn3AVIzcXI3186p03FR+GMEeXAIKp2Pk0S7WWUf0PHBUc6rKpkiyS/0boDMOnpG9eOcShgLsJj8ZJef41JrOgZWSY1HLhTRoX0U0BMZ8sy+T8sft2wULJ5+gmGYmzFR4Kd8xQ7H//Z/9cteTuS4HlMXa+xSk4Kn7gOT9O1gZ09youWFzC/y1S2wckI2coI0AKwXfwP6IzFI1xrYKbN1M2vLRGDyfJIq1WeFEqOF7Nx+BcdzRzQPSN/KzOlR5yDJcuX5pJWtux1mnn0ipCDM2uoV1XwnNZf26Tmil3yDkTf1WB/swsY7AUNM4LmiCzcoQ==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1705593357; bh=drBwmkblkOEExMmIMIAsrlnMhwp+5hn4WmyIXZDjG09=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=lBXfKyspCn4LgWUJWTy07fLYGiXnry5b/aQECa4KLld2pgcruaHMktqtGfXfPWmMh2cNjANvicpRj+qE1IRftGYq5K6oDWQ1mHD0zSvXG/m5Bp5oTw+BafcS1UqHTeEnyRdtmu/yzoV/pSsS3g1wIzWhJr39CRbbh4ZCy2YlzAh8Qck/f2uRbecpC/6Oy3a87VdBZogGvItcFqNk/Ou7ypcG8o08DtR1T3wbVJJPsvA4I+IsStbq3Zf4UrljRgsnslwWnjkslqiKxwqZpFtil33Gmh+wk3UCCEYkbQe4xBbhsn9NExp+uDOnSzi9eH+PVwYhjFZQ1/Y9kVYFXQOgEw==
X-YMail-OSG: T0KagJUVM1kCMS1CWNbocttpZSvj.ZFnpitmXi8UUP1UtdqXEbkyUz4nvc00Exe 36F_DhgbyA3EtbudHvuSeuRXQjg0Pf.OSUIbMyN8klSJ1.mk6ou3XIECCGpQK2Db5v9CfOOrUDBU sowvKulfe61tKj3pgqxLFeZrnq3IXG4ig_D6KcNMp3u5csQT67mvnbAE6_wmirdAFuZvqC39RPcm tob_Vk3rN1zdvh5hGGeJitoqznWKmfz2HDUtFahtn2qIItfc.KrhV4rBwFIASAv6CVgA_psJA.w1 RlMsEXB0zsomGeTqU7k4mshmPLz29h7eimXkc.uZy5OSXS4Zy8yA.Jg8QJdt64DlSVgg_T_l2NjT GdCWWamVocL0JM7YrdH.BuBSW5txBjNiTogey32CMg0riuvHOeSaPZhhvZOcRxeZ3qmypfB0Z_v6 uO7J7LfVKGYvioEHSYOhRxefUGNMk1CYW0ocF7673zljU9RbEXolxUY126_GQ2hU8uuhscje9v4y s0JjEExjv08SMJIieCcIlYOB68JA9buNtOIVCwwFXKOli1wSj8pAaiPCdig_mMhdIFmVHp9PbKPf N01d29qTN_EE4weP2XJdisYG8cZKEH9x1YiHNIbUXQ4sSKwt04NoA5DAEfdvnvNpFMQ6q9CmCPKM eDOTaMTab0iycwQEm_iff5jB.wQDb7t1iGUlAucind.uG9kt73PGqq.0DuK5GF9LXytVz3isZUNZ CMpH_SdX0r6GAN4afzwf21azTMHLGzmwuGuwi67YWoKlvH8R.mmesS6zo_985FLlGFqL2ztkyflC n7_YMbfCKSbdnXufA0n5NfX5uRdcH9tTpNfofVSMTEaIL7YpEdpFIm2bHnbyCvMl_4PED9VR.u6G eOgD7_kzn7x73psS8vROCa5PXlp.4knMYp6aVqLTtCCAqa3b4EfIvEuXzmP9govFfhaiVgUmFStZ ps_UYVzEGW60SMS2N6ZC752c1EErfLGkfkRY199L1tMfk4RrTkOPsVp8s6pD_PsXDVhkzefGhP_b EyZMjewLoqH44kJLZvHgPZxRyGZhcJtLl0zghnZ23_03IqEoCwk.SZrsHZRDkrxh380t9EkA66ow Aj1lOKkKgGYKfXgFC4wcAaHzsaJcDoQrhR0prXTo4XtI6Uv8vUMsWedGKkJTZswbbSkRmrE93Fdc ocDfE_HOfU1rHG54pBffoqNSRxPoAZJYuUB_jItHMYRCc40I.k8xLDoW4N_sQ3rnZhjDdJBuG0kA RJbplYuoej.2F1P6p8dICfc8rhDiI_vTFmoCShrciFPd3KjyAsn6GFd.8KQF.JEYGPCMKqHrvesM 2C8E_dZF3RYGSGdXuWFQLxqGU4I6nKZ1IAfDmQ7573bFCO8VS9gX9ba8aDnKXmTmvNLfUvze6__z 2eAOrabeYai1glT55S37JowWsBAO.0gg5R5iOl_ezxmH8av7sQXQl9JMrQ1wBDPdR4sEvn4BLdGa ezM8Ak5QxurhaYZqa66fNEwDp3DKp1zY_aIQ2oVRcmBFut7jBdqiavW6VbMd0zuPT91MD1MDP5eU 7dOMSEH4VzGcrLPjnA7bdC7PvF7WauAVXijyrJiD0x2xw9Un2qjNpNa3BTSHZQvOeBRM3kTcekrk x_Imt9X1PK371UcXlU4mmNW618_2SaD8vlP3lCP4VJFgf6JpAdpivzYlMXrnopfT2cwIMj60pbnt nZxtqCSi.z6rb2tiDiP83yaqdywSAVBvdnyoTNmE1acXA2rOEFEzLthl2VzY2wXKlIIWQpO5YCf8 dMvDnWzg1EjHao6nCj0jNgChGK91umfSpfXJpna1e5ggbl3JHV_xxLmHC4obs0xei1O3PWds1cci Sj68Us__A48vjQyY8PuLev6aN1sy3aDL8RIHDRXIe04vJmBC9QrFpsSzjWmyZMjxlzUHTn5kkGrv avZUaFtpIxAm9y6wWZn_K97XO.Y46oOy54PaRNXqPyoESUa5I3xRqFHvMp4jM2INcFnTljeZg8ly pZYwUh5pYCQ2cKqX3HaW1j1GVa5CqJxw.JQqCWYFBZQShqnswas.hwLE_XYigzgSJ84RFXpz2dma R5cn3DM0rdDTOgJvNEUk8A0ha0IGSmEkPB0Nr5OIDSxhj4aQj2CYs0ZjMQ5xkakQ_1TxxGx.ii53 5Q6rmZ2WAOvOJ.MZjcuUSPssvW.426lLSBn82fSm.LydeAJku4FXtTr1AYwkFimTPQYRWa6j5U3N LIX7A7l1RZemHEhyQ1MWmczDU2d.zN7e5DDAfU7x3SBiyoW9A.cGYMB8vTX1O0xHV.y6VnZTOISO Pu6FludYHCA--
X-Sonic-MF: <reshad@yahoo.com>
X-Sonic-ID: 843db548-2007-4d2e-b029-3b13ddba3e81
Received: from sonic.gate.mail.ne1.yahoo.com by sonic301.consmr.mail.bf2.yahoo.com with HTTP; Thu, 18 Jan 2024 15:55:57 +0000
Date: Thu, 18 Jan 2024 15:55:53 +0000
From: Reshad Rahman <reshad@yahoo.com>
Reply-To: Reshad Rahman <reshad@yahoo.com>
To: Florian Kauer <florian.kauer@linutronix.de>, "draft-ietf-detnet-yang@ietf.org" <draft-ietf-detnet-yang@ietf.org>, "detnet@ietf.org" <detnet@ietf.org>, Don Fedyk <dfedyk@labn.net>
Message-ID: <160373955.1770455.1705593353967@mail.yahoo.com>
In-Reply-To: <PH7PR14MB53680967B965EA595EA1D9AFBB712@PH7PR14MB5368.namprd14.prod.outlook.com>
References: <PH7PR14MB53680967B965EA595EA1D9AFBB712@PH7PR14MB5368.namprd14.prod.outlook.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_Part_1770454_1867082446.1705593353960"
X-Mailer: WebService/1.1.22010 YMailNorrin
Archived-At: <https://mailarchive.ietf.org/arch/msg/detnet/FvPSiZS2BraUPv2EhsorIZVhmHs>
Subject: Re: [Detnet] Changes of <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: Thu, 18 Jan 2024 15:56:00 -0000

 Hi Don, all,
These changes look good to me, thanks for the follow-up.
Regards,Reshad.
    On Thursday, January 18, 2024, 12:02:50 AM EST, Don Fedyk <dfedyk@labn.net> wrote:  
 
  
Hi  
 
Florian Kauer proposed 3 changes to the DetNet YANG.   I’ve looked at them and they have a minimal impact.  I propose accepting them (see below) .  
 
Here is the summary of the functional changes. I have pushed the full update to the GitHub.  https://github.com/detnet-wg/draft-ietf-detnet-yang
 
I have also pasted below a test example operational data on the changed items with same data (highlighting the changes). 
 
I have verified all examples in the draft appendix are unaffected by the changes and work before and after the change.
 
  
 
For Brevity Only the functional changes and accompanying descriptions are here. See GitHub for full document  you can diff between 18-19.
 
 
 
1st change remove choice operation type – This change is an optimization. Operation-type is a choice statement.  There is no loss of function removing it.  We had nested choice statements this flattens that logic.
 
  
 
@@ -750,22 +750,18 @@ module ietf-detnet {
 
           description
 
             "These are the flow type next hop choices.";
 
           case ip {
 
-            choice operation-type {
 
+            description
 
+              "Use IP data plane for forwarding.";
 
+            leaf next-hop-address {
 
+              type inet:ip-address-no-zone;
 
               description
 
-                "This is the IP forwarding operation choices.";
 
-              case ip-forwarding {
 
-                leaf next-hop-address {
 
-                  type inet:ip-address-no-zone;
 
-                  description
 
-                    "This is an IP address as a next hop.";
 
-                }
 
-              }
 
-              case mpls-over-ip-encapsulation {
 
-                uses ip-header;
 
-              }
 
+                "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;
 
           }
 
         }
 
  
 
Second instance of 1st change. 
 
 
 
@@ -792,22 +788,18 @@ module ietf-detnet {
 
             description
 
               "These are the flow type next hop choices.";
 
             case ip {
 
-              choice operation-type {
 
+              description
 
+                "Use IP data plane for forwarding.";
 
+              leaf next-hop-address {
 
+                type inet:ip-address-no-zone;
 
                 description
 
-                  "These are the next hop choices.";
 
-                case ip-forwarding {
 
-                  leaf next-hop-address {
 
-                    type inet:ip-address-no-zone;
 
-                    description
 
-                      "This is an IP address as a next hop.";
 
-                  }
 
-                }
 
-                case mpls-over-ip-encapsulation {
 
-                  uses ip-header;
 
-                }
 
+                  "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;
 
             }
 
           }
 
  
 
2nd change  from an optional leaf of interface-ref to an optional leaf-list of interface-ref.   The current YANG allowed zero  or one interface per Application. Florian requested this be a list.  This allows an application to have zero, one or a set of interfaces.    
 
This is the ingress followed by egress.   (with some cleanup of description text.)
 
@@ -1061,29 +1054,40 @@ module ietf-detnet {
 
               "RFC 9016 Sections
 
                4.1, 5.8";
 
           }
 
-          leaf interface {
 
+          leaf-list interface {
 
             type if:interface-ref;
 
             description
 
-            "Interface is used for any service type when
 
-             matching all flows to the interface.";
 
+            "Interface is optional for a service type. When
 
+             matching a flow to a single interface one
 
+             interface is specified. The list allows for
 
+             matching a subset of interfaces. When more
 
+             than one interfaces is specified, these
 
+             flows are simply aggregated and the service
 
+             sub-layer is unaware of the aggregation.";
 
           }
 
           uses data-flow-spec;
 
         } //End of app-ingress
 
         container egress {
 
           description
 
-            "Route's next-hop attribute.";
 
+            "Egress DetNet application flows or a compound flow.";
 
           uses data-flow-spec;
 
           choice application-type {
 
             description
 
               "This is the application type choices.";
 
             container ethernet {
 
               description
 
-                "This is TSN unaware traffic that maps to an
 
+                "This is Ethernet or TSN traffic that maps to an
 
                 interface.";
 
-              leaf interface {
 
+              leaf-list interface {
 
                 type if:interface-ref;
 
                 description
 
-                  "This is an Ethernet or TSN interfaces.";
 
+                  "This is one or more Ethernet or TSN interfaces.
 
+                   If multiple interfaces are specified, this
 
+                   application flow is replicated to those 
 
+                   interfaces.  DetNet application Flow filtering
 
+                   applies to the whole list of interfaces.
 
+                   For fine grain flow filtering, use a single
 
+                   interface per application.";
 
               }
 
             }
 
             container ip-mpls {
 
  
 
3rd Change for a simple IP encapsulation of an Ethernet flow.   The option to directly forward a service sub-layer flow to a forwarding sub-layer was missing.   This is cleaner and aligns with other cases.
 
 
 
@@ -1188,6 +1192,18 @@ module ietf-detnet {
 
                  node or egress node.";
 
               uses detnet-flow-spec;
 
             }
 
+            container forwarding-sub-layer {
 
+              description
 
+                "This entry specifies one or more forwarding
 
+                 sub-layers. No or minimal service sub-layer
 
+                 encapsulation is allowed.";
 
+              leaf-list sub-layer {
 
+                type forwarding-sub-layer-ref;
 
+                config false;
 
+                description
 
+                  "List of outgoing forwarding sub-layers.";
 
+               }
 
+            }
 
           }
 
         }
 
         container outgoing {
 
  
 
  
 
Example of a TSN Ethernet flow arriving on two interfaces and encapsulated in DetNet IP UDP  Unidirectional Ingress – followed by DetNet Decapsulation back to TSN on two interfaces with changes,
 
In the example that follows the version 18 of the draft  XML data validated against the version 19 YANG generated schema.   
 
The following is a version 19 example .
 
  
 
Ingress TSN Application ->service sub-layer-> forwarding sub-layer (UDP)    
 
JSON: 
 
    "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",  /*Before change  single ref */
 
            "interface": [                                               /*"interface": "eth0",  version 18*/
 
              "eth0",                                     
 
              "eth1"                                      
 
            ],                                            
 
            "tsn-app-flow": {
 
              "vlan-id": 10
 
            }
 
          }
 
        }
 
      ] 
 
    },
 
    "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": {   /* Option did not exist */
 
              "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",       /* No change with removal of choice. */
 
              "dest-ip-address": "192.0.2.1",
 
              "protocol-next-header": 17,
 
              "dscp": 6,
 
              "source-port": 50000,
 
              "destination-port": 50001
 
            }
 
          }
 
        }
 
      ]
 
    }
 
  }
 
  
 
Forwarding Sub-layer -> Service Sub-layer -> Egress  TSN Application interfaces.   
 
JSON: 
 
    "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": {
 
            "tsn-app-flow": {
 
              "vlan-id": 10
 
            },
 
            "ethernet": {                         /* Before change  single ref */
 
              "interface": [                       /* "interface": "eth0",  version 18*/
 
                "eth0",
 
                "eth1"
 
              ]
 
            }
 
          }
 
        }
 
      ]
 
    },
 
    "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"
 
              ]
 
            }
 
          }
 
        }
 
      ]
 
    }
 
  },
 
  
 
Please comment. 
 
Thanks
 
Don