draft-ietf-opsawg-yang-vpn-service-pm-08.txt   draft-ietf-opsawg-yang-vpn-service-pm-09.txt 
OPSAWG Working Group B. Wu, Ed. OPSAWG Working Group B. Wu, Ed.
Internet-Draft Q. Wu, Ed. Internet-Draft Q. Wu, Ed.
Intended status: Standards Track Huawei Intended status: Standards Track Huawei
Expires: 6 November 2022 M. Boucadair, Ed. Expires: 18 November 2022 M. Boucadair, Ed.
Orange Orange
O. Gonzalez de Dios O. Gonzalez de Dios
Telefonica Telefonica
B. Wen B. Wen
Comcast Comcast
5 May 2022 17 May 2022
A YANG Model for Network and VPN Service Performance Monitoring A YANG Model for Network and VPN Service Performance Monitoring
draft-ietf-opsawg-yang-vpn-service-pm-08 draft-ietf-opsawg-yang-vpn-service-pm-09
Abstract Abstract
The data model for network topologies defined in RFC 8345 introduces The data model for network topologies defined in RFC 8345 introduces
vertical layering relationships between networks that can be vertical layering relationships between networks that can be
augmented to cover network and service topologies. This document augmented to cover network and service topologies. This document
defines a YANG module for performance monitoring (PM) of both defines a YANG module for performance monitoring (PM) of both
networks and VPN services that can be used to monitor and manage networks and VPN services that can be used to monitor and manage
network performance on the topology at higher layer or the service network performance on the topology at higher layer or the service
topology between VPN sites. topology between VPN sites.
skipping to change at page 1, line 42 skipping to change at page 1, line 42
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 6 November 2022. This Internet-Draft will expire on 18 November 2022.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 28 skipping to change at page 2, line 28
2.1. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Network and VPN Service Performance Monitoring Model Usage . 4 3. Network and VPN Service Performance Monitoring Model Usage . 4
3.1. Collecting Data via Pub/Sub Mechanism . . . . . . . . . . 5 3.1. Collecting Data via Pub/Sub Mechanism . . . . . . . . . . 5
3.2. Collecting Data On-demand . . . . . . . . . . . . . . . . 6 3.2. Collecting Data On-demand . . . . . . . . . . . . . . . . 6
4. Description of The Data Model . . . . . . . . . . . . . . . . 6 4. Description of The Data Model . . . . . . . . . . . . . . . . 6
4.1. Layering Relationship between Multiple Layers of 4.1. Layering Relationship between Multiple Layers of
Topology . . . . . . . . . . . . . . . . . . . . . . . . 6 Topology . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2. Network Level . . . . . . . . . . . . . . . . . . . . . . 9 4.2. Network Level . . . . . . . . . . . . . . . . . . . . . . 9
4.3. Node Level . . . . . . . . . . . . . . . . . . . . . . . 9 4.3. Node Level . . . . . . . . . . . . . . . . . . . . . . . 9
4.4. Link and Termination Point Level . . . . . . . . . . . . 10 4.4. Link and Termination Point Level . . . . . . . . . . . . 10
5. Network and VPN Service Performance Monitoring YANG Module . 14 5. Network and VPN Service Performance Monitoring YANG Module . 15
6. Security Considerations . . . . . . . . . . . . . . . . . . . 29 6. Security Considerations . . . . . . . . . . . . . . . . . . . 30
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 31 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32
9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 31 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 32
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 31 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 32
10.1. Normative References . . . . . . . . . . . . . . . . . . 31 10.1. Normative References . . . . . . . . . . . . . . . . . . 33
10.2. Informative References . . . . . . . . . . . . . . . . . 34 10.2. Informative References . . . . . . . . . . . . . . . . . 35
Appendix A. Illustrative Examples . . . . . . . . . . . . . . . 35 Appendix A. Illustrative Examples . . . . . . . . . . . . . . . 36
A.1. VPN Performance Subscription Example . . . . . . . . . . 35 A.1. VPN Performance Subscription Example . . . . . . . . . . 36
A.2. Example of VPN Performance Snapshot . . . . . . . . . . . 37 A.2. Example of VPN Performance Snapshot . . . . . . . . . . . 38
A.3. Example of Percentile Monitoring . . . . . . . . . . . . 39 A.3. Example of Percentile Monitoring . . . . . . . . . . . . 39
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 40
1. Introduction 1. Introduction
[RFC8969] describes a framework for automating service and network [RFC8969] describes a framework for automating service and network
management with YANG [RFC6020] models. It defines that the management with YANG [RFC6020] models. It defines that the
performance measurement telemetry model should be tied to the performance measurement telemetry model should be tied to the
services (such as a Layer 3 VPN or Layer 2 VPN) or to the network services (such as a Layer 3 VPN or Layer 2 VPN) or to the network
models to monitor the overall network performance and the Service models to monitor the overall network performance and the Service
Level Agreements (SLAs). Level Agreements (SLAs).
skipping to change at page 3, line 18 skipping to change at page 3, line 18
device interfaces. Additionally, the integration of Layer 2/Layer 3 device interfaces. Additionally, the integration of Layer 2/Layer 3
VPN performance and network performance data enables the orchestrator VPN performance and network performance data enables the orchestrator
to subscribe to VPN service performance in a unified manner. to subscribe to VPN service performance in a unified manner.
Therefore, this document defines a YANG module for both network and Therefore, this document defines a YANG module for both network and
VPN service performance monitoring (PM). The module can be used to VPN service performance monitoring (PM). The module can be used to
monitor and manage network performance on the topology level or the monitor and manage network performance on the topology level or the
service topology between VPN sites, in particular. service topology between VPN sites, in particular.
This document does not introduce new metrics for network performance This document does not introduce new metrics for network performance
or mechanisms for measuring network performance, but uses the or mechanisms for measuring network performance, but uses the
existing mechanisms and statistics to display the performance existing mechanisms and statistics to monitor the performance of the
monitoring statistics at the network and service layers. All these network and the services. All these metrics are defined as
metrics are defined as unidirectional metrics. unidirectional metrics.
The YANG module defined in this document is designed as an The YANG module defined in this document is designed as an
augmentation to the network topology YANG model defined in [RFC8345] augmentation to the network topology YANG model defined in [RFC8345]
and draws on relevant YANG types defined in [RFC6991], [RFC8345], and draws on relevant YANG types defined in [RFC6991], [RFC8345],
[RFC8532], and [RFC9181]. [RFC8532], and [RFC9181].
Appendix A provides a set of examples to illustrate the use of the Appendix A provides a set of examples to illustrate the use of the
module. module.
2. Terminology 2. Terminology
skipping to change at page 5, line 29 skipping to change at page 5, line 29
the underlying network can be collected using a network performance the underlying network can be collected using a network performance
measurement method such as One-Way Active Measurement Protocol measurement method such as One-Way Active Measurement Protocol
(OWAMP) [RFC4656], Two-Way Active Measurement Protocol (TWAMP) (OWAMP) [RFC4656], Two-Way Active Measurement Protocol (TWAMP)
[RFC5357], Simple Two-way Active Measurement Protocol(STAMP) [RFC5357], Simple Two-way Active Measurement Protocol(STAMP)
[RFC8762], and Multiprotocol Label Switching (MPLS) Loss and Delay [RFC8762], and Multiprotocol Label Switching (MPLS) Loss and Delay
Measurement [RFC6374]. The performance monitoring information Measurement [RFC6374]. The performance monitoring information
reflecting the quality of the network or VPN service (e.g., end-to- reflecting the quality of the network or VPN service (e.g., end-to-
end network performance data between source node and destination node end network performance data between source node and destination node
in the network or between VPN sites) can be computed and aggregated, in the network or between VPN sites) can be computed and aggregated,
for example, using the information from the Traffic Engineering for example, using the information from the Traffic Engineering
Database (TED), [RFC7471] [RFC8570] [RFC8571] or LMAP [RFC8194]. Database (TED), [RFC7471] [RFC8570] [RFC8571] or LMAP (Large-Scale
Measurement Platform) [RFC8194].
The measurement and report intervals that are associated with these The measurement and report intervals that are associated with these
performance data usually depend on the configuration of the specific performance data usually depend on the configuration of the specific
measurement method or collection method or various combinations. measurement method or collection method or various combinations.
This document defines a network-wide measurement interval to align This document defines a network-wide measurement interval to align
measurement requirements for networks or VPN services. measurement requirements for networks or VPN services.
In addition, the amount of performance data collected from the In addition, the amount of performance data collected from the
devices can be huge. To avoid receiving a large amount of devices can be huge. To avoid receiving a large amount of
operational data of VPN instances, VPN interfaces, or tunnels, the operational data of VPN instances, VPN interfaces, or tunnels, the
skipping to change at page 5, line 51 skipping to change at page 6, line 4
using the tagging methods defined in [I-D.ietf-netmod-node-tags]. using the tagging methods defined in [I-D.ietf-netmod-node-tags].
3.1. Collecting Data via Pub/Sub Mechanism 3.1. Collecting Data via Pub/Sub Mechanism
Some applications such as service-assurance applications, which must Some applications such as service-assurance applications, which must
maintain a continuous view of operational data and state, can use the maintain a continuous view of operational data and state, can use the
subscription model specified in [RFC8641] to subscribe to the subscription model specified in [RFC8641] to subscribe to the
specific network performance data or VPN service performance data specific network performance data or VPN service performance data
they are interested in, at the data source. For example, network or they are interested in, at the data source. For example, network or
VPN topology updates may be obtained through on-change notifications VPN topology updates may be obtained through on-change notifications
[RFC8641]. For dynamic PM data, various notifications can be [RFC8641]. For dynamic PM data, various notifications can be
specified to obtain more complete data. A periodic notification specified to obtain more complete data. A periodic notification
[RFC8641] can be specified to obtain real-time performance data, a [RFC8641] can be specified to obtain real-time performance data, a
replay notification defined in [RFC5277] or [RFC8639] can be replay notification defined in [RFC5277] or [RFC8639] can be
specified to obtain historical data, or alarm notifications [RFC8632] specified to obtain historical data, or alarm notifications [RFC8632]
can be specified to get alarms for the metrics which exceed or fall can be specified to get alarms for the metrics which exceed or fall
below the performance threshold. below the performance threshold.
The data source can, then, use the network and VPN service assurance The data source can, then, use the network and VPN service
model defined in this document and the YANG Push model [RFC8641] to performance monitoring model defined in this document and the YANG
distribute specific telemetry data to target recipients. Push model [RFC8641] to distribute specific telemetry data to target
recipients.
3.2. Collecting Data On-demand 3.2. Collecting Data On-demand
To obtain a snapshot of a large amount of performance data from a To obtain a snapshot of a large amount of performance data from a
network topology or VPN network, service-assurance applications may network topology or VPN network, service-assurance applications may
retrieve information using the network and VPN service PM model retrieve information using the network and VPN service PM model
through a NETCONF [RFC6241] or a RESTCONF [RFC8040] interface. For through a NETCONF [RFC6241] or a RESTCONF [RFC8040] interface. For
example, a specified "link-id" of a VPN can be used as a filter in a example, a specified "link-id" of a VPN can be used as a filter in a
RESTCONF GET request to retrieve per-link VPN PM data. RESTCONF GET request to retrieve per-link VPN PM data.
skipping to change at page 8, line 6 skipping to change at page 8, line 8
VPN 1: This service topology supports hub-spoke communications for VPN 1: This service topology supports hub-spoke communications for
'customer 1' connecting the customer's access at three sites: 'customer 1' connecting the customer's access at three sites:
'Site-1A', 'Site-1B', and 'Site-1C'. These sites are connected to 'Site-1A', 'Site-1B', and 'Site-1C'. These sites are connected to
nodes that are mapped to node 1 (N1), node 2 (N2), and node 4 (N4) nodes that are mapped to node 1 (N1), node 2 (N2), and node 4 (N4)
in the underlying physical network. 'Site-1A' plays the role of in the underlying physical network. 'Site-1A' plays the role of
hub while 'Site-1B' and 'Site-1C' are configured as spoke. hub while 'Site-1B' and 'Site-1C' are configured as spoke.
VPN 2: This service supports any-to-any communications for 'customer VPN 2: This service supports any-to-any communications for 'customer
2' connecting the customer's access at two sites: 'Site-2A' and 2' connecting the customer's access at two sites: 'Site-2A' and
'Site-2B'. These sites are connected to nodes that are mapped to 'Site-2B'. These sites are connected to nodes that are mapped to
nodes 1 (N1) and node 3 (N3)5 in the underlying physical network. nodes 1 (N1) and node 3 (N3) in the underlying physical network.
'Site-2A' and 'Site-2B' have 'any-to-any' role. 'Site-2A' and 'Site-2B' have 'any-to-any' role.
Apart from the association between the VPN topology and the underlay Apart from the association between the VPN topology and the underlay
topology, VPN Network PM can also provide the performance status of topology, VPN Network PM can also provide the performance status of
the underlay network and VPN services. For example, network PM can the underlay network and VPN services. For example, network PM can
provide link PM statistics and port statistics. VPN PM can provide provide link PM statistics and port statistics. VPN PM can provide
statistics on VPN access interfaces, the number of current VRF routes statistics on VPN access interfaces, the number of current VRF routes
or L2VPN MAC entry of VPN nodes, and performance statistics on the or L2VPN MAC entry of VPN nodes, and performance statistics on the
logical point-to-point link between source and destination VPN nodes logical point-to-point link between source and destination VPN nodes
or between source and destination VPN access interfaces. Figure 4 or between source and destination VPN access interfaces. Figure 4
skipping to change at page 9, line 8 skipping to change at page 9, line 8
+-----------------------------------------------------+ +-----------------------------------------------------+
Legend: Legend:
N:node VN:VPN-Node TP:Termination Point N:node VN:VPN-Node TP:Termination Point
-:Link -:Link
Figure 4: An Example of VPN PM Figure 4: An Example of VPN PM
4.2. Network Level 4.2. Network Level
For network performance monitoring, the container of "networks" in For network performance monitoring, the container of "networks" in
[RFC8345] does not need to be extended. [RFC8345] is not extended.
For VPN service performance monitoring, the container "service-type" For VPN service performance monitoring, the container "service-type"
is defined to indicate the VPN type, e.g., L3VPN or Virtual Private is defined to indicate the VPN type, e.g., L3VPN or Virtual Private
LAN Service (VPLS). The values are taken from [RFC9181]. When a LAN Service (VPLS). The values are taken from [RFC9181]. When a
network topology instance contains the L3VPN or other L2VPN network network topology instance contains the L3VPN or other L2VPN network
type, it represents a VPN instance that can perform performance type, it represents a VPN instance that can perform performance
monitoring. monitoring.
The tree in Figure 5 is a part of ietf-network-vpn-pm tree. It The tree in Figure 5 is a part of ietf-network-vpn-pm tree. It
defines the following set of network level attributes: defines the following set of network level attributes:
skipping to change at page 11, line 5 skipping to change at page 11, line 5
The tree in Figure 7 is the link and termination point (TP) part of The tree in Figure 7 is the link and termination point (TP) part of
ietf-network-vpn-pm tree. ietf-network-vpn-pm tree.
The 'links' are classified into two types: topology link defined in The 'links' are classified into two types: topology link defined in
[RFC8345] and abstract link of a VPN between PEs defined in this [RFC8345] and abstract link of a VPN between PEs defined in this
module. module.
The performance data of a link is a collection of counters and gauges The performance data of a link is a collection of counters and gauges
that report the performance status. that report the performance status.
augment /nw:networks/nw:network/nt:link: augment /nw:networks/nw:network/nt:link:
+--rw pm-attributes +--rw pm-attributes
+--rw low-percentile? percentile +--rw low-percentile? percentile
+--rw intermediate-percentile? percentile +--rw intermediate-percentile? percentile
+--rw high-percentile? percentile +--rw high-percentile? percentile
+--rw measurement-interval? uint32 +--rw measurement-interval? uint32
+--ro start-time? yang:date-and-time +--ro pm* [pm-type]
+--ro end-time? yang:date-and-time | +--ro pm-type identityref
+--ro pm-source? identityref | +--ro pm-attributes
+--ro one-way-pm-statistics | +--ro start-time? yang:date-and-time
| +--ro loss-statistics | +--ro end-time? yang:date-and-time
| | +--ro packet-loss-count? yang:counter64 | +--ro pm-source? identityref
| | +--ro loss-ratio? percentage | +--ro one-way-pm-statistics
| +--ro delay-statistics | | +--ro loss-statistics
| | +--ro unit-value? identityref | | | +--ro packet-loss-count? yang:counter64
| | +--ro min-delay-value? yang:gauge64 | | | +--ro loss-ratio? percentage
| | +--ro max-delay-value? yang:gauge64 | | +--ro delay-statistics
| | +--ro low-delay-percentile? yang:gauge64 | | | +--ro unit-value? identityref
| | +--ro intermediate-delay-percentile? yang:gauge64 | | | +--ro min-delay-value? yang:gauge64
| | +--ro high-delay-percentile? yang:gauge64 | | | +--ro max-delay-value? yang:gauge64
| +--ro jitter-statistics | | | +--ro low-delay-percentile? yang:gauge64
| +--ro unit-value? identityref | | | +--ro intermediate-delay-percentile? yang:gauge64
| +--ro min-jitter-value? yang:gauge64 | | | +--ro high-delay-percentile? yang:gauge64
| +--ro max-jitter-value? yang:gauge64 | | +--ro jitter-statistics
| +--ro low-jitter-percentile? yang:gauge64 | | +--ro unit-value? identityref
| +--ro intermediate-jitter-percentile? yang:gauge64 | | +--ro min-jitter-value? yang:gauge64
| +--ro high-jitter-percentile? yang:gauge64 | | +--ro max-jitter-value? yang:gauge64
+--ro one-way-pm-statistics-per-class* [class-id] | | +--ro low-jitter-percentile? yang:gauge64
| +--ro class-id string | | +--ro intermediate-jitter-percentile? yang:gauge64
| +--ro loss-statistics | | +--ro high-jitter-percentile? yang:gauge64
| | +--ro packet-loss-count? yang:counter64 | +--ro one-way-pm-statistics-per-class* [class-id]
| | +--ro loss-ratio? percentage | +--ro class-id string
| +--ro delay-statistics | +--ro loss-statistics
| | +--ro unit-value? identityref | | +--ro packet-loss-count? yang:counter64
| | +--ro min-delay-value? yang:gauge64 | | +--ro loss-ratio? percentage
| | +--ro max-delay-value? yang:gauge64 | +--ro delay-statistics
| | +--ro low-delay-percentile? yang:gauge64 | | +--ro unit-value? identityref
| | +--ro intermediate-delay-percentile? yang:gauge64 | | +--ro min-delay-value? yang:gauge64
| | +--ro high-delay-percentile? yang:gauge64 | | +--ro max-delay-value? yang:gauge64
| +--ro jitter-statistics | | +--ro low-delay-percentile? yang:gauge64
| +--ro unit-value? identityref | | +--ro intermediate-delay-percentile? yang:gauge64
| +--ro min-jitter-value? yang:gauge64 | | +--ro high-delay-percentile? yang:gauge64
| +--ro max-jitter-value? yang:gauge64 | +--ro jitter-statistics
| +--ro low-jitter-percentile? yang:gauge64 | +--ro unit-value? identityref
| +--ro intermediate-jitter-percentile? yang:gauge64 | +--ro min-jitter-value? yang:gauge64
| +--ro high-jitter-percentile? yang:gauge64 | +--ro max-jitter-value? yang:gauge64
+--rw vpn-pm-type | +--ro low-jitter-percentile? yang:gauge64
+--rw inter-vpn-access-interface | +--ro intermediate-jitter-percentile? yang:gauge64
| +--rw inter-vpn-access-interface? empty | +--ro high-jitter-percentile? yang:gauge64
+--rw underlay-tunnel! +--rw vpn-pm-type
+--ro vpn-underlay-transport-type? identityref +--rw inter-vpn-access-interface
augment /nw:networks/nw:network/nw:node/nt:termination-point: | +--rw inter-vpn-access-interface? empty
+--ro pm-statistics +--rw underlay-tunnel!
+--ro reference-time? yang:date-and-time +--ro vpn-underlay-transport-type? identityref
augment /nw:networks/nw:network/nw:node/nt:termination-point:
+--ro pm-statistics
+--ro last-updated? yang:date-and-time
+--ro inbound-octets? yang:counter64
+--ro inbound-unicast? yang:counter64
+--ro inbound-non-unicast? yang:counter64
+--ro inbound-discards? yang:counter64
+--ro inbound-errors? yang:counter64
+--ro inbound-unknown-protocol? yang:counter64
+--ro outbound-octets? yang:counter64
+--ro outbound-unicast? yang:counter64
+--ro outbound-non-unicast? yang:counter64
+--ro outbound-discards? yang:counter64
+--ro outbound-errors? yang:counter64
+--ro vpn-network-access* [network-access-id]
+--ro network-access-id vpn-common:vpn-id
+--ro last-updated? yang:date-and-time
+--ro inbound-octets? yang:counter64 +--ro inbound-octets? yang:counter64
+--ro inbound-unicast? yang:counter64 +--ro inbound-unicast? yang:counter64
+--ro inbound-nunicast? yang:counter64 +--ro inbound-non-unicast? yang:counter64
+--ro inbound-discards? yang:counter64 +--ro inbound-discards? yang:counter64
+--ro inbound-errors? yang:counter64 +--ro inbound-errors? yang:counter64
+--ro inbound-unknown-protocol? yang:counter64 +--ro inbound-unknown-protocol? yang:counter64
+--ro outbound-octets? yang:counter64 +--ro outbound-octets? yang:counter64
+--ro outbound-unicast? yang:counter64 +--ro outbound-unicast? yang:counter64
+--ro outbound-nunicast? yang:counter64 +--ro outbound-non-unicast? yang:counter64
+--ro outbound-discards? yang:counter64 +--ro outbound-discards? yang:counter64
+--ro outbound-errors? yang:counter64 +--ro outbound-errors? yang:counter64
+--ro vpn-network-access* [network-access-id]
+--ro network-access-id vpn-common:vpn-id
+--ro reference-time? yang:date-and-time
+--ro inbound-octets? yang:counter64
+--ro inbound-unicast? yang:counter64
+--ro inbound-nunicast? yang:counter64
+--ro inbound-discards? yang:counter64
+--ro inbound-errors? yang:counter64
+--ro inbound-unknown-protocol? yang:counter64
+--ro outbound-octets? yang:counter64
+--ro outbound-unicast? yang:counter64
+--ro outbound-nunicast? yang:counter64
+--ro outbound-discards? yang:counter64
+--ro outbound-errors? yang:counter64
Figure 7: Link and Termination point Level YANG Tree of the Figure 7: Link and Termination point Level YANG Tree of the
hierarchies hierarchies
For the data nodes of 'link' depicted in Figure 7, the YANG module For the data nodes of 'link' depicted in Figure 7, the YANG module
defines the following minimal set of link-level performance defines the following minimal set of link-level performance
attributes: attributes:
Percentile parameters: The module supports reporting delay and Percentile parameters: The module supports reporting delay and
jitter metric by percentile values. By default, low percentile jitter metric by percentile values. By default, low percentile
(10th percentile), intermediate percentile (50th percentile), high (10th percentile), intermediate percentile (50th percentile), high
percentile (90th percentile) are used. Setting a percentile to percentile (90th percentile) are used. Setting a percentile to
0.00 indicates the client is not interested in receiving 0.00 indicates the client is not interested in receiving
skipping to change at page 13, line 11 skipping to change at page 13, line 14
this represents that no percentile related nodes will be reported this represents that no percentile related nodes will be reported
for a given performance metric (e.g., one-way delay, one-way delay for a given performance metric (e.g., one-way delay, one-way delay
variation) and only peak/min values will be reported. For variation) and only peak/min values will be reported. For
example, a client can inform the server that it is interested in example, a client can inform the server that it is interested in
receiving only high percentiles. Then for a given link, at a receiving only high percentiles. Then for a given link, at a
given "start-time", "end-time" and "measurement-interval", the given "start-time", "end-time" and "measurement-interval", the
'high-delay-percentile' and 'high-jitter-percentile' will be 'high-delay-percentile' and 'high-jitter-percentile' will be
reported. An example to illustrate the use of percentiles is reported. An example to illustrate the use of percentiles is
provided in Appendix A.3. provided in Appendix A.3.
PM source ("pm-source"): Indicates the performance monitoring
source. The data for the topology link can be based, e.g., on
BGP-LS [RFC8571]. 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]. Alternatively, the data can
be based upon the underlay technology OAM mechanisms, for example,
Generic Routing Encapsulation (GRE) tunnel OAM.
Measurement interval ("measurement-interval"): Specifies the Measurement interval ("measurement-interval"): Specifies the
performance measurement interval, in seconds. performance measurement interval, in seconds.
Start time ("start-time"): Indicates the start time of the Start time ("start-time"): Indicates the start time of the
performance measurement for link statistics. performance measurement for link statistics.
End time ("end-time"): Indicates the end time of the performance End time ("end-time"): Indicates the end time of the performance
measurement for link statistics. measurement for link statistics.
Reference time ("reference-time"): Indicates the timestamp when the PM source ("pm-source"): Indicates the performance monitoring
counters are obtained. source. The data for the topology link can be based, e.g., on
BGP-LS [RFC8571]. 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]. Alternatively, the data can
be based upon the underlay technology OAM mechanisms, for example,
Generic Routing Encapsulation (GRE) tunnel OAM.
Loss statistics: A set of one-way loss statistics attributes that Loss statistics: A set of one-way loss statistics attributes that
are used to measure end to end loss between VPN sites or between are used to measure end to end loss between VPN sites or between
any two network nodes. The exact loss value or the loss any two network nodes. The exact loss value or the loss
percentage can be reported. percentage can be reported.
Delay statistics: A set of one-way delay statistics attributes that Delay statistics: A set of one-way delay statistics attributes that
are used to measure end to end latency between VPN sites or are used to measure end to end latency between VPN sites or
between any two network nodes. The peak/min values or percentile between any two network nodes. The peak/min values or percentile
values can be reported. values can be reported.
skipping to change at page 14, line 28 skipping to change at page 14, line 28
Therefore, usually only one of the two methods is used. The Therefore, usually only one of the two methods is used. The
inter-VPN-access-interface PM is defined as an empty leaf, which inter-VPN-access-interface PM is defined as an empty leaf, which
is not bound to a specific VPN access interface. The source or is not bound to a specific VPN access interface. The source or
destination VPN access interface of the measurement can be destination VPN access interface of the measurement can be
augmented as needed. augmented as needed.
VPN underlay transport type ("vpn-underlay-transport-type"): Indicat VPN underlay transport type ("vpn-underlay-transport-type"): Indicat
es the abstract link protocol-type of a VPN, such as GRE or IP-in- es the abstract link protocol-type of a VPN, such as GRE or IP-in-
IP. The leaf refers to an identifier of the "underlay-transport" IP. The leaf refers to an identifier of the "underlay-transport"
defined in [RFC9181], which describes the transport technology to defined in [RFC9181], which describes the transport technology to
carry the traffic of the VPN service. carry the traffic of the VPN service. In the case of multiple
types of tunnels between a single pair of VPN nodes, a separate
link for each type of tunnel can be created.
For the data nodes of 'termination-point' depicted in Figure 7, the For the data nodes of 'termination-point' depicted in Figure 7, the
module defines the following minimal set of statistics: module defines the following minimal set of statistics:
Last updatd time ("last-updated"): Indicates the timestamp when the
counters were last updated.
Inbound statistics: A set of inbound statistics attributes that are Inbound statistics: A set of inbound statistics attributes that are
used to measure the inbound statistics of the termination point, used to measure the inbound statistics of the termination point,
such as received packets, received packets with errors, etc. such as received packets, received packets with errors, etc.
Outbound statistics: A set of outbound statistics attributes that Outbound statistics: A set of outbound statistics attributes that
are used to measure the outbound statistics of the termination are used to measure the outbound statistics of the termination
point, such as sent packets, packets that could not be sent due to point, such as sent packets, packets that could not be sent due to
errors, etc. errors, etc.
VPN network access ("vpn-network-access"): Lists counters of the VPN VPN network access ("vpn-network-access"): Lists counters of the VPN
network access defined in [RFC9182] or [I-D.ietf-opsawg-l2nm]. network access defined in [RFC9182] or [I-D.ietf-opsawg-l2nm].
When multiple VPN network accesses are created using the same When multiple VPN network accesses are created using the same
physical port, finer-grained metrics can be monitored. If a TP is physical port, finer-grained metrics can be monitored. If a TP is
associated with only a single VPN, this list is not required. associated with only a single VPN, this list is not required.
5. Network and VPN Service Performance Monitoring YANG Module 5. Network and VPN Service Performance Monitoring YANG Module
The "ietf-network-vpn-pm" module uses types defined in [RFC8345], The "ietf-network-vpn-pm" module uses types defined in [RFC8345],
[RFC6991], [RFC8532], and [RFC9181]. [RFC6991], [RFC8532], and [RFC9181].
<CODE BEGINS> file "ietf-network-vpn-pm@2022-05-05.yang" <CODE BEGINS> file "ietf-network-vpn-pm@2022-05-17.yang"
module ietf-network-vpn-pm { module ietf-network-vpn-pm {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-network-vpn-pm"; namespace "urn:ietf:params:xml:ns:yang:ietf-network-vpn-pm";
prefix nvp; prefix nvp;
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
reference reference
"RFC 6991: Common YANG Types"; "RFC 6991: Common YANG Types";
} }
skipping to change at page 16, line 32 skipping to change at page 16, line 37
This version of this YANG module is part of RFC XXXX This version of this YANG module is part of RFC XXXX
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
for full legal notices."; for full legal notices.";
// RFC Ed.: update the date below with the date of RFC // RFC Ed.: update the date below with the date of RFC
// publication and remove this note. // publication and remove this note.
// RFC Ed.: replace XXXX with actual RFC number and remove // RFC Ed.: replace XXXX with actual RFC number and remove
// this note. // this note.
revision 2022-05-05 { revision 2022-05-17 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Model for Network and VPN Service "RFC XXXX: A YANG Model for Network and VPN Service
Performance Monitoring"; Performance Monitoring";
} }
identity node-type { identity node-type {
description description
"Base identity for node type"; "Base identity for node type";
} }
identity pe { identity pe {
base node-type; base node-type;
description description
"Provider Edge (PE) node type. A PE is the name of the device "Provider Edge (PE) node type. A PE is the device
or set of devices at the edge of the provider network with the or set of devices at the edge of the provider network with the
functionality that is needed to interface with the customer."; functionality that is needed to interface with the customer.";
} }
identity p { identity p {
base node-type; base node-type;
description description
"Provider router node type. That is, a router "Provider router node type. That is, a router
in the core network that does not have interfaces in the core network that does not have interfaces
directly toward a customer."; directly toward a customer.";
} }
identity asbr { identity asbr {
base node-type; base node-type;
skipping to change at page 18, line 24 skipping to change at page 18, line 31
base pm-source-type; base pm-source-type;
description description
"Indicates Ethernet OAM Y.1731 as the performance monitoring "Indicates Ethernet OAM Y.1731 as the performance monitoring
metric source."; metric source.";
reference reference
"ITU-T Y.1731: Operations, administration and "ITU-T Y.1731: Operations, administration and
maintenance (OAM) functions and mechanisms maintenance (OAM) functions and mechanisms
for Ethernet-based networks"; for Ethernet-based networks";
} }
identity pm-type {
description
"Base identity for PM type.";
}
identity pm-type-network-link {
base pm-type;
description
"Indicates that the PM type is for the link in
the network topology.";
}
identity pm-type-vpn-inter-access {
base pm-type;
description
"Indicates that the PM type is for the VPN
inter-vpn-access-interface PM to monitor the
performance of logical point-to-point VPN
connections between a source and a destination
VPN access interfaces.";
}
identity pm-type-vpn-underlay-tunnel {
base pm-type;
description
"Indicates that the PM type is for the VPN
underlay-tunnel to monitor the performance of
underlay tunnels of VPNs";
}
typedef percentage { typedef percentage {
type decimal64 { type decimal64 {
fraction-digits 5; fraction-digits 5;
range "0..100"; range "0..100";
} }
description description
"Percentage."; "Percentage.";
} }
typedef percentile { typedef percentile {
skipping to change at page 19, line 4 skipping to change at page 19, line 40
if the percentile is set to 95.00 and if the percentile is set to 95.00 and
the 95th percentile one-way delay is 2 milliseconds, the 95th percentile one-way delay is 2 milliseconds,
then the 95 percent of the sample value then the 95 percent of the sample value
is less than or equal to 2 milliseconds."; is less than or equal to 2 milliseconds.";
} }
grouping entry-summary { grouping entry-summary {
description description
"Entry summary grouping used for network topology "Entry summary grouping used for network topology
augmentation."; augmentation.";
container entry-summary { container entry-summary {
config false; config false;
description description
"Container for VPN or network entry summary."; "Container for VPN or network entry summary.";
container ipv4-num { container ipv4-num {
leaf maximum-routes { leaf maximum-routes {
type uint32; type uint32;
description description
"Indicates the maximum number of IPv4 routes "Indicates the maximum number of IPv4 routes
for the VPN."; for the VPN or network.";
} }
leaf total-active-routes { leaf total-active-routes {
type uint32; type uint32;
description description
"Indicates total active IPv4 routes for the VPN."; "Indicates total active IPv4 routes
for the VPN or network.";
} }
description description
"IPv4-specific parameters."; "IPv4-specific parameters.";
} }
container ipv6-num { container ipv6-num {
leaf maximum-routes { leaf maximum-routes {
type uint32; type uint32;
description description
"Indicates the maximum number of IPv6 routes "Indicates the maximum number of IPv6 routes
for the VPN."; for the VPN or network.";
} }
leaf total-active-routes { leaf total-active-routes {
type uint32; type uint32;
description description
"Indicates total active IPv6 routes for the VPN."; "Indicates total active IPv6 routes
for the VPN or network.";
} }
description description
"IPv6-specific parameters."; "IPv6-specific parameters.";
} }
container mac-num { container mac-num {
leaf mac-num-limit { leaf mac-num-limit {
type uint32; type uint32;
description description
"Maximum number of MAC addresses."; "Indicates the maximum number of MAC entries
for the VPN or network.";
} }
leaf total-active-mac-num { leaf total-active-mac-num {
type uint32; type uint32;
description description
"Total active MAC entries for the VPN."; "Indicates the total active MAC entries
for the VPN or network.";
} }
description description
"MAC statistics."; "MAC statistics.";
} }
} }
} }
grouping link-loss-statistics { grouping link-loss-statistics {
description description
"Grouping for per link error statistics."; "Grouping for per link error statistics.";
container loss-statistics { container loss-statistics {
description description
"One-way link loss summarized information."; "One-way link loss summarized information.";
reference reference
skipping to change at page 20, line 22 skipping to change at page 21, line 13
description description
"One-way link loss summarized information."; "One-way link loss summarized information.";
reference reference
"RFC 4656: A One-way Active Measurement Protocol (OWAMP) "RFC 4656: A One-way Active Measurement Protocol (OWAMP)
ITU-T Y.1731: Operations, administration and ITU-T Y.1731: Operations, administration and
maintenance (OAM) functions and mechanisms maintenance (OAM) functions and mechanisms
for Ethernet-based networks"; for Ethernet-based networks";
leaf packet-loss-count { leaf packet-loss-count {
type yang:counter64; type yang:counter64;
description description
"Total received packet drops count."; "Total number of lost packets.";
} }
leaf loss-ratio { leaf loss-ratio {
type percentage; type percentage;
description description
"Loss ratio of the packets. Express as percentage "Loss ratio of the packets. Express as percentage
of packets lost with respect to packets sent."; of packets lost with respect to packets sent.";
} }
} }
} }
skipping to change at page 22, line 36 skipping to change at page 23, line 28
} }
leaf high-jitter-percentile { leaf high-jitter-percentile {
type yang:gauge64; type yang:gauge64;
description description
"High percentile of observed one-way jitter."; "High percentile of observed one-way jitter.";
} }
} }
} }
grouping tp-svc-telemetry { grouping tp-svc-telemetry {
leaf reference-time { leaf last-updated {
type yang:date-and-time; type yang:date-and-time;
config false; config false;
description description
"Indicates the time when the statistics are collected."; "Indicates the time when the counters were last updated.";
} }
leaf inbound-octets { leaf inbound-octets {
type yang:counter64; type yang:counter64;
description description
"The total number of octets received on the "The total number of octets received on the
interface, including framing characters."; interface, including framing characters.";
} }
leaf inbound-unicast { leaf inbound-unicast {
type yang:counter64; type yang:counter64;
description description
skipping to change at page 23, line 4 skipping to change at page 23, line 44
leaf inbound-octets { leaf inbound-octets {
type yang:counter64; type yang:counter64;
description description
"The total number of octets received on the "The total number of octets received on the
interface, including framing characters."; interface, including framing characters.";
} }
leaf inbound-unicast { leaf inbound-unicast {
type yang:counter64; type yang:counter64;
description description
"The total number of inbound unicast packets."; "The total number of inbound unicast packets.";
} }
leaf inbound-nunicast { leaf inbound-non-unicast {
type yang:counter64; type yang:counter64;
description description
"The total number of inbound non-unicast "The total number of inbound non-unicast
(i.e., broadcast or multicast) packets."; (i.e., broadcast or multicast) packets.";
} }
leaf inbound-discards { leaf inbound-discards {
type yang:counter64; type yang:counter64;
description description
"The number of inbound packets that were chosen to be "The number of inbound packets that were chosen to be
discarded even though no errors had been detected. discarded even though no errors had been detected.
skipping to change at page 23, line 44 skipping to change at page 24, line 35
type yang:counter64; type yang:counter64;
description description
"The total number of octets transmitted out of the "The total number of octets transmitted out of the
interface, including framing characters."; interface, including framing characters.";
} }
leaf outbound-unicast { leaf outbound-unicast {
type yang:counter64; type yang:counter64;
description description
"The total number of outbound unicast packets."; "The total number of outbound unicast packets.";
} }
leaf outbound-nunicast { leaf outbound-non-unicast {
type yang:counter64; type yang:counter64;
description description
"The total number of outbound non unicast "The total number of outbound non unicast
(i.e., broadcast or multicast) packets."; (i.e., broadcast or multicast) packets.";
} }
leaf outbound-discards { leaf outbound-discards {
type yang:counter64; type yang:counter64;
description description
"The number of outbound packets which were chosen "The number of outbound packets which were chosen
to be discarded even though no errors had been to be discarded even though no errors had been
skipping to change at page 26, line 43 skipping to change at page 27, line 35
} }
leaf measurement-interval { leaf measurement-interval {
type uint32 { type uint32 {
range "1..max"; range "1..max";
} }
units "seconds"; units "seconds";
default "60"; default "60";
description description
"Indicates the time interval to perform PM measurement."; "Indicates the time interval to perform PM measurement.";
} }
leaf start-time { list pm {
type yang:date-and-time; key "pm-type";
config false;
description
"The time that the current measurement started.";
}
leaf end-time {
type yang:date-and-time;
config false; config false;
description description
"The time that the current measurement ended."; "The list of PM based on PM type";
} leaf pm-type {
leaf pm-source { type identityref {
type identityref { base pm-type;
base pm-source-type; }
config false;
description
"The PM type of the measured PM attributes";
} }
config false; container pm-attributes {
description
"The OAM tool used to collect the PM data.";
}
container one-way-pm-statistics {
config false;
description
"Container for link telemetry attributes.";
uses link-loss-statistics;
uses link-delay-statistics;
uses link-jitter-statistics;
}
list one-way-pm-statistics-per-class {
key "class-id";
config false;
description
"The list of PM data based on class of service.";
leaf class-id {
type string;
description description
"The class-id is used to identify the class of service. "Container for PM attributes.";
This identifier is internal to the administration."; leaf start-time {
type yang:date-and-time;
config false;
description
"The time that the current measurement started.";
}
leaf end-time {
type yang:date-and-time;
config false;
description
"The time that the current measurement ended.";
}
leaf pm-source {
type identityref {
base pm-source-type;
}
config false;
description
"The OAM tool used to collect the PM data.";
}
container one-way-pm-statistics {
config false;
description
"Container for link telemetry attributes.";
uses link-loss-statistics;
uses link-delay-statistics;
uses link-jitter-statistics;
}
list one-way-pm-statistics-per-class {
key "class-id";
config false;
description
"The list of PM data based on class of service.";
leaf class-id {
type string;
description
"The class-id is used to identify the class of service.
This identifier is internal to the administration.";
}
uses link-loss-statistics;
uses link-delay-statistics;
uses link-jitter-statistics;
}
} }
uses link-loss-statistics;
uses link-delay-statistics;
uses link-jitter-statistics;
} }
} }
} }
augment "/nw:networks/nw:network/nt:link/pm-attributes" { augment "/nw:networks/nw:network/nt:link/pm-attributes" {
when '../../nw:network-types/nvp:service-type' { when '../../nw:network-types/nvp:service-type' {
description description
"Augments only for VPN Network topology."; "Augments only for VPN Network topology.";
} }
description description
skipping to change at page 29, line 19 skipping to change at page 30, line 29
description description
"Augments the network topology termination-point with "Augments the network topology termination-point with
VPN service performance monitoring attributes"; VPN service performance monitoring attributes";
list vpn-network-access { list vpn-network-access {
key "network-access-id"; key "network-access-id";
description description
"The list of PM based on VPN network accesses."; "The list of PM based on VPN network accesses.";
leaf network-access-id { leaf network-access-id {
type vpn-common:vpn-id; type vpn-common:vpn-id;
description description
"References to an identifier for the VPN network "The reference to an identifier for the VPN network
access, e.g. L3VPN or VPLS."; access.";
} }
uses tp-svc-telemetry; uses tp-svc-telemetry;
} }
} }
} }
<CODE ENDS> <CODE ENDS>
6. Security Considerations 6. Security Considerations
The YANG module specified in this document defines a schema for data The YANG module specified in this document defines a schema for data
skipping to change at page 34, line 22 skipping to change at page 35, line 27
[I-D.ietf-netmod-node-tags] [I-D.ietf-netmod-node-tags]
Wu, Q., Claise, B., Liu, P., Du, Z., and M. Boucadair, Wu, Q., Claise, B., Liu, P., Du, Z., and M. Boucadair,
"Data Node Tags in YANG Modules", Work in Progress, "Data Node Tags in YANG Modules", Work in Progress,
Internet-Draft, draft-ietf-netmod-node-tags-07, 29 April Internet-Draft, draft-ietf-netmod-node-tags-07, 29 April
2022, <https://www.ietf.org/archive/id/draft-ietf-netmod- 2022, <https://www.ietf.org/archive/id/draft-ietf-netmod-
node-tags-07.txt>. node-tags-07.txt>.
[I-D.ietf-opsawg-l2nm] [I-D.ietf-opsawg-l2nm]
Boucadair, M., Dios, O. G. D., Barguil, S., and L. A. Boucadair, M., Dios, O. G. D., Barguil, S., and L. A.
Munoz, "A YANG Network Data Model for Layer 2 VPNs", Work Munoz, "A YANG Network Data Model for Layer 2 VPNs", Work
in Progress, Internet-Draft, draft-ietf-opsawg-l2nm-15, 29 in Progress, Internet-Draft, draft-ietf-opsawg-l2nm-16, 13
April 2022, <https://www.ietf.org/archive/id/draft-ietf- May 2022, <https://www.ietf.org/archive/id/draft-ietf-
opsawg-l2nm-15.txt>. opsawg-l2nm-16.txt>.
[I-D.ietf-opsawg-sap] [I-D.ietf-opsawg-sap]
Boucadair, M., Dios, O. G. D., Barguil, S., Wu, Q., and V. Boucadair, M., Dios, O. G. D., Barguil, S., Wu, Q., and V.
Lopez, "A Network YANG Model for Service Attachment Points Lopez, "A Network YANG Model for Service Attachment Points
(SAPs)", Work in Progress, Internet-Draft, draft-ietf- (SAPs)", Work in Progress, Internet-Draft, draft-ietf-
opsawg-sap-04, 11 April 2022, opsawg-sap-04, 11 April 2022,
<https://www.ietf.org/archive/id/draft-ietf-opsawg-sap- <https://www.ietf.org/archive/id/draft-ietf-opsawg-sap-
04.txt>. 04.txt>.
[RFC4026] Andersson, L. and T. Madsen, "Provider Provisioned Virtual [RFC4026] Andersson, L. and T. Madsen, "Provider Provisioned Virtual
skipping to change at page 35, line 42 skipping to change at page 36, line 46
Appendix A. Illustrative Examples Appendix A. Illustrative Examples
A.1. VPN Performance Subscription Example A.1. VPN Performance Subscription Example
The example shown in Figure 8 illustrates how a client subscribes to The example shown in Figure 8 illustrates how a client subscribes to
the performance monitoring information between nodes ('node-id') A the performance monitoring information between nodes ('node-id') A
and B in the L3 network topology. The performance monitoring and B in the L3 network topology. The performance monitoring
parameter that the client is interested in is end-to-end loss. parameter that the client is interested in is end-to-end loss.
POST /restconf/operations POST /restconf/operations
/ietf-subscribed-notifications:establish-subscription /ietf-subscribed-notifications:establish-subscription
{ {
"ietf-subscribed-notifications:input":{ "ietf-subscribed-notifications:input": {
"stream-subtree-filter":{ "stream-subtree-filter": {
"ietf-network:networks":{ "ietf-network:networks": {
"network":{ "network": {
"network-id":"foo:l3-network", "network-id": "foo:l3-network",
"ietf-network-vpn-pm:service-type":{ "ietf-network-vpn-pm:service-type": {
"ietf-vpn-common:l3vpn":{} "ietf-vpn-common:l3vpn": {}
},
}, "node": [
"node":[ {
{ "node-id": "A",
"node-id":"A", "ietf-network-vpn-pm:pm-attributes": {
"ietf-network-vpn-pm:pm-attributes":{ "node-type": "PE"
"node-type":"PE" },
}, "termination-point": {
"termination-point":{ "tp-id": "1-0-1"
"tp-id":"1-0-1" }
} },
}, {
"node-id": "B",
"ietf-network-vpn-pm:pm-attributes": {
"node-type": "PE"
},
"termination-point": {
"tp-id": "2-0-1"
}
}
],
"ietf-network-topology:link": {
"link-id": "A-B",
"source": {
"source-node": "A"
},
"destination": {
"dest-node": "B"
},
"ietf-network-vpn-pm:pm-attributes": {
"pm": [
{ {
"node-id":"B", "pm-type": "pm-type-vpn-underlay-tunnel",
"ietf-network-vpn-pm:pm-attributes":{ "pm-attributes": {
"node-type":"PE" "one-way-pm-statistics": {
}, "loss-statistics": {
"termination-point":{ "packet-loss-count": {}
"tp-id":"2-0-1"
}
}
],
"ietf-network-topology:link":{
"link-id":"A-B",
"source":{
"source-node":"A"
},
"destination":{
"dest-node":"B"
},
"ietf-network-vpn-pm:pm-attributes":{
"one-way-pm-statistics":{
"loss-statistics":{
"packet-loss-count":{}
} }
}, }
"vpn-underlay-transport-type":"ietf-vpn-common:gre" }
} }
} ],
"vpn-pm-type": {
"underlay-tunnel": {
"vpn-underlay-transport-type": "ietf-vpn-common:gre"
}
}
}
} }
} }
}
}, },
"ietf-yang-push:periodic":{ "ietf-yang-push:periodic": {
"ietf-yang-push:period":"500" "ietf-yang-push:period": "500"
} }
} }
} }
Figure 8: Pub/Sub Retrieval Figure 8: Pub/Sub Retrieval
A.2. Example of VPN Performance Snapshot A.2. Example of VPN Performance Snapshot
This example, depicted in Figure 9, illustrates an VPN PM instance This example, depicted in Figure 9, illustrates an VPN PM instance
example in which a client uses RESTCONF [RFC8040] to fetch the example in which a client uses RESTCONF [RFC8040] to fetch the
performance data of the link and TP belonged to "VPN1". performance data of the link and TP belonged to "VPN1".
{ {
"ietf-network:networks": { "ietf-network:networks": {
"network": { "network": {
"network-id": "foo:vpn1", "network-id": "foo:vpn1",
"node": [ "node": [
{ {
"node-id": "A", "node-id": "A",
"ietf-network-vpn-pm:pm-attributes": { "ietf-network-vpn-pm:pm-attributes": {
"node-type": "PE" "node-type": "PE"
}, },
"termination-point": { "termination-point": {
"tp-id": "1-0-1", "tp-id": "1-0-1",
"ietf-network-vpn-pm:pm-statistics": { "ietf-network-vpn-pm:pm-statistics": {
"inbound-octets": "100", "inbound-octets": "100",
"outbound-octets": "150" "outbound-octets": "150"
} }
} }
}, },
{
"node-id": "B",
"ietf-network-vpn-pm:pm-attributes": {
"node-type": "PE"
},
"termination-point": {
"tp-id": "2-0-1",
"ietf-network-vpn-pm:pm-statistics": {
"inbound-octets": "150",
"outbound-octets": "100"
}
}
}
],
"ietf-network-topology:link": {
"link-id": "A-B",
"source": {
"source-node": "A"
},
"destination": {
"dest-node": "B"
},
"ietf-network-pm:pm-attributes": {
"pm": [
{ {
"node-id": "B", "pm-type": "pm-type-vpn-underlay-tunnel",
"ietf-network-vpn-pm:pm-attributes": { "pm-attributes": {
"node-type": "PE" "one-way-pm-statistics": {
}, "loss-statistics": {
"termination-point": { "packet-loss-count": "120"
"tp-id": "2-0-1", }
"ietf-network-vpn-pm:pm-statistics": {
"inbound-octets": "150",
"outbound-octets": "100"
} }
} }
} }
], ],
"ietf-network-topology:link": { "vpn-pm-type": {
"link-id": "A-B", "underlay-tunnel": {
"source": { "source-node": "A" },
"destination": { "dest-node": "B" },
"ietf-network-pm:pm-attributes": {
"one-way-pm-statistics": {
"loss-statistics": { "packet-loss-count": "120" }
},
"vpn-underlay-transport-type": "ietf-vpn-common:gre" "vpn-underlay-transport-type": "ietf-vpn-common:gre"
} }
} }
} }
} }
}
}
} }
Figure 9 Figure 9
A.3. Example of Percentile Monitoring A.3. Example of Percentile Monitoring
The following shows an example of a percentile measurement for a VPN The following shows an example of a percentile measurement for a VPN
link. link.
{ {
skipping to change at page 39, line 24 skipping to change at page 40, line 19
"source": { "source": {
"source-node": "vpn-node1" "source-node": "vpn-node1"
}, },
"destination": { "destination": {
"dest-node": "vpn-node3" "dest-node": "vpn-node3"
}, },
"ietf-network-vpn-pm:pm-attributes": { "ietf-network-vpn-pm:pm-attributes": {
"low-percentile": "20.00", "low-percentile": "20.00",
"intermediate-percentile": "50.00", "intermediate-percentile": "50.00",
"high-percentile": "90.00", "high-percentile": "90.00",
"one-way-pm-statistics": { "pm": [
"delay-statistics": { {
"unit-value": "lime:milliseconds", "pm-type": "pm-type-vpn-inter-access",
"min-delay-value": "43", "pm-attributes": {
"max-delay-value": "99", "one-way-pm-statistics": {
"low-delay-percentile": "64", "delay-statistics": {
"intermediate-delay-percentile": "77", "unit-value": "lime:milliseconds",
"high-delay-percentile": "98" "min-delay-value": "43",
"max-delay-value": "99",
"low-delay-percentile": "64",
"intermediate-delay-percentile": "77",
"high-delay-percentile": "98"
}
}
}
} }
}, ],
"vpn-pm-type": { "vpn-pm-type": {
"inter-vpn-access-interface": [null] "inter-vpn-access-interface": {
"inter-vpn-access-interface": [null]
}
} }
} }
} }
] ]
} }
Authors' Addresses Authors' Addresses
Bo Wu (editor) Bo Wu (editor)
Huawei Huawei
101 Software Avenue, Yuhua District 101 Software Avenue, Yuhua District
Nanjing Nanjing
Jiangsu, 210012 Jiangsu, 210012
China China
Email: lana.wubo@huawei.com Email: lana.wubo@huawei.com
Qin Wu (editor) Qin Wu (editor)
Huawei Huawei
101 Software Avenue, Yuhua District 101 Software Avenue, Yuhua District
Nanjing Nanjing
Jiangsu, 210012 Jiangsu, 210012
China China
Email: bill.wu@huawei.com Email: bill.wu@huawei.com
Mohamed Boucadair (editor) Mohamed Boucadair (editor)
Orange Orange
 End of changes. 64 change blocks. 
265 lines changed or deleted 358 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/