Re: [Detnet] draft-ietf-detnet-yang-17: IP/MPLS over TSN

Florian Kauer <florian.kauer@linutronix.de> Mon, 05 June 2023 19:28 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 7515AC15107B; Mon, 5 Jun 2023 12:28:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, 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="Va529wL1"; dkim=neutral reason="invalid (unsupported algorithm ed25519-sha256)" header.d=linutronix.de header.b="5qDgOSqP"
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 aQZvCSYUa59N; Mon, 5 Jun 2023 12:28:31 -0700 (PDT)
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 4EE49C151097; Mon, 5 Jun 2023 12:28:03 -0700 (PDT)
Message-ID: <b16eb127-6543-414a-87b8-d6825a89f191@linutronix.de>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1685993280; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WjXtkM6+R38ndThNGM09EDSSSjK+dbFItyDzu04RFUk=; b=Va529wL1WFGXYglhKWLbyD0R6gPq3lqfFLOtdCThNl6MQk0AywryFsWa4g6gOVQOqfZwAo wNbMtnoXpSWyJEZ5ROVX6W74YxVIkok9HHHIwPSGwatwoQQj7lUTM3AMNBxrEmiDu8oNud HdAh2ekGkdcFXuKLaDgZCJzHnL88WyaZGJAj31zmI6sK8TnTn+jS0H3wSOF1Vfc8QhcR4D GGSxvuAxnFPirkhNhb2kbqR2NNu4wCqogAQIPo4WQ/xQZvoWDnGOFiji3GfKC3ET7KWxYA g4bBPIQwdrP/hJP/SZGBKakro03arDCKYh6KKANZDRn/Un59BJ5jTLMqUOjkhQ==
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1685993280; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WjXtkM6+R38ndThNGM09EDSSSjK+dbFItyDzu04RFUk=; b=5qDgOSqP8+8ycytcVRUc7XvTSSGTqfXZhJMBZ7en939euIq9cvzSAJanjVZsF8o+yq/MQf ePU1F8c6wBKfK2Bg==
Date: Mon, 05 Jun 2023 21:27:20 +0200
MIME-Version: 1.0
From: Florian Kauer <florian.kauer@linutronix.de>
To: gengxuesong@huawei.com, dbduscjf@etri.re.kr, dfedyk@labn.net, reshad@yahoo.com, lizhenqiang@chinamobile.com
Cc: detnet@ietf.org, draft-ietf-detnet-yang@ietf.org
References: <74c2061c-9656-20ab-dea0-fd06a27706b8@linutronix.de>
Content-Language: en-US
In-Reply-To: <74c2061c-9656-20ab-dea0-fd06a27706b8@linutronix.de>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/detnet/kVmH0xq7QTT8Wp2YQ_L9LTG34sU>
Subject: Re: [Detnet] draft-ietf-detnet-yang-17: IP/MPLS over TSN
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, 05 Jun 2023 19:28:35 -0000

Hi all,

On 03.05.23 12:25, Florian Kauer wrote:
> [...]  
> My second question is regarding the use of type inet:ip-prefix in draft-ietf-detnet-yang-17.

I was able to clarify my confusion about the ip-prefix as soon as I understood the first example only describes the configuration/operational state at the ingress node and not the network as a whole - for the ingress locally, the concrete endpoint IP address is of course not relevant and the IP prefix is sufficient for flow mapping. It only got clear to me after watching Don's talk from IETF110 where he talks about how the YANG model is "vertically" on a certain node instead of "horizontally" as the flow model. Maybe it is worth mentioning it more explicitly in the draft and/or providing examples for the other nodes in the network, too, to provide the full picture.

As a step into this direction, I tried to write down the configuration for the egress node for the A-1 example (see below), but I noticed a few things:
- The leaf app-flow->ingress->interface is mandatory in the model, but in my understanding that interface does not exist since the traffic is only incoming from the service layer.
- For the service sub-layer on destination side, I would assume an "incoming forwarding-sub-layer" corresponding to the "outgoing forwarding-sub-layer" on source side.
  I have now specified a "service-id" instead, but it does not contain a reference to the forwarding sub-layer. Have I used it the way it is meant to be?
- In the A-1 example, only eth0 and eth2 are used. Should the others be removed from ietf-interfaces:interfaces for clarity or do I overlook something?

Greetings,
Florian

{
  "ietf-detnet:detnet": {
    "traffic-profile": [
      {
        "name": "pf-1",
        "traffic-requirements": {
          "min-bandwidth": "100000000",
          "max-latency": 100000000,
          "max-latency-variation": 200000000,
          "max-loss": "0.0000001",
          "max-consecutive-loss-tolerance": 5,
          "max-misordering": 0
        },
        "traffic-spec": {
          "interval": 5,
          "max-pkts-per-interval": 10,
          "max-payload-size": 1500,
          "min-payload-size": 100,
          "min-pkts-per-interval": 1
        },
        "member-app": [
          "app-0",
          "app-1"
        ]
      },
      {
        "name": "pf-2",
        "traffic-requirements": {
          "min-bandwidth": "200000000",
          "max-latency": 100000000,
          "max-latency-variation": 200000000,
          "max-loss": "0.000001",
          "max-consecutive-loss-tolerance": 5,
          "max-misordering": 0
        },
        "traffic-spec": {
          "interval": 5,
          "max-pkts-per-interval": 10,
          "max-payload-size": 1500,
          "min-payload-size": 100,
          "min-pkts-per-interval": 1
        },
        "member-service": [
          "ssl-1"
        ]
      },
      {
        "name": "pf-3",
        "traffic-spec": {
          "interval": 5,
          "max-pkts-per-interval": 10,
          "max-payload-size": 1500
        },
        "member-fwd-sublayer": [
          "fsl-1"
        ]
      }
    ],
    "app-flows": {
      "app-flow": [
        {
          "name": "app-0",
          "bidir-congruent": false,
          "incoming-service": "ssl-1",
          "traffic-profile": "pf-1",
          "ingress": {
            "interface": "unused0"
          },
          "egress": {
            "ip-mpls": {
              "outgoing-interface": "eth1",
              "next-hop-address": "2001:db8::8"
            }
          }
        },
        {
          "name": "app-1",
          "bidir-congruent": false,
          "incoming-service": "ssl-1",
          "traffic-profile": "pf-1",
          "ingress": {
            "interface": "unused0"
          },
          "egress": {
            "ip-mpls": {
              "outgoing-interface": "eth1",
              "next-hop-address": "2001:db8::8"
            }
          }
        }
      ]
    },
    "service": {
      "sub-layer": [
        {
          "name": "ssl-1",
          "service-rank": 10,
          "traffic-profile": "pf-2",
          "service-protection": {
            "protection": "none",
            "sequence-number-length": "long-sn"
          },
          "operation": "termination",
          "incoming": {
            "service-id": {
              "mpls-label-stack": {
                "entry": [
                  {
                    "id": 0,
                    "label": 102
                  }
                ]
              }
            }
          },
          "outgoing": {
            "app-flow": {
              "flow": [
                "app-0",
                "app-1"
              ]
            }
          }
        }
      ]
    },
    "forwarding": {
      "sub-layer": [
        {
          "name": "fsl-1",
          "traffic-profile": "pf-3",
          "operation": "pop-and-lookup",
          "incoming": {
            "forwarding-id": {
              "interface": "eth0",
              "mpls-label-stack": {
                "entry": [
                  {
                    "id": 0,
                    "label": 10005
                  }
                ]
              }
            }
          },
          "outgoing": {
            "service-sub-layer": {
              "sub-layer": [
                "ssl-1"
              ]
            }
          }
        }
      ]
    }
  },
  "ietf-interfaces:interfaces": {
    "interface": [
      {
        "name": "eth0",
        "type": "iana-if-type:ethernetCsmacd",
        "oper-status": "up",
        "statistics": {
          "discontinuity-time": "2020-12-18T18:59:00-05:00"
        }
      },
      {
        "name": "eth1",
        "type": "iana-if-type:ethernetCsmacd",
        "oper-status": "up",
        "statistics": {
          "discontinuity-time": "2020-12-18T18:59:00-05:00"
        }
      },
      {
        "name": "unused0",
        "type": "iana-if-type:ethernetCsmacd",
        "oper-status": "up",
        "statistics": {
          "discontinuity-time": "2020-12-18T18:59:00-05:00"
        }
      }
    ]
  }
}