| < draft-ietf-lime-yang-connectionless-oam-16.txt | draft-ietf-lime-yang-connectionless-oam-17.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: May 3, 2018 Q. Wu | Expires: May 16, 2018 Q. Wu, Ed. | |||
| Huawei | Huawei | |||
| R. Rahman | R. Rahman | |||
| S. Raghavan | S. Raghavan | |||
| Cisco | Cisco | |||
| October 30, 2017 | November 12, 2017 | |||
| Generic YANG Data Model for the Management of Operations, | Generic YANG Data Model for the Management of Operations, | |||
| Administration, and Maintenance (OAM) Protocols that use Connectionless | Administration, and Maintenance (OAM) Protocols that use Connectionless | |||
| Communications | Communications | |||
| draft-ietf-lime-yang-connectionless-oam-16 | draft-ietf-lime-yang-connectionless-oam-17 | |||
| Abstract | Abstract | |||
| This document presents a base YANG Data model for Operations | This document presents a base YANG Data model for the management of | |||
| Administration, and Maintenance(OAM) protocols that use | Operations Administration, and Maintenance (OAM) protocols that use | |||
| Connectionless Communications. The data model is defined using the | Connectionless Communications. The data model is defined using the | |||
| YANG in RFC7950 data modeling language. It provides a technology- | YANG, as specified in RFC7950 data modeling language. It provides a | |||
| independent abstraction of key OAM constructs for OAM protocols that | technology-independent abstraction of key OAM constructs for OAM | |||
| use connectionless communication. The base model presented here can | protocols that use connectionless communication. The base model | |||
| be extended to include technology specific details. This is leading | presented here can be extended to include technology-specific | |||
| to uniformity between OAM protocols and support both nested OAM | details. | |||
| workflows (i.e., performing OAM functions at different or same levels | ||||
| through a unified interface) and interacting OAM workflows (i.e., | There are two key benefits of this approach: First, it leads to | |||
| performing OAM functions at same levels through a unified interface). | uniformity between OAM protocols. And second, it support both nested | |||
| OAM workflows (i.e., performing OAM functions at different or same | ||||
| levels through a unified interface) as well as interactive OAM | ||||
| workflows (i.e., performing OAM functions at same levels through a | ||||
| unified interface). | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 May 16, 2018. | ||||
| This Internet-Draft will expire on May 3, 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 | |||
| skipping to change at page 2, line 37 ¶ | skipping to change at page 2, line 38 ¶ | |||
| 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. OAM neighboring test points . . . . . . . . . . . . . . . 7 | 3.3. OAM neighboring test points . . . . . . . . . . . . . . . 7 | |||
| 3.4. Test Point Locations Information . . . . . . . . . . . . 8 | 3.4. Test Point Locations Information . . . . . . . . . . . . 8 | |||
| 3.5. Test Point Locations . . . . . . . . . . . . . . . . . . 8 | 3.5. Test Point Locations . . . . . . . . . . . . . . . . . . 8 | |||
| 3.6. Path Discovery Data . . . . . . . . . . . . . . . . . . . 9 | 3.6. Path Discovery Data . . . . . . . . . . . . . . . . . . . 9 | |||
| 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 9 | 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 9 | |||
| 3.8. OAM data hierarchy . . . . . . . . . . . . . . . . . . . 9 | 3.8. OAM data hierarchy . . . . . . . . . . . . . . . . . . . 9 | |||
| 4. LIME Time Types YANG Module . . . . . . . . . . . . . . . . . 12 | 4. LIME Time Types YANG Module . . . . . . . . . . . . . . . . . 12 | |||
| 5. Connectionless OAM YANG Module . . . . . . . . . . . . . . . 14 | 5. Connectionless OAM YANG Module . . . . . . . . . . . . . . . 14 | |||
| 6. Connectionless model applicability . . . . . . . . . . . . . 42 | 6. Connectionless model applicability . . . . . . . . . . . . . 43 | |||
| 6.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 43 | 6.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 43 | |||
| 6.1.1. Augment Method . . . . . . . . . . . . . . . . . . . 43 | 6.1.1. Augment Method . . . . . . . . . . . . . . . . . . . 43 | |||
| 6.1.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 46 | 6.1.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 46 | |||
| 6.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 48 | 6.2. LSP Ping extension . . . . . . . . . . . . . . . . . . . 48 | |||
| 6.2.1. Augment Method . . . . . . . . . . . . . . . . . . . 48 | 6.2.1. Augment Method . . . . . . . . . . . . . . . . . . . 48 | |||
| 6.2.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 49 | 6.2.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 49 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 51 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 51 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 53 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 9. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 53 | 9. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 53 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 53 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 55 | 10.2. Informative References . . . . . . . . . . . . . . . . . 55 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 56 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 57 | |||
| 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 networks communication (Reachability Verification, | 1. Monitor network communications (i.e., Reachability Verification, | |||
| Continuity Check). | Continuity Check) | |||
| 2. Troubleshoot failures (Fault verification and localization). | 2. Troubleshoot failures (i.e., Fault verification and Localization) | |||
| 3. Monitor Performance | 3. Monitor service-level agreements and performance (i.e., | |||
| Performance Management) | ||||
| An overview of OAM tools is presented at [RFC7276]. | An overview of OAM tools is presented at [RFC7276]. | |||
| Ping and Traceroute [RFC792], [RFC4443] are well-known fault | Ping and Traceroute (see [RFC792] and [RFC4443]) are respectively | |||
| verification and isolation tools, respectively, for IP networks. | well-known fault verification and isolation tools for IP network. | |||
| Over the years, different technologies have developed similar tools | Over the years, different technologies have developed similar | |||
| for similar purposes. | toolsets for equivalent purposes. | |||
| The different OAM tools may support connection-oriented technologies | The different sets of OAM tools may support both connection-oriented | |||
| or connectionless technologies. In connection-oriented technologies, | technologies or connectionless technologies. In connection-oriented | |||
| a connection is established prior to the transmission of data. After | technologies, a connection is established prior to the transmission | |||
| the connection is established, no additional control information such | of data. After the connection is established, no additional control | |||
| as signaling or operations and maintenance information is required to | information such as signaling or operations and maintenance | |||
| transmit the data. In connectionless technologies, data is typically | information is required to transmit the actual user data. In | |||
| sent between end points without prior arrangement, but control | connectionless technologies, data is typically sent between | |||
| information is required to identify destination.[G.800][RFC7276]. | communicating end points without prior arrangement, but control | |||
| Note that the YANG Data model for OAM protcols using connection- | information is required to identify the destination (e.g., [G.800] | |||
| oriented communications is defined in | and [RFC7276]). The YANG Data model for OAM protocols using | |||
| connection-oriented communications is specified in | ||||
| [I-D.ietf-lime-yang-connection-oriented-oam-model]. | [I-D.ietf-lime-yang-connection-oriented-oam-model]. | |||
| This document defines a base YANG Data model for OAM protocols that | This document defines a base YANG Data model for OAM protocols that | |||
| use Connectionless Communications. The data model is defined using | use connectionless communications. The data model is defined using | |||
| the YANG [RFC7950] data modeling language. This generic YANG model | the YANG [RFC7950] data modeling language. This generic YANG model | |||
| for connectionless OAM only includes configuration data and state | for connectionless OAM includes only configuration and state data. | |||
| data. It can be used in conjunction with data retrieval method model | It can be used in conjunction with data retrieval method model | |||
| described in [I-D.ietf-lime-yang-connectionless-oam-methods], which | described in [I-D.ietf-lime-yang-connectionless-oam-methods], which | |||
| focuses on data retrieval procedures such as RPC. However it also | focuses on the data retrieval procedures such as RPC, or it can be | |||
| can be used independently of this data retrieval method model. | used independently of this data retrieval method model. | |||
| 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 used in this | |||
| here: | specification: | |||
| o client | o client | |||
| o configuration data | o configuration data | |||
| o server | o server | |||
| o state data | o state data | |||
| The following terms are defined in [RFC7950] and are not redefined | The following terms are defined in [RFC7950] and are used in this | |||
| here: | specification: | |||
| o augment | o augment | |||
| o data model | o data model | |||
| o data node | o data node | |||
| The terminology for describing YANG data models is found in | The terminology for describing YANG data models is found in | |||
| [RFC7950]. | [RFC7950]. | |||
| 2.1. Abbreviations | 2.1. Abbreviations | |||
| BFD - Bidirectional Forwarding Detection [RFC5880]. | BFD - Bidirectional Forwarding Detection [RFC5880]. | |||
| RPC - A Remote Procedure Call [RFC1831]. | RPC - Remote Procedure Call [RFC1831]. | |||
| DSCP - Differentiated Services Code Point. | DSCP - Differentiated Services Code Point. | |||
| VRF - Virtual Routing and Forwarding (VRF) [RFC 4382]. | VRF - Virtual Routing and Forwarding [RFC 4382]. | |||
| OWAMP - One-Way Active Measurement Protocol [RFC 4656]. | OWAMP - One-Way Active Measurement Protocol [RFC 4656]. | |||
| TWAMP - Two-Way Active Measurement Protocol (TWAMP) [RFC 5357]. | TWAMP - Two-Way Active Measurement Protocol [RFC 5357]. | |||
| AS - Autonomous System. | AS - Autonomous System. | |||
| LSP - Label Switched Path. | LSP - Label Switched Path. | |||
| TE - Traffic Engineering. | TE - Traffic Engineering. | |||
| MPLS - Multiprotocol Label Switching. | MPLS - Multiprotocol Label Switching. | |||
| NI - Network Instance. | NI - Network Instance. | |||
| PTP - Precision Time Protocol [IEEE.1588]. | PTP - Precision Time Protocol [IEEE.1588]. | |||
| NTP - Network Time Protocol [RFC5905]. | NTP - Network Time Protocol [RFC5905]. | |||
| 2.2. Terminology | 2.2. Terminology | |||
| MAC address- Address for data link layer interface. | MAC - Media Access Control. | |||
| TP - Test Point. Test point is a functional entity that is defined | MAC address - Address for the data-link layer interface. | |||
| at a node in the network and can initiate and/or react to OAM | ||||
| diagnostic test. This document focuses on the data-plane | ||||
| functionality of TPs, while TPs interact with the control plane and | ||||
| with the management plane as well. | ||||
| RPC operation - A specific Remote Procedure Call. | TP - Test Point. The TP is a functional entity that is defined at a | |||
| node in the network and can initiate and/or react to OAM diagnostic | ||||
| tests. This document focuses on the data-plane functionality of TPs. | ||||
| CC - Continuity Check.[RFC7276], Continuity Checks are used to verify | RPC Operation - A specific Remote Procedure Call. | |||
| that a destination is reachable and therefore also referred to as | ||||
| CC - Continuity Checks [RFC7276] are used to verify that a | ||||
| destination is reachable and therefore also referred to as | ||||
| reachability verification. | reachability verification. | |||
| 3. Overview of the Connectionless OAM Model | 3. Overview of the Connectionless OAM Model | |||
| The YANG data model for OAM protocols that use Connectionless | The YANG data model for OAM protocols that use Connectionless | |||
| Communications has been split into two modules: | Communications has been split into two modules: | |||
| o The module ietf-lime-common-types.yang provides common definitions | o The ietf-lime-common-types.yang module provides common definitions | |||
| such as Time-specific data types and Timestamp specific data | such as Time-related data types and Timestamp-related data types. | |||
| types. | ||||
| o The module ietf-connectionless-oam.yang defines technology- | o The ietf-connectionless-oam.yang module defines technology- | |||
| independent abstraction of key OAM constructs for OAM protocols | independent abstraction of key OAM constructs for OAM protocols | |||
| that use Connectionless communication. | that use connectionless communication. | |||
| The ietf-connectionless-oam module augments the "/networks/network/ | The ietf-connectionless-oam module augments the "/networks/network/ | |||
| node" path defined in the ietf- network module | node" path defined in the ietf-network module | |||
| [I-D.ietf-i2rs-yang-network-topo] with 'test-point-locations' | [I-D.ietf-i2rs-yang-network-topo] with 'test-point-locations' | |||
| grouping defined in Section 3.5. The network node in | grouping defined in Section 3.5. The network node in | |||
| "/networks/network/node" path are used to describe the network | "/networks/network/node" path are used to describe the network | |||
| hierarchies and the inventory of nodes contained in a network. | hierarchies and the inventory of nodes contained in a network. | |||
| Under the 'test-point-locations' grouping, each test point location | Under the 'test-point-locations' grouping, each test point location | |||
| is chosen based on 'tp-location-type' leaf which when chosen, leads | is chosen based on 'tp-location-type' leaf which when chosen, leads | |||
| to a container that includes a list of 'test-point-locations'. | to a container that includes a list of 'test-poit-locations'. | |||
| Each 'test-point-locations' list includes a 'test-point-location- | Each 'test-point-locations' list includes a 'test-point-location- | |||
| info' grouping. The 'test-point-location-info' grouping includes: | info' grouping. The 'test-point-location-info' grouping includes: | |||
| o 'tp-technology' grouping, | o 'tp-technology' grouping, | |||
| o 'tp-tools' grouping, | o 'tp-tools' grouping, and | |||
| o and 'connectionless-oam-tps' grouping. | o 'connectionless-oam-tps' grouping. | |||
| The groupings of 'tp-address' and 'tp-address-ni' are kept out of | The groupings of 'tp-address' and 'tp-address-ni' are kept out of | |||
| 'test- point-location-info' grouping to make it addressing agnostic | 'test-point-location-info' grouping to make it addressing agnostic | |||
| and allow varied composition. Depending upon the choice of the 'tp- | and allow varied composition. Depending upon the choice of the 'tp- | |||
| location-type' (determined by the 'tp-address-ni'), the containers | location-type' (determined by the 'tp-address-ni'), the containers | |||
| differ in its composition of 'test-point-locations' while the 'test- | differ in its composition of 'test-point-locations' while the 'test- | |||
| point-location-info', is a common aspect of every 'test-point- | point-location-info', is a common aspect of every 'test-point- | |||
| locations'. | locations'. | |||
| The 'tp-address-ni' grouping is used to describe the corresponding | The 'tp-address-ni' grouping is used to describe the corresponding | |||
| network instance. The 'tp-technology' grouping indicate OAM | network instance. The 'tp-technology' grouping indicate OAM | |||
| technology details. The 'connectionless-oam-tps' grouping is used to | technology details. The 'connectionless-oam-tps' grouping is used to | |||
| describe the relationship of one test point with other test points. | describe the relationship of one test point with other test points. | |||
| The 'tp-tools' grouping describe the OAM tools supported. | The 'tp-tools' grouping describe the OAM tools supported. | |||
| In addition, at the top of the model, there is an 'cc-oper-data' | In addition, at the top of the model, there is an 'cc-oper-data' | |||
| container for session statistics. Grouping is also defined for | container for session statistics. A grouping is also defined for | |||
| common session statistics and these are only applicable for proactive | common session statistics and these are only applicable for proactive | |||
| OAM sessions. | (see Section 3.2) OAM sessions. | |||
| 3.1. TP Address | 3.1. TP Address | |||
| With connectionless OAM protocols, the TP address can be one of the | With connectionless OAM protocols, the TP address can be one of the | |||
| following types: | following types: | |||
| o MAC address [RFC6136] at link layer for TPs | o MAC address [RFC6136] at the data-link layer for TPs | |||
| o IPv4 or IPv6 address at IP layer for TPs | o IPv4 or IPv6 address at IP layer for TPs | |||
| o TP-attribute identifying a TP associated with an application layer | o TP-attribute identifying a TP associated with an application layer | |||
| function | function | |||
| o Router-id to represent the device or node, which is commonly used | o Router-id to represent the device or node, which is commonly used | |||
| to identify nodes in routing and other control plane | to identify nodes in routing and other control plane protocols | |||
| protocols.[I-D.ietf-rtgwg-routing-types] | [I-D.ietf-rtgwg-routing-types]. | |||
| To define a forwarding treatment of a test packet, the 'tp-address' | To define a forwarding treatment of a test packet, the 'tp-address' | |||
| grouping needs to be associated with additional parameters, e.g., | grouping needs to be associated with additional parameters, e.g., | |||
| DSCP for IP or EXP (renamed to Traffic Classic in [RFC5462]) for | DSCP for IP or Traffic Classic [RFC5462] for MPLS. In the generic | |||
| MPLS. In generic connectionless OAM YANG model, these parameters are | connectionless OAM YANG model, these parameters are not explicitly | |||
| not explicitly configured. The model user can add corresponding | configured. The model user can add corresponding parameters | |||
| parameters according to their requirements. | according to their requirements. | |||
| 3.2. Tools | 3.2. Tools | |||
| The different OAM tools may be used in one of two basic types of | The different OAM tools may be used in one of two basic types of | |||
| activation: proactive and on-demand. The proactive OAM refers to OAM | activation: proactive and on-demand. Proactive OAM refers to OAM | |||
| actions which are carried out continuously to permit proactive | actions which are carried out continuously to permit proactive | |||
| reporting of fault. The proactive OAM method requires persistent | reporting of faults. The proactive OAM method requires persistent | |||
| configuration. The on-demand OAM refers to OAM actions which are | configuration. On-demand OAM refers to OAM actions which are | |||
| initiated via manual intervention for a limited time to carry out | initiated via manual intervention for a limited time to carry out | |||
| diagnostics. The on-demand OAM method requires only transient | specific diagnostics. The on-demand OAM method requires only | |||
| configuration.[RFC7276] [G.8013]. In connectionless OAM, 'session- | transient configuration (e.g., [RFC7276] and [G.8013]). In | |||
| type' grouping is defined to indicate which kind of activation will | connectionless OAM, tbe 'session-type' grouping is defined to | |||
| be used by the current session. | indicate which kind of activation will be used by the current | |||
| session. | ||||
| In connectionless OAM, the tools attribute is used to describe a | In connectionless OAM, the tools attribute is used to describe a | |||
| toolset for fault detection and isolation. And it can serve as a | toolset for fault detection and isolation. And it can serve as a | |||
| constraint condition when the base model be extended to specific OAM | constraint condition when the base model be extended to a specific | |||
| technology. For example, to fulfill the ICMP PING configuration, the | OAM technology. For example, to fulfill the ICMP PING configuration, | |||
| "../coam:continuity-check" leaf should be set to "true", and then the | the "../coam:continuity-check" leaf should be set to "true", and then | |||
| lime base model should be augmented with ICMP PING specific details. | the lime base model should be augmented with ICMP PING specific | |||
| details. | ||||
| 3.3. OAM neighboring test points | 3.3. OAM neighboring test points | |||
| As typical network communication stacks have a multi-layer | Given tbat typical network communication stacks have a multi-layer | |||
| architecture, the set of associated OAM protocols may similarly have | architecture, the set of associated OAM protocols has also a multi- | |||
| a multi-layer structure; each communication layer in the stack may | layer structure; each communication layer in the stack may have its | |||
| have its own OAM protocol [RFC7276] that may also be linked to a | own OAM protocol [RFC7276] that may also be linked to a specific | |||
| specific administrative domain. Management of these OAM protocols | administrative domain. Management of these OAM protocols will | |||
| will necessitate associated test points in the nodes accessible by | necessitate associated test points in the nodes accessible by | |||
| appropriate management domains. Accordingly, a given network | appropriate management domains. Accordingly, a given network | |||
| interface may present several test points. | interface may actually present several test points. | |||
| OAM neighboring test points are referred to a list of neighboring | Each OAM test point may have an associated list of neighboring test | |||
| test points in adjacent layers up and down the stack for the same | points in other layers up and down the protocol stack for the same | |||
| interface that are related to the current test point. This allows | interface and are therefore related to the current test point. This | |||
| users to easily navigate between related neighboring layers to | allows users to easily navigate between related neighboring layers to | |||
| efficiently troubleshoot a defect. In this model, the 'position' | efficiently troubleshoot a defect. In this model, the 'position' | |||
| leaf defines the relative position of the neighboring test point | leaf defines the relative position of the neighboring test point | |||
| corresponding to the current test point, and is provided to allow | corresponding to the current test point, and is provided to allow | |||
| correlation of faults at different locations. If there is one | correlation of faults at different locations. If there is one | |||
| neighboring test point placed before the current test point, the | neighboring test point placed before the current test point, the | |||
| 'position' leaf is set to -1. If there is one neighboring test point | 'position' leaf is set to -1. If there is one neighboring test point | |||
| placed after the current test point, the 'position' leaf is set to 1. | placed after the current test point, the 'position' leaf is set to 1. | |||
| If there is no neighboring test point placed before or after the | If there is no neighboring test point placed before or after the | |||
| current test point, the 'position' leaf is set to 0. | current test point, the 'position' leaf is set to 0. | |||
| skipping to change at page 8, line 40 ¶ | skipping to change at page 8, line 40 ¶ | |||
| layers up and down the stack for the same interface | layers up and down the stack for the same interface | |||
| that are related to the current test point."; | that are related to the current test point."; | |||
| } | } | |||
| 3.4. Test Point Locations Information | 3.4. Test Point Locations Information | |||
| This is a generic grouping for Test Point Locations Information | This is a generic grouping for Test Point Locations Information | |||
| (i.e., test-point-location-info grouping). It Provide details of | (i.e., test-point-location-info grouping). It Provide details of | |||
| Test Point Location using 'tp-technology','tp-tools' grouping, 'oam- | Test Point Location using 'tp-technology','tp-tools' grouping, 'oam- | |||
| neighboring-tps' grouping defined above. | neighboring-tps' grouping, all of which are defined above. | |||
| 3.5. Test Point Locations | 3.5. Test Point Locations | |||
| This is a generic grouping for Test Point Locations. 'tp-location- | This is a generic grouping for Test Point Locations. 'tp-location- | |||
| type 'leaf is used to define locations types, for example 'ipv4- | type 'leaf is used to define locations types, for example 'ipv4- | |||
| location-type', 'ipv6-location-type', etc. Container is defined | location-type', 'ipv6-location-type', etc. Container is defined | |||
| under each location type containing list keyed to test point address, | under each location type containing list keyed to test point address, | |||
| Test Point Location Information defined in section above, and network | Test Point Location Information defined in section above, and network | |||
| instance name(e.g., VRF instance name) if required. | instance name (e.g., VRF instance name) if required. | |||
| 3.6. Path Discovery Data | 3.6. Path Discovery Data | |||
| This is a generic grouping for path discovery data model that can be | This is a generic grouping for the path discovery data model that can | |||
| retrieved by any data retrieval methods including RPC operations. | be retrieved by any data retrieval methods including RPC operations. | |||
| Path discovery data output from methods, includes 'src-test-point' | Path discovery data output from methods, includes 'src-test-point' | |||
| container, 'dst-test-point' container, 'sequence-number'leaf, 'hop- | container, 'dst-test-point' container, 'sequence-number'leaf, 'hop- | |||
| cnt'leaf, session statistics of various kinds, path verification and | cnt' leaf, session statistics of various kinds, path verification and | |||
| path trace related information. Path discovery includes data to be | path trace related information. Path discovery includes data to be | |||
| retrieved on a 'per-hop' basis via a list of 'path-trace-info- | retrieved on a 'per-hop' basis via a list of 'path-trace-info- list' | |||
| list'list which includes information like 'timestamp'grouping, ' | items which includes information such as 'timestamp' grouping, | |||
| ingress-intf-name ', ' egress-intf-name ' and 'app-meta-data'. The | 'ingress-intf-name', 'egress-intf-name' and 'app-meta-data'. The | |||
| path discovery data model is made generic enough to allow different | path discovery data model is made generic enough to allow different | |||
| methods of data retrieval. None of the fields are made mandatory for | methods of data retrieval. None of the fields are made mandatory for | |||
| that reason. Noted that the retrieval methods are defined in | that reason. Note that a set of retrieval methods are defined in | |||
| [I-D.ietf-lime-yang-connectionless-oam-methods]. | [I-D.ietf-lime-yang-connectionless-oam-methods]. | |||
| 3.7. Continuity Check Data | 3.7. Continuity Check Data | |||
| This is a generic grouping for continuity check data model that can | This is a generic grouping for the continuity check data model that | |||
| be retrieved by any data retrieval methods including RPC operations. | can be retrieved by any data retrieval methods including RPC | |||
| Continuity check data output from methods, includes 'src-test- | operations. Continuity check data output from methods, includes | |||
| point'container, 'dst-test-point'container, 'sequence-number' leaf, | 'src-test- point' container, 'dst-test-point' container, 'sequence- | |||
| 'hop-cnt'leaf and session statistics of various kinds. The | number'leaf, 'hop-cnt' leaf and session statistics of various kinds. | |||
| continuity check data model is made generic enough to allow different | The continuity check data model is made generic enough to allow | |||
| methods of data retrieval. None of the fields are made mandatory for | different methods of data retrieval. None of the fields are made | |||
| that reason. Noted that the retrieval methods are defined in | mandatory for that reason. Noted that a set of retrieval methods are | |||
| [I-D.ietf-lime-yang-connectionless-oam-methods]. | defined in [I-D.ietf-lime-yang-connectionless-oam-methods]. | |||
| 3.8. OAM data hierarchy | 3.8. OAM data hierarchy | |||
| The complete data hierarchy related to the OAM YANG model is | The complete data hierarchy related to the OAM YANG model is | |||
| presented below. | presented below. | |||
| module: ietf-connectionless-oam | module: ietf-connectionless-oam | |||
| +--ro cc-session-statistics-data {continuity-check}? | +--ro cc-session-statistics-data {continuity-check}? | |||
| +--ro cc-session-statistics* [type] | +--ro cc-session-statistics* [type] | |||
| +--ro type identityref | +--ro type identityref | |||
| skipping to change at page 12, line 43 ¶ | skipping to change at page 12, line 43 ¶ | |||
| | +--rw ipv4-address-location? inet:ipv4-address | | +--rw ipv4-address-location? inet:ipv4-address | |||
| +--:(ipv6-address) | +--:(ipv6-address) | |||
| | +--rw ipv6-address-location? inet:ipv6-address | | +--rw ipv6-address-location? inet:ipv6-address | |||
| +--:(as-number) | +--:(as-number) | |||
| | +--rw as-number-location? inet:as-number | | +--rw as-number-location? inet:as-number | |||
| +--:(router-id) | +--:(router-id) | |||
| +--rw router-id-location? rt:router-id | +--rw router-id-location? rt:router-id | |||
| 4. LIME Time Types YANG Module | 4. LIME Time Types YANG Module | |||
| This module imports definitions from [RFC7223],[RFC6991], [I-D.ietf- | ||||
| i2rs-yang-network-topo],[I-D.ietf-rtgwg-routing-types],[I-D.ietf- | ||||
| rtgwg-ni-model]and the LIME Time Types Module. | ||||
| <CODE BEGINS> file "ietf-lime-time-types@2017-09-06.yang" | <CODE BEGINS> file "ietf-lime-time-types@2017-09-06.yang" | |||
| module ietf-lime-time-types { | module ietf-lime-time-types { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-lime-time-types"; | namespace "urn:ietf:params:xml:ns:yang:ietf-lime-time-types"; | |||
| prefix "lime"; | prefix "lime"; | |||
| organization | organization | |||
| "IETF Layer Independent OAM Management(LIME) | "IETF Layer Independent OAM Management (LIME) | |||
| Working Group"; | Working Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/lime> | "WG Web: <https://datatracker.ietf.org/wg/lime> | |||
| WG List: <mailto:lmap@ietf.org> | WG List: <mailto:lmap@ietf.org> | |||
| Editor: Qin Wu | Editor: Qin Wu | |||
| <bill.wu@huawei.com>"; | <bill.wu@huawei.com>"; | |||
| description | description | |||
| "This module provides time related definitions used by the data | "This module provides time related definitions used by the data | |||
| models written for Layer Independent OAM Management(LIME). | models written for Layer Independent OAM Management (LIME). | |||
| This module defines identities but no schema tree elements."; | This module defines identities but no schema tree elements."; | |||
| revision "2017-09-06" { | revision "2017-09-06" { | |||
| description | description | |||
| "Initial version"; | "Initial version"; | |||
| reference | reference | |||
| "RFC xxxx: A YANG Data Model for OAM Protocols that use Connectionless | "RFC xxxx: A YANG Data Model for OAM Protocols that use Connectionless | |||
| Communications"; | Communications"; | |||
| } | } | |||
| skipping to change at page 15, line 39 ¶ | skipping to change at page 15, line 43 ¶ | |||
| contact | contact | |||
| "Deepak Kumar dekumar@cisco.com | "Deepak Kumar dekumar@cisco.com | |||
| Qin Wu bill.wu@huawei.com | Qin Wu bill.wu@huawei.com | |||
| S Raghavan srihari@cisco.com | S Raghavan srihari@cisco.com | |||
| Zitao Wang wangzitao@huawei.com | Zitao Wang wangzitao@huawei.com | |||
| R Rahman rrahman@cisco.com"; | R Rahman rrahman@cisco.com"; | |||
| description | description | |||
| "This YANG module defines the generic configuration, | "This YANG module defines the generic configuration, | |||
| data model, and statistics for OAM protocols using | data model, and statistics for OAM protocols using | |||
| connectionless communications, described in a | connectionless communications, described in a | |||
| protocol independent manner.It is assumed that each | protocol independent manner. It is assumed that each | |||
| protocol maps corresponding abstracts to its native | protocol maps corresponding abstracts to its native | |||
| format. Each protocol mayextend the YANG model defined | format. Each protocol mayextend 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 | |||
| " Base model for Connectionless | "Base model for Connectionless | |||
| Operations, Administration, | Operations, Administration, | |||
| and Maintenance(OAM) "; | and Maintenance (OAM)"; | |||
| reference | reference | |||
| " RFC XXXX: Connectionless | "RFC XXXX: Connectionless | |||
| Operations, Administration, and | Operations, Administration, and | |||
| Maintenance(OAM)YANG Data Model"; | Maintenance (OAM) YANG Data Model"; | |||
| } | } | |||
| feature connectionless { | feature connectionless { | |||
| description | description | |||
| "This feature indicates that OAM solution is connectionless."; | "This feature indicates that OAM solution is connectionless."; | |||
| } | } | |||
| feature continuity-check { | feature continuity-check { | |||
| description | description | |||
| "This feature indicates that the server supports | "This feature indicates that the server supports | |||
| executing continuity check OAM command and | executing continuity check OAM command and | |||
| returning a response. Servers that do not advertise | returning a response. Servers that do not advertise | |||
| skipping to change at page 16, line 43 ¶ | skipping to change at page 16, line 47 ¶ | |||
| description | description | |||
| "This feature indicates that timestamp is NTP short format."; | "This feature indicates that timestamp is NTP short format."; | |||
| } | } | |||
| feature icmp-timestamp { | feature icmp-timestamp { | |||
| description | description | |||
| "This feature indicates that timestamp is ICMP timestamp."; | "This feature indicates that timestamp is ICMP timestamp."; | |||
| } | } | |||
| identity traffic-type { | identity traffic-type { | |||
| description | description | |||
| "This is base identity of traffic type | "This is base identity of traffic type | |||
| which include IPv4 and IPv6,etc."; | which include IPv4 and IPv6, etc."; | |||
| } | } | |||
| identity ipv4 { | identity ipv4 { | |||
| base traffic-type; | base traffic-type; | |||
| description | description | |||
| "identity for IPv4 traffic type."; | "identity for IPv4 traffic type."; | |||
| } | } | |||
| identity ipv6 { | identity ipv6 { | |||
| base traffic-type; | base traffic-type; | |||
| description | description | |||
| "identity for IPv4 traffic type."; | "identity for IPv4 traffic type."; | |||
| } | } | |||
| identity address-attribute-types { | identity address-attribute-types { | |||
| description | description | |||
| "This is base identity of address | "This is base identity of address | |||
| attribute types which are Generic | attribute types which are Generic | |||
| IPv4/IPv6 Prefix,BGP Labeled | IPv4/IPv6 Prefix, BGP Labeled | |||
| IPv4/IPv6 Prefix,Tunnel ID, | IPv4/IPv6 Prefix, Tunnel ID, | |||
| PW ID, vpls VE ID, etc.(See RFC8029 | PW ID, VPLS VE ID, etc. (see RFC8029 | |||
| for details.)"; | for details.)"; | |||
| } | } | |||
| typedef address-attribute-type { | typedef address-attribute-type { | |||
| type identityref { | type identityref { | |||
| base address-attribute-types; | base address-attribute-types; | |||
| } | } | |||
| description | description | |||
| "Target address attribute type."; | "Target address attribute type."; | |||
| } | } | |||
| typedef percentage { | typedef percentage { | |||
| skipping to change at page 22, line 18 ¶ | skipping to change at page 22, line 21 ¶ | |||
| of 2^32-1 (4294967295 decimal), when it wraps | of 2^32-1 (4294967295 decimal), when it wraps | |||
| around and starts increasing again from zero."; | around and starts increasing again from zero."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping session-delay-statistics { | grouping session-delay-statistics { | |||
| description | description | |||
| "Grouping for per session delay statistics"; | "Grouping for per session delay statistics"; | |||
| container session-delay-statistics { | container session-delay-statistics { | |||
| description | description | |||
| "Session delay summarised information.By default, | "Session delay summarised information. By default, | |||
| one way measurement protocol (e.g., OWAMP)is used | one way measurement protocol (e.g., OWAMP) is used | |||
| to measure delay. When two way measurement protocol | to measure delay. When two way measurement protocol | |||
| (e.g., TWAMP) is used instead, it can be indicated | (e.g., TWAMP) is used instead, it can be indicated | |||
| using and protocol-id defined in RPC operation of | using and protocol-id defined in RPC operation of | |||
| draft-ietf-lime-yang-connectionless-oam-methods,i.e., | draft-ietf-lime-yang-connectionless-oam-methods, i.e., | |||
| set protocol-id as OWAMP. Note that only one measurement | set protocol-id as OWAMP. Note that only one measurement | |||
| protocol for delay is specified for interoperability reason."; | protocol for delay is specified for interoperability reason."; | |||
| leaf time-unit-value { | leaf time-unit-value { | |||
| type identityref { | type identityref { | |||
| base lime:time-unit-type; | base lime:time-unit-type; | |||
| } | } | |||
| default lime:milliseconds; | default lime:milliseconds; | |||
| description | description | |||
| "Time units among choice of s,ms,ns etc."; | "Time units among choice of s, ms, ns, etc."; | |||
| } | } | |||
| leaf min-delay-value { | leaf min-delay-value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Minimum delay value observed."; | "Minimum delay value observed."; | |||
| } | } | |||
| leaf max-delay-value { | leaf max-delay-value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Maximum delay value observed."; | "Maximum delay value observed."; | |||
| skipping to change at page 22, line 49 ¶ | skipping to change at page 23, line 4 ¶ | |||
| leaf max-delay-value { | leaf max-delay-value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Maximum delay value observed."; | "Maximum delay value observed."; | |||
| } | } | |||
| leaf average-delay-value { | leaf average-delay-value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Average delay value observed."; | "Average delay value observed."; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping session-jitter-statistics { | grouping session-jitter-statistics { | |||
| description | description | |||
| "Grouping for per session jitter statistics"; | "Grouping for per session jitter statistics"; | |||
| container session-jitter-statistics { | container session-jitter-statistics { | |||
| description | description | |||
| "Session jitter summarised information. By default, | "Session jitter summarised information. By default, | |||
| jitter is measured using IP Packet Delay Variation | jitter is measured using IP Packet Delay Variation | |||
| (IPDV) as defined in RFC3393. When the other measurement | (IPDV) as defined in RFC3393. When the other measurement | |||
| method is used instead(e.g., Packet Delay Variation used in | method is used instead (e.g., Packet Delay Variation used | |||
| Y.1540, it can be indicated using protocol-id-meta-data | in Y.1540, it can be indicated using protocol-id-meta-data | |||
| defined in RPC operation of | defined in RPC operation of | |||
| draft-ietf-lime-yang-connectionless-oam-methods. Note that | draft-ietf-lime-yang-connectionless-oam-methods. Note that | |||
| only one measurement method for jitter is specified | only one measurement method for jitter is specified | |||
| for interoperability reason."; | for interoperability reason."; | |||
| leaf unit-value { | leaf unit-value { | |||
| type identityref { | type identityref { | |||
| base lime:time-unit-type; | base lime:time-unit-type; | |||
| } | } | |||
| default lime:milliseconds; | default lime:milliseconds; | |||
| description | description | |||
| "Time units among choice of s,ms,ns etc."; | "Time units among choice of s, ms, ns, etc."; | |||
| } | } | |||
| leaf min-jitter-value { | leaf min-jitter-value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Minimum jitter value observed."; | "Minimum jitter value observed."; | |||
| } | } | |||
| leaf max-jitter-value { | leaf max-jitter-value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Maximum jitter value observed."; | "Maximum jitter value observed."; | |||
| skipping to change at page 26, line 49 ¶ | skipping to change at page 27, line 4 ¶ | |||
| } | } | |||
| leaf ipv6-address { | leaf ipv6-address { | |||
| type inet:ipv6-address; | type inet:ipv6-address; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "IPv6 Address"; | "IPv6 Address"; | |||
| } | } | |||
| description | description | |||
| "ipv6 Address based TP Addressing."; | "ipv6 Address based TP Addressing."; | |||
| } | } | |||
| container tp-attribute { | container tp-attribute { | |||
| when "derived-from-or-self(../tp-location-type,"+ | when "derived-from-or-self(../tp-location-type,"+ | |||
| "'cl-oam:tp-attribute-type')" { | "'cl-oam:tp-attribute-type')" { | |||
| description | description | |||
| "Test point attribute type"; | "Test point attribute type"; | |||
| } | } | |||
| leaf tp-attribute-type { | leaf tp-attribute-type { | |||
| type address-attribute-type; | type address-attribute-type; | |||
| description | description | |||
| "Test point type."; | "Test point type."; | |||
| } | } | |||
| choice tp-attribute-value { | choice tp-attribute-value { | |||
| description | description | |||
| "Test point value."; | "Test point value."; | |||
| case ip-prefix { | case ip-prefix { | |||
| leaf ip-prefix { | leaf ip-prefix { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "Generic IPv4/IPv6 prefix.See Section 3.2.13 and | "Generic IPv4/IPv6 prefix. See Section 3.2.13 and | |||
| Section 3.2.14 of RFC8029."; | Section 3.2.14 of RFC8029."; | |||
| reference | reference | |||
| "RFC 8029 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| } | } | |||
| case bgp { | case bgp { | |||
| leaf bgp { | leaf bgp { | |||
| type inet:ip-prefix; | type inet:ip-prefix; | |||
| description | description | |||
| "BGP Labeled IPv4/IPv6 Prefix.See section | "BGP Labeled IPv4/IPv6 Prefix. See section | |||
| 3.2.11 and section 3.2.12 of RFC8029 for details. "; | 3.2.11 and section 3.2.12 of RFC8029 for details. "; | |||
| reference | reference | |||
| "RFC 8029 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| } | } | |||
| case tunnel { | case tunnel { | |||
| leaf tunnel-interface { | leaf tunnel-interface { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| skipping to change at page 28, line 5 ¶ | skipping to change at page 28, line 8 ¶ | |||
| and Section 3.2.4 of RFC8029 for details."; | and Section 3.2.4 of RFC8029 for details."; | |||
| reference | reference | |||
| "RFC 8029 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures."; | Switched (MPLS) Data Plane Failures."; | |||
| } | } | |||
| } | } | |||
| case pw { | case pw { | |||
| leaf remote-pe-address { | leaf remote-pe-address { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| "Remote PE address,See section 3.2.8 | "Remote PE address. See section 3.2.8 | |||
| of RFC8029 for details."; | of RFC8029 for details."; | |||
| reference | reference | |||
| "RFC 8029 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| leaf pw-id { | leaf pw-id { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Pseudowire ID is a non-zero 32-bit ID.See section | "Pseudowire ID is a non-zero 32-bit ID. See section | |||
| 3.2.8 and Section 3.2.9 for details."; | 3.2.8 and Section 3.2.9 for details."; | |||
| reference | reference | |||
| "RFC 8029 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| } | } | |||
| case vpls { | case vpls { | |||
| leaf route-distinguisher { | leaf route-distinguisher { | |||
| type rt:route-distinguisher; | type rt:route-distinguisher; | |||
| description | description | |||
| skipping to change at page 28, line 44 ¶ | skipping to change at page 28, line 47 ¶ | |||
| description | description | |||
| "Sender's VE ID. The VE ID (VPLS Edge Identifier) | "Sender's VE ID. The VE ID (VPLS Edge Identifier) | |||
| is a 2-octet identifier."; | is a 2-octet identifier."; | |||
| reference | reference | |||
| "RFC 8029 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| leaf receiver-ve-id { | leaf receiver-ve-id { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Receiver's VE ID.The VE ID (VPLS Edge Identifier) | "Receiver's VE ID. The VE ID (VPLS Edge Identifier) | |||
| is a 2-octet identifier."; | is a 2-octet identifier."; | |||
| reference | reference | |||
| "RFC 8029 :Detecting Multi-Protocol Label | "RFC 8029 :Detecting Multi-Protocol Label | |||
| Switched (MPLS) Data Plane Failures"; | Switched (MPLS) Data Plane Failures"; | |||
| } | } | |||
| } | } | |||
| case mpls-mldp { | case mpls-mldp { | |||
| choice root-address { | choice root-address { | |||
| description | description | |||
| "Root address choice."; | "Root address choice."; | |||
| case ip-address { | case ip-address { | |||
| leaf source-address { | leaf source-address { | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description | description | |||
| skipping to change at page 29, line 49 ¶ | skipping to change at page 30, line 4 ¶ | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Test Point Attribute Container"; | "Test Point Attribute Container"; | |||
| } | } | |||
| container system-info { | container system-info { | |||
| when "derived-from-or-self(../tp-location-type,"+ | when "derived-from-or-self(../tp-location-type,"+ | |||
| "'cl-oam:router-id-address-type')" { | "'cl-oam:router-id-address-type')" { | |||
| description | description | |||
| "System id address type"; | "System id address type"; | |||
| } | } | |||
| leaf router-id { | leaf router-id { | |||
| type rt:router-id; | type rt:router-id; | |||
| description | description | |||
| "Router ID assigned to this node."; | "Router ID assigned to this node."; | |||
| } | } | |||
| description | description | |||
| "Router ID container."; | "Router ID container."; | |||
| } | } | |||
| description | description | |||
| "TP Address"; | "TP Address"; | |||
| } | } | |||
| grouping tp-address-ni { | grouping tp-address-ni { | |||
| description | description | |||
| "Test point address with VRF."; | "Test point address with VRF."; | |||
| leaf ni { | leaf ni { | |||
| type routing-instance-ref; | type routing-instance-ref; | |||
| description | description | |||
| "The ni is used to describe virtual resource partitioning | "The ni is used to describe virtual resource partitioning | |||
| that may be present on a network device.Example of common | that may be present on a network device. Example of common | |||
| industry terms for virtual resource partitioning is VRF | industry terms for virtual resource partitioning is VRF | |||
| instance."; | instance."; | |||
| } | } | |||
| uses tp-address; | uses tp-address; | |||
| } | } | |||
| grouping connectionless-oam-tps { | grouping connectionless-oam-tps { | |||
| list oam-neighboring-tps { | list oam-neighboring-tps { | |||
| key "index"; | key "index"; | |||
| leaf index { | leaf index { | |||
| type uint16{ | type uint16{ | |||
| skipping to change at page 30, line 47 ¶ | skipping to change at page 30, line 51 ¶ | |||
| } | } | |||
| leaf position { | leaf position { | |||
| type int8 { | type int8 { | |||
| range "-1..1"; | range "-1..1"; | |||
| } | } | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "The relative position | "The relative position | |||
| of neighboring test point | of neighboring test point | |||
| corresponding to the current | corresponding to the current | |||
| test point.Level 0 indicates no neighboring | test point. Level 0 indicates no neighboring | |||
| test points placed before or after the current | test points placed before or after the current | |||
| test point in the same layer.-1 means there is | test point in the same layer.-1 means there is | |||
| a neighboring test point placed before the current | a neighboring test point placed before the current | |||
| test point in the same layer and +1 means there is | test point in the same layer and +1 means there is | |||
| a neighboring test point placed after the current | a neighboring test point placed after the current | |||
| test point in same layer."; | test point in same layer."; | |||
| } | } | |||
| choice tp-location { | choice tp-location { | |||
| case mac-address { | case mac-address { | |||
| leaf mac-address-location { | leaf mac-address-location { | |||
| skipping to change at page 37, line 18 ¶ | skipping to change at page 37, line 20 ¶ | |||
| description | description | |||
| "Serves as top-level container for | "Serves as top-level container for | |||
| test point location list."; | test point location list."; | |||
| } | } | |||
| description | description | |||
| "system ID location type container."; | "system ID location type container."; | |||
| } | } | |||
| } | } | |||
| augment "/nd:networks/nd:network/nd:node" { | augment "/nd:networks/nd:network/nd:node" { | |||
| description | description | |||
| "augments the /networks/network/node path defined in the ietf- | "augments the /networks/network/node path defined in the | |||
| network module (I-D.ietf-i2rs-yang-network-topo) with test-point- | ietf-network module (I-D.ietf-i2rs-yang-network-topo) with | |||
| locations grouping."; | test-point-locations grouping."; | |||
| uses test-point-locations; | uses test-point-locations; | |||
| } | } | |||
| grouping timestamp { | grouping timestamp { | |||
| description | description | |||
| "Grouping for timestamp."; | "Grouping for timestamp."; | |||
| leaf timestamp-type { | leaf timestamp-type { | |||
| type identityref { | type identityref { | |||
| base lime:timestamp-type; | base lime:timestamp-type; | |||
| } | } | |||
| description | description | |||
| "Type of Timestamp, such as Truncated PTP, NTP."; | "Type of Timestamp, such as Truncated PTP, NTP."; | |||
| } | } | |||
| container timestamp-64bit { | container timestamp-64bit { | |||
| when "derived-from-or-self(../timestamp-type, 'cl-oam:truncated-ptp')"+ | when "derived-from-or-self(../timestamp-type, 'cl-oam:truncated-ptp')"+ | |||
| "or derived-from-or-self(../timestamp-type,'cl-oam:ntp64')" { | "or derived-from-or-self(../timestamp-type,'cl-oam:ntp64')" { | |||
| description | description | |||
| "Only applies when Truncated NTP or 64bit NTP Timestamp."; | "Only applies when Truncated PTP or 64bit NTP Timestamp."; | |||
| } | } | |||
| leaf timestamp-sec { | leaf timestamp-sec { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Absolute timestamp in seconds as per IEEE1588v2 | "Absolute timestamp in seconds as per IEEE1588v2 | |||
| or seconds part in 64-bit NTP timestamp."; | or seconds part in 64-bit NTP timestamp."; | |||
| } | } | |||
| leaf timestamp-nanosec { | leaf timestamp-nanosec { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| skipping to change at page 37, line 50 ¶ | skipping to change at page 38, line 4 ¶ | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Absolute timestamp in seconds as per IEEE1588v2 | "Absolute timestamp in seconds as per IEEE1588v2 | |||
| or seconds part in 64-bit NTP timestamp."; | or seconds part in 64-bit NTP timestamp."; | |||
| } | } | |||
| leaf timestamp-nanosec { | leaf timestamp-nanosec { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Fractional part in nanoseconds as per IEEE1588v2 | "Fractional part in nanoseconds as per IEEE1588v2 | |||
| or Fractional part in 64-bit NTP timestamp."; | or Fractional part in 64-bit NTP timestamp."; | |||
| } | } | |||
| description | description | |||
| "Container for 64bit timestamp."; | "Container for 64bit timestamp.See section 4.2.1 of | |||
| draft-ietf-ntp-packet-timestamps for NTP 64-bit Timestamp | ||||
| Format and section 4.3 of draft-ietf-ntp-packet-timestamps | ||||
| for The PTP Truncated Timestamp Format."; | ||||
| } | } | |||
| container timestamp-80bit { | container timestamp-80bit { | |||
| when "derived-from-or-self(../timestamp-type, 'cl-oam:ptp80')"{ | when "derived-from-or-self(../timestamp-type, 'cl-oam:ptp80')"{ | |||
| description | description | |||
| "Only applies when 80bit PTP Timestamp."; | "Only applies when 80bit PTP Timestamp."; | |||
| } | } | |||
| if-feature ptp-long-format; | if-feature ptp-long-format; | |||
| leaf timestamp-sec { | leaf timestamp-sec { | |||
| type uint64 { | type uint64 { | |||
| range "0..281474976710655"; | range "0..281474976710655"; | |||
| } | } | |||
| description | description | |||
| "48bit Timestamp in seconds as per IEEE1588v2."; | "48bit Timestamp in seconds as per IEEE1588v2."; | |||
| } | } | |||
| leaf timestamp-nanosec { | leaf timestamp-nanosec { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Fractional part in nanoseconds as per IEEE1588v2 | "Fractional part in nanoseconds as per IEEE1588v2."; | |||
| or Fractional part in 64-bit NTP timestamp."; | ||||
| } | } | |||
| description | description | |||
| "Container for 80bit timestamp."; | "Container for 80bit timestamp."; | |||
| } | } | |||
| container ntp-timestamp-32bit { | container ntp-timestamp-32bit { | |||
| when "derived-from-or-self(../timestamp-type, 'cl-oam:truncated-ntp')"{ | when "derived-from-or-self(../timestamp-type, 'cl-oam:truncated-ntp')"{ | |||
| description | description | |||
| "Only applies when 32 bit NTP Short format Timestamp."; | "Only applies when 32 bit NTP Short format Timestamp."; | |||
| } | } | |||
| if-feature ntp-short-format; | if-feature ntp-short-format; | |||
| skipping to change at page 38, line 45 ¶ | skipping to change at page 38, line 50 ¶ | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Timestamp in seconds as per short format NTP."; | "Timestamp in seconds as per short format NTP."; | |||
| } | } | |||
| leaf timestamp-nanosec { | leaf timestamp-nanosec { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Truncated Fractional part in 16-bit NTP timestamp."; | "Truncated Fractional part in 16-bit NTP timestamp."; | |||
| } | } | |||
| description | description | |||
| "Container for 32bit timestamp."; | "Container for 32bit timestamp.See section 4.2.2 of | |||
| draft-ietf-ntp-packet-timestamps for NTP 32-bit Timestamp | ||||
| Format."; | ||||
| } | } | |||
| container icmp-timestamp-32bit { | container icmp-timestamp-32bit { | |||
| when "derived-from-or-self(../timestamp-type, 'cl-oam:icmp-ntp')"{ | when "derived-from-or-self(../timestamp-type, 'cl-oam:icmp-ntp')"{ | |||
| description | description | |||
| "Only applies when Truncated NTP or 64bit NTP Timestamp."; | "Only applies when Truncated NTP or 64bit NTP Timestamp."; | |||
| } | } | |||
| if-feature icmp-timestamp; | if-feature icmp-timestamp; | |||
| leaf timestamp-millisec { | leaf timestamp-millisec { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "timestamp in milliseconds for ICMP timestamp."; | "timestamp in milliseconds for ICMP timestamp."; | |||
| } | } | |||
| description | description | |||
| "Container for 32bit timestamp."; | "Container for 32bit timestamp.See RFC792 for ICMP | |||
| timestamp format."; | ||||
| } | } | |||
| } | } | |||
| grouping path-discovery-data { | grouping path-discovery-data { | |||
| description | description | |||
| "Path discovery related data output from nodes."; | "Path discovery related data output from nodes."; | |||
| container src-test-point { | container src-test-point { | |||
| description | description | |||
| "Source test point."; | "Source test point."; | |||
| uses tp-address-ni; | uses tp-address-ni; | |||
| } | } | |||
| container dest-test-point { | container dest-test-point { | |||
| description | description | |||
| "Destination test point."; | "Destination test point."; | |||
| uses tp-address-ni; | uses tp-address-ni; | |||
| } | } | |||
| leaf sequence-number { | leaf sequence-number { | |||
| type uint64; | type uint64; | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Sequence number in data packets.A value of | "Sequence number in data packets. A value of | |||
| zero indicates that no sequence number is sent."; | zero indicates that no sequence number is sent."; | |||
| } | } | |||
| leaf hop-cnt { | leaf hop-cnt { | |||
| type uint8; | type uint8; | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Hop count.A value of zero indicates | "Hop count. A value of zero indicates | |||
| that no hop count is sent"; | that no hop count is sent"; | |||
| } | } | |||
| uses session-packet-statistics; | uses session-packet-statistics; | |||
| uses session-error-statistics; | uses session-error-statistics; | |||
| uses session-delay-statistics; | uses session-delay-statistics; | |||
| uses session-jitter-statistics; | uses session-jitter-statistics; | |||
| container path-verification { | container path-verification { | |||
| description | description | |||
| "Optional path verification related information."; | "Optional path verification related information."; | |||
| leaf flow-info { | leaf flow-info { | |||
| type string; | type string; | |||
| description | description | |||
| "Informations that refers to the flow."; | "Informations that refers to the flow."; | |||
| } | } | |||
| uses session-path-verification-statistics; | uses session-path-verification-statistics; | |||
| } | } | |||
| container path-trace-info { | container path-trace-info { | |||
| description | description | |||
| "Optional path trace per-hop test point information. | "Optional path trace per-hop test point information. | |||
| The path trace information list has typically a single | The path trace information list has typically a single | |||
| element for per-hop cases like path-discovery RPC operation | element for per-hop cases such as path-discovery RPC operation | |||
| but allows a list of hop related information for other types of | but allows a list of hop related information for other types of | |||
| data retrieval methods."; | data retrieval methods."; | |||
| list path-trace-info-list { | list path-trace-info-list { | |||
| key "index"; | key "index"; | |||
| description | description | |||
| "Path trace information list."; | "Path trace information list."; | |||
| leaf index { | leaf index { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Trace information index."; | "Trace information index."; | |||
| skipping to change at page 41, line 40 ¶ | skipping to change at page 41, line 47 ¶ | |||
| leaf ingress-intf-name { | leaf ingress-intf-name { | |||
| type if:interface-ref; | type if:interface-ref; | |||
| description | description | |||
| "Ingress interface name."; | "Ingress interface name."; | |||
| } | } | |||
| } | } | |||
| leaf sequence-number { | leaf sequence-number { | |||
| type uint64; | type uint64; | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Sequence number in data packets.A value of | "Sequence number in data packets. A value of | |||
| zero indicates that no sequence number is sent."; | zero indicates that no sequence number is sent."; | |||
| } | } | |||
| leaf hop-cnt { | leaf hop-cnt { | |||
| type uint8; | type uint8; | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Hop count.A value of zero indicates | "Hop count. A value of zero indicates | |||
| that no hop count is sent"; | that no hop count is sent"; | |||
| } | } | |||
| uses session-packet-statistics; | uses session-packet-statistics; | |||
| uses session-error-statistics; | uses session-error-statistics; | |||
| uses session-delay-statistics; | uses session-delay-statistics; | |||
| uses session-jitter-statistics; | uses session-jitter-statistics; | |||
| } | } | |||
| container cc-session-statistics-data { | container cc-session-statistics-data { | |||
| if-feature "continuity-check"; | if-feature "continuity-check"; | |||
| config false; | config false; | |||
| skipping to change at page 42, line 44 ¶ | skipping to change at page 43, line 4 ¶ | |||
| "CC ipv6 sessions"; | "CC ipv6 sessions"; | |||
| uses cc-session-statistics; | uses cc-session-statistics; | |||
| } | } | |||
| description | description | |||
| "List of CC session statistics data."; | "List of CC session statistics data."; | |||
| } | } | |||
| description | description | |||
| "CC operational information."; | "CC operational information."; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 6. Connectionless model applicability | 6. Connectionless model applicability | |||
| The "ietf-connectionless-oam" model defined in this document provides | The "ietf-connectionless-oam" model defined in this document provides | |||
| a technology-independent abstraction of key OAM constructs for | a technology-independent abstraction of key OAM constructs for OAM | |||
| connectionless protocols. This model can be further extended to | protocols that use connectionless communication. This model can be | |||
| include technology specific details, e.g., adding new data nodes with | further extended to include technology-specific details, e.g., adding | |||
| technology specific functions and parameters into proper anchor | new data nodes with technology specific functions and parameters into | |||
| points of the base model, so as to develop a technology-specific | proper anchor points of the base model, so as to develop a | |||
| connectionless OAM model. | technology-specific connectionless OAM model. | |||
| This section demonstrates the usability of the connectionless YANG | This section demonstrates the usability of the connectionless YANG | |||
| OAM data model to various connectionless OAM technologies, e.g., BFD, | OAM data model to various connectionless OAM technologies, e.g., BFD, | |||
| LSP ping. Note that, in this section, several snippets of | LSP ping. Note that, in this section, several snippets of | |||
| technology-specific model extensions are presented for illustrative | technology-specific model extensions are presented for illustrative | |||
| purposes. The complete model extensions should be worked on in | purposes. The complete model extensions should be worked on in | |||
| respective protocol working groups. | respective protocol working groups. | |||
| 6.1. BFD Extension | 6.1. BFD Extension | |||
| skipping to change at page 44, line 17 ¶ | skipping to change at page 44, line 17 ¶ | |||
| +"/coam:test-point-ipv4-location-list/" | +"/coam:test-point-ipv4-location-list/" | |||
| +"coam:test-point-locations/coam:technology" | +"coam:test-point-locations/coam:technology" | |||
| { | { | |||
| leaf bfd{ | leaf bfd{ | |||
| type string; | type string; | |||
| } | } | |||
| } | } | |||
| 6.1.1.2. Test point attributes extension | 6.1.1.2. Test point attributes extension | |||
| To support BFD technology, the "ietf-connectionless-oam" model can be | To support BFD, the "ietf-connectionless-oam" model can be extended | |||
| extended by adding specific parameters into the "test-point- | by adding specific parameters into the "test-point-locations" list | |||
| locations" list and/or adding a new location type such as "BFD over | and/or adding a new location type such as "BFD over MPLS TE" under | |||
| MPLS TE" under "location-type". | "location-type". | |||
| 6.1.1.2.1. Define and insert new nodes into corresponding test-point- | 6.1.1.2.1. Define and insert new nodes into corresponding test-point- | |||
| location | location | |||
| In the "ietf-connectionless-oam" model, multiple "test-point- | In the "ietf-connectionless-oam" model, multiple "test-point- | |||
| location" lists are defined under the "location-type" choice node. | location" lists are defined under the "location-type" choice node. | |||
| Therefore, to derive a model for some BFD technologies ( such as ip | Therefore, to derive a model for some BFD technologies ( such as ip | |||
| single-hop, ip multi-hops, etc), data nodes for BFD specific details | single-hop, ip multi-hops, etc), data nodes for BFD specific details | |||
| need to be added into corresponding "test-point-locations" list. In | need to be added into corresponding "test-point-locations" list. In | |||
| this section, some groupings which are defined in [I-D.ietf-bfd-yang] | this section, some groupings which are defined in [I-D.ietf-bfd-yang] | |||
| are reused as follow: | are reused as follows: | |||
| The snippet below shows how the "ietf-connectionless-oam" model can | The snippet below shows how the "ietf-connectionless-oam" model can | |||
| be extended to support "BFD IP single-hop": | be extended to support "BFD IP Single-Hop": | |||
| augment "/nd:networks/nd:network/nd:node/" | augment "/nd:networks/nd:network/nd:node/" | |||
| +"coam:location-type/coam:ipv4-location-type" | +"coam:location-type/coam:ipv4-location-type" | |||
| +"/coam:test-point-ipv4-location-list/" | +"/coam:test-point-ipv4-location-list/" | |||
| +"coam:test-point-locations" | +"coam:test-point-locations" | |||
| { | { | |||
| container session-cfg { | container session-cfg { | |||
| description "BFD IP single-hop session configuration"; | description "BFD IP single-hop session configuration"; | |||
| list sessions { | list sessions { | |||
| key "interface dest-addr"; | key "interface dest-addr"; | |||
| skipping to change at page 45, line 31 ¶ | skipping to change at page 45, line 31 ¶ | |||
| type inet:ip-address; | type inet:ip-address; | |||
| description "IP address of the peer"; | description "IP address of the peer"; | |||
| } | } | |||
| uses bfd:bfd-grouping-common-cfg-parms; | uses bfd:bfd-grouping-common-cfg-parms; | |||
| uses bfd:bfd-grouping-echo-cfg-parms; | uses bfd:bfd-grouping-echo-cfg-parms; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Similar augmentations can be defined to support other BFD | Similar augmentations can be defined to support other BFD | |||
| technologies such as BFD IP multi-hop, BFD over MPLS, etc. | technologies such as BFD IP Multi-Hop, BFD over MPLS, etc. | |||
| 6.1.1.2.2. Add new location-type cases | 6.1.1.2.2. Add new location-type cases | |||
| In the "ietf-connectionless-oam" model, If there is no appropriate | In the "ietf-connectionless-oam" model, If there is no appropriate | |||
| "location type" case that can be extended, a new "location-type" case | "location type" case that can be extended, a new "location-type" case | |||
| can be defined and inserted into the "location-type" choice node. | can be defined and inserted into the "location-type" choice node. | |||
| Therefore, the model user can flexibly add "location-type" to support | Therefore, the model user can flexibly add "location-type" to support | |||
| other type of test point which are not defined in the "ietf- | other type of test point which are not defined in the "ietf- | |||
| connectionless-oam" model. In this section, a new "location-type" | connectionless-oam" model. In this section, a new "location-type" | |||
| skipping to change at page 46, line 27 ¶ | skipping to change at page 46, line 27 ¶ | |||
| uses bfd-mpls:bfd-encap-cfg; | uses bfd-mpls:bfd-encap-cfg; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Similar augmentations can be defined to support other BFD | Similar augmentations can be defined to support other BFD | |||
| technologies such as BFD over LAG, etc. | technologies such as BFD over LAG, etc. | |||
| 6.1.2. Schema Mount | 6.1.2. Schema Mount | |||
| Another alternative method is using the schema mount mechanism [I- | An alternative method is using the schema mount mechanism [I-D.ietf- | |||
| D.ietf-netmod-schema-mount] in the "ietf-connectionless-oam" model. | netmod-schema-mount] in the "ietf-connectionless-oam" model. Within | |||
| Within the "test-point-locations" list, a "root" attribute is defined | the "test-point-locations" list, a "root" attribute is defined to | |||
| to provide a mount point for models mounted per "test-point- | provide a mount point for models mounted per "test-point-locations". | |||
| locations". Therefore, the "ietf-connectionless-oam" model can | Therefore, the "ietf-connectionless-oam" model can provide a place in | |||
| provide a place in the node hierarchy where other OAM YANG data | the node hierarchy where other OAM YANG data models can be attached, | |||
| models can be attached, without any special extension in the "ietf- | without any special extension in the "ietf-connectionless-oam" YANG | |||
| connectionless-oam" YANG data models [I-D.ietf-netmod-schema-mount]. | data models [I-D.ietf-netmod-schema-mount]. Note that the limitation | |||
| Note that the limitation of the Schema Mount method is it is not | of the Schema Mount method is it is not allowed to specify certain | |||
| allowed to specify certain modules that are required to be mounted | modules that are required to be mounted under a mount point. | |||
| under a mount point. | ||||
| The snippet below depicts the definition of the "root" attribute. | The snippet below depicts the definition of the "root" attribute. | |||
| anydata root { | anydata root { | |||
| yangmnt:mount-point root; | yangmnt:mount-point root; | |||
| description | description | |||
| "Root for models supported per | "Root for models supported per | |||
| test point"; | test point"; | |||
| } | } | |||
| skipping to change at page 47, line 40 ¶ | skipping to change at page 47, line 40 ¶ | |||
| <name>ietf-bfd-ip-mh </name> | <name>ietf-bfd-ip-mh </name> | |||
| <revision> 2016-07-04</revision> | <revision> 2016-07-04</revision> | |||
| <namespace> | <namespace> | |||
| urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh | urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh | |||
| </namespace> | </namespace> | |||
| <conformance-type>implement</conformance-type> | <conformance-type>implement</conformance-type> | |||
| </module> | </module> | |||
| </schema> | </schema> | |||
| </schema-mounts> | </schema-mounts> | |||
| and the " ietf-connectionless-oam " module might have: | and the "ietf-connectionless-oam" module might have: | |||
| <ietf-connectionless-oam | <ietf-connectionless-oam | |||
| uri="urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"> | uri="urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"> | |||
| ...... | ...... | |||
| <test-point-locations> | <test-point-locations> | |||
| <ipv4-location>192.0.2.1</ipv4-location> | <ipv4-location>192.0.2.1</ipv4-location> | |||
| ...... | ...... | |||
| <root> | <root> | |||
| <ietf-bfd-ip-sh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"> | <ietf-bfd-ip-sh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"> | |||
| <ip-sh> | <ip-sh> | |||
| skipping to change at page 48, line 28 ¶ | skipping to change at page 48, line 28 ¶ | |||
| <ietf-bfd-ip-mh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"> | <ietf-bfd-ip-mh uri="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh"> | |||
| <ip-mh> | <ip-mh> | |||
| foo | foo | |||
| ...... | ...... | |||
| </ip-mh> | </ip-mh> | |||
| </ietf-bfd-ip-mh> | </ietf-bfd-ip-mh> | |||
| </root> | </root> | |||
| </test-point-locations> | </test-point-locations> | |||
| </ietf-connectionless-oam> | </ietf-connectionless-oam> | |||
| 6.2. LSP ping extension | 6.2. LSP Ping extension | |||
| 6.2.1. Augment Method | 6.2.1. Augment Method | |||
| The following sections shows how the "ietf-connectionless-oam" model | The following sections shows how the "ietf-connectionless-oam" model | |||
| can be extended to support LSP ping technology. For this purpose, a | can be extended to support LSP ping technology. For this purpose, a | |||
| set of extensions are introduced such as the "technology-type" | set of extensions are introduced such as the "technology-type" | |||
| extension and the test-point "attributes" extension. | extension and the test-point "attributes" extension. | |||
| Note that a LSP Ping YANG data model | Note that an LSP Ping YANG data model is being specified | |||
| [I-D.zheng-mpls-lsp-ping-yang-cfg] has been standardized. As with | [I-D.zheng-mpls-lsp-ping-yang-cfg]. As with BFD, users can choose to | |||
| BFD, users can choose to use the "ietf-connectioless-oam" as basis | use the "ietf-connectioless-oam" as basis and augment the "ietf- | |||
| and augment the "ietf- connectionless-oam" model with LSP Ping | connectionless-oam" model with LSP Ping specific details in the model | |||
| specific details in the model extension to provide a unified view | extension to provide a unified view across different technologies. | |||
| across different technologies. The LSP Ping specific details can be | The LSP Ping specific details can be the grouping defined in the LSP | |||
| the grouping defined in the LSP ping model to avoid duplication of | ping model to avoid duplication of effort. | |||
| effort. | ||||
| 6.2.1.1. Technology type extension | 6.2.1.1. Technology type extension | |||
| No lsp-ping technology type has been defined in the "ietf- | No LSP Ping technology type has been defined in the "ietf- | |||
| connectionless-oam" model. Therefore a technology type extension is | connectionless-oam" model. Therefore a technology type extension is | |||
| required in the model extension. | required in the model extension. | |||
| The snippet below depicts an example of augmenting the "ietf- | The snippet below depicts an example of augmenting the "ietf- | |||
| connectionless-oam" with "lsp-ping" type: | connectionless-oam" with "lsp-ping" type: | |||
| augment "/nd:networks/nd:network/nd:node/" | augment "/nd:networks/nd:network/nd:node/" | |||
| +"coam:location-type/coam:ipv4-location-type" | +"coam:location-type/coam:ipv4-location-type" | |||
| +"/coam:test-point-ipv4-location-list/" | +"/coam:test-point-ipv4-location-list/" | |||
| +"coam:test-point-locations/coam:technology" | +"coam:test-point-locations/coam:technology" | |||
| { | { | |||
| leaf lsp-ping{ | leaf lsp-ping{ | |||
| type string; | type string; | |||
| } | } | |||
| } | } | |||
| 6.2.1.2. Test point attributes extension | 6.2.1.2. Test point attributes extension | |||
| To support lsp-ping, the "ietf-connectionless-oam" model can be | To support LSP Ping, the "ietf-connectionless-oam" model can be | |||
| extended and add lsp-ping specific parameters can be defined and | extended and add LSP Ping specific parameters can be defined and | |||
| under "test-point-locations" list. | under "test-point-locations" list. | |||
| Users can reuse the attributes or groupings which are defined in | Users can reuse the attributes or groupings which are defined in | |||
| [I-D.zheng-mpls-lsp-ping-yang-cfg] as follows: | [I-D.zheng-mpls-lsp-ping-yang-cfg] as follows: | |||
| The snippet below depicts an example of augmenting the "test-point- | The snippet below depicts an example of augmenting the "test-point- | |||
| locations" list with lsp ping attributes: | locations" list with lsp ping attributes: | |||
| augment "/nd:networks/nd:network/nd:node/" | augment "/nd:networks/nd:network/nd:node/" | |||
| +"coam:location-type/coam:ipv4-location-type" | +"coam:location-type/coam:ipv4-location-type" | |||
| skipping to change at page 49, line 48 ¶ | skipping to change at page 49, line 45 ¶ | |||
| type string { | type string { | |||
| length "1..31"; | length "1..31"; | |||
| } | } | |||
| mandatory "true"; | mandatory "true"; | |||
| description "LSP Ping test name."; | description "LSP Ping test name."; | |||
| ...... | ...... | |||
| } | } | |||
| 6.2.2. Schema Mount | 6.2.2. Schema Mount | |||
| And another alternative method is using schema mount mechanism | An alternative method is using schema mount mechanism | |||
| [I-D.ietf-netmod-schema-mount] in the "ietf-connectionless-oam". | [I-D.ietf-netmod-schema-mount] in the "ietf-connectionless-oam". | |||
| Within the "test-point-locations" list, a "root" attribute is defined | Within the "test-point-locations" list, a "root" attribute is defined | |||
| to provide a mounted point for models mounted per "test-point- | to provide a mounted point for models mounted per "test-point- | |||
| locations". Therefore, the "ietf-connectionless-oam" model can | locations". Therefore, the "ietf-connectionless-oam" model can | |||
| provide a place in the node hierarchy where other OAM YANG data | provide a place in the node hierarchy where other OAM YANG data | |||
| models can be attached, without any special extension in the "ietf- | models can be attached, without any special extension in the "ietf- | |||
| connectionless-oam" YANG data models [I-D.ietf-netmod-schema-mount]. | connectionless-oam" YANG data models [I-D.ietf-netmod-schema-mount]. | |||
| Note that the limitation of the Schema Mount method is it is not | Note that the limitation of the Schema Mount method is it is not | |||
| allowed to specify certain modules that are required to be mounted | allowed to specify certain modules that are required to be mounted | |||
| under a mount point. | under a mount point. | |||
| The snippet below depicts the definition of "root" attribute. | The snippet below depicts the definition of "root" attribute. | |||
| anydata root { | anydata root { | |||
| yangmnt:mount-point root; | yangmnt:mount-point root; | |||
| description | description | |||
| "Root for models supported per | "Root for models supported per | |||
| skipping to change at page 50, line 51 ¶ | skipping to change at page 50, line 49 ¶ | |||
| <name>ietf-lspping </name> | <name>ietf-lspping </name> | |||
| <revision>2016-03-18</revision> | <revision>2016-03-18</revision> | |||
| <namespace> | <namespace> | |||
| urn:ietf:params:xml:ns:yang: ietf-lspping | urn:ietf:params:xml:ns:yang: ietf-lspping | |||
| </namespace> | </namespace> | |||
| <conformance-type>implement</conformance-type> | <conformance-type>implement</conformance-type> | |||
| </module> | </module> | |||
| </schema> | </schema> | |||
| </schema-mounts> | </schema-mounts> | |||
| and the " ietf-connectionless-oam " module might have: | and the "ietf-connectionless-oam" module might have: | |||
| <ietf-connectionless-oam | <ietf-connectionless-oam | |||
| uri="urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"> | uri="urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"> | |||
| ...... | ...... | |||
| <test-point-locations> | <test-point-locations> | |||
| <ipv4-location> 192.0.2.1</ipv4-location> | <ipv4-location> 192.0.2.1</ipv4-location> | |||
| ...... | ...... | |||
| <root> | <root> | |||
| <ietf-lspping uri="urn:ietf:params:xml:ns:yang:ietf-lspping"> | <ietf-lspping uri="urn:ietf:params:xml:ns:yang:ietf-lspping"> | |||
| <lsp-pings> | <lsp-pings> | |||
| skipping to change at page 53, line 11 ¶ | skipping to change at page 53, line 11 ¶ | |||
| /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- | /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- | |||
| statistics/cl-oam:cc-session-statistics/cl-oam:session-down-count/ | statistics/cl-oam:cc-session-statistics/cl-oam:session-down-count/ | |||
| /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- | /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- | |||
| statistics/cl-oam:cc-session-statistics/cl-oam:session-admin-down- | statistics/cl-oam:cc-session-statistics/cl-oam:session-admin-down- | |||
| count/ | count/ | |||
| 8. IANA Considerations | 8. 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-lime-time-types | URI: urn:ietf:params:xml:ns:yang:ietf-lime-time-types | |||
| 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. | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | |||
| 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. | |||
| skipping to change at page 53, line 38 ¶ | skipping to change at page 53, line 38 ¶ | |||
| Reference: RFC XXXX | Reference: RFC XXXX | |||
| Name: ietf-connectionless-oam | Name: ietf-connectionless-oam | |||
| Namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | Namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam | |||
| Prefix: cl-oam | Prefix: cl-oam | |||
| Reference: RFC XXXX | Reference: RFC XXXX | |||
| 9. Acknowlegements | 9. Acknowlegements | |||
| The authors of this document would like to thank Elwyn Davies, Alia | The authors of this document would like to thank Elwyn Davies, Alia | |||
| Atlas,Brian E Carpenter,Greg Mirsky,Adam Roach,Alissa Cooper,Eric | Atlas, Brian E Carpenter, Greg Mirsky, Adam Roach, Alissa Cooper, | |||
| Rescorla,Ben Campbell, Benoit Claise,Kathleen Moriarty and others for | Eric Rescorla, Ben Campbell, Benoit Claise, Kathleen Moriarty, Carlos | |||
| their sustainable review and comments, proposals to improve and | Pignataro, and others for their substantive review and comments, and | |||
| stabilize document. | proposals to stabilize and improve the document. | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [I-D.ietf-i2rs-yang-network-topo] | [I-D.ietf-i2rs-yang-network-topo] | |||
| Clemm, A., Medved, J., Varga, R., Bahadur, N., | Clemm, A., Medved, J., Varga, R., Bahadur, N., | |||
| Ananthakrishnan, H., and X. Liu, "A Data Model for Network | Ananthakrishnan, H., and X. Liu, "A Data Model for Network | |||
| Topologies", draft-ietf-i2rs-yang-network-topo-17 (work in | Topologies", draft-ietf-i2rs-yang-network-topo-17 (work in | |||
| progress), October 2017. | progress), October 2017. | |||
| skipping to change at page 55, line 41 ¶ | skipping to change at page 55, line 41 ¶ | |||
| [G.800] "Unified functional architecture of transport networks", | [G.800] "Unified functional architecture of transport networks", | |||
| ITU-T Recommendation G.800, 2016. | ITU-T Recommendation G.800, 2016. | |||
| [G.8013] "OAM functions and mechanisms for Ethernet based | [G.8013] "OAM functions and mechanisms for Ethernet based | |||
| networks", ITU-T Recommendation G.8013/Y.1731, 2013. | networks", ITU-T Recommendation G.8013/Y.1731, 2013. | |||
| [I-D.ietf-bfd-yang] | [I-D.ietf-bfd-yang] | |||
| Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and | Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and | |||
| G. Mirsky, "YANG Data Model for Bidirectional Forwarding | G. Mirsky, "YANG Data Model for Bidirectional Forwarding | |||
| Detection (BFD)", draft-ietf-bfd-yang-06 (work in | Detection (BFD)", draft-ietf-bfd-yang-07 (work in | |||
| progress), June 2017. | progress), October 2017. | |||
| [I-D.ietf-lime-yang-connection-oriented-oam-model] | [I-D.ietf-lime-yang-connection-oriented-oam-model] | |||
| Kumar, D., Wu, Q., and Z. Wang, "Generic YANG Data Model | Kumar, D., Wu, Q., and Z. Wang, "Generic YANG Data Model | |||
| for Connection Oriented Operations, Administration, and | for Connection Oriented Operations, Administration, and | |||
| Maintenance(OAM) protocols", draft-ietf-lime-yang- | Maintenance(OAM) protocols", draft-ietf-lime-yang- | |||
| connection-oriented-oam-model-00 (work in progress), June | connection-oriented-oam-model-00 (work in progress), June | |||
| 2017. | 2017. | |||
| [I-D.ietf-lime-yang-connectionless-oam-methods] | [I-D.ietf-lime-yang-connectionless-oam-methods] | |||
| Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, | |||
| "Retrieval Methods YANG Data Model for Connectionless | "Retrieval Methods YANG Data Model for Connectionless | |||
| Operations, Administration, and Maintenance(OAM) | Operations, Administration, and Maintenance(OAM) | |||
| protocols", draft-ietf-lime-yang-connectionless-oam- | protocols", draft-ietf-lime-yang-connectionless-oam- | |||
| methods-12 (work in progress), October 2017. | methods-12 (work in progress), October 2017. | |||
| [I-D.ietf-netmod-schema-mount] | [I-D.ietf-netmod-schema-mount] | |||
| Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- | Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- | |||
| ietf-netmod-schema-mount-08 (work in progress), October | ietf-netmod-schema-mount-08 (work in progress), October | |||
| 2017. | 2017. | |||
| [I-D.ietf-ntp-packet-timestamps] | ||||
| Mizrahi, T., Fabini, J., and A. Morton, "Guidelines for | ||||
| Defining Packet Timestamps", draft-ietf-ntp-packet- | ||||
| timestamps-00 (work in progress), October 2017. | ||||
| [I-D.zheng-mpls-lsp-ping-yang-cfg] | [I-D.zheng-mpls-lsp-ping-yang-cfg] | |||
| Zheng, L., Aldrin, S., Zheng, G., Mirsky, G., and R. | Zheng, L., Aldrin, S., Zheng, G., Mirsky, G., and R. | |||
| Rahman, "YANG Data Model for LSP-Ping", draft-zheng-mpls- | Rahman, "YANG Data Model for LSP-Ping", draft-zheng-mpls- | |||
| lsp-ping-yang-cfg-06 (work in progress), October 2017. | lsp-ping-yang-cfg-06 (work in progress), October 2017. | |||
| [IEEE.1588] | [IEEE.1588] | |||
| "IEEE Standard for a Precision Clock Synchronization | "IEEE Standard for a Precision Clock Synchronization | |||
| Protocol for Networked Measurement and Control Systems", | Protocol for Networked Measurement and Control Systems", | |||
| IEEE IEEE Std 1588-2008, 2008. | IEEE IEEE Std 1588-2008, 2008. | |||
| skipping to change at page 57, line 4 ¶ | skipping to change at page 57, line 14 ¶ | |||
| Authors' Addresses | Authors' Addresses | |||
| Deepak Kumar | Deepak Kumar | |||
| CISCO Systems | CISCO Systems | |||
| 510 McCarthy Blvd | 510 McCarthy Blvd | |||
| Milpitas, CA 95035 | Milpitas, CA 95035 | |||
| USA | USA | |||
| 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. 116 change blocks. | ||||
| 206 lines changed or deleted | 232 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/ | ||||