< draft-ietf-lime-yang-connectionless-oam-methods-11.txt   draft-ietf-lime-yang-connectionless-oam-methods-12.txt >
Network Working Group D. Kumar Network Working Group D. Kumar
Internet-Draft Cisco Internet-Draft Cisco
Intended status: Standards Track M. Wang Intended status: Standards Track M. Wang
Expires: April 27, 2018 Q. Wu Expires: May 1, 2018 Q. Wu, Ed.
Huawei Huawei
R. Rahman R. Rahman
S. Raghavan S. Raghavan
Cisco Cisco
October 24, 2017 October 28, 2017
Retrieval Methods YANG Data Model for Connectionless Operations, Retrieval Methods YANG Data Model for Connectionless Operations,
Administration, and Maintenance(OAM) protocols Administration, and Maintenance(OAM) protocols
draft-ietf-lime-yang-connectionless-oam-methods-11 draft-ietf-lime-yang-connectionless-oam-methods-12
Abstract Abstract
This document presents a retrieval method YANG Data model for This document presents a retrieval method YANG Data model for
connectionless OAM protocols. It provides technology-independent RPC connectionless OAM protocols. It provides technology-independent RPC
operations for connectionless OAM protocols. The retrieval methods operations for connectionless OAM protocols. The retrieval methods
model presented here can be extended to include technology specific model presented here can be extended to include technology specific
details. This is leading to uniformity between OAM protocols and details. This is leading to uniformity between OAM protocols and
support both nested OAM workflows (i.e., performing OAM functions at support both nested OAM workflows (i.e., performing OAM functions at
different levels through a unified interface) and interacting OAM different levels through a unified interface) and interacting OAM
skipping to change at page 1, line 44 skipping to change at page 1, line 44
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 April 27, 2018. This Internet-Draft will expire on May 1, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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 Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions used in this document . . . . . . . . . . . . . . 3 2. Conventions used in this document . . . . . . . . . . . . . . 3
2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4
3. Overview of the Connectionless OAM retrieval methods Model . 4 3. Overview of the Connectionless OAM retrieval methods Model . 5
3.1. RPC operation definitions . . . . . . . . . . . . . . . . 5 3.1. RPC operation definitions . . . . . . . . . . . . . . . . 5
3.2. OAM Retrieval Methods Hierarchy . . . . . . . . . . . . . 8 3.2. OAM Retrieval Methods Hierarchy . . . . . . . . . . . . . 8
4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 15 4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 15
5. Security Considerations . . . . . . . . . . . . . . . . . . . 21 5. Security Considerations . . . . . . . . . . . . . . . . . . . 23
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 7. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 24
7.1. Normative References . . . . . . . . . . . . . . . . . . 23 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.2. Informative References . . . . . . . . . . . . . . . . . 24 8.1. Normative References . . . . . . . . . . . . . . . . . . 24
8.2. Informative References . . . . . . . . . . . . . . . . . 25
Appendix A. Appdendix A.1 Extending Connectionless OAM Method Appendix A. Appdendix A.1 Extending Connectionless OAM Method
Module Example . . . . . . . . . . . . . . . . . . . 24 Module Example . . . . . . . . . . . . . . . . . . . 26
Appendix B. Appendix A.2 Example of new retrieval procedures Appendix B. Appendix A.2 Example of new retrieval procedures
Model . . . . . . . . . . . . . . . . . . . . . . . 25 Model . . . . . . . . . . . . . . . . . . . . . . . 27
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37
1. Introduction 1. Introduction
Operations, Administration, and Maintenance (OAM) are important Operations, Administration, and Maintenance (OAM) are important
networking functions that allow operators to: networking functions that allow operators to:
1. Monitor reachability of destinations (Reachability Verification, 1. Monitor reachability of destinations (Reachability Verification,
Continuity Check). Continuity Check).
2. Troubleshoot failures (Fault verification and localization). 2. Troubleshoot failures (Fault verification and localization).
3. Monitor Performance 3. Monitor Performance
An overview of OAM tools is presented at [RFC7276]. An overview of OAM tools is presented at [RFC7276].
Ping and Traceroute [RFC792], [RFC4443] and BFD [RFC5880] are well- Ping and Traceroute [RFC792], [RFC4443] and BFD [RFC5880] are well-
known fault verification and isolation tools, respectively, for IP known fault verification and isolation tools, respectively, for IP
networks. Over the years, different technologies have developed networks. Over the years, different technologies have developed
similar tools for similar purposes. similar tools for similar purposes.
In this document, we present an on-demand retrieval method YANG Data In this document, we present an on-demand retrieval method YANG Data
model for connectionless OAM protocols. This model provides model for OAM protocols that use connectionless communication. This
technology-independent RPC operations for connectionless OAM model provides technology-independent RPC operations for OAM
protocols. It is separated from the generic YANG model for protocols that use connectionless communication(i.e., connectionless
connectionless OAM [I-D.ietf-lime-yang-connectionless-oam] and can oam). It is separated from the generic YANG model for connectionless
avoid mixing the models for the retrieved-data from the retrieval OAM [I-D.ietf-lime-yang-connectionless-oam] and can avoid mixing the
procedures. It is expected that retrieval procedures would evolve models for the retrieved-data from the retrieval procedures. It is
faster than the data model [I-D.ietf-lime-yang-connectionless-oam] expected that retrieval procedures would evolve faster than the data
and will allow new procedures to be defined for retrieval of the same model [I-D.ietf-lime-yang-connectionless-oam] and will allow new
data defined by the base data model. procedures to be defined for retrieval of the same data defined by
the generic YANG data model for connectionless OAM.
2. Conventions used in this document 2. Conventions used in this document
The following terms are defined in [RFC6241] and are not redefined The following terms are defined in [RFC6241] and are not redefined
here: here:
o client o client
o configuration data o configuration data
skipping to change at page 4, line 49 skipping to change at page 5, line 12
<type> is the name of the type for leafs and leaf-lists <type> is the name of the type for leafs and leaf-lists
3. Overview of the Connectionless OAM retrieval methods Model 3. Overview of the Connectionless OAM retrieval methods Model
In this document, we present an on-demand retrieval method YANG Data In this document, we present an on-demand retrieval method YANG Data
model for connectionless OAM protocols. This model provides model for connectionless OAM protocols. This model provides
technology-independent retrieval procedures (RPC operations) for technology-independent retrieval procedures (RPC operations) for
connectionless OAM protocols. It provides a flexible way to retrieve connectionless OAM protocols. It provides a flexible way to retrieve
the data which defined by the "ietf-connectionless-oam.yang" the data which defined by the "ietf-connectionless-oam.yang"
[I-D.ietf-lime-yang-connectionless-oam]. module[I-D.ietf-lime-yang-connectionless-oam].
3.1. RPC operation definitions 3.1. RPC operation definitions
The RPC model facilitates issuing commands to a NETCONF server (in The RPC model facilitates issuing commands to a NETCONF server (in
this case to the device that need to execute the OAM command) and this case to the device that need to execute the OAM command) and
obtaining a response. obtaining a response.
Under 'connectionless-oam-methods' module, we summarize common OAM Under 'connectionless-oam-methods' module, we summarize common OAM
functions and define two generic RPC operations: 'continuity-check' functions and define two generic RPC operations: 'continuity-check'
and 'path-discovery'. In practice, these RPC operations are and 'path-discovery'. In practice, these RPC operations are
skipping to change at page 5, line 28 skipping to change at page 5, line 37
[RFC792] [RFC4443]. [RFC792] [RFC4443].
Note that the RPC operation presented in this document is the base Note that the RPC operation presented in this document is the base
building block, which is used to derive a model for a technology- building block, which is used to derive a model for a technology-
specific OAM (i.e., ICMP ping [RFC792] [RFC4443], LSP ping specific OAM (i.e., ICMP ping [RFC792] [RFC4443], LSP ping
[RFC8029]), the base building block should be extended with [RFC8029]), the base building block should be extended with
corresponding technology specific parameters. To facilitate this for corresponding technology specific parameters. To facilitate this for
future enhancements to data retrieval methods, the RPCs are captured future enhancements to data retrieval methods, the RPCs are captured
under a separate module. under a separate module.
The generic 'path-discovery-data' and 'continuity-check-data' The generic 'tp-address' grouping is used as data input from
groupings are used as data outputs from different RPCs described in different RPCs described in this document. The generic 'path-
this document. Similar methods including other RPCs can retrieve the discovery-data' and 'continuity-check-data' groupings defined by the
data using the same data model. "ietf-connectionless-oam.yang" module
[I-D.ietf-lime-yang-connectionless-oam]are used as data outputs from
different RPCs described in this document. Similar methods including
other RPCs can retrieve the data using the same data model (i.e., the
"ietf-connectionless-oam.yang" module ).
rpc continuity-check { rpc continuity-check {
if-feature cl-oam:continuity-check; if-feature cl-oam:continuity-check;
description description
"Continuity-check RPC operation as per RFC7276."; "Continuity-check RPC operation as per RFC7276.";
input { input {
uses rpc-input-parameters; uses rpc-input-parameters;
.... ....
} }
output { output {
container error-code { list status-code-list {
key "response-index";
leaf response-index {
type uint32;
description
"Response index.";
}
leaf protocol-id { leaf protocol-id {
type identityref { type identityref {
base protocol-id; base protocol-id;
} }
mandatory true; mandatory true;
description description
"Protocol used in CC. This could be a standard "Protocol used in CC. ";
protocol (e.g., TCP/IP protocols, MPLS etc.,)
or a proprietary protocol as identified by
this field.";
} }
leaf protocol-id-meta-data { leaf protocol-id-meta-data {
type uint64; type identityref {
description base protocol-id-meta-data;
"An optional meta-data related to the protocol ID. }
For e.g., this could be the Internet Protocol number description
for standard Internet Protocols for help in protocol "An optional meta-data related to the protocol ID.";
processing.";
} }
leaf status-code { leaf status-code {
type identityref{ type identityref{
base status-code; base status-code;
} }
mandatory true; mandatory true;
description description
"Error code for CC."; "Status code for CC.";
} }
leaf status-sub-code { leaf status-sub-code {
type identityref{ type identityref{
base status-sub-code; base status-sub-code;
} }
mandatory true; mandatory true;
description description
"Sub code for CC."; "Status Sub code for CC.";
} }
description description
"Error code and Sub Code for CC."; "List of Status Code and Status Sub Code for CC.";
} }
uses cl-oam:continuity-check-data; uses cl-oam:continuity-check-data;
} }
} }
rpc path-discovery { rpc path-discovery {
description description
"path discovery RPC operation as per RFC7276."; "path discovery RPC operation as per RFC7276.";
input { input {
uses rpc-input-parameters; uses rpc-input-parameters;
skipping to change at page 7, line 12 skipping to change at page 7, line 27
mandatory true; mandatory true;
description description
"Response index."; "Response index.";
} }
leaf protocol-id { leaf protocol-id {
type identityref { type identityref {
base protocol-id; base protocol-id;
} }
mandatory true; mandatory true;
description description
"Protocol used in PD. This could be a standard "Protocol used in PD. ";
protocol (e.g., TCP/IP protocols, MPLS etc.,)
or a proprietary protocol as identified by
this field.";
} }
leaf protocol-id-meta-data { leaf protocol-id-meta-data {
type uint64; type identityref {
description base protocol-id-meta-data;
"An optional meta-data related to the protocol ID. }
For e.g., this could be the Internet Protocol number description
for standard Internet Protocols for help in protocol "An optional meta-data related to the protocol ID.";
processing.";
} }
leaf status-code { leaf status-code {
type identityref{ type identityref{
base status-code; base status-code;
} }
mandatory true; mandatory true;
description description
"Error code for Path Discovery. "; "Error code for Path Discovery. ";
} }
leaf status-sub-code { leaf status-sub-code {
skipping to change at page 8, line 48 skipping to change at page 9, line 6
| | | | +--:(mpls-mldp) | | | | +--:(mpls-mldp)
| | | | +---w (root-address)? | | | | +---w (root-address)?
| | | | +--:(ip-address) | | | | +--:(ip-address)
| | | | | +---w source-address? inet:ip-address | | | | | +---w source-address? inet:ip-address
| | | | | +---w group-ip-address? inet:ip-address | | | | | +---w group-ip-address? inet:ip-address
| | | | +--:(vpn) | | | | +--:(vpn)
| | | | | +---w as-number? inet:as-number | | | | | +---w as-number? inet:as-number
| | | | +--:(global-id) | | | | +--:(global-id)
| | | | +---w lsp-id? string | | | | +---w lsp-id? string
| | | +---w system-info | | | +---w system-info
| | | +---w system-id? rt:router-id | | | +---w router-id? rt:router-id
| | +---w source-interface if:interface-ref | | +---w source-interface if:interface-ref
| | +---w outbound-interface if:interface-ref | | +---w outbound-interface if:interface-ref
| | +---w vrf? cl-oam:routing-instance-ref | | +---w vrf? cl-oam:routing-instance-ref
| | +---w session-type? enumeration | | +---w session-type? enumeration
| | +---w count? uint32 | | +---w count? uint32
| | +---w ttl? uint8 | | +---w ttl? uint8
| | +---w packet-size? uint32 | | +---w packet-size? uint32
| +--ro output | +--ro output
| +--ro error-code | +--ro status-code-list* [response-index]
| | +--ro response-index uint32
| | +--ro protocol-id identityref | | +--ro protocol-id identityref
| | +--ro protocol-id-meta-data? uint64 | | +--ro protocol-id-meta-data? identityref
| | +--ro status-code identityref | | +--ro status-code identityref
| | +--ro status-sub-code identityref | | +--ro status-sub-code identityref
| +--ro src-test-point | +--ro src-test-point
| | +--ro ni? routing-instance-ref | | +--ro ni? routing-instance-ref
| | +--ro tp-location-type identityref | | +--ro tp-location-type identityref
| | +--ro mac-address | | +--ro mac-address
| | | +--ro mac-address yang:mac-address | | | +--ro mac-address yang:mac-address
| | +--ro ipv4-address | | +--ro ipv4-address
| | | +--ro ipv4-address inet:ipv4-address | | | +--ro ipv4-address inet:ipv4-address
| | +--ro ipv6-address | | +--ro ipv6-address
skipping to change at page 9, line 48 skipping to change at page 10, line 8
| | | +--:(mpls-mldp) | | | +--:(mpls-mldp)
| | | +--ro (root-address)? | | | +--ro (root-address)?
| | | +--:(ip-address) | | | +--:(ip-address)
| | | | +--ro source-address? inet:ip-address | | | | +--ro source-address? inet:ip-address
| | | | +--ro group-ip-address? inet:ip-address | | | | +--ro group-ip-address? inet:ip-address
| | | +--:(vpn) | | | +--:(vpn)
| | | | +--ro as-number? inet:as-number | | | | +--ro as-number? inet:as-number
| | | +--:(global-id) | | | +--:(global-id)
| | | +--ro lsp-id? string | | | +--ro lsp-id? string
| | +--ro system-info | | +--ro system-info
| | | +--ro system-id? rt:router-id | | | +--ro router-id? rt:router-id
| | +--ro egress-intf-name? if:interface-ref | | +--ro egress-intf-name? if:interface-ref
| +--ro dest-test-point | +--ro dest-test-point
| | +--ro ni? routing-instance-ref | | +--ro ni? routing-instance-ref
| | +--ro tp-location-type identityref | | +--ro tp-location-type identityref
| | +--ro mac-address | | +--ro mac-address
| | | +--ro mac-address yang:mac-address | | | +--ro mac-address yang:mac-address
| | +--ro ipv4-address | | +--ro ipv4-address
| | | +--ro ipv4-address inet:ipv4-address | | | +--ro ipv4-address inet:ipv4-address
| | +--ro ipv6-address | | +--ro ipv6-address
| | | +--ro ipv6-address inet:ipv6-address | | | +--ro ipv6-address inet:ipv6-address
skipping to change at page 10, line 37 skipping to change at page 10, line 45
| | | +--:(mpls-mldp) | | | +--:(mpls-mldp)
| | | +--ro (root-address)? | | | +--ro (root-address)?
| | | +--:(ip-address) | | | +--:(ip-address)
| | | | +--ro source-address? inet:ip-address | | | | +--ro source-address? inet:ip-address
| | | | +--ro group-ip-address? inet:ip-address | | | | +--ro group-ip-address? inet:ip-address
| | | +--:(vpn) | | | +--:(vpn)
| | | | +--ro as-number? inet:as-number | | | | +--ro as-number? inet:as-number
| | | +--:(global-id) | | | +--:(global-id)
| | | +--ro lsp-id? string | | | +--ro lsp-id? string
| | +--ro system-info | | +--ro system-info
| | | +--ro system-id? rt:router-id | | | +--ro router-id? rt:router-id
| | +--ro ingress-intf-name? if:interface-ref | | +--ro ingress-intf-name? if:interface-ref
| +--ro sequence-number? uint64 | +--ro sequence-number? uint64
| +--ro hop-cnt? uint8 | +--ro hop-cnt? uint8
| +--ro session-packet-statistics | +--ro session-packet-statistics
| | +--ro rx-packet-count? uint32 | | +--ro rx-packet-count? uint32
| | +--ro tx-packet-count? uint32 | | +--ro tx-packet-count? uint32
| | +--ro rx-bad-packet? uint32 | | +--ro rx-bad-packet? uint32
| | +--ro tx-packet-failed? uint32 | | +--ro tx-packet-failed? uint32
| +--ro session-error-statistics | +--ro session-error-statistics
| | +--ro packet-loss-count? uint32 | | +--ro packet-loss-count? uint32
| | +--ro loss-ratio? uint8 | | +--ro loss-ratio? percentage
| | +--ro packet-reorder-count? uint32 | | +--ro packet-reorder-count? uint32
| | +--ro packets-out-of-seq-count? uint32 | | +--ro packets-out-of-seq-count? uint32
| | +--ro packets-dup-count? uint32 | | +--ro packets-dup-count? uint32
| +--ro session-delay-statistics | +--ro session-delay-statistics
| | +--ro time-interval-value? identityref | | +--ro time-unit-value? identityref
| | +--ro min-delay-value? uint32 | | +--ro min-delay-value? uint32
| | +--ro max-delay-value? uint32 | | +--ro max-delay-value? uint32
| | +--ro average-delay-value? uint32 | | +--ro average-delay-value? uint32
| +--ro session-jitter-statistics | +--ro session-jitter-statistics
| +--ro interval-value? identityref | +--ro unit-value? identityref
| +--ro min-jitter-value? uint32 | +--ro min-jitter-value? uint32
| +--ro max-jitter-value? uint32 | +--ro max-jitter-value? uint32
| +--ro average-jitter-value? uint32 | +--ro average-jitter-value? uint32
+---x path-discovery {cl-oam:path-discovery}? +---x path-discovery {cl-oam:path-discovery}?
+---w input +---w input
| +---w destination-tp | +---w destination-tp
| | +---w tp-location-type identityref | | +---w tp-location-type identityref
| | +---w mac-address | | +---w mac-address
| | | +---w mac-address yang:mac-address | | | +---w mac-address yang:mac-address
| | +---w ipv4-address | | +---w ipv4-address
skipping to change at page 11, line 50 skipping to change at page 12, line 10
| | | +--:(mpls-mldp) | | | +--:(mpls-mldp)
| | | +---w (root-address)? | | | +---w (root-address)?
| | | +--:(ip-address) | | | +--:(ip-address)
| | | | +---w source-address? inet:ip-address | | | | +---w source-address? inet:ip-address
| | | | +---w group-ip-address? inet:ip-address | | | | +---w group-ip-address? inet:ip-address
| | | +--:(vpn) | | | +--:(vpn)
| | | | +---w as-number? inet:as-number | | | | +---w as-number? inet:as-number
| | | +--:(global-id) | | | +--:(global-id)
| | | +---w lsp-id? string | | | +---w lsp-id? string
| | +---w system-info | | +---w system-info
| | +---w system-id? rt:router-id | | +---w router-id? rt:router-id
| +---w source-interface if:interface-ref | +---w source-interface if:interface-ref
| +---w outbound-interface if:interface-ref | +---w outbound-interface if:interface-ref
| +---w vrf? cl-oam:routing-instance-ref | +---w vrf? cl-oam:routing-instance-ref
| +---w session-type? enumeration | +---w session-type? enumeration
| +---w max-ttl? uint8 | +---w max-ttl? uint8
+--ro output +--ro output
+--ro response-list* [response-index] +--ro response-list* [response-index]
| +--ro response-index uint32 | +--ro response-index uint32
| +--ro protocol-id identityref | +--ro protocol-id identityref
| +--ro protocol-id-meta-data? uint64 | +--ro protocol-id-meta-data? identityref
| +--ro status-code identityref | +--ro status-code identityref
| +--ro status-sub-code identityref | +--ro status-sub-code identityref
+--ro src-test-point +--ro src-test-point
| +--ro ni? routing-instance-ref | +--ro ni? routing-instance-ref
| +--ro tp-location-type identityref | +--ro tp-location-type identityref
| +--ro mac-address | +--ro mac-address
| | +--ro mac-address yang:mac-address | | +--ro mac-address yang:mac-address
| +--ro ipv4-address | +--ro ipv4-address
| | +--ro ipv4-address inet:ipv4-address | | +--ro ipv4-address inet:ipv4-address
| +--ro ipv6-address | +--ro ipv6-address
skipping to change at page 12, line 50 skipping to change at page 13, line 10
| | +--:(mpls-mldp) | | +--:(mpls-mldp)
| | +--ro (root-address)? | | +--ro (root-address)?
| | +--:(ip-address) | | +--:(ip-address)
| | | +--ro source-address? inet:ip-address | | | +--ro source-address? inet:ip-address
| | | +--ro group-ip-address? inet:ip-address | | | +--ro group-ip-address? inet:ip-address
| | +--:(vpn) | | +--:(vpn)
| | | +--ro as-number? inet:as-number | | | +--ro as-number? inet:as-number
| | +--:(global-id) | | +--:(global-id)
| | +--ro lsp-id? string | | +--ro lsp-id? string
| +--ro system-info | +--ro system-info
| +--ro system-id? rt:router-id | +--ro router-id? rt:router-id
+--ro dest-test-point +--ro dest-test-point
| +--ro ni? routing-instance-ref | +--ro ni? routing-instance-ref
| +--ro tp-location-type identityref | +--ro tp-location-type identityref
| +--ro mac-address | +--ro mac-address
| | +--ro mac-address yang:mac-address | | +--ro mac-address yang:mac-address
| +--ro ipv4-address | +--ro ipv4-address
| | +--ro ipv4-address inet:ipv4-address | | +--ro ipv4-address inet:ipv4-address
| +--ro ipv6-address | +--ro ipv6-address
| | +--ro ipv6-address inet:ipv6-address | | +--ro ipv6-address inet:ipv6-address
| +--ro tp-attribute | +--ro tp-attribute
skipping to change at page 13, line 38 skipping to change at page 13, line 46
| | +--:(mpls-mldp) | | +--:(mpls-mldp)
| | +--ro (root-address)? | | +--ro (root-address)?
| | +--:(ip-address) | | +--:(ip-address)
| | | +--ro source-address? inet:ip-address | | | +--ro source-address? inet:ip-address
| | | +--ro group-ip-address? inet:ip-address | | | +--ro group-ip-address? inet:ip-address
| | +--:(vpn) | | +--:(vpn)
| | | +--ro as-number? inet:as-number | | | +--ro as-number? inet:as-number
| | +--:(global-id) | | +--:(global-id)
| | +--ro lsp-id? string | | +--ro lsp-id? string
| +--ro system-info | +--ro system-info
| +--ro system-id? rt:router-id | +--ro router-id? rt:router-id
+--ro sequence-number? uint64 +--ro sequence-number? uint64
+--ro hop-cnt? uint8 +--ro hop-cnt? uint8
+--ro session-packet-statistics +--ro session-packet-statistics
| +--ro rx-packet-count? uint32 | +--ro rx-packet-count? uint32
| +--ro tx-packet-count? uint32 | +--ro tx-packet-count? uint32
| +--ro rx-bad-packet? uint32 | +--ro rx-bad-packet? uint32
| +--ro tx-packet-failed? uint32 | +--ro tx-packet-failed? uint32
+--ro session-error-statistics +--ro session-error-statistics
| +--ro packet-loss-count? uint32 | +--ro packet-loss-count? uint32
| +--ro loss-ratio? uint8 | +--ro loss-ratio? percentage
| +--ro packet-reorder-count? uint32 | +--ro packet-reorder-count? uint32
| +--ro packets-out-of-seq-count? uint32 | +--ro packets-out-of-seq-count? uint32
| +--ro packets-dup-count? uint32 | +--ro packets-dup-count? uint32
+--ro session-delay-statistics +--ro session-delay-statistics
| +--ro time-interval-value? identityref | +--ro time-unit-value? identityref
| +--ro min-delay-value? uint32 | +--ro min-delay-value? uint32
| +--ro max-delay-value? uint32 | +--ro max-delay-value? uint32
| +--ro average-delay-value? uint32 | +--ro average-delay-value? uint32
+--ro session-jitter-statistics +--ro session-jitter-statistics
| +--ro interval-value? identityref | +--ro unit-value? identityref
| +--ro min-jitter-value? uint32 | +--ro min-jitter-value? uint32
| +--ro max-jitter-value? uint32 | +--ro max-jitter-value? uint32
| +--ro average-jitter-value? uint32 | +--ro average-jitter-value? uint32
+--ro path-verification +--ro path-verification
| +--ro flow-info? string | +--ro flow-info? string
| +--ro session-path-verification-statistics | +--ro session-path-verification-statistics
| +--ro verified-count? uint32 | +--ro verified-count? uint32
| +--ro failed-count? uint32 | +--ro failed-count? uint32
+--ro path-trace-info +--ro path-trace-info
+--ro path-trace-info-list* [index] +--ro path-trace-info-list* [index]
skipping to change at page 15, line 8 skipping to change at page 15, line 16
| +--:(mpls-mldp) | +--:(mpls-mldp)
| +--ro (root-address)? | +--ro (root-address)?
| +--:(ip-address) | +--:(ip-address)
| | +--ro source-address? inet:ip-address | | +--ro source-address? inet:ip-address
| | +--ro group-ip-address? inet:ip-address | | +--ro group-ip-address? inet:ip-address
| +--:(vpn) | +--:(vpn)
| | +--ro as-number? inet:as-number | | +--ro as-number? inet:as-number
| +--:(global-id) | +--:(global-id)
| +--ro lsp-id? string | +--ro lsp-id? string
+--ro system-info +--ro system-info
| +--ro system-id? rt:router-id | +--ro router-id? rt:router-id
+--ro timestamp-type? identityref +--ro timestamp-type? identityref
+--ro timestamp-64bit +--ro timestamp-64bit
| +--ro timestamp-sec? uint32 | +--ro timestamp-sec? uint32
| +--ro timestamp-nanosec? uint32 | +--ro timestamp-nanosec? uint32
+--ro timestamp-80bit {ptp-long-format}? +--ro timestamp-80bit {ptp-long-format}?
| +--ro timestamp-sec? uint64 | +--ro timestamp-sec? uint64
| +--ro timestamp-nanosec? uint32 | +--ro timestamp-nanosec? uint32
+--ro ntp-timestamp-32bit {ntp-short-format}? +--ro ntp-timestamp-32bit {ntp-short-format}?
| +--ro timestamp-sec? uint16 | +--ro timestamp-sec? uint16
| +--ro timestamp-nanosec? uint16 | +--ro timestamp-nanosec? uint16
+--ro icmp-timestamp-32bit {icmp-timestamp}? +--ro icmp-timestamp-32bit {icmp-timestamp}?
skipping to change at page 16, line 16 skipping to change at page 16, line 25
It is assumed that each protocol maps It is assumed that each protocol maps
corresponding abstracts to its native format. corresponding abstracts to its native format.
Each protocol may extend the YANG model defined Each protocol may extend the YANG model defined
here to include protocol specific extensions"; here to include protocol specific extensions";
revision 2017-09-06{ revision 2017-09-06{
description description
"08 version"; "08 version";
reference "draft-ietf-lime-yang-connectionless-oam-methods"; reference "draft-ietf-lime-yang-connectionless-oam-methods";
} }
identity protocol-id { identity protocol-id {
description description
"A generic protocol identifier."; "This is base identity for a generic protocol ID. The protocol
registry can be found in https://www.iana.org/protocols.";
} }
identity protocol-id-internet { identity protocol-id-internet {
base protocol-id; base protocol-id;
description description
"Internet Protocols."; "Identity for Internet Protocols.";
} }
identity protocol-id-proprietary { identity protocol-id-proprietary {
base protocol-id; base protocol-id;
description description
"Proprietary protocol (e.g.,IP SLA)."; "Identity for proprietary protocol (e.g.,IP SLA).";
} }
identity protocol-id-sfc { identity protocol-id-sfc {
base protocol-id; base protocol-id;
description description
"Service Function Chaining."; "Identity for Service Function Chaining.";
} }
identity protocol-id-mpls { identity protocol-id-mpls {
base protocol-id; base protocol-id;
description description
"MPLS protocol."; "MPLS protocol.";
} }
identity protocol-id-mpls-tp { identity protocol-id-mpls-tp {
base protocol-id; base protocol-id;
description description
"MPLS-TP protocol."; "MPLS-TP protocol.";
} }
identity protocol-id-twamp { identity protocol-id-twamp {
base protocol-id; base protocol-id;
description description
"TWAMP protocol."; "TWAMP protocol.";
} }
skipping to change at page 17, line 9 skipping to change at page 17, line 11
identity protocol-id-mpls-tp { identity protocol-id-mpls-tp {
base protocol-id; base protocol-id;
description description
"MPLS-TP protocol."; "MPLS-TP protocol.";
} }
identity protocol-id-twamp { identity protocol-id-twamp {
base protocol-id; base protocol-id;
description description
"TWAMP protocol."; "TWAMP protocol.";
} }
identity protocol-id-bier { identity protocol-id-bier {
base protocol-id; base protocol-id;
description description
"BIER protocol."; "BIER protocol.";
} }
identity status-code {
identity status-code{
description description
"Base status code"; "This is Base Identity for status code.";
} }
identity success-reach {
identity invalid-cc{ base status-code;
base status-code;
description description
"Indicates that the Continuity check message is invalid"; "Indicate that the destination being verified
is reachable (See RFC7276).";
} }
identity fail-reach {
identity invalid-pd { base status-code;
base status-code;
description description
"Indicates that the path discovery message is invalid"; "Indicate that the destination being verified
is not reachable (See RFC7276).";
}
identity success-path-verification {
base status-code;
description
"Indicate that the path verification is performed
successfully (See RFC7276).";
}
identity fail-path-verification {
base status-code;
description
"Indicate that the path verification fails (See RFC7276).";
} }
identity status-sub-code { identity status-sub-code {
description description
"Base status sub code"; "IdentityBase status sub code.";
}
identity invalid-cc {
base status-sub-code;
description
"Indicates that the Continuity check message is invalid (See RFC7276).";
}
identity invalid-pd {
base status-sub-code;
description
"Indicates that the path discovery message is invalid (See RFC7276).";
}
identity protocol-id-meta-data {
description
"This is base identity for meta-data corresponding
to protocol ID.";
}
identity protocol-internet-number {
base protocol-id-meta-data;
description
"Internet Protocol Number for standard
Internet Protocols (IANA assigned Internet
Protocol numbers) to help in protocol processing.
The protocol IDs registry can be found in
https://www.iana.org/assignments/protocol-numbers
/protocol-numbers.xhtml.";
} }
grouping rpc-input-parameters { grouping rpc-input-parameters {
container destination-tp { container destination-tp {
uses cl-oam:tp-address; uses cl-oam:tp-address;
description description
"Destination test point."; "Destination test point.";
} }
leaf source-interface { leaf source-interface {
type if:interface-ref; type if:interface-ref;
mandatory true; mandatory true;
description description
"Source interface."; "Source interface.";
} }
leaf outbound-interface { leaf outbound-interface {
type if:interface-ref; type if:interface-ref;
mandatory true; mandatory true;
description description
"Outbound interface."; "Outbound interface.";
} }
leaf vrf { leaf vrf {
type cl-oam:routing-instance-ref; type cl-oam:routing-instance-ref;
description description
"VRF instance."; "VRF instance.";
} }
description description
"Grouping for RPC input parameters"; "Grouping for RPC input parameters";
} }
rpc continuity-check { rpc continuity-check {
if-feature "cl-oam:continuity-check"; if-feature "cl-oam:continuity-check";
description description
"Continuity-check RPC operation as per RFC7276."; "Continuity-check RPC operation as per RFC7276.";
input { input {
uses rpc-input-parameters; uses rpc-input-parameters;
uses cl-oam:session-type { uses cl-oam:session-type {
description "If session-type is specified, then session-type description
must be set to on-demand"; "If session-type is specified, then session-type
must be set to on-demand";
} }
leaf count { leaf count {
type uint32 { type uint32 {
range 0..4294967295 { range 0..4294967295 {
description description
"The overall number of packet to be transmitted "The overall number of packet to be transmitted
by the sender. If the count is set to 4294967295, by the sender. The value of count will be set
it indicates that the session will be run forever"; to zero (0) on creation and will thereafter increase
monotonically until it reaches a maximum value of 2^32-1
(4294967295 decimal), when it wraps around and starts
increasing again from zero.";
} }
} }
default "5"; default "5";
description description
"Specifies the number of "Specifies the number of
packets that will be sent. By packets that will be sent. By
default, the packet number is default, the packet number is
set to 5."; set to 5.";
} }
leaf ttl { leaf ttl {
type uint8; type uint8;
default "255"; default "255";
description description
"Time to live (TTL) used to limit lifetime "Time to live (TTL) used to limit lifetime
of data packet transmitted in the network of data packet transmitted in the network
and prevent looping. The TTL value is decremented and prevent looping. The TTL value is decremented
for every hop which the packet traverses. If the for every hop which the packet traverses. If the
TTL is zero, the data packet will be discarded."; TTL is zero, the data packet will be discarded.";
} }
leaf packet-size { leaf packet-size {
type uint32 { type uint32 {
range "64..10000"; range "64..10000";
} }
default "64"; default "64";
description description
"Packet size of continuity-check message, in octets. "Packet size of continuity-check message, in octets.
By default, the packet size is set to 64 octets."; By default, the packet size is set to 64 octets.";
} }
} }
output { output {
container error-code { list status-code-list {
key "response-index";
leaf response-index {
type uint32;
description
"Response index.";
}
leaf protocol-id { leaf protocol-id {
type identityref { type identityref {
base protocol-id; base protocol-id;
} }
mandatory true; mandatory true;
description description
"Protocol used in CC. This could be a standard "Protocol used in continuity check message.
protocol (e.g., TCP/IP protocols, MPLS etc.,) This could be a standard protocol (e.g.,
or a proprietary protocol as identified by TCP/IP protocols, MPLS etc.,) or a proprietary
this field."; protocol as identified by this field.";
} }
leaf protocol-id-meta-data { leaf protocol-id-meta-data {
type uint64; type identityref {
description base protocol-id-meta-data;
"An optional meta-data related to the protocol ID. }
description
"An optional meta-data related to the protocol ID.
For e.g., this could be the Internet Protocol number For e.g., this could be the Internet Protocol number
for standard Internet Protocols for help in protocol for standard Internet Protocols for help in protocol
processing."; processing.";
} }
leaf status-code { leaf status-code {
type identityref{ type identityref{
base status-code; base status-code;
} }
mandatory true; mandatory true;
description description
"Error code for continuity-check message, that is "Status code for continuity check RPC operation.
relevant to the protocol under use for CC. This could be a basic status code (e.g., destination
For example if ICMP is the protocol under use, the is reachable or destination is not reachable (See RFC7276))
error codes are as defined in [RFC4443]."; or some customized status code as identified by this field.";
} }
leaf status-sub-code { leaf status-sub-code {
type identityref{ type identityref{
base status-sub-code; base status-sub-code;
} }
mandatory true; mandatory true;
description description
"Error sub code for continuity-check message, that is "An optional status sub code for continuity check
relevant to the error-code reported of the protocol RPC operation. If the basic status code is destination
that is used for CC."; reachable, this status-sub-code doesn't need to be specified.
If the basic status code is destination unreachable, the
status-sub-code can be used to specify the detailed reasons.
This could be a basic sub-status-code(such as invalid cc) or
other error codes specific to the protocol under use for CC
For example if ICMP is the protocol under use, the error codes
defined in [RFC4443] can be used to specify the reasons specific to
ICMP. These technology specific status-sub-code can be defined
in technology specific models.";
} }
description description
"Error code and Sub Code for continuity-check message."; "List of Status Code for continuity check RPC operation.";
} }
uses cl-oam:continuity-check-data; uses cl-oam:continuity-check-data;
} }
} }
rpc path-discovery { rpc path-discovery {
if-feature "cl-oam:path-discovery"; if-feature "cl-oam:path-discovery";
description description
"Path discovery RPC operation as per RFC7276."; "Path discovery RPC operation as per RFC7276.";
input { input {
uses rpc-input-parameters; uses rpc-input-parameters;
uses cl-oam:session-type { uses cl-oam:session-type {
description "If session-type is specified, then session-type description
must be set to on-demand"; "If session-type is specified, then session-type
must be set to on-demand";
} }
leaf max-ttl { leaf max-ttl {
type uint8; type uint8;
default "255"; default "255";
description description
"Maximum TTL indicates the maixmum number of hops that "Maximum TTL indicates the maixmum number of hops that
a packet is permitted to travel before being discarded a packet is permitted to travel before being discarded
by a router. By default, the maximimum TTL is set to 255."; by a router. By default, the maximimum TTL is set to 255.";
} }
} }
output { output {
list response-list { list response-list {
key "response-index"; key "response-index";
description description
"Path discovery response list."; "Path discovery response list.";
leaf response-index { leaf response-index {
type uint32; type uint32;
mandatory true; mandatory true;
description description
"Response index."; "Response index.";
} }
leaf protocol-id { leaf protocol-id {
type identityref { type identityref {
base protocol-id; base protocol-id;
} }
mandatory true; mandatory true;
description description
"Protocol used in PD. This could be a standard "Protocol used in PD. This could be a standard
protocol (e.g., TCP/IP protocols, MPLS etc.,) protocol (e.g., TCP/IP protocols, MPLS etc.,)
or a proprietary protocol as identified by or a proprietary protocol as identified by
this field."; this field.";
} }
leaf protocol-id-meta-data { leaf protocol-id-meta-data {
type uint64; type identityref {
description base protocol-id-meta-data;
"An optional meta-data related to the protocol ID. }
description
"An optional meta-data related to the protocol ID.
For e.g., this could be the Internet Protocol number For e.g., this could be the Internet Protocol number
for standard Internet Protocols for help in protocol for standard Internet Protocols for help in protocol
processing."; processing.";
} }
leaf status-code { leaf status-code {
type identityref{ type identityref{
base status-code; base status-code;
} }
mandatory true; mandatory true;
description description
"Error code for path-discovery response message, that is "Status code for continuity check RPC operation.
relevant to the protocol under use for PD. This could be a basic status code (e.g., destination
For example if ICMP is the protocol under use, the is reachable or destination is not reachable) or some
error codes are as defined in [RFC4443]."; customized status code as identified by this field.";
} }
leaf status-sub-code { leaf status-sub-code {
type identityref{ type identityref{
base status-sub-code; base status-sub-code;
} }
mandatory true; mandatory true;
description description
"Error sub code for path-discovery message, that is "An optional status sub code for continuity check
relevant to the error-code reported of the protocol RPC operation. If the basic status code is destination
that is used for PD."; reachable, this status-sub-code doesn't need to be specified.
If the basic status code is destination unreachable, the
status-sub-code can be used to specify the detailed reasons.
This could be a basic sub-status-code(such as invalid cc) or
other error codes specific to the protocol under use for CC
For example if ICMP is the protocol under use, the error codes
defined in [RFC4443] can be used to specify the reasons specific to
ICMP. These technology specific status-sub-code can be defined
in technology specific models.";
} }
} }
uses cl-oam:path-discovery-data; uses cl-oam:path-discovery-data;
} }
} }
} }
<CODE ENDS> <CODE ENDS>
5. Security Considerations 5. Security Considerations
The YANG module defined in this document is designed to be accessed The YANG module defined in this document is designed to be accessed
via network management protocols such as NETCONF [RFC6241] or via network management protocols such as NETCONF [RFC6241] or
RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport
layer, and the mandatory-to-implement secure transport is Secure layer, and the mandatory-to-implement secure transport is Secure
Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the
skipping to change at page 22, line 23 skipping to change at page 23, line 40
sensitive or vulnerable in some network environments. It is thus sensitive or vulnerable in some network environments. It is thus
important to control access to these operations. These are the important to control access to these operations. These are the
operations and their sensitivity/vulnerability: operations and their sensitivity/vulnerability:
o continuity-check: Generates continuity check. o continuity-check: Generates continuity check.
o path-discovery: Generates path discovery. o path-discovery: Generates path discovery.
These operations are used to retrieve the data from the device that These operations are used to retrieve the data from the device that
need to execute the OAM command. Unauthorized source access to some need to execute the OAM command. Unauthorized source access to some
sensitive information in the above data may lead to Denial-of-Service sensitive information in the above data may be used for network
attack on both the local device and the network. reconnaissance or lead to Denial-of-Service attack on both the local
device and the network.
6. IANA Considerations 6. IANA Considerations
This document registers a URI in the IETF XML registry [RFC3688]. This document registers a URI in the IETF XML registry [RFC3688].
Following the format in [RFC3688], the following registration is Following the format in [RFC3688], the following registration is
requested to be made: requested to be made:
URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods
Registrant Contact: The IESG. Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace. XML: N/A, the requested URI is an XML namespace.
This document registers a YANG module in the YANG Module Names This document registers a YANG module in the YANG Module Names
registry [RFC6020]. registry [RFC6020].
name: ietf-connectionless-oam-methods name: ietf-connectionless-oam-methods
namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam- namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-
methods methods
prefix: cloam-methods prefix: cloam-methods
reference: RFC XXXX reference: RFC XXXX
7. References 7. Acknowlegements
7.1. Normative References The authors of this document would like to thank Elwyn Davies, Alia
Atlas,Brian E Carpenter,Greg Mirsky,Adam Roach,Alissa Cooper,Eric
Rescorla,Ben Campbell, Benoit Claise,Kathleen Moriarty,Benjamin Kaduk
and others for their sustainable review and comments, proposals to
improve and stabilize document.
8. References
8.1. Normative References
[I-D.ietf-lime-yang-connectionless-oam] [I-D.ietf-lime-yang-connectionless-oam]
Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan,
"Generic YANG Data Model for Operations, Administration, "Generic YANG Data Model for the Management of Operations,
and Maintenance(OAM) protocols for Connectionless Administration, and Maintenance (OAM) Protocols that use
networks", draft-ietf-lime-yang-connectionless-oam-13 Connectionless Communications", draft-ietf-lime-yang-
(work in progress), October 2017. connectionless-oam-14 (work in progress), October 2017.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, (TLS) Protocol Version 1.2", RFC 5246,
DOI 10.17487/RFC5246, August 2008, DOI 10.17487/RFC5246, August 2008,
<https://www.rfc-editor.org/info/rfc5246>. <https://www.rfc-editor.org/info/rfc5246>.
skipping to change at page 24, line 9 skipping to change at page 25, line 32
RFC 7011, DOI 10.17487/RFC7011, September 2013, RFC 7011, DOI 10.17487/RFC7011, September 2013,
<https://www.rfc-editor.org/info/rfc7011>. <https://www.rfc-editor.org/info/rfc7011>.
[RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792,
September 1981. September 1981.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>. <https://www.rfc-editor.org/info/rfc8040>.
7.2. Informative References 8.2. Informative References
[I-D.ietf-netconf-yang-push] [I-D.ietf-netconf-yang-push]
Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen-
Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to Nygaard, E., Bierman, A., and B. Lengyel, "YANG Datastore
YANG datastore push updates", draft-ietf-netconf-yang- Subscription", draft-ietf-netconf-yang-push-11 (work in
push-10 (work in progress), October 2017. progress), October 2017.
[RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet
Control Message Protocol (ICMPv6) for the Internet Control Message Protocol (ICMPv6) for the Internet
Protocol Version 6 (IPv6) Specification", STD 89, Protocol Version 6 (IPv6) Specification", STD 89,
RFC 4443, DOI 10.17487/RFC4443, March 2006, RFC 4443, DOI 10.17487/RFC4443, March 2006,
<https://www.rfc-editor.org/info/rfc4443>. <https://www.rfc-editor.org/info/rfc4443>.
[RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
<https://www.rfc-editor.org/info/rfc5880>. <https://www.rfc-editor.org/info/rfc5880>.
skipping to change at page 26, line 30 skipping to change at page 28, line 6
} }
identity yang-push-export { identity yang-push-export {
base export-method; base export-method;
description description
"Yang-push from draft-ietf-netconf-yang-push"; "Yang-push from draft-ietf-netconf-yang-push";
} }
identity protocol-id { identity protocol-id {
description description
"A generic protocol identifier."; "A generic protocol identifier.";
} }
identity status-code { identity status-code {
description description
"Base status code"; "Base status code";
} }
identity success-reach {
identity invalid-cc { base status-code;
base status-code; description
description "Indicate that the destination being verified
"Indicates that the Continuity check message is invalid"; is reachable";
} }
identity fail-reach {
identity invalid-pd { base status-code;
base status-code; description
description "Indicate that the destination being verified
"Indicates that the path discovery message is invalid"; is not reachable";
} }
identity success-path-verification {
identity status-sub-code { base status-code;
description description
"Base status sub code"; "Indicate that the path verification is performed
} successfully.";
}
identity fail-path-verification {
base status-code;
description
"Indicate that the path verification fails.";
}
identity status-sub-code {
description
"Base status sub code";
}
identity invalid-cc {
base status-sub-code;
description
"Indicates that the Continuity check message is invalid";
}
identity invalid-pd {
base status-sub-code;
description
"Indicates that the path discovery message is invalid";
}
typedef export-method { typedef export-method {
type identityref { type identityref {
base export-method; base export-method;
} }
description description
"Export method type."; "Export method type.";
} }
typedef change-type { typedef change-type {
type enumeration { type enumeration {
enum "create" { enum "create" {
skipping to change at page 33, line 6 skipping to change at page 34, line 51
rpc pd-persistent-get-export-details { rpc pd-persistent-get-export-details {
if-feature "cl-oam:path-discovery"; if-feature "cl-oam:path-discovery";
description description
"Given the persistent id, gets the configuration "Given the persistent id, gets the configuration
options, details related to the configured data options, details related to the configured data
export."; export.";
input { input {
leaf cc-persistent-id { leaf cc-persistent-id {
type string; type string;
description description
"Persistent Id for use as a key in search."; "Persistent ID for use as a key in search.";
} }
} }
output { output {
list response-list { list response-list {
key "response-index"; key "response-index";
description description
"Path discovery response list."; "Path discovery response list.";
leaf response-index { leaf response-index {
type uint32; type uint32;
skipping to change at page 35, line 23 skipping to change at page 37, line 23
Email: dekumar@cisco.com Email: dekumar@cisco.com
Michael Wang Michael Wang
Huawei Technologies,Co.,Ltd Huawei Technologies,Co.,Ltd
101 Software Avenue, Yuhua District 101 Software Avenue, Yuhua District
Nanjing 210012 Nanjing 210012
China China
Email: wangzitao@huawei.com Email: wangzitao@huawei.com
Qin Wu Qin Wu (editor)
Huawei Huawei
101 Software Avenue, Yuhua District 101 Software Avenue, Yuhua District
Nanjing, Jiangsu 210012 Nanjing, Jiangsu 210012
China China
Email: bill.wu@huawei.com Email: bill.wu@huawei.com
Reshad Rahman Reshad Rahman
CISCO Systems CISCO Systems
2000 Innovation Drive 2000 Innovation Drive
 End of changes. 93 change blocks. 
197 lines changed or deleted 292 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/