Re: [mpls] Last Call: <draft-ietf-mpls-base-yang-14.txt> (A YANG Data Model for MPLS Base) to Proposed Standard

Tarek Saad <tsaad.net@gmail.com> Sun, 30 August 2020 00:03 UTC

Return-Path: <tsaad.net@gmail.com>
X-Original-To: mpls@ietfa.amsl.com
Delivered-To: mpls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2D94F3A11E1; Sat, 29 Aug 2020 17:03:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 QNkVhuB0UGJ5; Sat, 29 Aug 2020 17:03:09 -0700 (PDT)
Received: from mail-il1-x131.google.com (mail-il1-x131.google.com [IPv6:2607:f8b0:4864:20::131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 223BF3A11E0; Sat, 29 Aug 2020 17:03:09 -0700 (PDT)
Received: by mail-il1-x131.google.com with SMTP id k4so3696111ilr.12; Sat, 29 Aug 2020 17:03:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:thread-topic:thread-index:date:message-id :references:in-reply-to:accept-language:content-language :content-transfer-encoding:mime-version; bh=hWm/lBGzXrDfWXGi2NrWaY39PeO/pBW4rl9wgAapCc4=; b=OAkHVIJzMO/IsNMqtXRarTA8mYHIg9u36trWrY2Umeg/IwSztxMb6IFvj1UN8vMiPZ DjIclZn0Jc9RMjvssS5ii+w7IL8TpyqIKcLgG0VoB599ioRwtB5Cn8H85+tCTJZZR7df scAzi9Mgyxb8FGeK+yv2OZ76JrED/A2jYkMFE+zerU7y/tYP7pYOYi+KJ16eFuEHMZ1O R42Iz8iW7baarotJNYj+3LnBQoONdMVnYmFFO5Gpu4SQ9XwPOXR16ItcOXrU/h1qpvJ9 zTjD9QAT7FZTtXBsHps6/nfSI8br1pFCFs4QVvBliUx3lfLdqcjeY96MzXoWkQAp8ayP bg4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:thread-topic:thread-index :date:message-id:references:in-reply-to:accept-language :content-language:content-transfer-encoding:mime-version; bh=hWm/lBGzXrDfWXGi2NrWaY39PeO/pBW4rl9wgAapCc4=; b=ILsyRLmxNWLGP7PRavWYhUwxa1xouqopC2DdZC6fRegjCvXLt+aSlRMWlLmI3/RGIu 2MJnht6TUZ9FBowtEDTOzXt+6Lgq9y10TxHSaGSwWKUx/5WTo0Au2aVKE2S9nNCxwg74 dx1XC0pWpHWPwkZLfilEWAcyVx5U21KgCMZO7efKyxHzizNljj74r+Ddn/Rz4psT+MOk YQTbfVeRL7Ib+CefvQkwYKmgQVuvC8/KAWOb2ZagVT/pItxuxRj7qXLJfbXRomQv8E/q 5lwdHuCLM500jpcgB/cbLsWCcEP4D7O3afkQ51H3uZuhAWASqKnN1FViq3pIJmwgs3yt z9Lw==
X-Gm-Message-State: AOAM532Z2yBTpqhTleSLO4muqaeZvwI/dCs4OR6nYey30xZw41RjImax WQWn0mBqnti9FPs1T630R/Q=
X-Google-Smtp-Source: ABdhPJzsQmo8lh0DpUC2EBfhLJlQuSakexTGXSr+q0TsRmWt6CWKf6dJGuaYIQmhqs6Puc6xJhV2Xw==
X-Received: by 2002:a92:1597:: with SMTP id 23mr3955989ilv.58.1598745788112; Sat, 29 Aug 2020 17:03:08 -0700 (PDT)
Received: from DM5PR1901MB2150.namprd19.prod.outlook.com ([2603:1036:4:9e::5]) by smtp.gmail.com with ESMTPSA id h7sm2058407ilo.51.2020.08.29.17.03.06 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 29 Aug 2020 17:03:07 -0700 (PDT)
From: Tarek Saad <tsaad.net@gmail.com>
To: tom petch <ietfc@btconnect.com>, "Acee Lindem (acee)" <acee@cisco.com>
CC: "mpls@ietf.org" <mpls@ietf.org>, "mpls-chairs@ietf.org" <mpls-chairs@ietf.org>, "draft-ietf-mpls-base-yang@ietf.org" <draft-ietf-mpls-base-yang@ietf.org>
Thread-Topic: Last Call: <draft-ietf-mpls-base-yang-14.txt> (A YANG Data Model for MPLS Base) to Proposed Standard
Thread-Index: ATA4Nzk2rPonJtzCHHDerp/elHgy+TBGQUYwywFxdACACK/uKQ==
X-MS-Exchange-MessageSentRepresentingType: 1
Date: Sun, 30 Aug 2020 00:03:05 +0000
Message-ID: <DM5PR1901MB2150F263CA845B78BECEA424FC500@DM5PR1901MB2150.namprd19.prod.outlook.com>
References: <159664704561.10058.12590600409549515735@ietfa.amsl.com> <5F2BBFAC.7060203@btconnect.com> <DM5PR1901MB2150AE0A6D7445416CD9ADFFFC5F0@DM5PR1901MB2150.namprd19.prod.outlook.com> <AM7PR07MB62488C19E98C6F76845E48A8A05B0@AM7PR07MB6248.eurprd07.prod.outlook.com> <DM5PR1901MB2150FFE9A5B9ACA9B923F3E6FC5B0@DM5PR1901MB2150.namprd19.prod.outlook.com> <AM7PR07MB624822843BD0C193BFA6B79EA0560@AM7PR07MB6248.eurprd07.prod.outlook.com>
In-Reply-To: <AM7PR07MB624822843BD0C193BFA6B79EA0560@AM7PR07MB6248.eurprd07.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-Exchange-Organization-SCL: -1
X-MS-TNEF-Correlator:
X-MS-Exchange-Organization-RecordReviewCfmType: 0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/mpls/Zg631PuUtZdS9zHHcdYyd1pcA6w>
Subject: Re: [mpls] Last Call: <draft-ietf-mpls-base-yang-14.txt> (A YANG Data Model for MPLS Base) to Proposed Standard
X-BeenThere: mpls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multi-Protocol Label Switching WG <mpls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mpls>, <mailto:mpls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mpls/>
List-Post: <mailto:mpls@ietf.org>
List-Help: <mailto:mpls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mpls>, <mailto:mpls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 30 Aug 2020 00:03:11 -0000

Hi Tom,

Thanks. See inline..

    <tp2>
    Tarek
    I am not sure if we are on the same wavelength.  I was looking at the next hop or input augments which go
    augment 
    description [omitted by me last time]
    uses
    when
    so 'when' is a child of uses and makes that conditional whereas the description is not conditional and so will always be added and there is nothing else in the augment for these three cases AFAICT.
    I get the difference between the augment to all RIBs (strictly speaking this is conditional, on if-feature mpls) and the augment specific to AF mpls but still think it should be
    augment
    when
    description
    uses
    so 'when' is a child of augment and so nothing is added when the YANG 'when' evaluates to false.
[TS]: we reviewed the code - and in the snippet below - we believe the uses of the grouping is subject to 'condition-foo' under it evaluating to 'true'.
uses foo {
 when "condition-foo";
}

So, if the description under the "uses" is somewhat misleading, we are propose the below change to the description. Let us know if this addresses your concern.

OLD:
    uses rib-mpls-properties {
      /* MPLS AF aaugmentation to native MPLS RIB */
      when "derived-from-or-self(../../rt:address-family, "
         + "'mpls:mpls')" {
        description
          "This augment is valid only for routes of native MPLS
           RIB.";
      }

NEW:
    uses rib-mpls-properties {
     when "derived-from-or-self(../../rt:address-family, "
        + "'mpls:mpls')" {
       description
         "This grouping is added only for routes of native MPLS
          RIB.";
    }


    Tom Petch.

On 8/24/20, 7:23 AM, "tom petch" <ietfc@btconnect.com> wrote:

    From: Tarek Saad <tsaad.net@gmail.com>
    Sent: 21 August 2020 22:01

    Hi Tom,

    Thanks again. Please see responses inline..

    On 8/21/20, 12:14 PM, "tom petch" <ietfc@btconnect.com> wrote:

        From: mpls <mpls-bounces@ietf.org> on behalf of Tarek Saad <tsaad.net@gmail.com>
        Sent: 17 August 2020 17:40

        Thanks Acee and Tom.
        I'm merging the discussion on the other thread (titled: [mpls] [netmod] [Technical Errata) and providing the update.
        We have uploaded a new revision https://tools.ietf.org/html/draft-ietf-mpls-base-yang-15 that addresses the comments previously raised.
        Please let us know if there are further comments.

        <tp>
        Tarek

        I think that the YANG 'when' clauses are slightly misplaced.  You have
        augment
        uses
        when
        which makes the 'augment' unconditional and the 'uses' conditioned.  Look at RFC8349 and it has

    [TS]: Indeed, our intent is to make the 'augment' unconditional (applicable to all RIBs) and the specific grouping 'uses' conditional.
    For example in the below snippet below, the leafs 'mpls-enabled' and 'local-label' are unconditionally augmented to all RIBs, but ' destination-prefix' of 'rib-mpls-properties ' is only applicable to native MPLS RIB - address-family=mpls).

    <tp2>
    Tarek
    I am not sure if we are on the same wavelength.  I was looking at the next hop or input augments which go
    augment 
    description [omitted by me last time]
    uses
    when
    so 'when' is a child of uses and makes that conditional whereas the description is not conditional and so will always be added and there is nothing else in the augment for these three cases AFAICT.
    I get the difference between the augment to all RIBs (strictly speaking this is conditional, on if-feature mpls) and the augment specific to AF mpls but still think it should be
    augment
    when
    description
    uses
    so 'when' is a child of augment and so nothing is added when the YANG 'when' evaluates to false.

    Tom Petch.

      augment "/rt:routing/rt:ribs/rt:rib/rt:routes/rt:route" {
        if-feature "mpls";
        description
          "This augmentation is applicable to all MPLS routes.";
        leaf mpls-enabled {
          type boolean;
          default "false";
          description
            "Indicates whether MPLS is enabled for this route.";
        }
        leaf local-label {
          when "../mpls-enabled = 'true'";
          type rt-types:mpls-label;
          description
            "MPLS local label associated with the route.";
        }
        uses rib-mpls-properties {
          /* MPLS AF aaugmentation to native MPLS RIB */
          when "derived-from-or-self(../../rt:address-family, "
             + "'mpls:mpls')" {
            description
              "This augment is valid only for routes of native MPLS
               RIB.";
          }
        }
      }     .

        augment
        when
        uses

        'present in the AF RIB(s) in the MPLS Architecture'
        I do not understand.  RFC3031 does not use 'RIB' nor 'AF' nor do I think the terms were in use then.  RIB v routing table was a contentious point in the genesis of RFC8349 and I think we should only talk of RIBs when we use it in the RFC8349 sense.  I think you are saying that all routes in all RIBS are augmented with the label information needed for MPLS forwarding but I do not see that in the words.
    [TS]: Yes, your reading is correct. I tried to clarify this in section 2.1 and illustrated it in section 2.3 (see below):

    >>>>
    2.1.  Model Overview

       This document models MPLS labeled routes as an augmentation of the
       generic routing RIB data model as defined in [RFC8349].  For example,
       IP prefix routes (e.g. routes stored in IPv4 or IPv6 RIBs) are
       augmented to carry additional data to enable it for MPLS forwarding.
    <<<<

    >>>>
    2.3.  Model Design
    ....
                                    +-----------------+
                                    | MPLS base model |
                                    +-----------------+
                                  ____/  |  |_____  |________
                                 /       |        \          \
                                /        |         \          \
                               o         o          o          +
                        +---------+  +---------+  +--------+ +-----------+
                        | RIB(v4) |  | RIB(v6) |  | RIB(x) | | RIB(mpls) |
                        +---------+  +---------+  +--------+ +-----------+


               +: created by the MPLS base model
               o: augmented by the MPLS base model

            Figure 2: Relationship between MPLS model and RIB instances

       As shown in Figure 2, the MPLS base YANG model augments defined
       instance(s) of AF RIB(s) with additional data that enables MPLS
       forwarding for destination prefix(es) store in such RIB(s).  For
       example, an IPv4 prefix stored in RIB(v4) is augmented to carry a
    <<<<

        (!RFC8349})

        RFC6991 needs adding to the Normative References
    [TS]: thanks, will be corrected.


        leaf start-label
        must '. >= ../end-label'
        "The start label must be less than or equal to end-label"
        umm

        augment .../route
        if-feature "mpls";
        "This augmentation is applicable to all MPLS routes"
        true but incomplete IMHO
        "This augmentation is applicable to all routes in all RIBs on a device with the feature MPLS enabled"
        and I think this important in understanding what the YANG is trying to do, which I did not with -14
    [TS]: ack, I can update this description accordingly.

        /aaugmentation/augmentation/
    [TS]: thanks for reporting this.

    Regards,
    Tarek

        I am still digesting this I-D.  I am not clear what the plans of the AD are right now in terms of timescale.

        In passing, I pointed out to the BFD WG that their YANG model stopped being compatible with the MPLS YANG model in 2018, when /config got removed from /mpls/interface.  They are having a closer look.

        Tom Petch

        Regards,
        Tarek (for co-authors)

        On 8/6/20, 4:31 AM, "tom petch" <daedulus@btconnect.com> wrote:


            This I-D breaks a MUST in RFC8349 Routing Management) and, as such, will
            not interoperate with devices that implement RFC8349 correctly.

            RFC8349 provides a YANG action to return the active route for a
            destination address but omits the destination address, saying that
            modules using this must augment the input with a leaf
            destination-address.  This I-D augments the input with a leaf
            local-label so implementations of RFC8349 that 'know' there will be a
            leaf destination-address will fail to interoperate with this I-D.

            The authors said, at WGLC, that RFC8349 is wrong, that MPLS has label
            not address and so the I-D must provide an augment with a label and
            RFC8349 should change.  I disagree; I think that this is reading too
            many semantics into an identifier.

            Tom Petch

            On 05/08/2020 18:04, The IESG wrote:
            >
            > The IESG has received a request from the Multiprotocol Label Switching WG
            > (mpls) to consider the following document: - 'A YANG Data Model for MPLS Base'
            >    <draft-ietf-mpls-base-yang-14.txt> as Proposed Standard
            >
            > The IESG plans to make a decision in the next few weeks, and solicits final
            > comments on this action. Please send substantive comments to the
            > last-call@ietf.org mailing lists by 2020-08-19. Exceptionally, comments may
            > be sent to iesg@ietf.org instead. In either case, please retain the beginning
            > of the Subject line to allow automated sorting.
            >
            > Abstract
            >
            >
            >     This document contains a specification of the MPLS base YANG model.
            >     The MPLS base YANG model serves as a base framework for configuring
            >     and managing an MPLS switching subsystem on an MPLS-enabled router.
            >     It is expected that other MPLS YANG models (e.g.  MPLS Label Switched
            >     Path (LSP) Static, LDP or RSVP-TE YANG models) will augment the MPLS
            >     base YANG model.
            >
            >
            >
            >
            > The file can be obtained via
            > https://datatracker.ietf.org/doc/draft-ietf-mpls-base-yang/
            >
            >
            >
            > No IPR declarations have been submitted directly on this I-D.
            >
            >
            >
            >
            >
            > _______________________________________________
            > IETF-Announce mailing list
            > IETF-Announce@ietf.org
            > https://www.ietf.org/mailman/listinfo/ietf-announce
            > .
            >
        _______________________________________________
        mpls mailing list
        mpls@ietf.org
        https://www.ietf.org/mailman/listinfo/mpls