Hi,

Here are my AD review comments for draft-ietf-opsawg-yang-vpn-service-pm-09, 
apologies for the delay.

I think that this document is in good shape and hence most of my comments are 
only minor or nits.


Minor level comments:

(1) p 0, sec 

   The data model for network topologies defined in RFC 8345 introduces
   vertical layering relationships between networks that can be
   augmented to cover network and service topologies.  This document
   defines a YANG module for performance monitoring (PM) of both
   networks and VPN services that can be used to monitor and manage
   network performance on the topology at higher layer or the service
   topology between VPN sites.

"the topology at higher layer" doesn't scan particularly well to me, please can 
you tweak it.


(2) p 1, sec 1.  Introduction

   [RFC8969] describes a framework for automating service and network
   management with YANG [RFC6020] models.

Please update reference to RFC 7950 for YANG.


(3) p 4, sec 3.  Network and VPN Service Performance Monitoring Model Usage

   As shown in Figure 1, in the context of the layering model
   architecture described in [RFC8309], the network and VPN service
   performance monitoring (PM) model can be used to expose a set of
   performance information to the above layer.  Such information can be
   used by an orchestrator to subscribe to performance data.

Perhaps rephase?  I.e., is it the performance data that is being used to create 
a subscription based on the performance data, or is it just that the model 
makes the performance data readily available, which can then be subscribed do?


(4) p 4, sec 3.  Network and VPN Service Performance Monitoring Model Usage

   In addition, the amount of performance data collected from the
   devices can be huge.  To avoid receiving a large amount of
   operational data of VPN instances, VPN interfaces, or tunnels, the
   network controller can specifically subscribe to metric-specific data
   using the tagging methods defined in [I-D.ietf-netmod-node-tags].

At the moment, my reading of the ietf-netmod-node-tags draft is that it doesn't 
currently allow you do this.  I.e., you can't just make a subscription to all 
datanodes that have been tagged in a particular way.  Hence, I would suggest 
removing this paragraph, since it doesn't seem to be directly related to what 
is described in this model.


(5) p 5, sec 3.1.  Collecting Data via Pub/Sub Mechanism

   Some applications such as service-assurance applications, which must
   maintain a continuous view of operational data and state, can use the
   subscription model specified in [RFC8641] to subscribe to the
   specific network performance data or VPN service performance data
   they are interested in, at the data source.  For example, network or
   VPN topology updates may be obtained through on-change notifications
   [RFC8641].  For dynamic PM data, various notifications can be
   specified to obtain more complete data.

Can you elaborate a bit on what is meant by dynamic PM data please.


(6) p 5, sec 3.1.  Collecting Data via Pub/Sub Mechanism

  A periodic notification
   [RFC8641] can be specified to obtain real-time performance data, a
   replay notification defined in [RFC5277] or [RFC8639] can be
   specified to obtain historical data

If this data is coming from a device then ideally it would not hold on to much 
historical data.


(7) p 6, sec 4.1.  Layering Relationship between Multiple Layers of Topology

      Figure 3: Example of Topology Mapping Between VPN Service
                   Topology and Underlying Network

Note, I don't find this diagram brilliantly clear, it is hard to see when the 
dotted lines go
but the explanatory text is clear (and probably sufficient).


(8) p 7, sec 4.1.  Layering Relationship between Multiple Layers of Topology

   Apart from the association between the VPN topology and the underlay
   topology, VPN Network PM can also provide the performance status of
   the underlay network and VPN services.  For example, network PM can
   provide link PM statistics and port statistics.  VPN PM can provide
   statistics on VPN access interfaces, the number of current VRF routes
   or L2VPN MAC entry of VPN nodes, and performance statistics on the
   logical point-to-point link between source and destination VPN nodes
   or between source and destination VPN access interfaces.  Figure 4
   illustrates an example of VPN PM and the difference between two VPN
   PM measurement methods.  One is the VPN tunnel PM and the other is
   inter-VPN-access interface PM.

By "VPN Network PM", do you mean the "VPN Network PM YANG module", or is this 
just referring to performance monitoring in general?


(9) p 7, sec 4.1.  Layering Relationship between Multiple Layers of Topology

   Apart from the association between the VPN topology and the underlay
   topology, VPN Network PM can also provide the performance status of
   the underlay network and VPN services.  For example, network PM can
   provide link PM statistics and port statistics.  VPN PM can provide
   statistics on VPN access interfaces, the number of current VRF routes
   or L2VPN MAC entry of VPN nodes, and performance statistics on the
   logical point-to-point link between source and destination VPN nodes
   or between source and destination VPN access interfaces.  Figure 4
   illustrates an example of VPN PM and the difference between two VPN
   PM measurement methods.  One is the VPN tunnel PM and the other is
   inter-VPN-access interface PM.

I wonder if it would be better to move, and perhaps expand, the "Figure 4" 
explanation text to below the diagram?  If so, then I would add a joining 
sentence here, something like:
"VPN PM can be further split into PM for the VPN tunnel and PM at the VPN PE 
access node, as illustrated in the following diagram:"


(10) p 8, sec 4.2.  Network Level

Network Level -> Network Level PM?  If so, please also change the titles for 
4.3 and 4.4.


(11) p 8, sec 4.2.  Network Level

   For network performance monitoring, the container of "networks" in
   [RFC8345] is not extended.

I'm confused by what this sentence is meant to convey - did you mean augmented? 
 In particular, it isn't clear to me how you express PM for the physical (or 
underlay networks).  Is what you are trying to express that the "service-type" 
container is present for VPN service performance monitoring and absence 
otherwise?  Probably more words required here, and in the YANG module.


(12) p 8, sec 4.2.  Network Level

   module: ietf-network-vpn-pm
     augment /nw:networks/nw:network/nw:network-types:
       +--rw service-type!
          +--rw service-type?   identityref
     augment /nw:networks/nw:network:
       +--rw vpn-pm-attributes
          +--rw vpn-id?                 vpn-common:vpn-id
          +--rw vpn-service-topology?   identityref

These two leaves are added under vpn-pm-attributes, but I was wondering if they 
are actually PM specific (particularly vpn-id), or would be better directly 
added to the network?


(13) p 8, sec 4.2.  Network Level

   module: ietf-network-vpn-pm
     augment /nw:networks/nw:network/nw:network-types:
       +--rw service-type!
          +--rw service-type?   identityref
     augment /nw:networks/nw:network:
       +--rw vpn-pm-attributes
          +--rw vpn-id?                 vpn-common:vpn-id
          +--rw vpn-service-topology?   identityref

I'm not sure that you need "attributes" in the name, isn't that implicit?  The 
same comment applies for "pm-attributes", and whether just "pm" would be 
sufficient, or perfhaps "perf-mon" would be more descriptive in the various 
container names rather than "pm"?


(14) p 8, sec 4.3.  Node Level

   "node-type":  Indicates the device type of Provider Edge (PE),

As per above, is "node-type" actually PM specific?


(15) p 10, sec 4.4.  Link and Termination Point Level

   The performance data of a link is a collection of counters and gauges
   that report the performance status.
  augment /nw:networks/nw:network/nt:link:
    +--rw pm-attributes
       +--rw low-percentile?            percentile
       +--rw intermediate-percentile?   percentile
       +--rw high-percentile?           percentile
       +--rw measurement-interval?      uint32
       +--ro pm* [pm-type]
       |  +--ro pm-type          identityref
       |  +--ro pm-attributes
       |     +--ro start-time?                        yang:date-and-time
       |     +--ro end-time?                          yang:date-and-time
       |     +--ro pm-source?                         identityref
       |     +--ro one-way-pm-statistics
       |     |  +--ro loss-statistics
       |     |  |  +--ro packet-loss-count?   yang:counter64
       |     |  |  +--ro loss-ratio?          percentage
       |     |  +--ro delay-statistics
       |     |  |  +--ro unit-value?                      identityref
       |     |  |  +--ro min-delay-value?                 yang:gauge64
       |     |  |  +--ro max-delay-value?                 yang:gauge64
       |     |  |  +--ro low-delay-percentile?            yang:gauge64
       |     |  |  +--ro intermediate-delay-percentile?   yang:gauge64
       |     |  |  +--ro high-delay-percentile?           yang:gauge64
       |     |  +--ro jitter-statistics
       |     |     +--ro unit-value?                       identityref
       |     |     +--ro min-jitter-value?                 yang:gauge64
       |     |     +--ro max-jitter-value?                 yang:gauge64
       |     |     +--ro low-jitter-percentile?            yang:gauge64
       |     |     +--ro intermediate-jitter-percentile?   yang:gauge64
       |     |     +--ro high-jitter-percentile?           yang:gauge64

I presume that it is intentional delay and jitter statistics can have different 
units, rather than always being aligned to the same units?


(16) p 18, sec 5.  Network and VPN Service Performance Monitoring YANG Module

     typedef percentage {
       type decimal64 {
         fraction-digits 5;
         range "0..100";
       }
       description
         "Percentage.";

Perhaps "Percentage to 5 decimal places?"


(17) p 18, sec 5.  Network and VPN Service Performance Monitoring YANG Module

     typedef percentile {
       type decimal64 {
         fraction-digits 2;
         range "0..100";
       }
       description
         "The percentile is a value between 0 and 100,

Perhaps value between 0 and 100 to 2 decimal places?


(18) p 24, sec 5.  Network and VPN Service Performance Monitoring YANG Module

     augment "/nw:networks/nw:network/nw:network-types" {
       description
         "Defines the service topologies types.";
       container service-type {
         presence "Indicates network service topology.";

Perhaps expand either in the presence statement, or the documentation what it 
means if this container isn't present.  I.e., does this mean that the topology 
represents the underlying network?


(19) p 24, sec 5.  Network and VPN Service Performance Monitoring YANG Module

         leaf service-type {
           type identityref {
             base vpn-common:service-type;
           }

Should this leaf be marked as mandatory?  I.e., is it okay to mark it as a 
service topology without identifying the srevice type?


(20) p 26, sec 5.  Network and VPN Service Performance Monitoring YANG Module

     augment "/nw:networks/nw:network/nt:link" {
       description
         "Augments the network topology link with performance
          monitoring attributes.";
       container pm-attributes {
         description
           "Container for PM attributes.";
         leaf low-percentile {
           type percentile;
           default "10.00";
           description
             "Low percentile to report. Setting low-percentile
              into 0.00 indicates the client is not interested
              in receiving low percentile.";
         }
         leaf intermediate-percentile {
           type percentile;
           default "50.00";
           description
             "Intermediate percentile to report. Setting
              intermediate-percentile into 0.00 indicates the client
              is not interested in receiving intermediate percentile.";
         }
         leaf high-percentile {
           type percentile;
           default "95.00";
           description
             "High percentile to report. Setting high-percentile
              into 0.00 indicates the client is not interested in
              receiving high percentile.";
         }
         leaf measurement-interval {
           type uint32 {
             range "1..max";
           }
           units "seconds";
           default "60";
           description
             "Indicates the time interval to perform PM measurement.";

Perhaps "The time interval to perform PM measurements over"?


(21) p 30, sec 6.  Security Considerations

   *  "/nw:networks/nw:network/nw:node/nt:termination-point/nvp:pm-
      statistics": Unauthorized access to this subtree can disclose the
      operational state information of network termination points or VPN
      network accesses.

Perhaps add a sentence to state that the model does not define any RPC or 
Actions.


(22) p 38, sec Appendix A.  Illustrative Examples

   The following shows an example of a percentile measurement for a VPN
   link.

Please can you expand the description a bit.  I.e., that this is an example of 
data that could be returned for for link foo:vpn1-link1 between vpn-node1 and 
vpn-node3.



Nit level comments:

(23) p 3, sec 3.  Network and VPN Service Performance Monitoring Model Usage

   As shown in Figure 1, in the context of the layering model
   architecture described in [RFC8309], the network and VPN service
   performance monitoring (PM) model can be used to expose a set of

layering/layered


Grammar Warnings (generated by tooling):
Section: 4.4, draft text:
The statistics of the VPN abstract links can be collected based upon VPN OAM 
mechanisms, e.g.,OAM mechanisms referenced in [RFC9182], or Ethernet service 
OAM [ITU-T-Y-1731] referenced in [I-D.ietf-opsawg-l2nm]. 
Warning:  Put a space after the comma.
Suggested change:  ", OAM"

Section: 6, draft text:
Unauthorized access to this subtree may disable the the VPN PM or render the 
VPN service topology invalid. 
Warning:  Maybe you need to remove one determiner so that only the or the is 
left.
Suggested change:  "the"

Section: 6, draft text:
Some of the readable data nodes in this YANG module may be considered sensitive 
or vulnerable in some network environments. 
Warning:  If the text is a generality, 'of the' is not necessary.
Suggested change:  "Some"

Section: 6, draft text:
- /nw:networks/nw:network/nw:node/nt:termination-point/nvp:pm-statistics": 
Unauthorized access to this subtree can disclose the operational state 
information of network termination points or VPN network accesses. 
Warning:  Unpaired symbol: '"' seems to be missing

Regards,
Rob

_______________________________________________
OPSAWG mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/opsawg

Reply via email to