Re: [mpls] mpls-rt review of draft-zheng-mpls-lsp-ping-yang-cfg

"Acee Lindem (acee)" <acee@cisco.com> Mon, 12 November 2018 16:53 UTC

Return-Path: <acee@cisco.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 C5334130E4D; Mon, 12 Nov 2018 08:53:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.971
X-Spam-Level:
X-Spam-Status: No, score=-14.971 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.47, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 wfipNnZsSMWV; Mon, 12 Nov 2018 08:53:03 -0800 (PST)
Received: from alln-iport-8.cisco.com (alln-iport-8.cisco.com [173.37.142.95]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E72E0130DCA; Mon, 12 Nov 2018 08:53:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=25974; q=dns/txt; s=iport; t=1542041583; x=1543251183; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=tWt0sEfW98qOAMhGWvVwJynYYwp2s0enMzoL1FzK6+0=; b=UkGsPfKy9EADALpKrvQCd4/MUoxMiSkzWHDVKl+zk4dCuPjsUR8hnRAj EXSu1OC5JJd52QXuVEhl9LLQ75YS/bNGmzuTTBgDwzCP3mwdDnAQhzzHH +Wz1KxRbUQmKbuZzMtXaIWVDMGCT2iOIYdi4272IEAZ86hpr6JF6wXKQL A=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AEAAC7rulb/5tdJa1jGgEBAQEBAgEBAQEHAgEBAQGBUQUBAQEBCwGCA4FoMYNuiBiLeoMHljuBegsBAYRsAheDFiI0DQ0BAwEBAgEBAm0ohTsGIxFFEAIBCBIIAiYCAgIwFQIOAgQBDSCDBoICqVuBL4olgQuGIIRVF4F/gRABJx+CFzWFFYJtMYImAoh+AoYDj3dVCQKRGxiBWIgkhnSJWo13AhEUgSYdOIFVcBU7KgGCQoImBRKOHEGNJoEfAQE
X-IronPort-AV: E=Sophos;i="5.54,495,1534809600"; d="scan'208";a="200139810"
Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by alln-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Nov 2018 16:53:01 +0000
Received: from XCH-RTP-017.cisco.com (xch-rtp-017.cisco.com [64.101.220.157]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTPS id wACGr0ZW027635 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 12 Nov 2018 16:53:00 GMT
Received: from xch-rtp-015.cisco.com (64.101.220.155) by XCH-RTP-017.cisco.com (64.101.220.157) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 12 Nov 2018 11:52:59 -0500
Received: from xch-rtp-015.cisco.com ([64.101.220.155]) by XCH-RTP-015.cisco.com ([64.101.220.155]) with mapi id 15.00.1395.000; Mon, 12 Nov 2018 11:52:59 -0500
From: "Acee Lindem (acee)" <acee@cisco.com>
To: Loa Andersson <loa@pi.nu>, "hshah@ciena.com" <hshah@ciena.com>, Xufeng Liu <Xufeng_Liu@jabil.com>, "Rakesh Gandhi (rgandhi)" <rgandhi@cisco.com>
CC: "draft-zheng-mpls-lsp-ping-yang-cfg@ietf.org" <draft-zheng-mpls-lsp-ping-yang-cfg@ietf.org>, "mpls-chairs@ietf.org" <mpls-chairs@ietf.org>, "mpls@ietf.org" <mpls@ietf.org>
Thread-Topic: mpls-rt review of draft-zheng-mpls-lsp-ping-yang-cfg
Thread-Index: AQHUdwmX21O+TAWe5ESgbV+E0Aear6VMYkEA
Date: Mon, 12 Nov 2018 16:52:59 +0000
Message-ID: <BE37146F-B456-4ACB-824D-2284BD5AF859@cisco.com>
References: <ac75f788-5a57-7537-21ae-4faa27541640@pi.nu>
In-Reply-To: <ac75f788-5a57-7537-21ae-4faa27541640@pi.nu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.116.152.196]
Content-Type: text/plain; charset="utf-8"
Content-ID: <396003BB87A9DB40B2B0663D89DF6770@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.157, xch-rtp-017.cisco.com
X-Outbound-Node: rcdn-core-4.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/mpls/nUrvcqlUihiJBZWdya969Vf745w>
Subject: Re: [mpls] mpls-rt review of draft-zheng-mpls-lsp-ping-yang-cfg
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: Mon, 12 Nov 2018 16:53:06 -0000

Hi Loa, 

I've reviewed the document and I feel the dynamics of the LSP Ping tests need to be described better. One question I have is what becomes of the configuration once an LSP Ping Test completes? How would one deterministically repeat the test at a later time? Will changing the start-time do this? Are ping results for all completed tests maintained indefinitely? I guess all test results will be maintained as long as the named LSP ping exists? This needs to be specified better. Additionally, did you consider an RPC action to initiate an LSP ping and return results on demand without retaining until the named LSP ping test is deleted? If not, another useful RPC would be one to clear the results for a named LSP ping test.    

Additionally, the model and draft are "rough" and there will be a lot of additions and changes that need to be taken care before WG last call. Also, one concern it is that it could grow substantially due to the statement:   

             "There are extensions for performing LSP ping, for example, over P2MP MPLS LSPs
               [RFC6425] or f1. In section 1, the statement regarding NDMA should refer to the LSP-Ping
               data model.

It would be good to know the scope of the document prior to asking for reviews. 

Here are my comments: 

   1. In section 1, the statement regarding NDMA should refer to the LSP-Ping
        data model.
   2. Why isn't lspping hyphenated at the top level? It is hyphenated in other places and 
        this is more readable. 
   3. Use "scheduling-parameters" rather than "schedule-parameters".
   4. Several indentation problems (fixed in diff).
   5. Add references RFC for imports.
   6. The high-level model "contact" and "description" are woefully lacking.
       Editors are not specified.
   7. Within the model, the multi-line descriptions are hard to read due to the lack
        of indentations subsequent to the first.
   8. Short descriptions sometimes end in period even when they are not
      even close to being sentences.
   9. Why do you need "source-address-type"? The ip-address type implies whether it
        Is IPv4 or IPv6
  10. Use "List of LSP Ping test instances" for top-level description.
  11. Why specify the nexthop?
  12. Which value does the sum-of-squares apply to? One could assume RTT but
         it should be specified.
   13. The "Security Considerations" doesn't conform to the latest template or address
          considerations for specific schema nodes. 
    14. I'd also recommend that one of the native English authors review
          all the description text. There are cases of missing articles and "of" is used in
          prepositional phases where other prepositions would have been a better choice.

See some nits below:
ACEE-M-G2HR:Desktop acee$ diff -c  draft-zheng-mpls-lsp-ping-yang-cfg-09.txt.orig draft-zheng-mpls-lsp-ping-yang-cfg-09.txt
*** draft-zheng-mpls-lsp-ping-yang-cfg-09.txt.orig	2018-11-10 08:20:34.000000000 -0500
--- draft-zheng-mpls-lsp-ping-yang-cfg-09.txt	2018-11-10 21:17:28.000000000 -0500
***************
*** 22,28 ****
     be detected by the MPLS control plane.  RFC 8029 defines a mechanism
     that would enable users to detect such failure and to isolate faults.
     YANG, defined in RFC 6020 and RFC 7950, is a data modeling language
!    used to specify the contents of a conceptual data stores that allows
     networked devices to be managed using NETCONF, as specified in RFC
     6241.  This document defines a YANG data model that can be used to
     configure and manage LSP-Ping.
--- 22,28 ----
     be detected by the MPLS control plane.  RFC 8029 defines a mechanism
     that would enable users to detect such failure and to isolate faults.
     YANG, defined in RFC 6020 and RFC 7950, is a data modeling language
!    used to specify the contents of a conceptual data store that allows
     networked devices to be managed using NETCONF, as specified in RFC
     6241.  This document defines a YANG data model that can be used to
     configure and manage LSP-Ping.
***************
*** 116,122 ****
  
     The rest of this document is organized as follows.  Section 2
     presents the scope of this document.  Section 3 provides the design
!    of the LSP-Ping configuration data model in details by containers.
     Section 4 presents the complete data hierarchy of LSP-Ping YANG
     model.  Section 5 discusses the interaction between LSP-Ping data
     model and other MPLS tools data models.  Section 6 specifies the YANG
--- 116,122 ----
  
     The rest of this document is organized as follows.  Section 2
     presents the scope of this document.  Section 3 provides the design
!    of the LSP-Ping configuration data model in detail for each container.
     Section 4 presents the complete data hierarchy of LSP-Ping YANG
     model.  Section 5 discusses the interaction between LSP-Ping data
     model and other MPLS tools data models.  Section 6 specifies the YANG
***************
*** 124,130 ****
     specified in this document.  Finally, security considerations are
     discussed in Section 8.
  
!    This version of the interfaces data model conforms to the Network
     Management Datastore Architecture (NMDA) [RFC8342].
  
  1.1.  Requirements Language
--- 124,130 ----
     specified in this document.  Finally, security considerations are
     discussed in Section 8.
  
!    This version of the LSP-Ping data model conforms to the Network
     Management Datastore Architecture (NMDA) [RFC8342].
  
  1.1.  Requirements Language
***************
*** 137,148 ****
  
  1.2.  Support of Long Running Command with NETCONF
  
!    LSP Ping is one of the examples of what can be described as "long-
     running operation".  Unlike most of the configuration operations that
!    result in single response execution of an LSP Ping triggers multiple
     responses from a node under control.  The question of implementing
     the long-running operation in NETCONF is still open and possible
!    solutions being discussed:
  
     1.  Consecutive Remote Processing Calls (RPC) to poll for results.
  
--- 137,148 ----
  
  1.2.  Support of Long Running Command with NETCONF
  
!    LSP Ping is one of the examples of what can be described as a "long-
     running operation".  Unlike most of the configuration operations that
!    result in single response, execution of an LSP Ping triggers multiple
     responses from a node under control.  The question of implementing
     the long-running operation in NETCONF is still open and possible
!    solutions are being discussed:
  
     1.  Consecutive Remote Processing Calls (RPC) to poll for results.
  
***************
*** 150,167 ****
  
     3.  The one outlined in [I-D.mahesh-netconf-persistent].
  
!    The problem of long-running operation as well can be considered as a
     case of controlling and obtaining results from a Measurement Agent
     (MA) as defined in [RFC7594].
  
  2.  Scope
  
     The fundamental mechanism of LSP-Ping is defined in [RFC8029].
!    Extensions of LSP-Ping has been developed over the years.  There are
     extensions for performing LSP ping, for example, over P2MP MPLS LSPs
!    [RFC6425] or for Segment Routing IGP Prefix and Adjacency SIDs with
     an MPLS data plane [RFC8287].  These extensions will be considered in
!    a later update of this document.
  
  
  
--- 150,167 ----
  
     3.  The one outlined in [I-D.mahesh-netconf-persistent].
  
!    The problem of long-running operations can be considered as a
     case of controlling and obtaining results from a Measurement Agent
     (MA) as defined in [RFC7594].
  
  2.  Scope
  
     The fundamental mechanism of LSP-Ping is defined in [RFC8029].
!    Extensions to LSP-Ping has been developed over the years.  There are
     extensions for performing LSP ping, for example, over P2MP MPLS LSPs
!    [RFC6425] or for Segment Routing IGP Prefixes and Adjacency SIDs with
     an MPLS data plane [RFC8287].  These extensions will be considered in
!    a later version of this document.
  
  
  
***************
*** 175,189 ****
     This YANG data model is defined to be used to configure and manage
     LSP-Ping and it provides the following features:
  
!    1.  The configuration of control information of an LSP-Ping test.
  
!    2.  The configuration of schedule parameters of an LSP-Ping test.
  
!    3.  Display of result information of an LSP-Ping test.
  
!    The top-level container lsp-pings holds the configuration of the
!    control information, schedule parameters and result information for
!    multiple instances of LSP-Ping test.
  
  3.1.  The Configuration of Control Information
  
--- 175,189 ----
     This YANG data model is defined to be used to configure and manage
     LSP-Ping and it provides the following features:
  
!    1.  The configuration of control information for an LSP-Ping test.
  
!    2.  The configuration of scheduling parameters for an LSP-Ping test.
  
!    3.  Display of result information from an LSP-Ping test.
  
!    The top-level container, lsp-pings, holds the configuration of the
!    control information, scheduling parameters, and result information for
!    multiple LSP-Ping test instances.
  
  3.1.  The Configuration of Control Information
  
***************
*** 191,197 ****
     parameters which control an LSP-Ping test.  Examples are the target-
     fec-type/target-fec of the echo request packet and the reply mode of
     the echo reply packet.  Values of some parameters may be auto-
!    assigned by the system, but in several cases, there is a requirement
     for configuration of these parameters.  Examples of such parameters
     are source address and outgoing interface.
  
--- 191,197 ----
     parameters which control an LSP-Ping test.  Examples are the target-
     fec-type/target-fec of the echo request packet and the reply mode of
     the echo reply packet.  Values of some parameters may be auto-
!    assigned by the system. However, in several cases, there is a requirement
     for configuration of these parameters.  Examples of such parameters
     are source address and outgoing interface.
  
***************
*** 271,279 ****
     Container lsp-pings:lsp-ping:schedule-parameters defines the schedule
     parameters of an LSP-Ping test, which describes when to start and
     when to end the test.  Four start modes and three end modes are
!    defined respectively.  To be noted that, the configuration of
     "interval" and "probe-count" parameter defined in container lsp-
!    pings:lsp-ping:control-info could also determine when the test ends
  
  
  
--- 271,279 ----
     Container lsp-pings:lsp-ping:schedule-parameters defines the schedule
     parameters of an LSP-Ping test, which describes when to start and
     when to end the test.  Four start modes and three end modes are
!    defined respectively.  Note that the configuration of
     "interval" and "probe-count" parameter defined in container lsp-
!    pings:lsp-ping:control-info could also implicitly determine when the
  
  
  
***************
*** 282,296 ****
  Internet-Draft                LSP-Ping YANG                 October 2018
  
  
!    implicitly.  All these three parameters are optional.If the user does
     not configure either "interval" or "probe-count" parameter, then the
     default values will be used by the system.  If the user configures
     "end-test", then the actual end time of the LSP-Ping test is the
!    smaller one between the configuration value of "end-test" and the
     time implicitly determined by the configuration value of
     "interval"/"probe-count".
  
!    The data hierarchy for schedule information configuration is
     presented below:
  
     module: ietf-lspping
--- 282,296 ----
  Internet-Draft                LSP-Ping YANG                 October 2018
  
  
!    test ends.  All three of these parameters are optional. If the user does
     not configure either "interval" or "probe-count" parameter, then the
     default values will be used by the system.  If the user configures
     "end-test", then the actual end time of the LSP-Ping test is the
!    sooner one between the configuration value of "end-test" and the
     time implicitly determined by the configuration value of
     "interval"/"probe-count".
  
!    The data hierarchy for scheduling information configuration is
     presented below:
  
     module: ietf-lspping
***************
*** 324,331 ****
  3.3.  Display of Result Information
  
     Container lsp-pings:lsp-ping:result-info shows the result of the
!    current LSP-Ping test.  Both the statistical result e.g. min-rtt, max
!    rtt, and per test probe result e.g. return code, return subcode, are
     shown.
  
     The data hierarchy for display of result information is presented
--- 324,331 ----
  3.3.  Display of Result Information
  
     Container lsp-pings:lsp-ping:result-info shows the result of the
!    current LSP-Ping test.  Both the statistical result, e.g., min-rtt, max
!    rtt, and per test probe result, e.g., return code, return subcode, are
     shown.
  
     The data hierarchy for display of result information is presented
***************
*** 383,389 ****
  
  4.  Data Hierarchy
  
!    The complete data hierarchy of LSP-Ping YANG model is presented
     below.
  
  
--- 383,389 ----
  
  4.  Data Hierarchy
  
!    The complete data hierarchy of the LSP-Ping YANG model is presented
     below.
  
  
***************
*** 519,528 ****
    prefix "lspping";
  
    import ietf-inet-types {
!   prefix inet;
    }
!   import ietf-yang-types{
!   prefix yang;
    }
  
    organization "IETF Multiprotocol Label Switching Working Group";
--- 519,528 ----
    prefix "lspping";
  
    import ietf-inet-types {
!     prefix inet;
    }
!   import ietf-yang-types {
!     prefix yang;
    }
  
    organization "IETF Multiprotocol Label Switching Working Group";
***************
*** 626,632 ****
      type enumeration {
        enum enabled {
          value "1";
!         description "The Test is active.";
        }
        enum disabled {
          value "2";
--- 626,632 ----
      type enumeration {
        enum enabled {
          value "1";
!         description "The test is active.";
        }
        enum disabled {
          value "2";
***************
*** 710,720 ****
            case vpn {
              leaf vrf-name {
                type uint32;
!               description "Layer3 VPN Name.";
              }
              leaf vpn-ip-address {
                type inet:ip-address;
!               description "Layer3 VPN IPv4 Prefix.";
              }
            }
            case pw {
--- 710,720 ----
            case vpn {
              leaf vrf-name {
                type uint32;
!               description "Layer-3 VPN Name.";
              }
              leaf vpn-ip-address {
                type inet:ip-address;
!               description "Layer-3 VPN IPv4 Prefix.";
              }
            }
            case pw {
***************
*** 759,766 ****
          leaf interval {
            type uint32;
            default 1;
!           description "Specifies the interval to send an LSP Ping
!           echo request packet(probe) as part of one LSP Ping test.";
          }
          leaf interval-units {
            type units;
--- 759,766 ----
          leaf interval {
            type uint32;
            default 1;
!           description "Specifies the interval at which to send LSP Ping
!           echo request packets, i.e., probes, as part of one LSP Ping test.";
          }
          leaf interval-units {
            type units;
***************
*** 795,801 ****
            portion of a probe packet.";
          }
          leaf description {
!           type string{
                length "1..31";
            }
            description "A descriptive name of the LSP Ping test.";
--- 795,801 ----
            portion of a probe packet.";
          }
          leaf description {
!           type string {
                length "1..31";
            }
            description "A descriptive name of the LSP Ping test.";
***************
*** 822,828 ****
                description "Specifies the outgoing interface.";
              }
            }
!           case nexthop{
              leaf nexthop {
                type inet:ip-address;
                description "Specifies the nexthop.";
--- 822,828 ----
                description "Specifies the outgoing interface.";
              }
            }
!           case nexthop {
              leaf nexthop {
                type inet:ip-address;
                description "Specifies the nexthop.";
***************
*** 877,885 ****
            start delay(3), start daily(4).";
          }
  
!         choice end-test{
            case at {
!             leaf end-test-at{
                type yang:date-and-time;
                description "End test at a specific time.";
              }
--- 877,885 ----
            start delay(3), start daily(4).";
          }
  
!         choice end-test {
            case at {
!             leaf end-test-at {
                type yang:date-and-time;
                description "End test at a specific time.";
              }
***************
*** 969,979 ****
            case vpn {
              leaf vrf-name {
                type uint32;
!               description "Layer3 VPN Name.";
              }
              leaf vpn-ip-address {
                type inet:ip-address;
!               description "Layer3 VPN IPv4 Prefix.";
              }
            }
            case pw {
--- 969,979 ----
            case vpn {
              leaf vrf-name {
                type uint32;
!               description "Layer-3 VPN Name.";
              }
              leaf vpn-ip-address {
                type inet:ip-address;
!               description "Layer-3 VPN IPv4 Prefix.";
              }
            }
            case pw {
***************
*** 1010,1016 ****
  Internet-Draft                LSP-Ping YANG                 October 2018
  
  
!           description "The current average LSP Ping round-trip-time
            (RTT).";
          }
          leaf probe-responses {
--- 1010,1016 ----
  Internet-Draft                LSP-Ping YANG                 October 2018
  
  
!           description "The average LSP Ping round-trip-time
            (RTT).";
          }
          leaf probe-responses {
ACEE-M-G2HR:Desktop acee$
Thanks,
Acee